<?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>71225</bug_id>
          
          <creation_ts>2011-10-31 09:55:36 -0700</creation_ts>
          <short_desc>[chromium] composited layers are blurry with a zoom-in page scale factor</short_desc>
          <delta_ts>2012-03-20 18:59:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          <dependson>72778</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hin-Chung Lam">hclam</reporter>
          <assigned_to name="Hin-Chung Lam">hclam</assigned_to>
          <cc>aelias</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>fsamuel</cc>
    
    <cc>gustavo</cc>
    
    <cc>hclam</cc>
    
    <cc>husky</cc>
    
    <cc>jamesr</cc>
    
    <cc>sievers</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>493376</commentid>
    <comment_count>0</comment_count>
      <attachid>113061</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-10-31 09:55:36 -0700</bug_when>
    <thetext>Created attachment 113061
layout test

See the supplied test. Click on good.png which is when compositor is disabled. Click on bad.png which compositor is enabled and position:fixed is put on a separate layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493378</commentid>
    <comment_count>1</comment_count>
      <attachid>113063</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-10-31 09:56:09 -0700</bug_when>
    <thetext>Created attachment 113063
good resolution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493379</commentid>
    <comment_count>2</comment_count>
      <attachid>113064</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-10-31 09:56:27 -0700</bug_when>
    <thetext>Created attachment 113064
bad resolution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493668</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-31 17:35:40 -0700</bug_when>
    <thetext>I think your test case is the same as this:

&lt;!DOCTYPE html&gt;
&lt;style&gt;
.scaleUp {
  -webkit-transform:scale(2, 2);
  position:absolute;
  left:50px;
}
.compositedScaleUp {
  -webkit-transform:translateZ(0) scale(2,2);
  position:absolute;
  left:50px;
}
&lt;/style&gt;
&lt;div class=&quot;scaleUp&quot;&gt;TEST 1&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;compositedScaleUp&quot;&gt;TEST 2&lt;/div&gt;

which boils down to rastering at the pre-scale resolution rather than post-scale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494103</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-01 13:41:34 -0700</bug_when>
    <thetext>I think we need to port http://trac.webkit.org/changeset/75639 (and http://trac.webkit.org/changeset/91137) to our compositor implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494871</commentid>
    <comment_count>5</comment_count>
      <attachid>113369</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-02 13:46:07 -0700</bug_when>
    <thetext>Created attachment 113369
test case for page scale and position:fixed

James: The WebKit patches you pointed out only deals with page scale but not general css transform. I think we should limit the scope of this to just have better resolution for css transform caused by page scale. I&apos;ve uploaded a test case to demonstrate this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494882</commentid>
    <comment_count>6</comment_count>
      <attachid>113374</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-02 13:57:13 -0700</bug_when>
    <thetext>Created attachment 113374
work in progress 1

James: I also took your advice to look into how WebKit implements, please check the attached patch to see if this is the right approach to take. There are several things I don&apos;t understand so I added comments to the code:

1. GraphicsLayer::setAppliesPageScale() is called on GraphicsLayer associated to the render view. I don&apos;t know what this actually means because the layer transformation passed to the GraphicsLayer doesn&apos;t contain the scale transform. Actual painting of this layer goes through RenderLayer::paintLayer() which has transform applied to the painter.

2. It seems in RenderStlye::setPageScaleTransform() the page scale transform is applied as a CSS scale transform to be inherited by all objects. I observed that GraphicsLayer for render view doesn&apos;t have scale transform applied, but GraphicsLayer for position:fixed has scale transform applied. I had to counter-act this scale transform in GraphicsLayerChromium for position:fixed.... I&apos;m sure there&apos;s a better way to do this..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494898</commentid>
    <comment_count>7</comment_count>
      <attachid>113374</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-02 14:15:54 -0700</bug_when>
    <thetext>Comment on attachment 113374
work in progress 1

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

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:-468
&gt; -

please don&apos;t make spurious changes to files like this. i think your editor is probably doing this, fix it

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:197
&gt; +    float contentsScale() const { return m_contentsScale; }
&gt; +    void setContentsScale(float contentsScale) { m_contentsScale = contentsScale; }

we already support the ability for layer bounds != content bounds via contentBounds()/bounds(). is it necessary to introduce another mechanism?

&gt; Source/WebCore/platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:154
&gt; +    canvasPainter.context()-&gt;scale(FloatSize(contentsScale, contentsScale));

if you&apos;re scaling the canvas you need to adjust the size of the allocated canvas as well, right? where is that being done?

&gt; Source/WebKit/chromium/src/PageOverlay.cpp:81
&gt; +    virtual float deviceScaleFactor() const
&gt; +    {
&gt; +        return 1;
&gt; +    }
&gt; +
&gt; +    virtual float pageScaleFactor() const
&gt; +    {
&gt; +        return m_webViewImpl-&gt;pageScaleFactor();
&gt; +    }

i don&apos;t understand this change at all. are you using PageOverlay?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494907</commentid>
    <comment_count>8</comment_count>
      <attachid>113374</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-02 14:26:08 -0700</bug_when>
    <thetext>Comment on attachment 113374
work in progress 1

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:197
&gt;&gt; +    void setContentsScale(float contentsScale) { m_contentsScale = contentsScale; }
&gt; 
&gt; we already support the ability for layer bounds != content bounds via contentBounds()/bounds(). is it necessary to introduce another mechanism?

This is used in the painter of texture updater to apply scale to the canvas.

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:154
&gt;&gt; +    canvasPainter.context()-&gt;scale(FloatSize(contentsScale, contentsScale));
&gt; 
&gt; if you&apos;re scaling the canvas you need to adjust the size of the allocated canvas as well, right? where is that being done?

I thought setting the bounds of LayerChromium will changes the size of canvas, I&apos;ll check again.

&gt; Source/WebCore/rendering/RenderLayer.cpp:3846
&gt; +    bool paintsForFixedPositionLayer = renderer()-&gt;isPositioned() &amp;&amp; renderer()-&gt;style()-&gt;position() == FixedPosition;

Don&apos;t mind changes in this file, it shouldn&apos;t be here..

&gt;&gt; Source/WebKit/chromium/src/PageOverlay.cpp:81
&gt;&gt; +    }
&gt; 
&gt; i don&apos;t understand this change at all. are you using PageOverlay?

deviceScaleFactor and pageScaleFactor are methods in GraphicsLayerClient. This change http://trac.webkit.org/changeset/91137 queries client for these scale factors, where is a better spot for implementing these two methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494913</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-02 14:32:58 -0700</bug_when>
    <thetext>I see, so are the layer bounds pre-scale or post-scale?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494916</commentid>
    <comment_count>10</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-02 14:34:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I see, so are the layer bounds pre-scale or post-scale?

Layer bounds are post-scale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494921</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-02 14:36:08 -0700</bug_when>
    <thetext>The way I was envisioning this is that layer bounds are pre-scale but the content bounds are post-scale and we raster with the scale applied into a post-scale canvas, then take care of the draw transform such that it displays at the right size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494957</commentid>
    <comment_count>12</comment_count>
      <attachid>113374</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-11-02 15:10:11 -0700</bug_when>
    <thetext>Comment on attachment 113374
work in progress 1

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

I&apos;m not sure I understand why we have to be applying the scale in all these places.  It seems to me that when the page is scaled there will be a scale transform at the top of the tree that will affect the positions and bounds of all layers.  Only when it comes time to paint the contents of an individual layer do we have to scale the canvas by the contentsScale and adjust the draw transform by 1/contentsScale to make sure it renders correctly.

That should work for all composited layers, not just the fixed position ones.

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:509
&gt; +    IntSize layerSize(m_size.width() * contentsScaleFactor, m_size.height() * contentsScaleFactor);

If the whole page is scaled via a scale transform at the very top of the tree, then you shouldn&apos;t have to worry about accommodating for scales down here.

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:530
&gt; +    primaryLayer()-&gt;setAnchorPointZ(m_anchorPoint.z() * contentsScaleFactor);

Not sure you need that.  You&apos;re not adjusting the x and y either...

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:541
&gt; +    if (appliesPageScale()) {

style: no braces

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:542
&gt; +        layerTransform = TransformationMatrix().scale(1 / contentsScale()) * m_transform;

Should be 1.0 to force a float division ? 

Also, the scale probably needs to be applied to all 3d axes so I think you need: 
layerTransform.scale3d(1/cs, 1/cs, 1/cs);

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:593
&gt; +        m_layer-&gt;setContentsScale(contentsScale());

Isn&apos;t the scale going to be set by updateContentsScale() above?

&gt; Source/WebCore/platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:191
&gt;      PlatformContextSkia platformContext(canvas);

I believe you&apos;ll need to apply the scale here too.

&gt; Source/WebCore/rendering/RenderLayer.cpp:3851
&gt; +    return transform() &amp;&amp; ((paintBehavior &amp; PaintBehaviorFlattenCompositingLayers) || paintsToWindow || paintsForFixedPositionLayer);

I don&apos;t think you want to be special-casing fixed position elements...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495406</commentid>
    <comment_count>13</comment_count>
      <attachid>113474</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-03 06:25:55 -0700</bug_when>
    <thetext>Created attachment 113474
ignore this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495497</commentid>
    <comment_count>14</comment_count>
      <attachid>113499</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-03 08:51:00 -0700</bug_when>
    <thetext>Created attachment 113499
work in progress 2

So what I did in this patch:
1. Bump up the contentBounds() using the idea from James.
2. Apply scale transform in the painter.

This makes it much cleaner and not have to mess around with layer transform.. I&apos;m working on some layout tests to make sure this works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495568</commentid>
    <comment_count>15</comment_count>
      <attachid>113511</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-03 10:00:52 -0700</bug_when>
    <thetext>Created attachment 113511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495575</commentid>
    <comment_count>16</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-03 10:05:29 -0700</bug_when>
    <thetext>I&apos;ve updated the patch with some tests, please take another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495592</commentid>
    <comment_count>17</comment_count>
      <attachid>113511</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-03 10:21:04 -0700</bug_when>
    <thetext>Comment on attachment 113511
Patch

This looks pretty nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495607</commentid>
    <comment_count>18</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-03 10:28:10 -0700</bug_when>
    <thetext>Cool! Let&apos;s do a full review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495739</commentid>
    <comment_count>19</comment_count>
      <attachid>113511</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-11-03 13:17:35 -0700</bug_when>
    <thetext>Comment on attachment 113511
Patch

Attachment 113511 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10249412</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495807</commentid>
    <comment_count>20</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-03 15:03:56 -0700</bug_when>
    <thetext>Does this use the wrong (post-scale contentRect) when calling into webkit below?
  paintContents(*canvasPainter.context(), contentRect);

I guess with a scale smaller than 1 you could potentially test if this misses updating anything.

Interestingly, since before your patch contentBounds() and bounds() are the same, I think we end up scaling at draw time simply through the projection from layer to target render surface, i.e.:
    IntRect layerRect = surfaceToLayer.projectQuad(FloatQuad(FloatRect(minimalSurfaceRect))).enclosingBoundingBox();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495810</commentid>
    <comment_count>21</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-03 15:11:39 -0700</bug_when>
    <thetext>contentBounds != bounds today for scaled images, which are scaled at draw time. http://trac.webkit.org/browser/trunk/LayoutTests/compositing/color-matching/image-color-matching.html for example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496070</commentid>
    <comment_count>22</comment_count>
      <attachid>113511</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-03 23:52:41 -0700</bug_when>
    <thetext>Comment on attachment 113511
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:195
&gt; +    updateContentsScale();

is there a specific reason you&apos;re doing this before the transform == m_transform check? do you need to run this code even if the transform hasn&apos;t changed?

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:651
&gt; +    // If page scale is applied as a transform in the compositor then there&apos;s nothing to do here.

not sure i grok this comment. looking at the code, it appears this bit is set on GraphicsLayers for RenderViews, which would include the main layer and iframes below it

have you tested scaled elements inside iframes, etc?

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:655
&gt; +    m_layer-&gt;setContentsScale(contentsScale());

should you be setting this on the m_contentsLayer?

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:657
&gt; +        m_layer-&gt;setNeedsDisplay();

hmm, this appears to invalidate the full layer every time this function is called even if nothing has changed - which would be bad.

&gt; Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp:137
&gt; +IntSize TiledLayerChromium::contentBounds() const

ImageLayerChromium is a subclass of this and provides an implementation of contentBounds() as well. Will this do the right thing for those layers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496071</commentid>
    <comment_count>23</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-03 23:53:19 -0700</bug_when>
    <thetext>there&apos;s nothing in this patch specific to fixed position elements that I can see - can you please retitle the bug to capture its scope?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496215</commentid>
    <comment_count>24</comment_count>
      <attachid>113663</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-04 09:00:54 -0700</bug_when>
    <thetext>Created attachment 113663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496216</commentid>
    <comment_count>25</comment_count>
      <attachid>113663</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-04 09:04:16 -0700</bug_when>
    <thetext>Comment on attachment 113663
Patch

I&apos;ve added one more test to cover position:fixed in iframe.

I also added a virtual method to LayerChromium to determine if the layer needs content scaling. For example doing content scaling with ImageLayerChromium is bad because it&apos;s slower to do it in software, but for TiledLayerChromium for regular content content scaling is needed for the best quality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496437</commentid>
    <comment_count>26</comment_count>
      <attachid>113663</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-11-04 13:45:24 -0700</bug_when>
    <thetext>Comment on attachment 113663
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp:64
&gt; +    virtual void prepareToUpdate(const IntRect&amp; contentRect, const IntSize&amp; tileSize, int /* borderTexels */, float contentsScale)

You&apos;ll probably need to add contentsScale in /* */ comments to avoid compiler warnings about unused variable.

&gt; Source/WebCore/platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:153
&gt; +    canvasPainter.context()-&gt;save();

Adding a check for a scale of 1.0 would help avoid unnecessary saves and restores.

&gt; LayoutTests/ChangeLog:6
&gt; +        Added test cases that has position:fixed and page scale.

I would recommend getting rid of all mentions of fixed position in the Changelogs since this fix applies to all tiled layer types.  You can also make the layout tests independent of fixed position

&gt; LayoutTests/platform/chromium-linux/compositing/geometry/fixed-position-transform-composited-page-scale-expected.txt:1
&gt; +layer at (0,0) size 785x585

You&apos;ll need to change test_expectations.txt to mark win and mac as IMAGE until you can harvest results from the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496556</commentid>
    <comment_count>27</comment_count>
      <attachid>113663</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-04 16:47:51 -0700</bug_when>
    <thetext>Comment on attachment 113663
Patch

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

I had feedback to previous patch that wasn&apos;t addressed.

&gt; Source/WebCore/ChangeLog:3
&gt; +        [chromium] when position:fixed in a separate layer it doesn&apos;t get full resolution with css transform

please update the changelog title to reflect the bug title

&gt; Source/WebKit/chromium/ChangeLog:3
&gt; +        [chromium] when position:fixed in a separate layer it doesn&apos;t get full resolution with css transform

same here

&gt; LayoutTests/compositing/geometry/fixed-position-composited-page-scale.html:1
&gt; +&lt;html&gt;

&lt;!DOCTYPE html&gt; before this please

please do not add new pixel results that include scrollbars since that makes the results platform-specific</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497231</commentid>
    <comment_count>28</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-07 09:20:19 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 113511 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113511&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:195
&gt; &gt; +    updateContentsScale();
&gt; 
&gt; is there a specific reason you&apos;re doing this before the transform == m_transform check? do you need to run this code even if the transform hasn&apos;t changed?\

Yes I do need to do this even if transform == m_transform as the content scale may change. 

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:651
&gt; &gt; +    // If page scale is applied as a transform in the compositor then there&apos;s nothing to do here.
&gt; 
&gt; not sure i grok this comment. looking at the code, it appears this bit is set on GraphicsLayers for RenderViews, which would include the main layer and iframes below it
&gt; 
&gt; have you tested scaled elements inside iframes, etc?

I added a test for this case.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:655
&gt; &gt; +    m_layer-&gt;setContentsScale(contentsScale());
&gt; 
&gt; should you be setting this on the m_contentsLayer?

I tried with m_contentsLayer but it didn&apos;t fix the problem. I&apos;m a bit confused with m_layer and m_contentsLayer.. what are the differences?

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:657
&gt; &gt; +        m_layer-&gt;setNeedsDisplay();
&gt; 
&gt; hmm, this appears to invalidate the full layer every time this function is called even if nothing has changed - which would be bad.

Removed this.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp:137
&gt; &gt; +IntSize TiledLayerChromium::contentBounds() const
&gt; 
&gt; ImageLayerChromium is a subclass of this and provides an implementation of contentBounds() as well. Will this do the right thing for those layers?

Addressed in latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497234</commentid>
    <comment_count>29</comment_count>
      <attachid>113880</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-07 09:22:14 -0800</bug_when>
    <thetext>Created attachment 113880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497238</commentid>
    <comment_count>30</comment_count>
      <attachid>113663</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-07 09:24:14 -0800</bug_when>
    <thetext>Comment on attachment 113663
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        [chromium] when position:fixed in a separate layer it doesn&apos;t get full resolution with css transform
&gt; 
&gt; please update the changelog title to reflect the bug title

done.

&gt;&gt; Source/WebKit/chromium/ChangeLog:3
&gt;&gt; +        [chromium] when position:fixed in a separate layer it doesn&apos;t get full resolution with css transform
&gt; 
&gt; same here

done.

&gt;&gt; Source/WebCore/platform/graphics/chromium/ImageLayerChromium.cpp:64
&gt;&gt; +    virtual void prepareToUpdate(const IntRect&amp; contentRect, const IntSize&amp; tileSize, int /* borderTexels */, float contentsScale)
&gt; 
&gt; You&apos;ll probably need to add contentsScale in /* */ comments to avoid compiler warnings about unused variable.

done.

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:153
&gt;&gt; +    canvasPainter.context()-&gt;save();
&gt; 
&gt; Adding a check for a scale of 1.0 would help avoid unnecessary saves and restores.

done.

&gt;&gt; LayoutTests/ChangeLog:6
&gt;&gt; +        Added test cases that has position:fixed and page scale.
&gt; 
&gt; I would recommend getting rid of all mentions of fixed position in the Changelogs since this fix applies to all tiled layer types.  You can also make the layout tests independent of fixed position

done.

&gt;&gt; LayoutTests/compositing/geometry/fixed-position-composited-page-scale.html:1
&gt;&gt; +&lt;html&gt;
&gt; 
&gt; &lt;!DOCTYPE html&gt; before this please
&gt; 
&gt; please do not add new pixel results that include scrollbars since that makes the results platform-specific

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497627</commentid>
    <comment_count>31</comment_count>
      <attachid>113880</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-07 17:30:18 -0800</bug_when>
    <thetext>Comment on attachment 113880
Patch

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

Nearly there!

&gt; Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp:144
&gt; +    return IntSize(bounds().width() * contentsScale(), bounds().height() * contentsScale());

Are you sure this does the rounding we want?

&gt; LayoutTests/ChangeLog:6
&gt; +        Added test cases that has position:fixed and page scale.

since you are only adding cr-linux expectations, you need to add = MISSING expectations for windows and mac or the bots will go red when this lands.

&gt; LayoutTests/compositing/geometry/fixed-position-composited-page-scale.html:23
&gt; +      eventSender.scalePageBy(2, 0, 0);

could you add a few tests with a scale &lt; 1?

&gt; LayoutTests/platform/chromium-linux/compositing/geometry/fixed-position-composited-page-scale-expected.txt:2
&gt; +layer at (0,0) size 800x585
&gt; +  RenderView at (0,0) size 800x585

do you need the render tree dump here, or is the test just about checking the pixels? If the latter add this incantation to the test:

layoutTestController.dumpAsText(true);

so you don&apos;t need this stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499119</commentid>
    <comment_count>32</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-09 10:32:54 -0800</bug_when>
    <thetext>I found that this patch doesn&apos;t work with page scale factor less than 1.0.. :(

The problem can be illustrated by two separate cases:

1. Painting the root layer
   This path goes through RenderLayer::paintLayer. paintDirtyRect passed to this method is post-scaled and this method map the rect to a pre-scaled one at this line: http://codesearch.google.com/#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/rendering/RenderLayer.cpp&amp;type=cs&amp;l=2721.

2. Painting a non-root tiled layer rect
   Painter of the layer goes through RenderLayerBacking::paintIntoLayer. The dirty rect passed to RenderLayerBacking needs to be pre-scaled because it doesn&apos;t handle transformation. However contentRect passed to LayerTextureUpdaterBitmap::prepareToUpdate is post-scaled so only part of the layer content is painted.

The sad part is that LayerTextureUpdaterBitmap::prepareToUpdate handles both cases, but a post-scaled dirt rect works for case (1) but not (2).

I feel that the proper way is to merge RenderLayer::paintLayer and RenderLayerBacking::paintIntoLayer, it is crazy to transform dirty rect in one case but not the other.. Suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499166</commentid>
    <comment_count>33</comment_count>
    <who name="Daniel Sievers">sievers</who>
    <bug_when>2011-11-09 11:10:24 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; I found that this patch doesn&apos;t work with page scale factor less than 1.0.. :(
&gt; 

Also see my comment #20 above. Isn&apos;t it possible to simply pass the pre-scaled rect to the paint routine, since webkit doesn&apos;t know or need to care about how we scale this for composited layers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499205</commentid>
    <comment_count>34</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-09 11:45:24 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; I found that this patch doesn&apos;t work with page scale factor less than 1.0.. :(
&gt; &gt; 
&gt; 
&gt; Also see my comment #20 above. Isn&apos;t it possible to simply pass the pre-scaled rect to the paint routine, since webkit doesn&apos;t know or need to care about how we scale this for composited layers?

It may be possible but we&apos;ll need to make sure WebKit in RenderLayer::paintLayer doesn&apos;t scale the rect up otherwise there&apos;ll be over painting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500014</commentid>
    <comment_count>35</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-10 09:53:28 -0800</bug_when>
    <thetext>Minor comment: WebViewImpl has a newly added deviceScaleFactor() method, so you might want to call that from PageOverlay.

As for the sub-1.0 problem, merging the root layer/sublayer draw paths sounds like a good idea in principle, but if that proves hard for whatever reason, then it should be possible to hack the bounds sent to WebKit like Daniel says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501012</commentid>
    <comment_count>36</comment_count>
      <attachid>114753</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-11 12:52:50 -0800</bug_when>
    <thetext>Created attachment 114753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501020</commentid>
    <comment_count>37</comment_count>
      <attachid>114753</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-11 12:58:09 -0800</bug_when>
    <thetext>Comment on attachment 114753
Patch

I&apos;ve updated the code with changes included in our discussion. This patch doesn&apos;t include pixel test results yet because DumpRenderTree with page scaling is currently broken but I&apos;ve tested this patch locally. I&apos;m look to see what&apos;s wrong with DumpRenderTree now..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501021</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-11 13:01:08 -0800</bug_when>
    <thetext>Attachment 114753 did not pass style-queue:

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

Last 3072 characters of output:
atabase-interactions.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3863:  Path does not exist. fast/js/array-functions-non-arrays.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3864:  Path does not exist. fast/js/eval-cross-window.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3865:  Path does not exist. fast/js/regexp-caching.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3866:  Path does not exist. fast/js/toString-overrides.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3867:  Path does not exist. fast/js/toString-recursion.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3868:  Path does not exist. http/tests/security/xss-eval.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3870:  Path does not exist. fast/dom/javascript-url-exception-isolation.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3871:  Path does not exist. fast/borders/inline-mask-overlay-image-outset-vertical-rl.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3873:  Path does not exist. fast/dom/rtl-scroll-to-leftmost-and-resize.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3875:  Path does not exist. fast/canvas/canvas-transforms-fillRect-shadow.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3877:  Path does not exist. http/tests/inspector-enabled/dedicated-workers-list.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3878:  Path does not exist. http/tests/inspector-enabled/dedicated-workers-list.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3880:  Path does not exist. media/track/tracklist-is-reachable.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3883:  Path does not exist. compositing/geometry/fixed-position-composited-page-scale.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3884:  Path does not exist. compositing/geometry/fixed-position-iframe-composited-page-scale.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3885:  Path does not exist. compositing/geometry/fixed-position-transform-composited-page-scale.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3886:  Path does not exist. compositing/geometry/fixed-position-composited-page-scale-down.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3887:  Path does not exist. compositing/geometry/fixed-position-iframe-composited-page-scale-down.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3888:  Path does not exist. compositing/geometry/fixed-position-transform-composited-page-scale-down.html  [test/expectations] [2]
Total errors found: 2138 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502087</commentid>
    <comment_count>39</comment_count>
      <attachid>114983</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-14 10:57:47 -0800</bug_when>
    <thetext>Created attachment 114983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502090</commentid>
    <comment_count>40</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-14 10:58:39 -0800</bug_when>
    <thetext>The latest patch takes care of scale factor less than 1.0 and rounding error that creates empty gaps between tiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502092</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-14 11:00:54 -0800</bug_when>
    <thetext>Attachment 114983 did not pass style-queue:

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

Last 3072 characters of output:
/chromium/test_expectations.txt:3860:  Path does not exist. accessibility/adjacent-continuations-cause-assertion-failure.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3862:  Path does not exist. inspector/debugger/script-formatter.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3865:  Path does not exist. fast/js/mozilla/strict/15.4.5.1.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3867:  Path does not exist. fast/canvas/canvas-transforms-fillRect-shadow.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3869:  Path does not exist. media/track/tracklist-is-reachable.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3870:  Path does not exist. media/track/track-cues-cuechange.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3872:  Path does not exist. http/tests/inspector-enabled/dedicated-workers-list.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3873:  Path does not exist. http/tests/inspector-enabled/dedicated-workers-list.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3875:  Path does not exist. http/tests/security/cross-frame-access-custom.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3877:  Path does not exist. fast/loader/javascript-url-in-embed.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3879:  Path does not exist. security/crypto-random-values-types.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3881:  Path does not exist. media/track/track-webvtt-tc004-magic-header.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3883:  Path does not exist. http/tests/inspector/resource-tree/resource-tree-frame-add.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3886:  Path does not exist. compositing/geometry/fixed-position-composited-page-scale.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3887:  Path does not exist. compositing/geometry/fixed-position-iframe-composited-page-scale.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3888:  Path does not exist. compositing/geometry/fixed-position-transform-composited-page-scale.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3889:  Path does not exist. compositing/geometry/fixed-position-composited-page-scale-down.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3890:  Path does not exist. compositing/geometry/fixed-position-iframe-composited-page-scale-down.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3891:  Path does not exist. compositing/geometry/fixed-position-transform-composited-page-scale-down.html  [test/expectations] [2]
Total errors found: 2136 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502260</commentid>
    <comment_count>42</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-14 13:39:29 -0800</bug_when>
    <thetext>Please ignore the errors for path does not exist. Eric has a patch to fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502354</commentid>
    <comment_count>43</comment_count>
      <attachid>114983</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-14 15:08:05 -0800</bug_when>
    <thetext>Comment on attachment 114983
Patch

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

This seems very close - the contentScale updating seems a bit off but everything else seems quite nice.  Could you please upload the .pngs for at least one platform? That&apos;s very useful for the gardener or whoever rebaselines the tests (assuming it isn&apos;t you) to have a baseline expectation of what the test should look like so they can eyeball if it&apos;s failing horribly on the other platforms or not.

&gt; Source/WebCore/platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:63
&gt; +            int x = floor(contentRect.x() * invScale);
&gt; +            int y = floor(contentRect.y() * invScale);

doing all this math component-wise is pretty verbose and runs the risk of X/Y confusion errors that can be a pain to debug. Can you try to find the correct combination of (Int|Rect)/(Rect|Size) methods to do this?  I think it&apos;s something like:

scaledContentRect = FloatRect(contentRect).scale(invScale).enclosingIntRect();

or something along those lines (don&apos;t take my word for it, please test)

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:195
&gt; +    // Call this method first to assign contents scale to LayerChromium so the painter can apply the scale transform.
&gt; +    updateContentsScale();

this still seems weird - setting the shouldn&apos;t change the contents scale.  contentsScale() appears to be a function of appliesPageScale(), pageScaleFactor(), and deviceScaleFactor(). Can we recalculate the scale factor when those things change, and not when setting the transform? we have a deviceOrPageScaleChanged() function already that seems like a good place to update this

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:600
&gt; +        updateContentsScale();

this call also confuses me a bit - why do we need to update the contentsScale here when updating the transform hierarchy? we aren&apos;t changing the pageScale or deviceScale here

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:687
&gt; +    return 1.0f;

nit: for constants like this in WebKit we typically just say &apos;1&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502815</commentid>
    <comment_count>44</comment_count>
      <attachid>114983</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-15 04:51:34 -0800</bug_when>
    <thetext>Comment on attachment 114983
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:63
&gt;&gt; +            int y = floor(contentRect.y() * invScale);
&gt; 
&gt; doing all this math component-wise is pretty verbose and runs the risk of X/Y confusion errors that can be a pain to debug. Can you try to find the correct combination of (Int|Rect)/(Rect|Size) methods to do this?  I think it&apos;s something like:
&gt; 
&gt; scaledContentRect = FloatRect(contentRect).scale(invScale).enclosingIntRect();
&gt; 
&gt; or something along those lines (don&apos;t take my word for it, please test)

Done. Thanks for suggestions!

&gt;&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:195
&gt;&gt; +    updateContentsScale();
&gt; 
&gt; this still seems weird - setting the shouldn&apos;t change the contents scale.  contentsScale() appears to be a function of appliesPageScale(), pageScaleFactor(), and deviceScaleFactor(). Can we recalculate the scale factor when those things change, and not when setting the transform? we have a deviceOrPageScaleChanged() function already that seems like a good place to update this

Yes deviceOrPageScaleChanged() already submit the contentsScale to LayerChromium and it&apos;s a good place to do this stuff. However deviceOrPageScaleChanged() is not called when page_scale * device_scale is not 1.0 when the GraphicsLayer is created. GraphicsLayerChromium needs to call updateContentsScale() somewhere to fetch the current contents scale. I thought of doing this in the constructor, but that is not a good place because WebKit sets setAppliesPageScale() after GraphicsLayer is constructed here: http://codesearch.google.com/#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/rendering/RenderLayerBacking.cpp&amp;exact_package=chromium&amp;q=RenderLayerBacking.cpp&amp;type=cs&amp;l=124.

Since updateLayerTransform() is always called when creating a GraphicsLayer I thought it would be a OK place to read the current page scale. Otherwise we&apos;ll need to add a method to GraphicsLayer and call it from RenderLayerBacking::createPrimaryGraphicsLayer().

&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:567
&gt; +        updateContentsScale();

Remove this one too.

&gt;&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:600
&gt;&gt; +        updateContentsScale();
&gt; 
&gt; this call also confuses me a bit - why do we need to update the contentsScale here when updating the transform hierarchy? we aren&apos;t changing the pageScale or deviceScale here

Removed.

&gt;&gt; Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp:687
&gt;&gt; +    return 1.0f;
&gt; 
&gt; nit: for constants like this in WebKit we typically just say &apos;1&apos;

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502817</commentid>
    <comment_count>45</comment_count>
      <attachid>115144</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-15 04:53:57 -0800</bug_when>
    <thetext>Created attachment 115144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503085</commentid>
    <comment_count>46</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 11:17:28 -0800</bug_when>
    <thetext>This patch doesn&apos;t apply to ToT so none of the bots can run, would you mind updating it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503271</commentid>
    <comment_count>47</comment_count>
      <attachid>115242</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-15 14:22:27 -0800</bug_when>
    <thetext>Created attachment 115242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503282</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 14:27:14 -0800</bug_when>
    <thetext>Attachment 115242 did not pass style-queue:

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

ERROR: FAILURES FOR &lt;lucid, x86_64, release, cpu&gt; in LayoutTests/platform/chromium/test_expectations.txt
ERROR: Line:2735 Path does not exist. plugins/invalidate_rect.html
LayoutTests/platform/chromium/test_expectations.txt:2735:  Path does not exist. plugins/invalidate_rect.html  [test/expectations] [2]
Total errors found: 1 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503283</commentid>
    <comment_count>49</comment_count>
      <attachid>115242</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-15 14:27:41 -0800</bug_when>
    <thetext>Comment on attachment 115242
Patch

Whoops.. silly test_expectations.txt.. It&apos;s updated now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503286</commentid>
    <comment_count>50</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-11-15 14:28:51 -0800</bug_when>
    <thetext>Whoops.. I have nothing to do to plugins/invalidate_rect.html :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503295</commentid>
    <comment_count>51</comment_count>
      <attachid>115242</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 14:35:56 -0800</bug_when>
    <thetext>Comment on attachment 115242
Patch

What invalidates layers when the contentsScale changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504325</commentid>
    <comment_count>52</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-16 15:30:19 -0800</bug_when>
    <thetext>It looks like the CoreAnimation implementation pulls the page and device scales instead of relying on GraphicsLayer pushing them.  Since they use a deferred update model, on initialization WebCore has a chance to set up all state (including appliesPageScale) before the GraphicsLayer implementation tries to figure out the active page scale.  Triggering off of setTransform() is ugly and fragile (what if RenderLayerBacking reorders those two lines?) but I&apos;m not sure of what else we could do.

One possibility would be to make GraphicsLayer::setAppliesPageScale virtual and override it in GraphicsLayerChromium to recalculate the scale factors there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504329</commentid>
    <comment_count>53</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-16 15:32:32 -0800</bug_when>
    <thetext>It looks like the CoreAnimation implementation pulls the page and device scales instead of relying on GraphicsLayer pushing them.  Since they use a deferred update model, on initialization WebCore has a chance to set up all state (including appliesPageScale) before the GraphicsLayer implementation tries to figure out the active page scale.  Triggering off of setTransform() is ugly and fragile (what if RenderLayerBacking reorders those two lines?) but I&apos;m not sure of what else we could do.

One possibility would be to make GraphicsLayer::setAppliesPageScale virtual and override it in GraphicsLayerChromium to recalculate the scale factors there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504373</commentid>
    <comment_count>54</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-16 16:15:46 -0800</bug_when>
    <thetext>We&apos;re currently using deviceOrPageScaleFactorChanged() to trigger an invalidate.  It should be applied to sublayers as well.

m_appliesPageScale looks like it&apos;s a flag set only during initialization to denote the root layer -- it doesn&apos;t seem to have much to do with invalidation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504386</commentid>
    <comment_count>55</comment_count>
      <attachid>115242</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-16 16:28:17 -0800</bug_when>
    <thetext>Comment on attachment 115242
Patch

Yeah, it&apos;s not clear cut.

Anyway I think we can iterate on that point.  This patch looks good, R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504406</commentid>
    <comment_count>56</comment_count>
      <attachid>115242</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 16:59:21 -0800</bug_when>
    <thetext>Comment on attachment 115242
Patch

Rejecting attachment 115242 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:
iting/geometry/fixed-position-transform-composited-page-scale-expected.txt
patching file LayoutTests/compositing/geometry/fixed-position-transform-composited-page-scale.html
patching file LayoutTests/platform/chromium/test_expectations.txt
Hunk #1 FAILED at 3922.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/chromium/test_expectations.txt.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;James Robinson&apos;, u&apos;--f...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10487914</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505831</commentid>
    <comment_count>57</comment_count>
      <attachid>115821</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-18 08:57:32 -0800</bug_when>
    <thetext>Created attachment 115821
Fixed merge conflicts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505838</commentid>
    <comment_count>58</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-18 09:03:45 -0800</bug_when>
    <thetext>Uploaded a patch with the same code, merge conflicts resolved.

I left the author unchanged in the ChangeLogs, not sure of the protocol there.

The main change is that the change that split up LayerTextureUpdaterCanvas.cpp (http://trac.webkit.org/changeset/99813) has been reverted, so I moved the BitmapCanvasLayerTextureUpdater and SkPictureCanvasLayerTextureUpdater diffs back to that file.

Ran unit tests and new-run-webkit-tests --accelerated-drawing --threaded-compositing compositing. Alpha&apos;s new tests and a few others fail with what look like invisible sub-pixel differences. Not sure if that&apos;s the new code, or existing failures. I guess the tests need to be rebaselined? But I&apos;m not sure how to do that.

James, hopefully this is at least in a more useful state for you. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506161</commentid>
    <comment_count>59</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-18 15:57:58 -0800</bug_when>
    <thetext>(In reply to comment #58)
&gt; Uploaded a patch with the same code, merge conflicts resolved.
&gt; 
&gt; I left the author unchanged in the ChangeLogs, not sure of the protocol there.
&gt; 
&gt; The main change is that the change that split up LayerTextureUpdaterCanvas.cpp (http://trac.webkit.org/changeset/99813) has been reverted, so I moved the BitmapCanvasLayerTextureUpdater and SkPictureCanvasLayerTextureUpdater diffs back to that file.
&gt; 
&gt; Ran unit tests and new-run-webkit-tests --accelerated-drawing --threaded-compositing compositing. Alpha&apos;s new tests and a few others fail with what look like invisible sub-pixel differences. Not sure if that&apos;s the new code, or existing failures. I guess the tests need to be rebaselined? But I&apos;m not sure how to do that.

I don&apos;t know why you ran with -accelerated-drawing, we don&apos;t really support that configuration today.  The useful configuration to test is the default one.

 
&gt; James, hopefully this is at least in a more useful state for you. :)

Yes, this is helpful. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506293</commentid>
    <comment_count>60</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-18 19:05:20 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/100839</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583695</commentid>
    <comment_count>61</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-20 18:59:08 -0700</bug_when>
    <thetext>Use of ::webkit-scrollbar to hide scrollbars doesn&apos;t work in WK1, so the WK1 pixel results don&apos;t match.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>113061</attachid>
            <date>2011-10-31 09:55:36 -0700</date>
            <delta_ts>2011-10-31 09:55:36 -0700</delta_ts>
            <desc>layout test</desc>
            <filename>fixed-position-composited-transform.html</filename>
            <type>text/html</type>
            <size>369</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0PgppZiAod2luZG93LmludGVybmFscykKICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0
cnVlKTsKPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KPGRpdiBzdHls
ZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMDBweDt0b3A6NTBweDstd2Via2l0LXRyYW5zZm9y
bTpzY2FsZSgyLDIpOyI+VEVTVDwvZGl2Pgo8ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDtsZWZ0
OjIwMHB4O3RvcDo1MHB4Oy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIsMik7ei1pbmRleDoxOyI+
VEVTVDwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>113063</attachid>
            <date>2011-10-31 09:56:09 -0700</date>
            <delta_ts>2011-10-31 09:56:09 -0700</delta_ts>
            <desc>good resolution</desc>
            <filename>good.png</filename>
            <type>image/png</type>
            <size>4055</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAAKXRFWHRjaGVja3N1bQBlNzdjMjcz
OTA1ZTkyMzcxNzNmZTBiYjBiOWNjMjY2OYHjLqIAAA9pSURBVHic7dxNiFb1HsDxY2S3wN5FWqkL
odLNJC0iKIqICgykiKIh20QRQZkQoRW0CKJFFG0iomUbi+gFohYFWka5GKOgTZSS4JCGm1Dzde5i
wDvXUdP8Otern8/qzJn/eZ4/v83z9czjmTUxMTEAANA573+9AQCAs43AAgCICSwAgJjAAgCICSwA
gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA
AgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCI
CSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA
gJjAAgCICSwAgJjAAgCICSwAgJjAAgCInbuBNWtGHPGm4+Pja9asGRkZufjii2fPnj1//vx77rnn
nXfe2bFjx5dffnnE+lN/O7M68bcDgNC5G1jDMJx33nmvvfbajh07Dh06NDExMTExcfhXkz8ePHhw
69atzz///OTn8cTExPbt2x977LEjlk21b9++LVu2PPXUU9Pf7tNPP128ePHLL798ww03jI2N7d69
++uvv77ppptWr149b96822677dR3ePqYFQCchOkfe+eIYRhWrVo1/eRRx/LEE08cPrl169YTmd7d
d989dcHY2Ni//vWvYRhWrlx5xMrff/99ZGRk+gv+4x3mzAoATsq5+zEzDMOPP/44/eRRP5LHxsYO
n9y/f/+JRMP7778/dcGyZcsmL9m2bdv0xVu2bLnoooumR8M/22HOrADgpJy7fyIcHR29+uqrT3Dx
4sWLR0dHJ4/PP//8E7nkxhtvnPrj+vXrJw8uueSS6YsXLFiwYsWKaoc5swKAkzJrYso/9Dn87Zzj
j+UEl001Z86cXbt2DcPw1ltvPfroo9MXfPbZZ3fdddffvuA/eOvTxKwA4FjO3TtYM+yOO+6YPFi5
cuXHH388fcH1118/szs6c5kVAP/vBFbszz//POp/Unv11VfnzZs3DMOePXuWL1/+9NNP79mzZ+qC
uXPnnms3WswKgLOVwIp9++23Rz2/cOHCDRs2XHfddcMwTExMvP7660uWLPnoo49mdndnFrMC4Gwl
sDL79u3btGnTM888c6wFixYt2rhx4xtvvHH55ZcPw7B58+bly5fffvvtP/300wxu84xgVgCc3XzJ
/b+c7Be3j+X4l//xxx8vvPDC22+/ffDgwWEYZs+evWrVqhdffPHCCy+sdjgDzAoAjsUdrFMy9YkX
e/fu3bhx45IlS/72qrlz57755ptjY2O33HLLMAz79+9/5ZVXli5d+ssvv5z2Hf/vmBUA5w53sP7L
qT964PPPP7/zzjtPfKrvvvvuk08+uXPnzmEY5s+fv2nTpiuuuOLUdzgDzAoAjsUdrNjJPkFgdHR0
w4YNl1566TAMv/3220svvXR69nUmMisAzlYCK3bllVce9X7JrFmzxsfHj3rJNddc89xzz00er127
9jRu7gxjVgCcrQTWzPnmm2+O9av7779/8mDHjh0ztZ0zmlkB8H9NYJ1en3zyydKlSyePP/zww2Mt
u+qqqyYPFixYMBPbOiOZFQBnDYH1HwcOHDh8PPlQgKM6dOjQCb7gzp07H3/88UceeWTyx7Vr1/78
889HXfnDDz9MHtx3332nvsMZYFYAcBwC6z+2bdt21OMjbN++/fDx1E/xI+zevfvee+/duXPn6Ojo
5Jl9+/YtW7bs119/PWLlwYMHV69ePQzDokWLnn322VPf4QwwKwA4ngkmJiYmJrZt2/bggw8eHsvD
Dz88Pj4+fdnmzZunLvvggw8OHDgwdcH+/fvHx8ffe++9a6+9dhiGhx56aPL84UvmzJmzZs2a77//
/q+//tq1a9e6detuvfXWYRhGRka2bNly6jucAWYFAMfnOVjDcNynjU+dz98+lHy6devW3XzzzZPX
fvfddwsXLvzqq6+++OKL9evXb968ee/evZdddtnIyMgDDzywYsWKCy644BR3OAPMCgD+lsACAIj5
DhYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE
BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYA
QExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExg
AQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQOzfSaOmBIsJBJIAAAAA
SUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>113064</attachid>
            <date>2011-10-31 09:56:27 -0700</date>
            <delta_ts>2011-10-31 09:56:27 -0700</delta_ts>
            <desc>bad resolution</desc>
            <filename>bad.png</filename>
            <type>image/png</type>
            <size>6521</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAAKXRFWHRjaGVja3N1bQA5YjVlOTRk
YzhmMTVlN2M0ZjdkZmQ5NWYxZTg0OWExN0ZZ+YEAABkLSURBVHic7d1tbJV33cDx056ePtAWzliB
tozRjTIeMkczIFnMovMhmYkGcIvzRXW4uKgzcbIXPiy6zURN9MXcFjVz8Y0kLpoZDYiBRDQw2Qxb
2CgDZI6nRkcLpQ8HCj09p5ye+8V127s3sN3AfmXLvc/n1eH0f3p+vd7su+u6zv9UlMvlFAAAcSrf
7QEAAP6/EVgAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUA
EExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUA
EExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUA
EExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAware7QF4r9u+
fftUv0U2m21ra8tms5OfLJfL+Xx+aGjo1KlTZ86cqaioaPiPQqFw7NixdDrd1taWSqW6u7tzudzl
vukdd9wRND4AnK+iXC6/2zPwnvaRj3xkqt+io6Nj7dq1HR0dE8+Uy+Xx8fGenp5du3bt27fv0KFD
FRUVN910U3t7e3t7e19f34YNG+rq6tauXZtKpdavX9/V1XW5b7pt27bIvwEAJnn/nsGqqKi4Cu9y
Xr/29vb+9Kc/3bx58+HDh0dHR1taWlasWPHJT35y1apVe/fu/djHPjZ5/RVMOBW5vH379tra2mw2
O2PGjGw2W1tbm0qlTp061d3dnUql2traZsyYUS6XR0dHc7lcLpc7depUXV3d/PnzGxsbx8bGcrlc
T09PcrZp8jmqsbGxfD5/6tSpEydOpFKp1atXT/wJpVKpWCyOjIwMDQ2Njo6eO3euVCqVSqVcLvfm
m2+OjIwcPXp0x44ds2fPTl7V1dW1c+fOy5qwUCiEHygAmPD+DaxUKlVZWfn4449/7nOfu/baa5Oa
mWiapFSSkyjPPPPMD3/4w3K5XC6XT548+cgjjzzzzDOTl002NjbW09PzxBNPPPXUU+f9aPPmzZ2d
nblc7stf/vLvfve7tra23t7e3//+9w8//PD9998fMmHIYblQNptdtmzZsmXLbrnllubm5srKyj17
9qxfvz6VSq1du3bZsmWlUqm3t3f37t2vvfba3r17W1pa1q5du2jRoqGhoa6urk2bNiVnmyafozp9
+nRPT8+ePXu2bt06+b1KpVJSQidOnBgdHV24cOGCBQvOnj179uzZM2fOHDt27MUXXzxw4EBfX9/s
2bOveMK+vr4pOlYAkHqfB9a6devWrVv3NgsqKyuvu+6673//+0NDQz//+c9TqdSsWbO++93vTgTW
hTKZzPz585988skjR45s2rRp4vndu3ffddddhUJh3bp1TzzxRPLk9ddf/9BDD3V2dt55550Xvch1
BROGq6+vnzNnTkdHx+23397R0dHS0lJZWVlRUbFx48ZUKtXR0fHhD3+4VCr19PQ0NDRUVlb29fU1
NzcvX758xYoVQ0NDqVRqx44ddXV1HR0dE7c9lcvl4eHhnp6ebDZbLBanT58+cXLr9OnThw8fzuVy
6XR6xowZLS0tjY2NlZWVZ86c6e3tLZfLR48enTxeOp2ura293AnPnj07FccKABLv68C67777LnHl
F7/4xYl8aW5uvpSXrF27dnJgPfroo8llqW9+85vnrZw9e/aGDRuWLFmSz+dDJow1a9as66+/vqOj
4+abb85ms0m7TF5QUVGRTqevueaaZcuW5fP5N954o76+vrq6uqamZubMmTNnzqyurj7vd1ZUVNTV
1c2dO7e+vr69vb2qqiq5XT2VSh0/fnzz5s2FQuHOO++cN29eQ0ND8vJ0Ol1TUzNt2rRsNpvNZgcH
B5P1mUwmm81mMpnLmnB4eHgqjhUAJN6/gdXZ2blo0aJLXLx06dLOzs7kcVXVJR20D37wg5P/+be/
/S15MH369AsXz58//9577z3vxNgVTxjrjjvuWLhw4eLFi5ubmzOZzEXvDKuoqJg2bVpra+vSpUtv
u+22dDqdzWbT6XRdXV1dXV06nb7wJZlMJpPJNDY2zps3b/Lz+Xz+2LFjo6OjIyMjqVQqnU4nB7yq
qqq2trampqa+vn58fLy/v7+uri6546qjo6NUKl3WhNdee23M0QGAi3n/Btavf/3rS19cU1NzWetT
qVRLS8vkm6JKpVLy4Nlnn/3Sl7504fo1a9acF1hTPeEl+upXv9rQ0NDS0pLJZCor33LjtMrKykwm
09bW9ulPf7qiomLu3LlX9nbV1dVNTU1DQ0N9fX1vvvlmJpOpqamZ/NOZM2feeuutzc3NyY3z6XR6
9erV5XL5siY8c+bMlY0HAJfi/RtYV9mdd975hz/8IZVKrVu3rrm5edWqVectWLFixbsx1/9t5cqV
l7IsuQyXXL97+5Xnzp1LbmM/fvx4cnFw8ksaGxsXLVp0/PjxkZGRw4cPFwqF2bNnX3PNNfX19ZlM
ZuKsWEtLy8RLFi9eHDshALxDdnIPNjw8fNFLVI8//njyqbd8Pr9mzZqHHnrovDuumpqa3id7ko2O
jvb29u7cufMXv/jF+vXrk80UJjQ1Nd1+++0rV64sl8v/+Mc/tmzZ8uc///nw4cPDw8NjY2Pv0sgA
cHmcwQq2c+fOiz7f1tb24osv3nPPPbt37y6Xy08++eTGjRufeOKJif2f/n/L5XITH5M8c+bM8ePH
u7q6nn/++euuu+68I1BfXz9//vxMJjM8PFwsFoeGhpLPD1ZWVjY2NjY2NjY0NNTW1qbT6be5GggA
7y6BFaZYLO7fv/8b3/jGWy1ob29/+eWXn3766ccee2xoaOjo0aNr1qz5+Mc//tRTTy1duvRqjnr1
dXd3r1+/Ptk3YfIlwuuuu+68lcmFvKamppUrV950002nT58eGhrq7+/v6+urqqpqampqb29vbm6u
r68XWAC8Z/lP1DtSMUlNTc2tt966Z8+et1lfVVX1ta997Y033vjKV76SfLbuL3/5S0dHx7e//e3R
0dGrNfW7rPwfb7Vg4hN/CxcuXLp06YIFCyb2ehgeHj5y5Mg///nPf//730NDQ8Vi8SoODgCXyhms
d2RyJRSLxT179tx333379+9/+1c1NTU9/fTTDzzwwNe//vXt27ePjY39+Mc//uMf/7hp06YFCxZM
8cjvjra2tomd3JMtRru6us7bw/1CyS3tLS0tDQ0N+Xy+WCz29PTs3r27WCzeeOONCxYsWLBgwYWb
bAHAu05ghamurl65cuXjjz/+iU984lLW33LLLdu2bXv22WcffPDBwcHBAwcOfPSjH929e/fMmTOn
etSrL5vNTuzk/lZ7uF+ooqKiqqqqoaGhoaGhVCqNjY2VSqXa2tqTJ0/u27cvn883NTVdc801V+/P
AIBLI7CCXe5uC52dncuXL7/ttttOnTr1r3/96wc/+MFPfvKTKZrtPaKurq61tXXatGkLFiyYvIf7
20t2sZozZ85tt91WU1Ozbdu2oaGhZcuWXeLLAeBqcg9WsGuvvfaidxdVVFT09vZe9CWLFy/+zne+
kzx+7rnnpnC494aqqqpkA/cVK1bcfPPN6XS6p6dn3759r7/++vDwcPJ5w5dffvnw4cMDAwMTd1kl
N783NjZef/31LS0txWIxl8u5BwuA9yaBdfX8/e9/f6sfffazn00enDx58mqN856Qz+d7e3t37dr1
29/+duPGjceOHUs+b/izn/1s69atBw8ePO9LA5PzWPX19bNnz25qapq8yTsAvHe4RDi1Nm3a9Nhj
j7366qupVGrDhg133333RZdNfIH0/Pnzr95wV6RUKhUKhXw+n3z5Tz6fHxkZqa6uvvArGkulUrFY
TFZWVlaWSqXkQbIRa3JPVV9f3969e/fu3Xvw4MG5c+cWCoXkDNaRI0fOnTs3NjZWWVk5Pj6efHt0
uVweGRnp7+8vFos33HBDfX19Y2PjO5kQAKaIM1j/49y5cxOPJ7468ELj4+OX+AsHBwcfeOCB+++/
P/nnc889d/DgwYuufO2115IHn/nMZ975hFOnXC4XCoWBgYGBgYFCoVAoFPr7+/v7+wuFwnkXRpOV
g4ODg4ODxWJxfHy8WCwWCoXk6JXL5WQT0UOHDj3//PN79uxpbGxMmil5+cDAwEsvvbR169YXX3xx
//79/f39+Xw+n88nQXbixIkPfOADt99+e1NT0xVPCABTx//T/4+enp7Jj+fNm3fRZX19fROPz507
91bnRUZGRu6+++7BwcHOzs7kmWKx+KlPfWrLli033njj5JWlUunhhx9OpVLt7e3f+ta33vmEUySX
y3V3d/f09AwMDOzZsyeXy6VSqWR/9pkzZ7a2tt5www3JRwKTlb29vYODg11dXblcrrq6OllZXV2d
TqfL5XKy1+iBAwdeeeWV8fHxJUuWTA6sqqqq+vr6dDp98uTJ119/fWBgoKGhIZ1O5/P5oaGhxsbG
tra2uXPn1tbWXtmEADClBNZ/6+3tTSon8cgjj/zoRz+auHI3obu7e+KG9FQqtWnTplWrViVbhibO
nTvX39//wgsvPProowcOHPj85z8/Y8aMiZ++8cYby5Yte/DBB++5557FixeXSqVdu3Z973vf27Zt
W0dHx4YNG6ZPn/4OJ5w63d3dv/rVr1555ZXkBvPknv0//elPL7zwQnV19fLly7/whS8kO10lK199
9dVkZU9PT2Vl5W9+85stW7YklwjL5XJyTmt4ePjEiRPt7e3z5s2bHFitra2rV69ua2sbGBg4ePDg
tm3b8vl88i06y5cvX7RoUVNTU/KFOVc2IQBMKYGVSqVSF3498/r169evX5/631uJXrjsrrvuevvf
PHF9MJVKvfTSS21tbTt27PjrX//a2dl59OjRQqGQbBD1y1/+8t57732bPTMvccKplmxMVVVVley0
/jYTJh/6q6urS3YKvfD3TPx09uzZS5YsWbhw4Zw5c2pqapIDMjo6+qEPfWjOnDmHDh0aHx8fHBwc
GxvLZDINDQ2tra2tra0NDQ0XPXd46RMCwNSpcGMKlyi5AJdcd7tQNptta2ubfInwrVZeaPr06XPn
zs1ms5lM5vTp093d3ePj48kVwDNnzgwPDw8PD4+NjSX7O8yaNauxsTGTyVz4XYSXPiEATCmBBQAQ
zKcIAQCCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIA
CPZfxrrFXE+9V28AAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>113369</attachid>
            <date>2011-11-02 13:46:07 -0700</date>
            <delta_ts>2011-11-02 13:46:07 -0700</delta_ts>
            <desc>test case for page scale and position:fixed</desc>
            <filename>scale.html</filename>
            <type>text/html</type>
            <size>479</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c3R5bGU+Ci5hYnNvbHV0ZSB7CiAgcG9zaXRpb246IGFic29sdXRlOwog
IGxlZnQ6IDEwcHg7Cn0KLmZpeGVkIHsKICBwb3NpdGlvbjogZml4ZWQ7CiAgei1pbmRleDogMTsK
ICBsZWZ0OiAxMHB4Owp9Cjwvc3R5bGU+CjxzY3JpcHQ+CiAgZnVuY3Rpb24gc2NhbGUoKSB7CiAg
ICBpZiAod2luZG93LmludGVybmFscykKICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVD
b21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwogICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwg
MCwgMCk7CiAgfQo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keSBvbmxvYWQ9InNjYWxlKCk7Ij4KPGRp
diBjbGFzcz0iYWJzb2x1dGUiPlRFU1Q8L2Rpdj48YnI+CjxkaXYgY2xhc3M9ImZpeGVkIj5URVNU
PC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113374</attachid>
            <date>2011-11-02 13:57:13 -0700</date>
            <delta_ts>2011-11-03 06:25:44 -0700</delta_ts>
            <desc>work in progress 1</desc>
            <filename>webkit-fixed-resolution.patch</filename>
            <type>text/plain</type>
            <size>17444</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApp
bmRleCA4Y2RmMGQ3Li44ZGJkZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC00NjUsNCArNDY1LDMgQEAgdm9pZCBzaG93R3Jh
cGhpY3NMYXllclRyZWUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpOwogI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogI2VuZGlmIC8vIEdyYXBoaWNz
TGF5ZXJfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCA3Mjlh
OWFjLi5lYzhmNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTE5MSw5ICsxOTEsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0U2l6ZShjb25z
dCBGbG9hdFNpemUmIHNpemUpCiAKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRUcmFu
c2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKIHsKLSAgICBpZiAo
dHJhbnNmb3JtID09IG1fdHJhbnNmb3JtKQotICAgICAgICByZXR1cm47Ci0KKyAgICAvLyBDYWxs
IHRoaXMgbWV0aG9kIGZpcnN0IHRvIGFzc2lnbiBjb250ZW50cyBzY2FsZSB0byBMYXllckNocm9t
aXVtIHNvIHRoZSBwYWludGVyIGNhbiBhcHBseSB0aGUgc2NhbGUgdHJhbnNmb3JtLgorICAgIHVw
ZGF0ZUNvbnRlbnRzU2NhbGUoKTsKICAgICBHcmFwaGljc0xheWVyOjpzZXRUcmFuc2Zvcm0odHJh
bnNmb3JtKTsKICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKIH0KQEAgLTQ0Nyw2ICs0NDYsMTUgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiBj
b2xvciwgZmxvYXQgYm9yZGVyV2lkdGgKICAgICB9CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNo
cm9taXVtOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQoreworICAgIHVwZGF0ZUxh
eWVyUG9zaXRpb24oKTsKKyAgICB1cGRhdGVMYXllclNpemUoKTsKKyAgICB1cGRhdGVBbmNob3JQ
b2ludCgpOworICAgIHVwZGF0ZVRyYW5zZm9ybSgpOworICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUo
KTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUNoaWxkTGlzdCgpCiB7
CiAgICAgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+IG5ld0NoaWxkcmVuOwpAQCAtNDk3
LDcgKzUwNSw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVMYXllclBvc2l0
aW9uKCkKIAogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyU2l6ZSgpCiB7
Ci0gICAgSW50U2l6ZSBsYXllclNpemUobV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7
CisgICAgZmxvYXQgY29udGVudHNTY2FsZUZhY3RvciA9IGNvbnRlbnRzU2NhbGUoKTsKKyAgICBJ
bnRTaXplIGxheWVyU2l6ZShtX3NpemUud2lkdGgoKSAqIGNvbnRlbnRzU2NhbGVGYWN0b3IsIG1f
c2l6ZS5oZWlnaHQoKSAqIGNvbnRlbnRzU2NhbGVGYWN0b3IpOwogICAgIGlmIChtX3RyYW5zZm9y
bUxheWVyKSB7CiAgICAgICAgIG1fdHJhbnNmb3JtTGF5ZXItPnNldEJvdW5kcyhsYXllclNpemUp
OwogICAgICAgICAvLyBUaGUgYW5jaG9yIG9mIHRoZSBjb250ZW50cyBsYXllciBpcyBhbHdheXMg
YXQgMC41LCAwLjUsIHNvIHRoZSBwb3NpdGlvbiBpcyBjZW50ZXItcmVsYXRpdmUuCkBAIC01MTYs
MTUgKzUyNSwyNCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJTaXpl
KCkKIAogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUFuY2hvclBvaW50KCkKIHsK
KyAgICBmbG9hdCBjb250ZW50c1NjYWxlRmFjdG9yID0gY29udGVudHNTY2FsZSgpOwogICAgIHBy
aW1hcnlMYXllcigpLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KG1fYW5jaG9yUG9pbnQueCgp
LCBtX2FuY2hvclBvaW50LnkoKSkpOwotICAgIHByaW1hcnlMYXllcigpLT5zZXRBbmNob3JQb2lu
dFoobV9hbmNob3JQb2ludC56KCkpOworICAgIHByaW1hcnlMYXllcigpLT5zZXRBbmNob3JQb2lu
dFoobV9hbmNob3JQb2ludC56KCkgKiBjb250ZW50c1NjYWxlRmFjdG9yKTsKIAogICAgIHVwZGF0
ZUxheWVyUG9zaXRpb24oKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0
ZVRyYW5zZm9ybSgpCiB7Ci0gICAgcHJpbWFyeUxheWVyKCktPnNldFRyYW5zZm9ybShtX3RyYW5z
Zm9ybSk7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJUcmFuc2Zvcm0gPSBtX3RyYW5z
Zm9ybTsKKworICAgIC8vIElmIHRyYW5zZm9ybSBnaXZlbiB0byB0aGlzIEdyYXBoaWNzTGF5ZXIg
aGFzIHBhZ2Ugc2NhbGUgdHJhbnNmb3JtIGFscmVhZHkgYXBwbGllZCB3ZSBzaG91bGQgY291bnRl
ci1hY3QgdGhpcworICAgIC8vIHRyYW5zZm9ybSBiZWNhdXNlIGl0IGlzIGFwcGxpZXMgaW4gdGhl
IHBhaW50ZXIuCisgICAgaWYgKGFwcGxpZXNQYWdlU2NhbGUoKSkgeworICAgICAgICBsYXllclRy
YW5zZm9ybSA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkuc2NhbGUoMSAvIGNvbnRlbnRzU2NhbGUo
KSkgKiBtX3RyYW5zZm9ybTsKKyAgICB9CisKKyAgICBwcmltYXJ5TGF5ZXIoKS0+c2V0VHJhbnNm
b3JtKGxheWVyVHJhbnNmb3JtKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVw
ZGF0ZUNoaWxkcmVuVHJhbnNmb3JtKCkKQEAgLTU2MSw4ICs1NzksOSBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCgpCiAgICAgICAgIHVwZGF0ZUFu
Y2hvclBvaW50KCk7CiAgICAgICAgIHVwZGF0ZVRyYW5zZm9ybSgpOwogICAgICAgICB1cGRhdGVD
aGlsZHJlblRyYW5zZm9ybSgpOworICAgICAgICB1cGRhdGVDb250ZW50c1NjYWxlKCk7CiAKLSAg
ICAgICAgbV9sYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChtX3NpemUud2lkdGgoKSAvIDIu
MGYsIG1fc2l6ZS5oZWlnaHQoKSAvIDIuMGYpKTsKKyAgICAgICAgbV9sYXllci0+c2V0UG9zaXRp
b24oRmxvYXRQb2ludChtX3NpemUud2lkdGgoKSAqIGNvbnRlbnRzU2NhbGUoKSAvIDIuMGYsIG1f
c2l6ZS5oZWlnaHQoKSAqIGNvbnRlbnRzU2NhbGUoKSAvIDIuMGYpKTsKIAogICAgICAgICBtX2xh
eWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAuNWYsIDAuNWYpKTsKICAgICAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXggaWRlbnRpdHk7CkBAIC01NzEsNiArNTkwLDggQEAgdm9pZCBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QoKQogICAgICAgICAvLyBT
ZXQgdGhlIG9sZCBsYXllciB0byBvcGFjaXR5IG9mIDEuIEZ1cnRoZXIgZG93biB3ZSB3aWxsIHNl
dCB0aGUgb3BhY2l0eSBvbiB0aGUgdHJhbnNmb3JtIGxheWVyLgogICAgICAgICBtX2xheWVyLT5z
ZXRPcGFjaXR5KDEpOwogCisgICAgICAgIG1fbGF5ZXItPnNldENvbnRlbnRzU2NhbGUoY29udGVu
dHNTY2FsZSgpKTsKKwogICAgICAgICAvLyBNb3ZlIHRoaXMgbGF5ZXIgdG8gYmUgYSBjaGlsZCBv
ZiB0aGUgdHJhbnNmb3JtIGxheWVyLgogICAgICAgICBpZiAobV9sYXllci0+cGFyZW50KCkpCiAg
ICAgICAgICAgICBtX2xheWVyLT5wYXJlbnQoKS0+cmVwbGFjZUNoaWxkKG1fbGF5ZXIuZ2V0KCks
IG1fdHJhbnNmb3JtTGF5ZXIuZ2V0KCkpOwpAQCAtNTkxLDYgKzYxMiw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNocm9taXVtOjp1cGRhdGVMYXllclByZXNlcnZlczNEKCkKICAgICAgICAgdXBkYXRl
QW5jaG9yUG9pbnQoKTsKICAgICAgICAgdXBkYXRlVHJhbnNmb3JtKCk7CiAgICAgICAgIHVwZGF0
ZUNoaWxkcmVuVHJhbnNmb3JtKCk7CisgICAgICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsKIAog
ICAgICAgICB1cGRhdGVDaGlsZExpc3QoKTsKICAgICB9CkBAIC02MzQsNiArNjU2LDE2IEBAIHZv
aWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50c1JlY3QoKQogICAgIG1fY29u
dGVudHNMYXllci0+c2V0Qm91bmRzKEludFNpemUobV9jb250ZW50c1JlY3Qud2lkdGgoKSwgbV9j
b250ZW50c1JlY3QuaGVpZ2h0KCkpKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06
OnVwZGF0ZUNvbnRlbnRzU2NhbGUoKQoreworICAgIGlmICghYXBwbGllc1BhZ2VTY2FsZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyLT5zZXRDb250ZW50c1NjYWxlKGNvbnRlbnRz
U2NhbGUoKSk7CisgICAgaWYgKG1fZHJhd3NDb250ZW50KQorICAgICAgICBtX2xheWVyLT5zZXRO
ZWVkc0Rpc3BsYXkoKTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldHVwQ29u
dGVudHNMYXllcihMYXllckNocm9taXVtKiBjb250ZW50c0xheWVyKQogewogICAgIGlmIChjb250
ZW50c0xheWVyID09IG1fY29udGVudHNMYXllcikKQEAgLTY2NCw2ICs2OTYsMTMgQEAgdm9pZCBH
cmFwaGljc0xheWVyQ2hyb21pdW06OnNldHVwQ29udGVudHNMYXllcihMYXllckNocm9taXVtKiBj
b250ZW50c0xheWVyKQogICAgIHVwZGF0ZU5hbWVzKCk7CiB9CiAKK2Zsb2F0IEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6Y29udGVudHNTY2FsZSgpIGNvbnN0Cit7CisgICAgaWYgKGFwcGxpZXNQYWdl
U2NhbGUoKSkKKyAgICAgICAgcmV0dXJuIHBhZ2VTY2FsZUZhY3RvcigpICogZGV2aWNlU2NhbGVG
YWN0b3IoKTsKKyAgICByZXR1cm4gMS4wZjsKK30KKwogLy8gVGhpcyBmdW5jdGlvbiBzaW1wbHkg
bWltaWNzIHRoZSBvcGVyYXRpb24gb2YgR3JhcGhpY3NMYXllckNBCiB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6dXBkYXRlT3BhY2l0eU9uTGF5ZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xh
eWVyQ2hyb21pdW0uaAppbmRleCA3MTkwZTUwLi5iMDVkMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaApAQCAtOTQsNiArOTQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGVidWdCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCk7Cisg
ICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogCiAgICAg
Ly8gVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgaW1wbGVtZW50IHRoZSBDQ0xheWVyRGVsZWdhdGUg
aW50ZXJmYWNlLgogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKQEAgLTEy
NCw5ICsxMjUsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsK
ICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzVmlkZW8oKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRz
UmVjdCgpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHNTY2FsZSgpOwogCiAgICAgdm9pZCBzZXR1
cENvbnRlbnRzTGF5ZXIoTGF5ZXJDaHJvbWl1bSopOwogICAgIExheWVyQ2hyb21pdW0qIGNvbnRl
bnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0KKyAgICBm
bG9hdCBjb250ZW50c1NjYWxlKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgbV9uYW1lQmFzZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1h
Z2VMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMzYzMzYyOS4uOTVkN2M2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VM
YXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRS
R0JBIDogTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0QkdSQTsKICAgICB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRl
bnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IC8qIGJvcmRlclRleGVscyAqLykK
KyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRS
ZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IC8qIGJvcmRlclRleGVscyAqLywgZmxv
YXQgY29udGVudHNTY2FsZSkKICAgICB7CiAgICAgICAgIG1fdGV4U3ViSW1hZ2Uuc2V0U3ViSW1h
Z2VTaXplKHRpbGVTaXplKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDZhNmEw
ZTcuLjI2NjA5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC03Miw2ICs3Miw3IEBAIExh
eWVyQ2hyb21pdW06OkxheWVyQ2hyb21pdW0oQ0NMYXllckRlbGVnYXRlKiBkZWxlZ2F0ZSkKICAg
ICAsIG1fcmVwbGljYUxheWVyKDApCiAgICAgLCBtX2RyYXdPcGFjaXR5KDApCiAgICAgLCBtX3Rh
cmdldFJlbmRlclN1cmZhY2UoMCkKKyAgICAsIG1fY29udGVudHNTY2FsZSgxLjApCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uaAppbmRleCBjN2FlY2JlLi44ZTMzMzAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oCkBAIC0xOTMsNiArMTkzLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2NyZWVuU3BhY2VU
cmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkgeyBtX3NjcmVlblNw
YWNlVHJhbnNmb3JtID0gbWF0cml4OyB9CiAgICAgY29uc3QgSW50UmVjdCYgZHJhd2FibGVDb250
ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd2FibGVDb250ZW50UmVjdDsgfQogICAgIHZv
aWQgc2V0RHJhd2FibGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KSB7IG1fZHJhd2Fi
bGVDb250ZW50UmVjdCA9IHJlY3Q7IH0KKyAgICBmbG9hdCBjb250ZW50c1NjYWxlKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZW50c1NjYWxlOyB9CisgICAgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZs
b2F0IGNvbnRlbnRzU2NhbGUpIHsgbV9jb250ZW50c1NjYWxlID0gY29udGVudHNTY2FsZTsgfQog
CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSBvZiB0aGUgbGF5ZXIncyBkZXNjZW5kYW50cyBo
YXMgY29udGVudCB0byBkcmF3LgogICAgIGJvb2wgZGVzY2VuZGFudERyYXdzQ29udGVudCgpOwpA
QCAtMjgxLDYgKzI4Myw3IEBAIHByaXZhdGU6CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9k
cmF3VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fc2NyZWVuU3BhY2VUcmFu
c2Zvcm07CiAgICAgSW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CisgICAgZmxvYXQgbV9j
b250ZW50c1NjYWxlOwogCiAgICAgU3RyaW5nIG1fbmFtZTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1
cmVVcGRhdGVyLmgKaW5kZXggM2Q4NTk3ZS4uODVlMTM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVy
ZVVwZGF0ZXIuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBmb3JtYXQg
c3BlY2lmaWVzIHRoZSBjb21wb25lbnQgb3JkZXIgaW4gdGhlIHNhbXBsZWQgdGV4ZWwuCiAgICAg
Ly8gSWYgdGhlIGZvcm1hdCBpcyBUZXhlbEZvcm1hdEJHUkEsIHZlYzQueCBpcyBibHVlIGFuZCB2
ZWM0LnogaXMgcmVkLgogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhl
bEZvcm1hdChHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBy
ZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYg
dGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFy
ZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxl
U2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVUZXh0dXJlUmVjdChHcmFwaGljc0NvbnRleHQzRCosIFRleHR1cmVB
bGxvY2F0b3IqLCBNYW5hZ2VkVGV4dHVyZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNv
bnN0IEludFJlY3QmIGRlc3RSZWN0KSA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyQ2FudmFz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4
dHVyZVVwZGF0ZXJDYW52YXMuY3BwCmluZGV4IGFjYjJjZDMuLmViNTRhNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVw
ZGF0ZXJDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAg
TGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0IExheWVyVGV4dHVyZVVwZGF0
ZXJCaXRtYXA6OnNhbXBsZWRUZXhlbEYKICAgICAgICAgICAgIExheWVyVGV4dHVyZVVwZGF0ZXI6
OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkEgOiBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4
ZWxGb3JtYXRCR1JBOwogfQogCi12b2lkIExheWVyVGV4dHVyZVVwZGF0ZXJCaXRtYXA6OnByZXBh
cmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGls
ZVNpemUsIGludCBib3JkZXJUZXhlbHMpCit2b2lkIExheWVyVGV4dHVyZVVwZGF0ZXJCaXRtYXA6
OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6
ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2NhbGUpCiB7CiAg
ICAgbV90ZXhTdWJJbWFnZS5zZXRTdWJJbWFnZVNpemUodGlsZVNpemUpOwogCkBAIC0xNTAsNyAr
MTUwLDEwIEBAIHZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlckJpdG1hcDo6cHJlcGFyZVRvVXBkYXRl
KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zCiAgICAgUGxhdGZvcm1DYW52YXM6OlBh
aW50ZXI6OlRleHRPcHRpb24gdGV4dE9wdGlvbiA9CiAgICAgICAgIGJvcmRlclRleGVscyA/IFBs
YXRmb3JtQ2FudmFzOjpQYWludGVyOjpHcmF5c2NhbGVUZXh0IDogUGxhdGZvcm1DYW52YXM6OlBh
aW50ZXI6OlN1YnBpeGVsVGV4dDsKICAgICBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlciBjYW52YXNQ
YWludGVyKCZtX2NhbnZhcywgdGV4dE9wdGlvbik7CisgICAgY2FudmFzUGFpbnRlci5jb250ZXh0
KCktPnNhdmUoKTsKKyAgICBjYW52YXNQYWludGVyLmNvbnRleHQoKS0+c2NhbGUoRmxvYXRTaXpl
KGNvbnRlbnRzU2NhbGUsIGNvbnRlbnRzU2NhbGUpKTsKICAgICBwYWludENvbnRlbnRzKCpjYW52
YXNQYWludGVyLmNvbnRleHQoKSwgY29udGVudFJlY3QpOworICAgIGNhbnZhc1BhaW50ZXIuY29u
dGV4dCgpLT5yZXN0b3JlKCk7CiB9CiAKIHZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlckJpdG1hcDo6
dXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFRleHR1cmVBbGxv
Y2F0b3IqIGFsbG9jYXRvciwgTWFuYWdlZFRleHR1cmUqIHRleHR1cmUsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KQpAQCAtMTgyLDcgKzE4NSw3IEBA
IExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdCBMYXllclRleHR1cmVVcGRh
dGVyU2tQaWN0dXJlOjpzYW1wbGVkVGV4CiAgICAgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6
OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkE7CiB9CiAKLXZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlclNr
UGljdHVyZTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25z
dCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscykKK3ZvaWQgTGF5ZXJUZXh0dXJl
VXBkYXRlclNrUGljdHVyZTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRS
ZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxvYXQgY29u
dGVudHNTY2FsZSkKIHsKICAgICBTa0NhbnZhcyogY2FudmFzID0gbV9waWN0dXJlLmJlZ2luUmVj
b3JkaW5nKGNvbnRlbnRSZWN0LndpZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdodCgpKTsKICAgICBQ
bGF0Zm9ybUNvbnRleHRTa2lhIHBsYXRmb3JtQ29udGV4dChjYW52YXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBk
YXRlckNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5oCmluZGV4IGZmYzcxYzYuLjM3ODMwNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4
dHVyZVVwZGF0ZXJDYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyQ2FudmFzLmgKQEAgLTcwLDcgKzcwLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIHsgcmV0dXJu
IExheWVyVGV4dHVyZVVwZGF0ZXI6OkJvdHRvbVVwT3JpZW50YXRpb247IH0KICAgICB2aXJ0dWFs
IFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZv
cm1hdCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBj
b250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpOwor
ICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJl
Y3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250
ZW50c1NjYWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3ND
b250ZXh0M0QqLCBUZXh0dXJlQWxsb2NhdG9yKiwgTWFuYWdlZFRleHR1cmUqLCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CiAKIHByaXZhdGU6CkBA
IC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgT3JpZW50YXRpb24gb3JpZW50
YXRpb24oKSB7IHJldHVybiBMYXllclRleHR1cmVVcGRhdGVyOjpUb3BEb3duT3JpZW50YXRpb247
IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0Mz
RGVudW0gdGV4dHVyZUZvcm1hdCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShj
b25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBi
b3JkZXJUZXhlbHMpOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50
UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4
ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dHVy
ZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxsb2NhdG9yKiwgTWFuYWdlZFRleHR1
cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAppbmRleCBmY2M0NmQ5
Li4yNTU1ZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTM3Myw3ICsz
NzMsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IElu
dFJlY3QmIGNvbnRlbnRSZWN0KQogICAgIC8vIEhvd2V2ZXIsIHdlIGNhbid0IGZyZWUgdGhlIG1l
bW9yeSBiYWNraW5nIHRoZSBHcmFwaGljc0NvbnRleHQgdW50aWwgdGhlIHBhaW50IGZpbmlzaGVz
LAogICAgIC8vIHNvIHdlIGdyYWIgYSBsb2NhbCByZWZlcmVuY2UgaGVyZSB0byBob2xkIHRoZSB1
cGRhdGVyIGFsaXZlIHVudGlsIHRoZSBwYWludCBjb21wbGV0ZXMuCiAgICAgUmVmUHRyPExheWVy
VGV4dHVyZVVwZGF0ZXI+IHByb3RlY3Rvcih0ZXh0dXJlVXBkYXRlcigpKTsKLSAgICB0ZXh0dXJl
VXBkYXRlcigpLT5wcmVwYXJlVG9VcGRhdGUobV9wYWludFJlY3QsIG1fdGlsZXItPnRpbGVTaXpl
KCksIG1fdGlsZXItPmhhc0JvcmRlclRleGVscygpKTsKKyAgICB0ZXh0dXJlVXBkYXRlcigpLT5w
cmVwYXJlVG9VcGRhdGUobV9wYWludFJlY3QsIG1fdGlsZXItPnRpbGVTaXplKCksIG1fdGlsZXIt
Pmhhc0JvcmRlclRleGVscygpLCBjb250ZW50c1NjYWxlKCkpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBmMjllNmRjLi5jYzQyYWMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTM4NDMsMTAgKzM4NDMs
MTIgQEAgYm9vbCBSZW5kZXJMYXllcjo6cGFpbnRzV2l0aFRyYW5zZm9ybShQYWludEJlaGF2aW9y
IHBhaW50QmVoYXZpb3IpIGNvbnN0CiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGJvb2wgcGFpbnRzVG9XaW5kb3cgPSAhaXNDb21wb3NpdGVkKCkgfHwgYmFja2luZygp
LT5wYWludGluZ0dvZXNUb1dpbmRvdygpOworICAgIGJvb2wgcGFpbnRzRm9yRml4ZWRQb3NpdGlv
bkxheWVyID0gcmVuZGVyZXIoKS0+aXNQb3NpdGlvbmVkKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUo
KS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOwogI2Vsc2UKICAgICBib29sIHBhaW50c1Rv
V2luZG93ID0gdHJ1ZTsKKyAgICBib29sIHBhaW50c0ZvckZpeGVkUG9zaXRpb25MYXllciA9IGZh
bHNlOwogI2VuZGlmICAgIAotICAgIHJldHVybiB0cmFuc2Zvcm0oKSAmJiAoKHBhaW50QmVoYXZp
b3IgJiBQYWludEJlaGF2aW9yRmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKSB8fCBwYWludHNUb1dp
bmRvdyk7CisgICAgcmV0dXJuIHRyYW5zZm9ybSgpICYmICgocGFpbnRCZWhhdmlvciAmIFBhaW50
QmVoYXZpb3JGbGF0dGVuQ29tcG9zaXRpbmdMYXllcnMpIHx8IHBhaW50c1RvV2luZG93IHx8IHBh
aW50c0ZvckZpeGVkUG9zaXRpb25MYXllcik7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldFBh
cmVudChSZW5kZXJMYXllciogcGFyZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBmNzdjMWNlLi42ZGMwZWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTE2LDEz
ICsxMTYsMjQgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGlj
c0xheWVyKCkKICAgICBsYXllck5hbWUgPSBuYW1lRm9yTGF5ZXIoKTsKICNlbmRpZgogICAgIG1f
Z3JhcGhpY3NMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIobGF5ZXJOYW1lKTsKLSAgICBpZiAo
cmVuZGVyZXIoKS0+aXNSZW5kZXJWaWV3KCkpIHsKLSAgICAgICAgRnJhbWUqIGZyYW1lID0gdG9S
ZW5kZXJWaWV3KHJlbmRlcmVyKCkpLT5mcmFtZVZpZXcoKS0+ZnJhbWUoKTsKLSAgICAgICAgUGFn
ZSogcGFnZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IDA7Ci0gICAgICAgIGlmIChwYWdlICYm
IGZyYW1lICYmIHBhZ2UtPm1haW5GcmFtZSgpID09IGZyYW1lKQotICAgICAgICAgICAgbV9ncmFw
aGljc0xheWVyLT5zZXRBcHBsaWVzUGFnZVNjYWxlKCk7Ci0gICAgfQotICAgIAorCisgICAgLy8g
SSBjb21tZW50ZWQgb3V0IHRoZSBmb2xsb3dpbmcgY29kZSBiZWNhdXNlIGl0IGRvZXNuJ3Qgc2Vl
bSByaWdodCB0byBtZS4KKyAgICAvLyBHcmFwaGljc0xheWVyIGZvciByZW5kZXIgdmlldyBhY3R1
YWxseSBkb2Vzbid0IGdldCBhIHNjYWxlIHRyYW5zZm9ybWF0aW9uLgorICAgIC8vIEl0IHNlZW1z
IHN0cmFuZ2UgdG8gbWUgdGhhdCBpdCBoYXMgdGhlIGFwcGxpZXNQYWdlU2NhbGUgZmxhZyBzZXQu
IFdoYXQgZG9lcyBpdCBhY3R1YWxseSBtZWFuPworCisgICAgLy8gaWYgKHJlbmRlcmVyKCktPmlz
UmVuZGVyVmlldygpKSB7CisgICAgLy8gICAgIEZyYW1lKiBmcmFtZSA9IHRvUmVuZGVyVmlldyhy
ZW5kZXJlcigpKS0+ZnJhbWVWaWV3KCktPmZyYW1lKCk7CisgICAgLy8gICAgIFBhZ2UqIHBhZ2Ug
PSBmcmFtZSA/IGZyYW1lLT5wYWdlKCkgOiAwOworICAgIC8vICAgICBpZiAocGFnZSAmJiBmcmFt
ZSAmJiBwYWdlLT5tYWluRnJhbWUoKSA9PSBmcmFtZSkKKyAgICAvLyAgICAgICAgIG1fZ3JhcGhp
Y3NMYXllci0+c2V0QXBwbGllc1BhZ2VTY2FsZSgpOworICAgIC8vIH0KKworICAgIC8vIEkgdGhv
dWdodCBhcHBsaWVzUGFnZVNjYWxlKCkgbWVhbnMgdHJhbnNmb3JtYXRpb24gcGFzc2VkIHRvIHRo
ZSBHcmFwaGljc0xheWVyIGhhcyBwYWdlIHNjYWxlIHRyYW5zZm9ybQorICAgIC8vIGFwcGxpZWQg
dG8gaXQuIFNldCB0aGlzIGZsYWcgdG8gYSBsYXllciB0aGF0IGNvcnJlc3BvbmRzIHRvIGEgcG9z
aXRpb246Zml4ZWQgcmVuZGVyZXIgc28gdGhhdAorICAgIC8vIGluIEdyYXBoaWNzTGF5ZXJDaHJv
bWl1bSB3ZSBjYW4gY291bnRlci1hY3QgdGhlIHNjYWxlIHRyYW5zZm9ybS4KKyAgICBpZiAocmVu
ZGVyZXIoKS0+aXNQb3NpdGlvbmVkKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+cG9zaXRpb24o
KSA9PSBGaXhlZFBvc2l0aW9uKQorICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldEFwcGxpZXNQ
YWdlU2NhbGUoKTsKKwogICAgIHVwZGF0ZUxheWVyT3BhY2l0eShyZW5kZXJlcigpLT5zdHlsZSgp
KTsKICAgICB1cGRhdGVMYXllclRyYW5zZm9ybShyZW5kZXJlcigpLT5zdHlsZSgpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcAppbmRleCBmNGEyN2ZiLi44
OGUyMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3Zlcmxh
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCkBA
IC03MCw2ICs3MCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fcGFnZU92ZXJsYXlDbGllbnQtPnBh
aW50UGFnZU92ZXJsYXkoY29udGV4dCk7CiAgICAgfQogCisgICAgdmlydHVhbCBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV93ZWJWaWV3SW1wbC0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgfQorCiAgICAg
dmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0
dXJuIG1fd2ViVmlld0ltcGwtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113474</attachid>
            <date>2011-11-03 06:25:55 -0700</date>
            <delta_ts>2011-11-03 07:03:07 -0700</delta_ts>
            <desc>ignore this patch</desc>
            <filename>bug-71225-20111103132553.patch</filename>
            <type>text/plain</type>
            <size>5599</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg4NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NjkxN2RkNDUwMjY2OTk4
MDdlMjBhZWZhNjU0MmI4ZDA4NDM4M2U2Li4yNTkyNTNjZTVlNzNmNmFkNzc0OGYwODIyOGI4YzE1
ODI3NDRlODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMTEtMDMgIEFscGhh
IExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBTZXQgZmxhZ3MgdG8gR3JhcGhp
Y3NMYXllciB3aGVuIGl0IGlzIGEgcG9zaXRpb246Zml4ZWQgbGF5ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjI1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gdGVzdGFibGUgYmVoYXZpb3IgY2hh
bmdlcy4gVGhpcyBwYXRjaCBqdXN0IHNldHMgZmxhZ3MgdG8gR3JhcGhpY3NMYXllciBzdWNoIHRo
YXQgcGxhdGZvcm0gcG9ydCBjYW4gaW1wbGVtZW50LgorCisgICAgICAgIFRoaXMgcGF0Y2ggc2V0
cyBmbGFncyBmb3IgdGhlIGZvbGxvd2luZyB0d28gdHlwZXMgb2YgbGF5ZXJzOgorICAgICAgICAx
LiBMYXllciB0aGF0IGNvcnJlc3BvbmRzIGEgcmVuZGVyIHZpZXcuCisgICAgICAgIDIuIExheWVy
IHRoYXQgaGFzIGEgcG9zaXRpb246Zml4ZWQgcmVuZGVyZXIuCisKKyAgICAgICAgVGhlc2UgdHdv
IGZsYWdzIGFsbG93IGEgcG9zaXRpb246Zml4ZWQgcmVuZGVyZXIgdG8gYmUgZml4ZWQgdG8gdGhl
IHJlbmRlciB2aWV3IGxheWVyLgorICAgICAgICBQbGF0Zm9ybSBwb3J0IGNhbiBpbXBsZW1lbnQg
c2Nyb2xsaW5nIG9mIEdyYXBoaWNzTGF5ZXJzIGFuZCBwb3NpdGlvbjpmaXhlZCBsYXllciB3aWxs
IGJlIHBvc2l0aW9uZWQgcHJvcGVybHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkdyYXBo
aWNzTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDog
QWRkIG1fY29udGFpbmVyTGF5ZXIgYW5kIG1fZml4ZWRUb0NvbnRhaW5lckxheWVyVmlzaWJsZVJl
Y3QuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVy
KToKKyAgICAgICAgU2V0IG1fY29udGFpbmVyTGF5ZXIgaWYgdGhpcyBsYXllciBjb3JyZXNwb25k
cyB0byBhIHJlbmRlciB2aWV3LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkpOgorICAgICAgICBTZXQgbV9maXhlZFRvQ29u
dGFpbmVyTGF5ZXJWaXNpYmxlUmVjdCBpZiB0aGlzIGxheWVyIGhhcyBhIHBvc2l0aW9uOmZpeGVk
IHJlbmRlcmVyLgorCiAyMDExLTEwLTMxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIGxvY2FsaXphdGlvbiBzdXBwb3J0
IGludG8gVUlVdGlsLmpzLCByZWR1Y2UgZXh0ZXJucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMjkxMTczZGU3YTQyY2Nj
YjlkMjIwNTZmNzRkMTVkODFiNjNkMTQxMi4uOTk4MDVlNzg0N2NhY2I3NWFmNTU0NjgzOTUzOTcy
NjJkMGQyOWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKQEAgLTgxLDYgKzgxLDggQEAgR3JhcGhpY3NMYXllcjo6R3JhcGhp
Y3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2FjY2VsZXJhdGVz
RHJhd2luZyhmYWxzZSkKICAgICAsIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQoZmFsc2UpCiAg
ICAgLCBtX2FwcGxpZXNQYWdlU2NhbGUoZmFsc2UpCisgICAgLCBtX2NvbnRhaW5lckxheWVyKGZh
bHNlKQorICAgICwgbV9maXhlZFRvQ29udGFpbmVyTGF5ZXJWaXNpYmxlUmVjdChmYWxzZSkKICAg
ICAsIG1fcGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRBbGwpCiAgICAgLCBtX2NvbnRl
bnRzT3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERvd24pCiAgICAgLCBtX3Bh
cmVudCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllci5oCmluZGV4IDhjZGYwZDdmYzE4YTFkNzAxMWRkMmNlZmMyYjZiOTQyNGMyNjc5NmMuLjBk
ZGQyZWQyMzA5NmY3MDJhNTExYzAyODg0ZDExYTIxYmZlYTRlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTM1OSw2ICszNTks
MTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXBwbGllc1BhZ2VTY2FsZShib29sIGFwcGxpZXNT
Y2FsZSA9IHRydWUpIHsgbV9hcHBsaWVzUGFnZVNjYWxlID0gYXBwbGllc1NjYWxlOyB9CiAgICAg
Ym9vbCBhcHBsaWVzUGFnZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWVzUGFnZVNjYWxl
OyB9CiAKKyAgICBib29sIGNvbnRhaW5lckxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWlu
ZXJMYXllcjsgfQorICAgIHZvaWQgc2V0Q29udGFpbmVyTGF5ZXIoYm9vbCBjb250YWluZXJMYXll
ciA9IHRydWUpIHsgbV9jb250YWluZXJMYXllciA9IGNvbnRhaW5lckxheWVyOyB9CisKKyAgICBi
b29sIGZpeGVkVG9Db250YWluZXJMYXllclZpc2libGVSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9m
aXhlZFRvQ29udGFpbmVyTGF5ZXJWaXNpYmxlUmVjdDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRG
aXhlZFRvQ29udGFpbmVyTGF5ZXJWaXNpYmxlUmVjdChib29sIGIpIHsgbV9maXhlZFRvQ29udGFp
bmVyTGF5ZXJWaXNpYmxlUmVjdCA9IGI7IH0KKwogICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3Rvcigp
IGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPnBhZ2VTY2FsZUZhY3RvcigpIDog
MTsgfQogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9jbGll
bnQgPyBtX2NsaWVudC0+ZGV2aWNlU2NhbGVGYWN0b3IoKSA6IDE7IH0KIApAQCAtNDMxLDYgKzQz
Nyw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fYWNjZWxlcmF0ZXNEcmF3aW5nIDogMTsKICAg
ICBib29sIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQgOiAxOwogICAgIGJvb2wgbV9hcHBsaWVz
UGFnZVNjYWxlIDogMTsgLy8gU2V0IGZvciB0aGUgbGF5ZXIgd2hpY2ggaGFzIHRoZSBwYWdlIHNj
YWxlIGFwcGxpZWQgdG8gaXQuCisgICAgYm9vbCBtX2NvbnRhaW5lckxheWVyIDogMTsgLy8gU2V0
IGZvciB0aGUgbGF5ZXIgdGhhdCBvdGhlciBsYXllcnMgYXJlIGZpeGVkIHRvLgorICAgIGJvb2wg
bV9maXhlZFRvQ29udGFpbmVyTGF5ZXJWaXNpYmxlUmVjdCA6IDE7IC8vIFNldCBmb3IgdGhlIGxh
eWVyIHRoYXQgaGFzIHBvc2l0aW9uIGZpeGVkIHRvIHRoZSBjb250YWluZXIgbGF5ZXIncyB2aXNp
YmxlIHJlY3QuCiAKICAgICBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBtX3BhaW50aW5nUGhh
c2U7CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG1fY29udGVudHNPcmll
bnRhdGlvbjsgLy8gYWZmZWN0cyBvcmllbnRhdGlvbiBvZiBsYXllciBjb250ZW50cwpAQCAtNDY1
LDQgKzQ3MywzIEBAIHZvaWQgc2hvd0dyYXBoaWNzTGF5ZXJUcmVlKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqIGxheWVyKTsKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAKICNlbmRpZiAvLyBHcmFwaGljc0xheWVyX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBmNzdjMWNlNGIxYzQxNjc3YzM3
ZDM5OGI5ZDBkNzk0ODhjNmIxNTAwLi5hNzY3M2UwMDAwMTNmYzhkZGVmYTBlNzY4N2Q3NjkxMDFh
Y2MwMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcApAQCAtMTE5LDggKzExOSwxMCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6Y3Jl
YXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKQogICAgIGlmIChyZW5kZXJlcigpLT5pc1JlbmRlclZp
ZXcoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0b1JlbmRlclZpZXcocmVuZGVyZXIoKSkt
PmZyYW1lVmlldygpLT5mcmFtZSgpOwogICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFt
ZS0+cGFnZSgpIDogMDsKLSAgICAgICAgaWYgKHBhZ2UgJiYgZnJhbWUgJiYgcGFnZS0+bWFpbkZy
YW1lKCkgPT0gZnJhbWUpCisgICAgICAgIGlmIChwYWdlICYmIGZyYW1lICYmIHBhZ2UtPm1haW5G
cmFtZSgpID09IGZyYW1lKSB7CiAgICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldEFwcGxp
ZXNQYWdlU2NhbGUoKTsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGFpbmVy
TGF5ZXIoKTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICB1cGRhdGVMYXllck9wYWNpdHko
cmVuZGVyZXIoKS0+c3R5bGUoKSk7CkBAIC0zNjYsNiArMzY4LDcgQEAgdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgUmVuZGVyU3R5bGUq
IHN0eWxlID0gcmVuZGVyZXIoKS0+c3R5bGUoKTsKICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldFBy
ZXNlcnZlczNEKHN0eWxlLT50cmFuc2Zvcm1TdHlsZTNEKCkgPT0gVHJhbnNmb3JtU3R5bGUzRFBy
ZXNlcnZlM0QgJiYgIXJlbmRlcmVyKCktPmhhc1JlZmxlY3Rpb24oKSk7CiAgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRCYWNrZmFjZVZpc2liaWxpdHkoc3R5bGUtPmJhY2tmYWNlVmlzaWJpbGl0eSgp
ID09IEJhY2tmYWNlVmlzaWJpbGl0eVZpc2libGUpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0
Rml4ZWRUb0NvbnRhaW5lckxheWVyVmlzaWJsZVJlY3QocmVuZGVyZXIoKS0+aXNQb3NpdGlvbmVk
KCkgJiYgc3R5bGUtPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbik7CiAKICAgICBSZW5kZXJM
YXllciogY29tcEFuY2VzdG9yID0gbV9vd25pbmdMYXllci0+YW5jZXN0b3JDb21wb3NpdGluZ0xh
eWVyKCk7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113499</attachid>
            <date>2011-11-03 08:51:00 -0700</date>
            <delta_ts>2011-11-03 10:01:12 -0700</delta_ts>
            <desc>work in progress 2</desc>
            <filename>webkit-fixed-resolution.patch</filename>
            <type>text/plain</type>
            <size>13451</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDcyOWE5YWMuLmFmODlj
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApAQCAtMTkxLDYgKzE5
MSw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRTaXplKGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSkKIAogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldFRyYW5zZm9ybShjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKQogeworICAgIC8vIENhbGwgdGhpcyBt
ZXRob2QgZmlyc3QgdG8gYXNzaWduIGNvbnRlbnRzIHNjYWxlIHRvIExheWVyQ2hyb21pdW0gc28g
dGhlIHBhaW50ZXIgY2FuIGFwcGx5IHRoZSBzY2FsZSB0cmFuc2Zvcm0uCisgICAgdXBkYXRlQ29u
dGVudHNTY2FsZSgpOworCiAgICAgaWYgKHRyYW5zZm9ybSA9PSBtX3RyYW5zZm9ybSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC00NDcsNiArNDUwLDExIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9t
aXVtOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IGJvcmRlcldpZHRo
CiAgICAgfQogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6ZGV2aWNlT3JQYWdlU2Nh
bGVGYWN0b3JDaGFuZ2VkKCkKK3sKKyAgICB1cGRhdGVDb250ZW50c1NjYWxlKCk7Cit9CisKIHZv
aWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVDaGlsZExpc3QoKQogewogICAgIFZlY3Rv
cjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiBuZXdDaGlsZHJlbjsKQEAgLTU2MSw2ICs1NjksNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCgpCiAg
ICAgICAgIHVwZGF0ZUFuY2hvclBvaW50KCk7CiAgICAgICAgIHVwZGF0ZVRyYW5zZm9ybSgpOwog
ICAgICAgICB1cGRhdGVDaGlsZHJlblRyYW5zZm9ybSgpOworICAgICAgICB1cGRhdGVDb250ZW50
c1NjYWxlKCk7CiAKICAgICAgICAgbV9sYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChtX3Np
emUud2lkdGgoKSAvIDIuMGYsIG1fc2l6ZS5oZWlnaHQoKSAvIDIuMGYpKTsKIApAQCAtNTcxLDYg
KzU4MCw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVMYXllclByZXNlcnZl
czNEKCkKICAgICAgICAgLy8gU2V0IHRoZSBvbGQgbGF5ZXIgdG8gb3BhY2l0eSBvZiAxLiBGdXJ0
aGVyIGRvd24gd2Ugd2lsbCBzZXQgdGhlIG9wYWNpdHkgb24gdGhlIHRyYW5zZm9ybSBsYXllci4K
ICAgICAgICAgbV9sYXllci0+c2V0T3BhY2l0eSgxKTsKIAorICAgICAgICBtX2xheWVyLT5zZXRD
b250ZW50c1NjYWxlKGNvbnRlbnRzU2NhbGUoKSk7CisKICAgICAgICAgLy8gTW92ZSB0aGlzIGxh
eWVyIHRvIGJlIGEgY2hpbGQgb2YgdGhlIHRyYW5zZm9ybSBsYXllci4KICAgICAgICAgaWYgKG1f
bGF5ZXItPnBhcmVudCgpKQogICAgICAgICAgICAgbV9sYXllci0+cGFyZW50KCktPnJlcGxhY2VD
aGlsZChtX2xheWVyLmdldCgpLCBtX3RyYW5zZm9ybUxheWVyLmdldCgpKTsKQEAgLTU5MSw2ICs2
MDIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMz
RCgpCiAgICAgICAgIHVwZGF0ZUFuY2hvclBvaW50KCk7CiAgICAgICAgIHVwZGF0ZVRyYW5zZm9y
bSgpOwogICAgICAgICB1cGRhdGVDaGlsZHJlblRyYW5zZm9ybSgpOworICAgICAgICB1cGRhdGVD
b250ZW50c1NjYWxlKCk7CiAKICAgICAgICAgdXBkYXRlQ2hpbGRMaXN0KCk7CiAgICAgfQpAQCAt
NjM0LDYgKzY0NiwxNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVu
dHNSZWN0KCkKICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKG1fY29udGVu
dHNSZWN0LndpZHRoKCksIG1fY29udGVudHNSZWN0LmhlaWdodCgpKSk7CiB9CiAKK3ZvaWQgR3Jh
cGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50c1NjYWxlKCkKK3sKKyAgICAvLyBJZiBw
YWdlIHNjYWxlIGlzIGFwcGxpZWQgYXMgYSB0cmFuc2Zvcm0gaW4gdGhlIGNvbXBvc2l0b3IgdGhl
biB0aGVyZSdzIG5vdGhpbmcgdG8gZG8gaGVyZS4KKyAgICBpZiAoYXBwbGllc1BhZ2VTY2FsZSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyLT5zZXRDb250ZW50c1NjYWxlKGNvbnRl
bnRzU2NhbGUoKSk7CisgICAgaWYgKG1fZHJhd3NDb250ZW50KQorICAgICAgICBtX2xheWVyLT5z
ZXROZWVkc0Rpc3BsYXkoKTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldHVw
Q29udGVudHNMYXllcihMYXllckNocm9taXVtKiBjb250ZW50c0xheWVyKQogewogICAgIGlmIChj
b250ZW50c0xheWVyID09IG1fY29udGVudHNMYXllcikKQEAgLTY2NCw2ICs2ODcsMTMgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldHVwQ29udGVudHNMYXllcihMYXllckNocm9taXVt
KiBjb250ZW50c0xheWVyKQogICAgIHVwZGF0ZU5hbWVzKCk7CiB9CiAKK2Zsb2F0IEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bTo6Y29udGVudHNTY2FsZSgpIGNvbnN0Cit7CisgICAgaWYgKCFhcHBsaWVz
UGFnZVNjYWxlKCkpCisgICAgICAgIHJldHVybiBwYWdlU2NhbGVGYWN0b3IoKSAqIGRldmljZVNj
YWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIDEuMGY7Cit9CisKIC8vIFRoaXMgZnVuY3Rpb24gc2lt
cGx5IG1pbWljcyB0aGUgb3BlcmF0aW9uIG9mIEdyYXBoaWNzTGF5ZXJDQQogdm9pZCBHcmFwaGlj
c0xheWVyQ2hyb21pdW06OnVwZGF0ZU9wYWNpdHlPbkxheWVyKCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhp
Y3NMYXllckNocm9taXVtLmgKaW5kZXggNzE5MGU1MC4uYjA1ZDA3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3Jh
cGhpY3NMYXllckNocm9taXVtLmgKQEAgLTk0LDYgKzk0LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHNldERlYnVnQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdmly
dHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgp
OworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKIAog
ICAgIC8vIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGltcGxlbWVudCB0aGUgQ0NMYXllckRlbGVn
YXRlIGludGVyZmFjZS4KICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CkBA
IC0xMjQsOSArMTI1LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c0ltYWdl
KCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1ZpZGVvKCk7CiAgICAgdm9pZCB1cGRhdGVDb250
ZW50c1JlY3QoKTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsKIAogICAgIHZvaWQg
c2V0dXBDb250ZW50c0xheWVyKExheWVyQ2hyb21pdW0qKTsKICAgICBMYXllckNocm9taXVtKiBj
b250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyLmdldCgpOyB9Cisg
ICAgZmxvYXQgY29udGVudHNTY2FsZSgpIGNvbnN0OwogCiAgICAgU3RyaW5nIG1fbmFtZUJhc2U7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IDM2MzM2MjkuLjk1ZDdjNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0lt
YWdlTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcApAQCAtNjEsNyArNjEsNyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9y
bWF0UkdCQSA6IExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdEJHUkE7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBj
b250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCAvKiBib3JkZXJUZXhlbHMg
Ki8pCisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250
ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCAvKiBib3JkZXJUZXhlbHMgKi8s
IGZsb2F0IGNvbnRlbnRzU2NhbGUpCiAgICAgewogICAgICAgICBtX3RleFN1YkltYWdlLnNldFN1
YkltYWdlU2l6ZSh0aWxlU2l6ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCA2
YTZhMGU3Li4yNjYwOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNzIsNiArNzIsNyBA
QCBMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUp
CiAgICAgLCBtX3JlcGxpY2FMYXllcigwKQogICAgICwgbV9kcmF3T3BhY2l0eSgwKQogICAgICwg
bV90YXJnZXRSZW5kZXJTdXJmYWNlKDApCisgICAgLCBtX2NvbnRlbnRzU2NhbGUoMS4wKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggYzdhZWNiZS4uOGUzMzMwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hy
b21pdW0uaApAQCAtMTkzLDYgKzE5Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcmVlblNw
YWNlVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpIHsgbV9zY3Jl
ZW5TcGFjZVRyYW5zZm9ybSA9IG1hdHJpeDsgfQogICAgIGNvbnN0IEludFJlY3QmIGRyYXdhYmxl
Q29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2RyYXdhYmxlQ29udGVudFJlY3Q7IH0KICAg
ICB2b2lkIHNldERyYXdhYmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkgeyBtX2Ry
YXdhYmxlQ29udGVudFJlY3QgPSByZWN0OyB9CisgICAgZmxvYXQgY29udGVudHNTY2FsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGVudHNTY2FsZTsgfQorICAgIHZvaWQgc2V0Q29udGVudHNTY2Fs
ZShmbG9hdCBjb250ZW50c1NjYWxlKSB7IG1fY29udGVudHNTY2FsZSA9IGNvbnRlbnRzU2NhbGU7
IH0KIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgb2YgdGhlIGxheWVyJ3MgZGVzY2VuZGFu
dHMgaGFzIGNvbnRlbnQgdG8gZHJhdy4KICAgICBib29sIGRlc2NlbmRhbnREcmF3c0NvbnRlbnQo
KTsKQEAgLTI4MSw2ICsyODMsNyBAQCBwcml2YXRlOgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1fZHJhd1RyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3NjcmVlblNwYWNl
VHJhbnNmb3JtOwogICAgIEludFJlY3QgbV9kcmF3YWJsZUNvbnRlbnRSZWN0OworICAgIGZsb2F0
IG1fY29udGVudHNTY2FsZTsKIAogICAgIFN0cmluZyBtX25hbWU7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBk
YXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJU
ZXh0dXJlVXBkYXRlci5oCmluZGV4IDNkODU5N2UuLjg1ZTEzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRl
eHR1cmVVcGRhdGVyLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIC8vIFRoaXMgZm9y
bWF0IHNwZWNpZmllcyB0aGUgY29tcG9uZW50IG9yZGVyIGluIHRoZSBzYW1wbGVkIHRleGVsLgog
ICAgIC8vIElmIHRoZSBmb3JtYXQgaXMgVGV4ZWxGb3JtYXRCR1JBLCB2ZWM0LnggaXMgYmx1ZSBh
bmQgdmVjNC56IGlzIHJlZC4KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVk
VGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNp
emUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBy
ZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYg
dGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2NhbGUpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0
dXJlQWxsb2NhdG9yKiwgTWFuYWdlZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNh
bnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clRleHR1cmVVcGRhdGVyQ2FudmFzLmNwcAppbmRleCBhY2IyY2QzLi5lYjU0YTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1
cmVVcGRhdGVyQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyQ2FudmFzLmNwcApAQCAtMTM5LDcgKzEzOSw3
IEBAIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdCBMYXllclRleHR1cmVV
cGRhdGVyQml0bWFwOjpzYW1wbGVkVGV4ZWxGCiAgICAgICAgICAgICBMYXllclRleHR1cmVVcGRh
dGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRSR0JBIDogTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxl
ZFRleGVsRm9ybWF0QkdSQTsKIH0KIAotdm9pZCBMYXllclRleHR1cmVVcGRhdGVyQml0bWFwOjpw
cmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUm
IHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzKQordm9pZCBMYXllclRleHR1cmVVcGRhdGVyQml0
bWFwOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IElu
dFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKQog
ewogICAgIG1fdGV4U3ViSW1hZ2Uuc2V0U3ViSW1hZ2VTaXplKHRpbGVTaXplKTsKIApAQCAtMTUw
LDcgKzE1MCwxMCBAQCB2b2lkIExheWVyVGV4dHVyZVVwZGF0ZXJCaXRtYXA6OnByZXBhcmVUb1Vw
ZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29ucwogICAgIFBsYXRmb3JtQ2FudmFz
OjpQYWludGVyOjpUZXh0T3B0aW9uIHRleHRPcHRpb24gPQogICAgICAgICBib3JkZXJUZXhlbHMg
PyBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6R3JheXNjYWxlVGV4dCA6IFBsYXRmb3JtQ2FudmFz
OjpQYWludGVyOjpTdWJwaXhlbFRleHQ7CiAgICAgUGxhdGZvcm1DYW52YXM6OlBhaW50ZXIgY2Fu
dmFzUGFpbnRlcigmbV9jYW52YXMsIHRleHRPcHRpb24pOworICAgIGNhbnZhc1BhaW50ZXIuY29u
dGV4dCgpLT5zYXZlKCk7CisgICAgY2FudmFzUGFpbnRlci5jb250ZXh0KCktPnNjYWxlKEZsb2F0
U2l6ZShjb250ZW50c1NjYWxlLCBjb250ZW50c1NjYWxlKSk7CiAgICAgcGFpbnRDb250ZW50cygq
Y2FudmFzUGFpbnRlci5jb250ZXh0KCksIGNvbnRlbnRSZWN0KTsKKyAgICBjYW52YXNQYWludGVy
LmNvbnRleHQoKS0+cmVzdG9yZSgpOwogfQogCiB2b2lkIExheWVyVGV4dHVyZVVwZGF0ZXJCaXRt
YXA6OnVwZGF0ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBUZXh0dXJl
QWxsb2NhdG9yKiBhbGxvY2F0b3IsIE1hbmFnZWRUZXh0dXJlKiB0ZXh0dXJlLCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKQEAgLTE4Miw3ICsxODUs
NyBAQCBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXQgTGF5ZXJUZXh0dXJl
VXBkYXRlclNrUGljdHVyZTo6c2FtcGxlZFRleAogICAgIHJldHVybiBMYXllclRleHR1cmVVcGRh
dGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRSR0JBOwogfQogCi12b2lkIExheWVyVGV4dHVyZVVwZGF0
ZXJTa1BpY3R1cmU6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwg
Y29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpCit2b2lkIExheWVyVGV4
dHVyZVVwZGF0ZXJTa1BpY3R1cmU6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250
ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0
IGNvbnRlbnRzU2NhbGUpCiB7CiAgICAgU2tDYW52YXMqIGNhbnZhcyA9IG1fcGljdHVyZS5iZWdp
blJlY29yZGluZyhjb250ZW50UmVjdC53aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQoKSk7CiAg
ICAgUGxhdGZvcm1Db250ZXh0U2tpYSBwbGF0Zm9ybUNvbnRleHQoY2FudmFzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVy
ZVVwZGF0ZXJDYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuaAppbmRleCBmZmM3MWM2Li4zNzgzMDcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clRleHR1cmVVcGRhdGVyQ2FudmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5oCkBAIC03MCw3ICs3MCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSB7IHJl
dHVybiBMYXllclRleHR1cmVVcGRhdGVyOjpCb3R0b21VcE9yaWVudGF0aW9uOyB9CiAgICAgdmly
dHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtIHRleHR1
cmVGb3JtYXQpOwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVj
dCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxz
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRl
bnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxvYXQg
Y29udGVudHNTY2FsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KEdyYXBo
aWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1hbmFnZWRUZXh0dXJlKiwgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOwogCiBwcml2YXRl
OgpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIE9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKCkgeyByZXR1cm4gTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VG9wRG93bk9yaWVudGF0
aW9uOyB9CiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0
KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpOwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRh
dGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBp
bnQgYm9yZGVyVGV4ZWxzKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0
IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRl
clRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRl
eHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1hbmFnZWRU
ZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJl
Y3QpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggZmNj
NDZkOS4uOGUzMjNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBAIC0xMzQs
NiArMTM0LDExIEBAIGJvb2wgVGlsZWRMYXllckNocm9taXVtOjpkcmF3c0NvbnRlbnQoKSBjb25z
dAogICAgIHJldHVybiAhbV9za2lwc0RyYXc7CiB9CiAKK0ludFNpemUgVGlsZWRMYXllckNocm9t
aXVtOjpjb250ZW50Qm91bmRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW50U2l6ZShib3VuZHMo
KS53aWR0aCgpICogY29udGVudHNTY2FsZSgpLCBib3VuZHMoKS5oZWlnaHQoKSAqIGNvbnRlbnRz
U2NhbGUoKSk7Cit9CisKIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0
KENDTGF5ZXJUcmVlSG9zdCogaG9zdCkKIHsKICAgICBMYXllckNocm9taXVtOjpzZXRMYXllclRy
ZWVIb3N0KGhvc3QpOwpAQCAtMzczLDcgKzM3OCw3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVt
OjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpCiAgICAgLy8gSG93
ZXZlciwgd2UgY2FuJ3QgZnJlZSB0aGUgbWVtb3J5IGJhY2tpbmcgdGhlIEdyYXBoaWNzQ29udGV4
dCB1bnRpbCB0aGUgcGFpbnQgZmluaXNoZXMsCiAgICAgLy8gc28gd2UgZ3JhYiBhIGxvY2FsIHJl
ZmVyZW5jZSBoZXJlIHRvIGhvbGQgdGhlIHVwZGF0ZXIgYWxpdmUgdW50aWwgdGhlIHBhaW50IGNv
bXBsZXRlcy4KICAgICBSZWZQdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcj4gcHJvdGVjdG9yKHRleHR1
cmVVcGRhdGVyKCkpOwotICAgIHRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1VwZGF0ZShtX3Bh
aW50UmVjdCwgbV90aWxlci0+dGlsZVNpemUoKSwgbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCkp
OworICAgIHRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgbV90
aWxlci0+dGlsZVNpemUoKSwgbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCksIGNvbnRlbnRzU2Nh
bGUoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKaW5kZXggNWRhZjBmMC4u
MmJjYWMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKQEAgLTUwLDYgKzUwLDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OwogCisgICAg
dmlydHVhbCBJbnRTaXplIGNvbnRlbnRCb3VuZHMoKSBjb25zdDsKKwogICAgIC8vIFJlc2VydmVz
IGFsbCBleGlzdGluZyBhbmQgdmFsaWQgdGlsZSB0ZXh0dXJlcyB0byBwcm90ZWN0IHRoZW0gZnJv
bSBiZWluZwogICAgIC8vIHJlY3ljbGVkIGJ5IHRoZSB0ZXh0dXJlIG1hbmFnZXIuCiAgICAgdm9p
ZCBwcm90ZWN0VGlsZVRleHR1cmVzKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcAppbmRleCBmNGEyN2ZiLi44OGUy
MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCkBAIC03
MCw2ICs3MCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fcGFnZU92ZXJsYXlDbGllbnQtPnBhaW50
UGFnZU92ZXJsYXkoY29udGV4dCk7CiAgICAgfQogCisgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbV93ZWJWaWV3SW1wbC0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgfQorCiAgICAgdmly
dHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJu
IG1fd2ViVmlld0ltcGwtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113511</attachid>
            <date>2011-11-03 10:00:52 -0700</date>
            <delta_ts>2011-11-04 09:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71225-20111103170050.patch</filename>
            <type>text/plain</type>
            <size>36606</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg4NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NjkxN2RkNDUwMjY2OTk4
MDdlMjBhZWZhNjU0MmI4ZDA4NDM4M2U2Li41ZGMwZGI2ZGYzNGZlMWQyOWRhMGNjNDkxZGNiODYz
N2IyY2QyMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTEtMDMgIEFscGhh
IExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIHdoZW4gcG9z
aXRpb246Zml4ZWQgaW4gYSBzZXBhcmF0ZSBsYXllciBpdCBkb2Vzbid0IGdldCBmdWxsIHJlc29s
dXRpb24gd2l0aCBjc3MgdHJhbnNmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFBhc3MgY29udGVudHMgc2NhbGUgZmFjdG9yIHRvIHRoZSBjb21wb3Np
dG9yIHN1Y2ggdGhhdCBpdCBjYW46CisgICAgICAgIDEuIEFkanVzdCBjb250ZW50Qm91bmRzKCkg
b2YgdGhlIGNvbXBvc2l0b2VyIGxheWVycyB3aXRoIGNvbnRlbnQgc2NhbGUuCisgICAgICAgIDIu
IEFwcGx5IHRoZSBjb250ZW50IHNjYWxlIGluIHRoZSBwYWludGVyIGZvciB0ZXh0dXJlIHVwZGF0
ZSBpbiBiZXR0ZXIgcmVzb2x1dGlvbi4KKworICAgICAgICBUZXN0czogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6c2V0VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMz
RCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRl
bnRzU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpjb250
ZW50c1NjYWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9J
bWFnZUxheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMYXllclRleHR1
cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJv
bWl1bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6Y29u
dGVudHNTY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRDb250ZW50
c1NjYWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1
cmVVcGRhdGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJU
ZXh0dXJlVXBkYXRlckNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclRleHR1cmVV
cGRhdGVyQml0bWFwOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJU
ZXh0dXJlVXBkYXRlclNrUGljdHVyZTo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyQ2FudmFzLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6Y29udGVudEJvdW5kcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmg6
CisKIDIwMTEtMTAtMzEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgbG9jYWxpemF0aW9uIHN1cHBvcnQgaW50byBVSVV0
aWwuanMsIHJlZHVjZSBleHRlcm5zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4OGRm
YjFhNjE0MzRkYTg1ZjAwNjg3ODBhYWEyYjQ4OTVjOTc2ZDBlLi4zNDFkMDQxZmJhYWI0ZTFmZmY0
MDdiMzEwYzQwYTU0OTk4MDZkODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTExLTAzICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSB3aGVuIHBvc2l0aW9uOmZpeGVkIGluIGEgc2VwYXJhdGUgbGF5
ZXIgaXQgZG9lc24ndCBnZXQgZnVsbCByZXNvbHV0aW9uIHdpdGggY3NzIHRyYW5zZm9ybQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRzIEdy
YXBoaWNzTGF5ZXJDbGllbnQgdG8gcmV0dXJuIHZhbHVlcyBmb3IgcGFnZVNjYWxlRmFjdG9yIGFu
ZCBkZXZpY2VTY2FsZUZhY3Rvci4gVGhleSBhcmUgdXNlZCB0byBkZXRlcm1pbmUgY29udGVudHMg
c2NhbGUgZmFjdG9yIGNvbXBvc2l0ZXIgbGF5ZXJzLgorCisgICAgICAgICogc3JjL1BhZ2VPdmVy
bGF5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6T3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJbXBs
OjpkZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6Ok92ZXJsYXlHcmFwaGljc0xh
eWVyQ2xpZW50SW1wbDo6cGFnZVNjYWxlRmFjdG9yKToKKwogMjAxMS0xMC0zMSAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbW92
ZSBsb2NhbGl6YXRpb24gc3VwcG9ydCBpbnRvIFVJVXRpbC5qcywgcmVkdWNlIGV4dGVybnMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFw
aGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCA3MjlhOWFjZGVjYzQ4ZWYw
OTljMmU1YjljMzc2MDU5NGQwYzZiMTdlLi5hZjg5YzZiZmJiNWQwMmMwMmZmMTIwMmIwMTc0YmEx
NjlkNWI0OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE5
MSw2ICsxOTEsOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0U2l6ZShjb25zdCBG
bG9hdFNpemUmIHNpemUpCiAKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRUcmFuc2Zv
cm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKIHsKKyAgICAvLyBDYWxs
IHRoaXMgbWV0aG9kIGZpcnN0IHRvIGFzc2lnbiBjb250ZW50cyBzY2FsZSB0byBMYXllckNocm9t
aXVtIHNvIHRoZSBwYWludGVyIGNhbiBhcHBseSB0aGUgc2NhbGUgdHJhbnNmb3JtLgorICAgIHVw
ZGF0ZUNvbnRlbnRzU2NhbGUoKTsKKwogICAgIGlmICh0cmFuc2Zvcm0gPT0gbV90cmFuc2Zvcm0p
CiAgICAgICAgIHJldHVybjsKIApAQCAtNDQ3LDYgKzQ1MCwxMSBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6c2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCBib3Jk
ZXJXaWR0aAogICAgIH0KIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9y
UGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCit7CisgICAgdXBkYXRlQ29udGVudHNTY2FsZSgpOwor
fQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ2hpbGRMaXN0KCkKIHsKICAg
ICBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4gbmV3Q2hpbGRyZW47CkBAIC01NjEsNiAr
NTY5LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyUHJlc2VydmVz
M0QoKQogICAgICAgICB1cGRhdGVBbmNob3JQb2ludCgpOwogICAgICAgICB1cGRhdGVUcmFuc2Zv
cm0oKTsKICAgICAgICAgdXBkYXRlQ2hpbGRyZW5UcmFuc2Zvcm0oKTsKKyAgICAgICAgdXBkYXRl
Q29udGVudHNTY2FsZSgpOwogCiAgICAgICAgIG1fbGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9p
bnQobV9zaXplLndpZHRoKCkgLyAyLjBmLCBtX3NpemUuaGVpZ2h0KCkgLyAyLjBmKSk7CiAKQEAg
LTU3MSw2ICs1ODAsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQ
cmVzZXJ2ZXMzRCgpCiAgICAgICAgIC8vIFNldCB0aGUgb2xkIGxheWVyIHRvIG9wYWNpdHkgb2Yg
MS4gRnVydGhlciBkb3duIHdlIHdpbGwgc2V0IHRoZSBvcGFjaXR5IG9uIHRoZSB0cmFuc2Zvcm0g
bGF5ZXIuCiAgICAgICAgIG1fbGF5ZXItPnNldE9wYWNpdHkoMSk7CiAKKyAgICAgICAgbV9sYXll
ci0+c2V0Q29udGVudHNTY2FsZShjb250ZW50c1NjYWxlKCkpOworCiAgICAgICAgIC8vIE1vdmUg
dGhpcyBsYXllciB0byBiZSBhIGNoaWxkIG9mIHRoZSB0cmFuc2Zvcm0gbGF5ZXIuCiAgICAgICAg
IGlmIChtX2xheWVyLT5wYXJlbnQoKSkKICAgICAgICAgICAgIG1fbGF5ZXItPnBhcmVudCgpLT5y
ZXBsYWNlQ2hpbGQobV9sYXllci5nZXQoKSwgbV90cmFuc2Zvcm1MYXllci5nZXQoKSk7CkBAIC01
OTEsNiArNjAyLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyUHJl
c2VydmVzM0QoKQogICAgICAgICB1cGRhdGVBbmNob3JQb2ludCgpOwogICAgICAgICB1cGRhdGVU
cmFuc2Zvcm0oKTsKICAgICAgICAgdXBkYXRlQ2hpbGRyZW5UcmFuc2Zvcm0oKTsKKyAgICAgICAg
dXBkYXRlQ29udGVudHNTY2FsZSgpOwogCiAgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOwogICAg
IH0KQEAgLTYzNCw2ICs2NDYsMTcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0
ZUNvbnRlbnRzUmVjdCgpCiAgICAgbV9jb250ZW50c0xheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSht
X2NvbnRlbnRzUmVjdC53aWR0aCgpLCBtX2NvbnRlbnRzUmVjdC5oZWlnaHQoKSkpOwogfQogCit2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHNTY2FsZSgpCit7CisgICAg
Ly8gSWYgcGFnZSBzY2FsZSBpcyBhcHBsaWVkIGFzIGEgdHJhbnNmb3JtIGluIHRoZSBjb21wb3Np
dG9yIHRoZW4gdGhlcmUncyBub3RoaW5nIHRvIGRvIGhlcmUuCisgICAgaWYgKGFwcGxpZXNQYWdl
U2NhbGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXllci0+c2V0Q29udGVudHNTY2Fs
ZShjb250ZW50c1NjYWxlKCkpOworICAgIGlmIChtX2RyYXdzQ29udGVudCkKKyAgICAgICAgbV9s
YXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Cit9CisKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVt
OjpzZXR1cENvbnRlbnRzTGF5ZXIoTGF5ZXJDaHJvbWl1bSogY29udGVudHNMYXllcikKIHsKICAg
ICBpZiAoY29udGVudHNMYXllciA9PSBtX2NvbnRlbnRzTGF5ZXIpCkBAIC02NjQsNiArNjg3LDEz
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXR1cENvbnRlbnRzTGF5ZXIoTGF5ZXJD
aHJvbWl1bSogY29udGVudHNMYXllcikKICAgICB1cGRhdGVOYW1lcygpOwogfQogCitmbG9hdCBH
cmFwaGljc0xheWVyQ2hyb21pdW06OmNvbnRlbnRzU2NhbGUoKSBjb25zdAoreworICAgIGlmICgh
YXBwbGllc1BhZ2VTY2FsZSgpKQorICAgICAgICByZXR1cm4gcGFnZVNjYWxlRmFjdG9yKCkgKiBk
ZXZpY2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiAxLjBmOworfQorCiAvLyBUaGlzIGZ1bmN0
aW9uIHNpbXBseSBtaW1pY3MgdGhlIG9wZXJhdGlvbiBvZiBHcmFwaGljc0xheWVyQ0EKIHZvaWQg
R3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVPcGFjaXR5T25MYXllcigpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xh
eWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDcxOTBlNTA1OWZjNTYxNjQ5Njk2OTA0OTQz
YTVlNzVjNTM3YzUzN2UuLmIwNWQwN2JmNjM3YmY1Y2ZlMGU0YmVjNGUzOTNkYmE3YjBjMDNkZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCkBAIC05NCw2ICs5NCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91bmRDb2xvcihjb25zdCBD
b2xvciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZs
b2F0IGJvcmRlcldpZHRoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkKCk7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBpbXBsZW1lbnQg
dGhlIENDTGF5ZXJEZWxlZ2F0ZSBpbnRlcmZhY2UuCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29u
dGVudCgpIGNvbnN0OwpAQCAtMTI0LDkgKzEyNSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlQ29udGVudHNJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNWaWRlbygpOwogICAg
IHZvaWQgdXBkYXRlQ29udGVudHNSZWN0KCk7CisgICAgdm9pZCB1cGRhdGVDb250ZW50c1NjYWxl
KCk7CiAKICAgICB2b2lkIHNldHVwQ29udGVudHNMYXllcihMYXllckNocm9taXVtKik7CiAgICAg
TGF5ZXJDaHJvbWl1bSogY29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNM
YXllci5nZXQoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUoKSBjb25zdDsKIAogICAgIFN0
cmluZyBtX25hbWVCYXNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAppbmRleCAz
NjMzNjI5NjdhY2NkZWJjMjU1OWUyOWMyNGQ0M2MxYzg4ODgwMzE3Li45NWQ3YzYyN2M3ZTJlNTU1
NDFkODMwZWNiZThmNmZhMzk0NDE2NWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5j
cHAKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIExheWVyVGV4dHVy
ZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkEgOiBMYXllclRleHR1cmVVcGRhdGVyOjpT
YW1wbGVkVGV4ZWxGb3JtYXRCR1JBOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVT
aXplLCBpbnQgLyogYm9yZGVyVGV4ZWxzICovKQorICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9V
cGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXpl
LCBpbnQgLyogYm9yZGVyVGV4ZWxzICovLCBmbG9hdCBjb250ZW50c1NjYWxlKQogICAgIHsKICAg
ICAgICAgbV90ZXhTdWJJbWFnZS5zZXRTdWJJbWFnZVNpemUodGlsZVNpemUpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNmE2YTBlNzdjNDc0OTA5Y2EwMmI0NDgyZGZmNjAxNjBh
YTExY2Y0OC4uMjY2MDlkMTZjZmEwMGNiY2E3OGI3NzlmNThkMTNlYjI1ZDlmZmU2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTcyLDYgKzcyLDcgQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJD
aHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9yZXBsaWNhTGF5ZXIo
MCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZSgw
KQorICAgICwgbV9jb250ZW50c1NjYWxlKDEuMCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmlu
ZGV4IGM3YWVjYmU1OGE3N2QzMThkZWU2NTVkNTk1NDNmZmQwMTgwMzM2MWUuLjhlMzMzMDE2YWY0
MzkwOTlhNGE1ZGQ0NzI3OGM0NzQ4MmViYjI5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTE5
Myw2ICsxOTMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTY3JlZW5TcGFjZVRyYW5zZm9ybShj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4KSB7IG1fc2NyZWVuU3BhY2VUcmFuc2Zv
cm0gPSBtYXRyaXg7IH0KICAgICBjb25zdCBJbnRSZWN0JiBkcmF3YWJsZUNvbnRlbnRSZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV9kcmF3YWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgdm9pZCBzZXREcmF3
YWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpIHsgbV9kcmF3YWJsZUNvbnRlbnRS
ZWN0ID0gcmVjdDsgfQorICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRlbnRzU2NhbGU7IH0KKyAgICB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQgY29udGVu
dHNTY2FsZSkgeyBtX2NvbnRlbnRzU2NhbGUgPSBjb250ZW50c1NjYWxlOyB9CiAKICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgYW55IG9mIHRoZSBsYXllcidzIGRlc2NlbmRhbnRzIGhhcyBjb250ZW50
IHRvIGRyYXcuCiAgICAgYm9vbCBkZXNjZW5kYW50RHJhd3NDb250ZW50KCk7CkBAIC0yODEsNiAr
MjgzLDcgQEAgcHJpdmF0ZToKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2RyYXdUcmFuc2Zv
cm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9zY3JlZW5TcGFjZVRyYW5zZm9ybTsKICAg
ICBJbnRSZWN0IG1fZHJhd2FibGVDb250ZW50UmVjdDsKKyAgICBmbG9hdCBtX2NvbnRlbnRzU2Nh
bGU7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIu
aAppbmRleCAzZDg1OTdlMzllODVkNGNiZjAxNTZkNWNjMTE3OTQ2Nzk1MzcxMjRmLi44NWUxMzc5
YzJkZDYyOWY5OGU5OGFjMzJkMDRiZDRjMWE2YTBkYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJl
VXBkYXRlci5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGZvcm1hdCBz
cGVjaWZpZXMgdGhlIGNvbXBvbmVudCBvcmRlciBpbiB0aGUgc2FtcGxlZCB0ZXhlbC4KICAgICAv
LyBJZiB0aGUgZm9ybWF0IGlzIFRleGVsRm9ybWF0QkdSQSwgdmVjNC54IGlzIGJsdWUgYW5kIHZl
YzQueiBpcyByZWQuCiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVs
Rm9ybWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcHJl
cGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0
aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVT
aXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFs
bG9jYXRvciosIE1hbmFnZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29u
c3QgSW50UmVjdCYgZGVzdFJlY3QpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0
dXJlVXBkYXRlckNhbnZhcy5jcHAKaW5kZXggYWNiMmNkM2U0NmIzMDEzNGVhZjg4MDViNDUzZTVj
YWI4ZDU0NWMxYi4uZWI1NGE2ZTkyY2FiY2UxODk0NDRmZjZiYzBlMzFkYTc3YmQwNTFhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJU
ZXh0dXJlVXBkYXRlckNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5jcHAKQEAgLTEzOSw3ICsx
MzksNyBAQCBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXQgTGF5ZXJUZXh0
dXJlVXBkYXRlckJpdG1hcDo6c2FtcGxlZFRleGVsRgogICAgICAgICAgICAgTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQSA6IExheWVyVGV4dHVyZVVwZGF0ZXI6OlNh
bXBsZWRUZXhlbEZvcm1hdEJHUkE7CiB9CiAKLXZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlckJpdG1h
cDo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRT
aXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscykKK3ZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRl
ckJpdG1hcDo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25z
dCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2Fs
ZSkKIHsKICAgICBtX3RleFN1YkltYWdlLnNldFN1YkltYWdlU2l6ZSh0aWxlU2l6ZSk7CiAKQEAg
LTE1MCw3ICsxNTAsMTAgQEAgdm9pZCBMYXllclRleHR1cmVVcGRhdGVyQml0bWFwOjpwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnMKICAgICBQbGF0Zm9ybUNh
bnZhczo6UGFpbnRlcjo6VGV4dE9wdGlvbiB0ZXh0T3B0aW9uID0KICAgICAgICAgYm9yZGVyVGV4
ZWxzID8gUGxhdGZvcm1DYW52YXM6OlBhaW50ZXI6OkdyYXlzY2FsZVRleHQgOiBQbGF0Zm9ybUNh
bnZhczo6UGFpbnRlcjo6U3VicGl4ZWxUZXh0OwogICAgIFBsYXRmb3JtQ2FudmFzOjpQYWludGVy
IGNhbnZhc1BhaW50ZXIoJm1fY2FudmFzLCB0ZXh0T3B0aW9uKTsKKyAgICBjYW52YXNQYWludGVy
LmNvbnRleHQoKS0+c2F2ZSgpOworICAgIGNhbnZhc1BhaW50ZXIuY29udGV4dCgpLT5zY2FsZShG
bG9hdFNpemUoY29udGVudHNTY2FsZSwgY29udGVudHNTY2FsZSkpOwogICAgIHBhaW50Q29udGVu
dHMoKmNhbnZhc1BhaW50ZXIuY29udGV4dCgpLCBjb250ZW50UmVjdCk7CisgICAgY2FudmFzUGFp
bnRlci5jb250ZXh0KCktPnJlc3RvcmUoKTsKIH0KIAogdm9pZCBMYXllclRleHR1cmVVcGRhdGVy
Qml0bWFwOjp1cGRhdGVUZXh0dXJlUmVjdChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgVGV4
dHVyZUFsbG9jYXRvciogYWxsb2NhdG9yLCBNYW5hZ2VkVGV4dHVyZSogdGV4dHVyZSwgY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCkBAIC0xODIsNyAr
MTg1LDcgQEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0IExheWVyVGV4
dHVyZVVwZGF0ZXJTa1BpY3R1cmU6OnNhbXBsZWRUZXgKICAgICByZXR1cm4gTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQTsKIH0KIAotdm9pZCBMYXllclRleHR1cmVV
cGRhdGVyU2tQaWN0dXJlOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJl
Y3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzKQordm9pZCBMYXll
clRleHR1cmVVcGRhdGVyU2tQaWN0dXJlOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYg
Y29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBm
bG9hdCBjb250ZW50c1NjYWxlKQogewogICAgIFNrQ2FudmFzKiBjYW52YXMgPSBtX3BpY3R1cmUu
YmVnaW5SZWNvcmRpbmcoY29udGVudFJlY3Qud2lkdGgoKSwgY29udGVudFJlY3QuaGVpZ2h0KCkp
OwogICAgIFBsYXRmb3JtQ29udGV4dFNraWEgcGxhdGZvcm1Db250ZXh0KGNhbnZhcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRl
eHR1cmVVcGRhdGVyQ2FudmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyQ2FudmFzLmgKaW5kZXggZmZjNzFjNjhmZjdjN2Rj
OTgyMWNlOWFjOGExYjQwODhhYTU4ODM4OS4uMzc4MzA3Mjc0NDA2YWQwMzQ5NTJhMTY1ZTVkODg5
OTU1NTkyYjEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuaApA
QCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIE9yaWVudGF0aW9uIG9yaWVu
dGF0aW9uKCkgeyByZXR1cm4gTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Qm90dG9tVXBPcmllbnRhdGlv
bjsgfQogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZvcm1hdChH
QzNEZW51bSB0ZXh0dXJlRm9ybWF0KTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRl
KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50
IGJvcmRlclRleGVscyk7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJ
bnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJU
ZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2NhbGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUZXh0
dXJlUmVjdChHcmFwaGljc0NvbnRleHQzRCosIFRleHR1cmVBbGxvY2F0b3IqLCBNYW5hZ2VkVGV4
dHVyZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0
KTsKIAogcHJpdmF0ZToKQEAgLTg3LDcgKzg3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBP
cmllbnRhdGlvbiBvcmllbnRhdGlvbigpIHsgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6OlRv
cERvd25PcmllbnRhdGlvbjsgfQogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBs
ZWRUZXhlbEZvcm1hdChHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KTsKLSAgICB2aXJ0dWFsIHZvaWQg
cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXpl
JiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscyk7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVU
b1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNp
emUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2NhbGUpOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVUZXh0dXJlUmVjdChHcmFwaGljc0NvbnRleHQzRCosIFRleHR1cmVBbGxvY2F0
b3IqLCBNYW5hZ2VkVGV4dHVyZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFJlY3QmIGRlc3RSZWN0KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwCmluZGV4IGZjYzQ2ZDk5M2Q1NDBhNDIxOWQ3ZjI3MDEwMDE4NzM4ZWY3YjhmZmUuLjhlMzIz
ZTE5YzNjOTQwMWQzMzU2MWM2MDczNzE1MTAzOTRhM2JkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXll
ckNocm9taXVtLmNwcApAQCAtMTM0LDYgKzEzNCwxMSBAQCBib29sIFRpbGVkTGF5ZXJDaHJvbWl1
bTo6ZHJhd3NDb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gIW1fc2tpcHNEcmF3OwogfQogCitJ
bnRTaXplIFRpbGVkTGF5ZXJDaHJvbWl1bTo6Y29udGVudEJvdW5kcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIEludFNpemUoYm91bmRzKCkud2lkdGgoKSAqIGNvbnRlbnRzU2NhbGUoKSwgYm91bmRz
KCkuaGVpZ2h0KCkgKiBjb250ZW50c1NjYWxlKCkpOworfQorCiB2b2lkIFRpbGVkTGF5ZXJDaHJv
bWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqIGhvc3QpCiB7CiAgICAgTGF5
ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChob3N0KTsKQEAgLTM3Myw3ICszNzgsNyBAQCB2
b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNv
bnRlbnRSZWN0KQogICAgIC8vIEhvd2V2ZXIsIHdlIGNhbid0IGZyZWUgdGhlIG1lbW9yeSBiYWNr
aW5nIHRoZSBHcmFwaGljc0NvbnRleHQgdW50aWwgdGhlIHBhaW50IGZpbmlzaGVzLAogICAgIC8v
IHNvIHdlIGdyYWIgYSBsb2NhbCByZWZlcmVuY2UgaGVyZSB0byBob2xkIHRoZSB1cGRhdGVyIGFs
aXZlIHVudGlsIHRoZSBwYWludCBjb21wbGV0ZXMuCiAgICAgUmVmUHRyPExheWVyVGV4dHVyZVVw
ZGF0ZXI+IHByb3RlY3Rvcih0ZXh0dXJlVXBkYXRlcigpKTsKLSAgICB0ZXh0dXJlVXBkYXRlcigp
LT5wcmVwYXJlVG9VcGRhdGUobV9wYWludFJlY3QsIG1fdGlsZXItPnRpbGVTaXplKCksIG1fdGls
ZXItPmhhc0JvcmRlclRleGVscygpKTsKKyAgICB0ZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlVG9V
cGRhdGUobV9wYWludFJlY3QsIG1fdGlsZXItPnRpbGVTaXplKCksIG1fdGlsZXItPmhhc0JvcmRl
clRleGVscygpLCBjb250ZW50c1NjYWxlKCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJv
bWl1bS5oCmluZGV4IDVkYWYwZjAxOTQ3YTk5NDdjZDIzNWY1NWZiNzM5NTllNDQ3YjFmNTYuLjJi
Y2FjMDA2NmE4MTg1NTZhNjZjZDdlNWRlOWI0NzE0YjE1NGY3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5oCkBAIC01MCw2ICs1MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50Qm91
bmRzKCkgY29uc3Q7CisKICAgICAvLyBSZXNlcnZlcyBhbGwgZXhpc3RpbmcgYW5kIHZhbGlkIHRp
bGUgdGV4dHVyZXMgdG8gcHJvdGVjdCB0aGVtIGZyb20gYmVpbmcKICAgICAvLyByZWN5Y2xlZCBi
eSB0aGUgdGV4dHVyZSBtYW5hZ2VyLgogICAgIHZvaWQgcHJvdGVjdFRpbGVUZXh0dXJlcyhjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdl
T3ZlcmxheS5jcHAKaW5kZXggZjRhMjdmYjUyY2E3YzBhMmYzOTZhYTYxNTVhM2IzMzBmM2MyNjZi
YS4uODhlMjJhMGY2MWE2NDJlMTMyOTNiN2E3OGE2NDNlZmQzYmI0YjY5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcApAQCAtNzAsNiArNzAsMTYgQEAgcHVi
bGljOgogICAgICAgICBtX3BhZ2VPdmVybGF5Q2xpZW50LT5wYWludFBhZ2VPdmVybGF5KGNvbnRl
eHQpOwogICAgIH0KIAorICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgdmlydHVhbCBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlld0lt
cGwtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIH0KKwogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVi
dWdCb3JkZXJzKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3dlYlZpZXdJbXBsLT5w
YWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZmFiZmYzNzMz
YTg4ODVkMzFjMmJmNmQ2MTc3NWY2ZjFmMjYzYzAwLi42ZjVmZTg3YWQ0OTAxMjg5MTRlMGE2YTg0
NTEwOGU5ZTFjOTlkYjQ2IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEtMDMgIEFscGhh
IExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIHdoZW4gcG9z
aXRpb246Zml4ZWQgaW4gYSBzZXBhcmF0ZSBsYXllciBpdCBkb2Vzbid0IGdldCBmdWxsIHJlc29s
dXRpb24gd2l0aCBjc3MgdHJhbnNmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgdGhhdCBo
YXMgcG9zaXRpb246Zml4ZWQgYW5kIHBhZ2Ugc2NhbGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDogQWRkZWQuCisgICAgICAgIFRlc3Qg
d2l0aCBwb3NpdGlvbjpmaXhlZCBlbGVtZW50IGluIGEgc2VwYXJhdGUgbGF5ZXIgYW5kIHBhZ2Ug
c2NhbGUgYXBwbGllZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6IEFkZGVkLgorICAgICAg
ICBUZXN0IHdpdGggcG9zaXRpb246Zml4ZWQgZWxlbWVudCBpbiBhIHNlcGFyYXRlIGxheWVyLCBj
c3MgdHJhbnNmb3JtIGFuZCBwYWdlIHNjYWxlIGFwcGxpZWQuCisKIDIwMTEtMTAtMzEgIE5pa29s
YXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgQ1NTIDIuMSBm
YWlsdXJlOiBiYWNrZ3JvdW5kLWludHJpbnNpYy0qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUu
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MWJiMzhlZjBkN2JjOTFjNmY0
NzIzYjVkZjNjNjQ1ZjJlNmM1MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bApAQCAtMCwwICsxLDI3IEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZpeGVkLW5vLXot
aW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7Cit9CisuZml4ZWQt
d2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAxOworICBsZWZ0
OiAxMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxlKCkgeworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVD
b21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgy
LCAwLCAwKTsKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7
Ij4KKzxkaXYgY2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNs
YXNzPSJmaXhlZC13aXRoLXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWZhZTc3OWRjMWM4YWIxMDE1YjgwNGQ4Y2EwNmMyOGNi
YTgyYTI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBA
IC0wLDAgKzEsMjkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZml4ZWQtbm8tei1pbmRl
eCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMTBweDsKKyAgLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZVgoMTBweCkgcm90YXRlKDIwZGVnKTsKK30KKy5maXhlZC13aXRoLXot
aW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7
CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpIHJvdGF0ZSgyMGRlZyk7Cit9
Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gc2NhbGUoKSB7CisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOwor
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2NhbGUoKTsiPgorPGRpdiBj
bGFzcz0iZml4ZWQtbm8tei1pbmRleCI+VEVTVDwvZGl2Pjxicj4KKzxkaXYgY2xhc3M9ImZpeGVk
LXdpdGgtei1pbmRleCI+VEVTVDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjZhZGI2N2M1YjE1OGZhZGRkMzllZGZlN2Q0OWNmY2VlMWRmNjVhNwpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNTY1MAp6Y21lSExYO0BRTjhhXk5sRGs2NStEeXY9R1B7MEtZNVNDVkRzM0s0aGZ3
QmNiS3xseD9SenJ4MG1QYiYwdGk9ZE8KemE0QmpHMFIjZz1BYz0hVDVlUDswMVFKalFnXiZlOGZC
KyRMYTVfc24pQT0hZj4tbSVXK312flNKPlBsWF9qfHdaCnooJF5sWVQ1QXAwMHN5b1FlUmE/cWZL
ezZTUTF4R30zaChJWT5UUUtUK1k/Pjw2VD9yUDQzRUppI2UjQCVZd0wpSgp6bFZLNHk1eXVnR2Nr
ZT0yQDNHIXhiSjh8IV93RXk2NSNmN35KdzxBOD5KTnR3ZSg5NVhPRX4weURybDdWViZyO1oKeiZD
XlBIe3lfdF88PVZyVmg2bUwzYlYoUURGMDArIV9QTmkmRlYlbTFIMUFDPVM0OzNSS21ZVSRBfSVM
KTsjXlZwCnohX0opS1A2TENyZGErKStaOEFAUFBTUG9BdEc9MU4+cXY8R0FeTWVabyotWmQhJXZB
MngjKmttUHEzYyZrYjZ8WQp6eGg/Q350eV98aGx9SF5xVHJSaCM9YXthR1V+U3dRRiNNXm5kSCV4
VVZvXmNWKUVhJWpPdyhHb3VHXl9OSV5zPEcKek1YblpMRCRsOHh1VldFKXtRKT94c3RHbjcyfmAw
KnkrfVRWKHgqJlM7R1l1XismPHRCe3xOMXpwaFlLI3VofExDCnp7YTZzfXF2Ymt5Tio5REN1Jl58
KjU7KjA7JHspS2opeGljbno3bH1LSi1wekcycHpibmA/eUYlI0tvdGxIO2xYLQp6OT1gMiU7b3Np
I3VTcnxyb1dIOCtnRC1Cdm0jJHUhY2YzYHI/MW87YTxiRzNBUXc0bj8rU1Q+Tk5rVlc8dlhDdlAK
elVAUnskaWp+N3orSkE5JSl6SHV8O3VEbX4wT2JDOFVNOzQqJn1NTj9ZLVZDb09lQnszbDYjXylf
I30xe2lBM1VNCnpFREVXOEEhTW8+SE5hJSEjPFZ3PXdpLTUxeE87ZElvcDF7U2t0TX43PGRUZXFA
bUArR0AycjVyaUs3WEI/ITJkPwp6cWwzYUxXV18xbXkydVY8Ty0mNn1SMkx+bnNzYURKOHcrZ3pT
OEB4QjRyaz5POWsqej56RUB3JVlJJnkxbFFHQXwKelFuTUohPDtBNEZWOG9iejxEIVVHNW9GbzEm
S1F8SUltPHk7Xz9YakQjOVJnKnVYeStKPHg1c0VAflc5TFM5MEVzCnpgdzN1UF85aXtLJVcjP2hg
UUZ1aWNKbHU0dEw8ZUtiXk84emtGPEIhVHFuJXZRX1YqQ2hmQkJSNUpKdzlqI3A3QQp6IXJeQ0dA
SCMzdzh2d1dKTEZSLSZLcFhraXNMK15PcEE+XmFwPDsqRlk8QW9CbCkoZzdNYm4pLWNpM1N+LSlk
RTcKekJWeVQ0VioxTHYqUTxhVjVwfGl6JT0zSDhnRXtYYzNvP09RPkZjezhOX0k+SWclT0lkdXtq
bylLMGxJO1ZhPzZWCnpsdTYqQGhDd0g0cXgkUEdrK0Z9bGIwU1lDYEg1TlB0ZFFmRT48WWpZLT42
Vzl0UGgzQnhQI2A9YWp+KG5FPyYxQgp6dXs5NEtqTWFAMWs9V1ZPM1RFPmFCU28kfmtjYjBIR2lB
YkI5eEUrZiU1VHJzSGx2VDsyK1g8cigzZFEza2d7ckcKeklabiYtWn1XI3QwQ1RAQGE0MCtgUXk5
Rzs0TiRreHB7K004VD1SXzY9N3YlIzhtMz59LVI0bmotX3pDQSl6YyR1Cnooc25Lei1scWNpUkM4
N0d2Z0wlSnVSPVVJPjUlWnx4dkc+eHA+I00lK2doJH5FbEhubGFrSCVaVk8hM0Q/RGF7Qgp6aUV4
bn1jJUA/UXUrUntNIypzZypvRGgkTWtiTHJ0P1ckcnFIQnVycTtjZkZBNTNodUhOYTVqOXltWGFJ
KGhkJXEKekYqR25CbXYlVSNCcXBtczh+VGA8WikxfDZjTDsoPDNsVn4xeCs4e1dBUlAmWk9VZFEr
a0dBRVE7Zz1GIzxlN3dyCnpoWn4lXjNWYE19TnR3czBgKUwrNEdNUn19YHV1ZE9sfnZCMEpgXjQm
WkFWek8oRSh0Z15aKFNfPEEtdF84YDJMNQp6Mj4zUVRkKDJfOSokNiNJT0ZfcnRoTUFkflB3bGB0
YjtAZ0kwMjlHVy1eKTl5P0t0eXc+fjRHZWRUKSpqSUYqPjcKej0zNXNlbnclYDdYcSE2Tl43YEFm
emUyTzBMflg4NzJmR09BcH5jOVF4Q2xwU1M3eD1scnpiKnc5KTZqcHFwYlZ3CnpScCRfRkRxSjQy
QSZTKV5XKz5AM3NnaD9KMWpZZXl1Q3pzPzdqOSh0U3A3MnktTGBzcXNeTzYlTWBtVmNeUjhUeAp6
JHoobHdNPzVeWlNhQm1gWTEqeW5VM1lnayhHaTwteDQtSVNZcFdIYlZhWUBsPn55IVNnajxRcEtQ
cGBpUkZ2M1oKekI0KyE/eUI/cllNPWxtKmtEalI7eCY4eFlqOCR4aDtvck9KI0Q+SCZLJjRNSFM3
fj9DS2s+Jip6aVROJSk2Pk08CnojO3FRPTl7UUw9ZExCNCVBVUhVZiVER317cExoeWx5TEF3PD1z
VCghLVl8Xy01P01+ZDZWI2plKG9xNzYzKXg3Owp6RmQhTSppeDdCT2s2I0lIY0hwTzxlaiopeFY0
blg8Jm84TDZ2dlckKXElQ0dzVn18T0pSQFY2PCViVjBhR35+RUEKektSPSheYm5WJSpYVDhIbGg9
RmFiaFlBV1gqIVAyd1pWIzlqRiR3OXA4PSVzRGBreU5INEB2IT5RdWpMIy03eGFFCnoqbH5Cbkp2
JSFhZ0BlSiglV0ppeW9mZmpHNUdEJTY5OGRYNyF8WlppLXVtX0hfcUFDbWcjaFNwbWFPUzV3MjdH
Jgp6XlBLSk4/SHdKMUROcTZAK0t5N1FqfitlQlB8UnstRGpJIWIyKz5zZ0okdDV+PnYmcFU/a1Qh
OyVLXjdBUXtDWiYKelRvZ0pmWDFYWVd3UkJsO1ZDXyZjcn1MaWMpLTdBOyVMQFhleEI9NWFiY0I/
aThebS0+cj5xOCojdWhUXzxMeytgCnowWXY8PTlKZUBZVl9hcm83X3YwfXBkPkB3STJXejRMTWNI
eEVzcGowRVRrJWBFe00zJUhoSG9pYXZxV144SjswdAp6eHhDUEY/YjxhNkx7c09DaDdvbF8xQkJT
ZFFnMEhDaE1rPik8Si1AJnZhJktnREB9MVRvbTtrPVZKOUNLJFpZejgKenk0dHAxYihzRTIoUytj
cC10Izh1eD1nKXh2JDhvLUwjM0tIcSlPbm15S247dGplX0NCO2MkcS1feWdDUTAmQy1oCnowcyl5
NDcjTFYmSD0yaE9KO2Q4dVRsKWxfP3lvI1BFNGxBcDFvS0toOCQjI3hQREpKNSgkXjNLTWFDaEYz
Pj9XUAp6cGomeyMzYUspSyRAfTszTjlTcmdGVTdPdUw/VGZTPmgle3t4cyZefWtTVUB2MyVEYWkl
aHItTSh8IW9yU0VBTTYKemNCaT5rOERuYE5oR2pKKTxrVklgMG9zO1I5b2FFRUd2ZmUqMj1mV1d0
cDkxa0otbjkmU1BtdnpTSkw3NipqK18pCno4fDBGYXJyTjxYWmVGQFEoSlElVTBMdE1ER2tpbDha
NThsO2BBRDtAcktLaE9NUEIzbG5fUXtaPjRCPXptKUFaTQp6KC0lZWdlaihySntzO2ttX1V6Z0Vg
dVlxZys8SnBzMEpGaUBDQTVkPGY+U0tXaWk/WE9iXkpyPVJJMDJYbDR6R1UKentxRE1fUShEVnJn
MDQlIyZwK0xQODFvQkI4LT1WN0FxN0tPaS1vZUxhMih1YHxMV1JqdUpBTEd4eitwUDJJcGI9CnpI
Rkc+V0JjaDJkYkthRVRtKHYhN3dNWmxxMCUxJig5dUNnUURMS3FYd1Epb0JmI15vK05WN29tPkc9
STNDI2FqPQp6cXtOPE1ldElyYlAtYUJea0hiJSZwND4wYDIhd3RAd3ljY1MkSlNuPyk5RnB3K05j
Y3FzRWdNVVIwdVIoJmM4VGQKejBHTShwYm9DMXA8Z29fTWVtQSNQaTl+WWkhQz5tIUQ9LVVEREI4
eGhAaFMpblA8aXs5cH0qIWx6WDs5OFBUYXtoCnplUGpWMGY/cVRlPHxmTkxyYTdTJT93PX1xbVpk
UmZSM3VqIWNRNHZVZDBxbm18MnlxNnM1PFJza3MwPiFIUkkjcwp6VFR0PXYlU2FFMVhQMmc0I0F3
NmlDMChBKj9SSWo9eDt9a3ZyfV5SYzZ0ST52N3ZNKHRMNVBueFpZPW53JiVpVjUKeih4cHEjZW0j
RXQ3O2MxcDRJVUkhISNNJmZCa0phQCFhe2ErcV5GbHxWOW5fP2A2JUo8ZzFTYmRTMGFoMG9RViNC
CnpLNFdocnRJWlMlKntFc051dUVEUVdRaj1zRT5TZEMyaylvUGJoPmhDKGFKWnVSO0g9TG5RVmt3
ajBlI240SkhmbQp6NU4rPUhDN3R9a0MmUitSUE12eTRDWDx0Q29pTWU8TFRuZVRjJEtPZiE9OWdZ
JGZhI0lHSTE1TktiXmliLUFXVkgKemxhb2EtcFZnKkdgT3NmWUttamxeR18rNWVARzE0S2R5fSZS
PlczKnJQJXRlUzNQUms8STtYeGkmIyRNXkJGKjRICnord1FUbz9LZXoreVQkMEYtUylraElQfVU4
ZjlJKElwMmwwfHArOGF1Sz9pXkI9WUJgens7Jl5LX1RzVXQwNUIqeQp6UXh+TCtodEAhKnRxJVM5
LUszUDFLSy18RS0mVTYtVUReT1B3UVlyRklHNnV0Q15rMSYlPTM7e3pyQXR6U044a0EKeklPenxP
fDdUX018REBxUkVKRUx4Yk1Oc0twY0hCVzVNPXluXnZ3MF41S2d6Wm8weW9pVXA4Xmg3fkgpN20l
OHIqCnpASFR1MSFHe29sNDxZenRnJjs7eml2Uz0jIThUKGxeJXJxZUM9fjZOXkFCJCh0WEJETFM4
S1YmMWF7M31Kcyk5Swp6PTFibGl2KGhgOz40OUA9UGRtN0I2QGM/PDdnQGtJVEJSPHZ5ZkUxQjt6
fCMkJTEtY1QxOVNsaVA8ZS0hKmM/dCMKeiR4NkYhdFBnaGklPTF9RCp4LVk5S1kmazVVSldhZiUq
OyZLbEVUbTxJVUVrSHpDUCNmeXBrRF5ZNnlsSVFUR2U8CnpPUjN2KFV7JVpHO2tsamZ0Sn11IURK
c15LQWpfMSojM2M/NUViSFhLWnF4fT9vNHZtMWJ8I1k8KX1hRkMjWHBQMQp6Vyo+ai0tQFFGMVhk
XlV+e2JBVEJGOFpUPVF2NVVrTzFJdiFtY2h7REIwbiNgb2t3QXJoZ0pkUFo9Z2s9TXhEckcKemRp
d3o7ZXFoPiZ5dH1lbjR9OVUpU3whcUJ2bjVYJTQxOHZAcF92KEs4YWFqOUVBODhaZ3xpMHRoQFUm
WCp0fGFfCno3SiVpfTglaVZzcXI2VVE0bDk2bDw4R2NSQFU0RFh2Nns2UWVESTFvU241MEM+RkY5
MD0/PzRnY05nTEZlaWspXgp6LW8mSU5JZSF5aXJvJFI4M0A/QHw4UnU8eD9IV2Q0MDVFKH5UV2VL
UTQmJmlXa215ezw4R2pORG80bndWaV5zdzgKSXtoe2FvMXwteypaVTZ1UAoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYyODJiNzMzMjNjMmJkY2EyZjQ0MjQwNjBiYjgzMGI2
ODVlY2VmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFn
ZS1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA3ODV4NTg1CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NTg1CitsYXllciBhdCAo
MCwwKSBzaXplIDc4NXg1ODUKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1
eDU4NQorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDU2OQorICAgICAg
UmVuZGVyQlIge0JSfSBhdCAoMCwwKSBzaXplIDB4MTkKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDEwLDgpIHNpemUgMzZ4MjAKKyAgUmVuZGVy
QmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgxMCw4KSBzaXplIDM2eDIwCisgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzZ4MTkKKyAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDM2OiAiVEVTVCIKK2xheWVyIGF0ICgxMCwyOCkgc2l6ZSAzNngyMAorICBSZW5kZXJC
bG9jayAocG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEwLDI4KSBzaXplIDM2eDIwCisgICAg
UmVuZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMzZ4MTkKKyAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDM2OiAiVEVTVCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzAyOGRjMmFkOGI5ZjBkMDE0MzA5MWZhMDE2OGM1YzYzODhhNTkyMgpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgOTM0Nwp6Y21lSE5YSC0rXm80PGc5aW9pSUlHOXR4LXE2M0hta3RTcHVi
QCZHbTZzMWNPMFNPOHlnYnFQKlU+cm09MnVSSlMKemJWOEJkZ1E2bGVOe2ZeUGtzZip0RXkrSDI9
SW95UnV4RyNRKilSVnlkPVlRQkh9Q3REVXdQajlAUkZnZiRQUzRlCnoyIWU+PHsmbjZNSz9EdlUy
KjNGQGV6PnlkaGRweGUmdkNCez0zV2pyOVVXWGYzQVlnXjZeLWpvX1VkWk5zYGlkMgp6b2lJK3lE
a3BDXnNvemp7eXBGK356VjZgb2xKaFBmS0BLM2VeSmxPNkNRVU59SldMJmY+Kmt8ezR7U01kaDw8
fWwKel8kT2FzXlhnbFEkSyleNntiS1Jtd3dNckNmPDxLJm8/eHg7UWdvO3NANTM0fHt+YEJ9Pyhk
JnduczI/ViU4d19RCnpIMyVQNUhAM2Q+R34mUlk1eD9kZ29SRCFKT0lGPX1hTktCLXBHPWMhWXBr
ZUZAXlIqXnd0MSRvSDd2VGl5MCMtbwp6PFJ1JU1UOT1PV0FnU3B1dVpSOVQ4JW1PRzxWZEAzTjRf
Mn53WTBQfUhnMTNKU0BfNn41MUJJYV5ZZz1kV3VKMCgKekJHUD5YNVJZdil6YyQpMlJKUUkjZW07
M2BFQXBLSXs4OFkhdzZ3SjQ4RjZ6Mjg5MU12JEdXV21wTG8+YXktZ1MmCnp6SzRySz4yODwxZEwz
UnxNblZMTjIxYjYzZ25QRV5oN2FCLSVOTi1BUG95YlBIdyZ8N2BIYDx5amVxKj0zZyloagp6Vk9R
VVhXI3tEUktLaypMe280bWBMV1JhZzZBbFI/SHkjOGpga0NiS3tPUCR4a3JPUWFGYyE8fUdQNn5i
bXY8ZWcKejxxWXNSMTRocUo0bFo+Vnh3RVZVa2JpfVYkPUxYZShRUyM9dH5BbVNlZFVvfF85aUE+
TDJRUGE9VihpPVJhdV5PCnptRz81TWkrO19zd0xNTHJyYXRzJng2enNUU1N2U3BgbyR7KWhtb0lP
LURvPWVjQn1BUyVDKEJTdGo/Xkc2PGhCZgp6JDBEYXpKKDhAdntBN302VGxgNzt4OHQ4Kl4lYzh4
e0pgRlpOWT83PD54PFJ5cVAlP2hHQUY7YnZiKEomZlVVRkcKenFMTVk4PXZKOWtQJSF0MGVCTzl4
KXxFU1Y8fnhrQSkpcDNQSDNMVkhJPDh9ckIqbCRVKn5PXnZvJlJRcDwqNEZGCnpaT0t8aiQoazVC
eGVSeiVhcS1lPHFJPll0WFdoT3Nja0ohbjtfQiteUXd8P34/QkdYfmI8LWMmYi1BdWdePCtneAp6
b1R4a3xDbnR2XmI+fl9jckpQeHRFKnNFVWBRbzdGJmdgJTluSGBHNGF5SilnR0ZzbDBRO051ZWIy
ckBWT3MtenQKenEhVCUyXzwqKyR3cXdLeTxEY3hDbypscDRTMntnRjx5RE5PWGElZkhIQW5+Q1RB
ZHIqeF49N0J3TDk8a3lIfGh5CnpmaH47ODV0WT5uUWhkS1g/NC1QZzF1fDtfPSRnR2JYOEhFQFZR
RkN7LXFYRD95JW1KWD91JmAxbExLWmRmXz05awp6c3hNa1pDYCpmUEViR21WeVZDUWRQRis4YipW
NWg8e0klfCRxb1pUdT5EIWVueXtfVSlIdk8tM3F4YntfVE17dE0KenRVMDhQZWYqcSZEYCRPS0tV
TSlwbEdXMU1jb31nYkpLel9IVjFhJFRhVVl9LWNSU1UxPmZfPDQlfEBmKExXbSExCnoofDdMYzh8
cXJDeVFjUyl4PzZ3d1peR2c7ajRKbFZ4KiQ/RkQxVDAxYXhoI2JGRlJZMGJPWEt8SGJ5WUlgVDZD
QQp6I25JTWlTLS1KbEExMmdARU4pPzg7bnpxQmxmfFNIKXxDZHluIz1XSypsSml8YjVxbGElSkQt
YDxBR3d6amAzbFoKej9LQn1kIT14YENSZGdScSM+ZDUodV4lS1FCfjVmPlVeej0yNE5eWVd2S3RZ
a19EYTBee2dTfTdnJjI5V3FjfkRyCnpvWjgqdGtBaUtHNzVEV3V5WlluWk1iNU9QcStENnRYP054
c05IMFdtYjh7MDRecyUoSUtlTzZ6VXR5Kjs7ISk4Mgp6dTEtJShGSCE9TiV7LWVgRU48Z191O2hE
fXZ1RUdiLTRvY2FVaTkraV8zPStIdlpscHQxN0FEU1FwKT04SHA4eFkKejZKK2lMb3lzTkgqZjhI
YyspZE0qcT07Y1JQbWIjJk5PPUF1Vk07PSVAaUk1S0FVIzM7c2d0d1hsQ0BqYWJTWnFkCnpFS1gt
X0k5aTZjK0YlPHZlKnZRWCN+JTR+QlhhUUNORX4rUSg+YTtJeHdGbCZpbktGfUVwZktOOGFVR1gy
PU5Sdgp6QjcmJE4qZTdtMkdCVURYJkNOaFU/TzJTPkwkOUZea0BCWEwleiFxdTBOKTc3JGx+c1Bk
bmxLX3Ziaj01V3Q4NXcKekdCaipedmAtfWc7fkp8fFI4WmdubmF+YmNreU8zOz5CKyUhZDZsZn15
XjVDU2dOYEYjM3JLaEYjWWpKc3p5PTRfCnpoWjtreHpGVjJAaTxYYEV7SGheRUpEPzNWclczVEBB
R3xUMDYmezhvUUVhSlA9dzxqK3c+OEgmIWw/dVI0O3NFaQp6ckAqbH03SjlmQkxoZWJeUilnfSRi
bC13VngmYSMxWlowJi1rcHE9V1k2aXdhZDIzYHxlRDhCcm0taFkmUHh2JDYKel9qfTl+JW5TYjFr
MntmKD9BYG5PdUVZTjk4RXcwfGtXVCFwM3peOUVWXkw+bypmdEU+ODMtSlRDS0wqVkw/U0o8Cnoj
bzcyYjhtQSNZND5fOUpGXkRgKSo0WnFgPy1lOE1sNnh4amR8UnM1TTd1MW11JkFnWk5gQEBrY3Yp
OSFTJlRPKQp6cmN9SDdFISFsPWYwPjBMYXlKMzR4XnMoe0xifiZib0pvSWRnO35ETVNXMTghSjxz
fEk1azxeJTtpNENuT2p0cWYKek5Me2V3ZEFwMHJuazV2PClKKVpFaWNYTH0tbCtBKzl1fWx4c2R9
K1pVT3xFNEgob3lVSUFIanhacklMIWNOWkd2CnokbGtwIUJffHxSb0RBP29KPGVvSzhGOGJgQTZ4
QWQrWGA3fWNyMndXZEZMSkFuZFlyODFeNGdZbShRPFdYakwwSAp6Nk91MjROSUVHV0RvRFNXU240
Xn09Qz9TUyMrKnIjWkc3RHotOFhrY2dxbjJ7TT1HTX1SNTh5e1NLbGtPPih8PWAKekVxQjRxZGJ6
dHgtNThxd09YSHAxfDJyYkBvUSlQbFIqdU5PR05vVW0yNkxiViZqMkRwOGU3UiZEI1R6cHJTdykk
CnpBJDdCdllDd2B6UWdWazxMeERZQEVlKFIrYVojO0hxRj5MVl9+eiVXO0A2KDZmMUI8dCsyRzYp
aUpTOGNeZlFfXwp6SzBmSk94eFpEfEgxQz1RZnpAZUFfVUxocGdBTDA9P05CSjVaNXF5aWlHVzNK
OXFGeFZZaSZyfm4/SCsteSNOVWIKej8yUGQ2X0UtZkEoeXFoaUYyRFd1K20mPCFpYFVvUnpsemRY
e345WFIyMXtkaE5DKGNuPkhQNVY+RVglVDk5ZilPCnpfNTI2XyQpOWtmZ1hoQmZKP2NmV3JXTEo5
dVgoKUxZRV5uRyVUS2smYHMhNyQ8dHtVTlcjQkJjQ1gwTHNGYWxwTAp6cEk4MyFOYH5TNF93UnVi
aWdBfDYmclhxYzdgd150Kz9iZGNESn0wIUdMJmQtJl8rN2AmZndlTSNObHlqdEhtcjkKek9JV0c7
V1gmVH1ofVR7fih+b0w8YmE8UEtwK2FKWXEqVFpmS3lQYmZWXihKN0YtNjZpd2I0WVZ6eVd3anlv
eihXCnpqNTBxRzl2MTRtQzVOeGRkJUJYZCh6bWZQOVJUJV9MQit3LUI+ZEpLcU8/c0hYJUw/Rl9J
NG1KP2QzNWpoUHohUgp6V3wpT25fIUJaQE9NI2FGYHE2U20oMW00RCtBQ2pMNlY+Un1fUUhyZE1O
OyppJCkhdGtlRk5OO05Id1BLWHVQd1kKem99VGdTdjE7ZiEkUndsQXE+U08rdz1xbFFqYlY5eUEw
RioxNWlQLVk7b3NjZmltQ3gpVnEyMWlDcVRuU089TG9JCnoxM2xzVno+OU8/JEZIT3AxNmRKeSso
QDFjUXVrdSkmK1V8RlEmVXJtRyVPSmE1amUkdns2K1piVFZGaWhaa0puewp6OXBLZSYlPTdgYHc1
cFdkPlFWTmRgaHMhb1A2N150bTczUzZlOXxKWW1XSEVeKHJxNmByIyRacGt4VEpDZ2I2bWkKemRi
SmJDKF41QThJdVJQY1FhPSUqbG8rWnwmPCtmNylHKjIxIyliPG13ODxGWUZsS3w8UmdhfiNNRTlT
YllTV3JjCnooKDspcHExKkhVKG5SaThWLW8xckk4c1pCd3BQaGFRfHE5T20xSmN7Sl5UaUFrXiRB
cCo7Y3x2YFpgKm0pXjh3TQp6ISYwaXp7Y1A4QGclUCtuTWE5e1dXJlBRQCgjdm5MUlpZdWxkflV1
JGg3R2E8UWJ9Q3pBaFQtYkFRdTwmQTEoS34Kejx8aC1uRWpISFd4KkBBMnVKcjhlWXpQUFpsQWY+
RVNLP31CWUhFNXx1Mn0jUGRWMD4ydj1OLWZUJmYxeTtZPCFICnpPLSZ0IU8teX15YWdIUGxkSmNy
NVlkNktCK3szO2ArPFReOXFvJXc1diN0IUk0KlMkYjJXNHltVEZkfjxuZXhjagp6UFlgc1ZKU2dx
SUh1dD4/TnBeOUojX09SNGR2eypleV9qO3d1UmN0S3B0Sl9VTyNZe3pOUGh3TGNEYlphYj5TSWcK
ekZ+Y1BGUXxsbDJMZTRlMypsUypMKXpwO2ZHWjRoP19vUCtMKjdqOStqczxocFlrK2t6TXchNlop
YUFBR0xedTRgCnpTRnVYQXdSY0NGe3dDP2lsNH1meDNRQ1crU15IUHJNbio/aENPU1hfIU9tKEhu
Jmp5PTBrQCVnMTt3UCM7NSMjYwp6NSVhQ2VXPkIkK3FMQ35Qent+c2QxIyEmVzwleitaJWRkVi0r
eHJrZkdVKjRVJWBxNXY9SF9GcW5iaXArcUNlZioKeiRKJlFNQVAyMmprWXN5JGRkNUtnaUt6OUBz
U3l7fE02Ti1CRmZ9fCFRJWwqKXt3XyQhdi0pRU4jKWdeYHNVVXAtCnpyZWBlNSshJn0xeT4hVX5L
ekR8bjRWQlh3d09lP3s0bmF9TFJSJX52a01GZG1ffmpMQSFVN3lwJHpxUlh1c1R7Qgp6LTt2NyZr
d0FTKmQpfE5YKCk4S15xYDtRbmx7Wjc+YWl7eXI8WiNBLTlJVUwyKTYzSGM1YFE5OGRlPTtVTU53
ZykKemE/UGw3YmZQOCFQdTItUythTDV1IylffHFERHZzWWVYOTJmNWFOLXN1X3pnQUYhYX5PQVNG
OyU5cUFYKmN2dCVeCnp3KEViRDM3QzMpKE8oeFo/X2VsQDQpbDk9SFZmZGJhe2p9OVNUc3Q/bUoj
PVpYX2pTZkxHJG0kc2RJMEkkJDwtdgp6Qz1Nc3haOTB4TkdFaTUtVHIzaDJgYit3aj90c352R0Rz
SjN2dz5KV25PQnVVPGdQJmtLeE9Fa3M3TiY7PnkkRDUKekNzfCFOaUYzPnkhb25FX0ByQnBsfERo
YHJ2OzwteTJ9PXkjJkRARFJTdHxyYmtobV5RbEVwYy1KZkcpbyUtWl5tCnojOSMmbCVrSzwqMEl7
ND1Ea0xJdF4mMHc8cSFDPz1ndypUMHhKPTlxKT0kbkQ4NkRCSEQhaFJNcC1oLSlBMkZrQAp6bzNM
alh0fV9icV43Xi12ZTMqWEdNPXgzeS1ARl9nOUVgKV4hVktFXmt4Vm1LSGMpKH0mdW1LSzF+MGhs
eGhVbl4Kend7SVhPdTxQVG1LPDVKV0dKcz9mNT5sN2ZDLWM/YnhBRyZadlJDK1heM2RgWEJkKHNx
U0N5Qm18M3hLbC1AWVlwCno0JEVidl9fSCN8IUlpTUwyJkchfS1BNyZja2pgZm5fZT94anZxMl9q
Tyt5Ync4fGtjM2lyVm5aPmFgaithfDUydAp6bit3TlFGTHpyN0VSRWoqb35JPlhhekgjeHhhfnNA
OzYocVpsVGRUSioyKTMyIylBWFc3KSRCXiF2V3BeMEZWY1MKenR3JjAmdUhGUFgpYENTfWdsIzM1
aDYjMjlLZz5aaEFIbFQpZ3JXKSRCVVM9JTItM1BxSnxCMmdPR31Hak5zPCoxCnorLVZOZmA1fCZZ
Tz1ufEAkZXxNemp+eSN0WFhUJnxzd003fEZ2cE9eeDszOWdOMnxFQnJeMkl2dzMzc1BnR0RAOQp6
RWU/LTBNZ2hqeF5wJEZnTDZOX0R0Y21+aj9xTD9yUVU9SkU/WW57MCooPmZBJE5fa3xSfGtzKE1X
JiR2QWAqUG8KejAtTVNVcyZQaTAxK2NgQllrck9RO0JWcHB7elU9bzhFOFU9UHY4KU87N0laSk9p
V0U8NkhFekIkMV5zVVpGdkwlCnpYRDktLWwyZEB7WHIqPzQySD1CVntRSnhBV1F+K08jJlRDQE19
enFnRjQ8cncjcGBzSlItbm4xZEk5VT4wSilRMwp6VU9AWjE4cGlUaUlyKml4YCZQUUcrPUolYzJv
MD9OYndmWGd5dWolI3p2SG0oTkU4dzMxfW4qM1pOTUpJd0Y3TWUKelVgJFVJZ0NHSVB5R0w5Y3I0
QCpSbUplI3hCSzlnS3M1ck5RcGVxNCpmRmAxSGBsd1FuRmk+c2hzNT1taz1TfTV4CnoqPXpudVZL
T1g/KDwlVGUjRUF1fGdTSEgwKEV5Y0tVVzd8cTB0VXh7MUBWfjtVZz5mNm5QXypNWGlvemB0JTli
RAp6aD0+Mz02ZHgwX1hXaiR+e18zY3BYP0BSQ1lpbVliXnQrfn1DTj91NUE5d31+UE9mRE1FWDhw
QjZGOTxKUCl6VjQKem5LUmBLNHIxXzVnSCMhVzdWPWpNV2Q/VDJaKj8jbnJJa0ZlIUREVTdwQEpl
aUk4TlozNGkkfnNicD5nKylqb0BmCnoyPzg1e0JTQ2UxNjk7TGhTa19QU3c9eSZfRj4hUHA1dDBl
P1h2TlQ8I2xfSnBAcnxTLT9vYGVTPXlhZzFsWVJAcwp6VX10MTs/RW9AUnEjejlnZkojNiQtMn5N
bWNRSypaV0FOP2xAUDQ0emRwamxHXmc8fmdqeWdsPyY0VXA2cndMVTgKelFsQUY3VTA3SkNMT1c5
Z3V5T2Q7TjU+UXRsRTV2WGtgKEJMVWRpSUgyV1R8ZnotdEZ4YyY2SHxGUDlke0E2cnxjCnpHYCs/
X2E2YCRJOz04aGlxPHMkcmpSUWYwdXkrUClXNHJtQF9GYlJ9XjdUcGcocVZKSl4xUXF9RXxkWmol
JUdRRAp6cT9BQF5XdT9EdSteeWM/dGtMekNvRERWXnltemRrKWxwYjc3KUtOb2ZVIVdRRE93aDE1
KFkhfjFkTjRtZzIyMWcKem0yQ3B+JD9fYChYJCZjQVpmaVU3KEAqTzspYipTdHVHVVBzMUkhZlVs
RCpvJHo2cTdfe2R6Qi0lR0RmPjVKMUFTCnopNVJ6TiNlZiVDVjZONjsleG8mMFNgJWIoeS09SXI3
WCtPV0dRI3IoY205Wn5ucEFkX3dEeCpsKXJgYlJ5RS1XMwp6JClMQWl6JkZDb3Iwbk1CPm1ZVzdf
YlBsckNDQDk2VmdwNmFNKXZtaHQqK3ZWbVJCIWRvX3s2NzhBb3BnY0xPMWYKekNYO1FBamc1Vkxj
T25QVUNJbm9lVl5KYzBzdyo5RD4zSS1HMCNqY0RWaCFhd2BqTCU8WlJGJSsyREFZMXo4OTxXCnpg
MHxObE9JVjs1NytYbTRSOFA/dU5fe3xnYyt1LW44S0FJVHB2ZkBVUVZRa1BAVy1kOUozU0oyNFpk
JC1idHVaYwp6engqez1LTT5hLXIpXys7QSlRQElfaE12RylkYEFmQVA2Y1Naci1vdUoleUdSbzhn
MDk/ITI7YFFWbSFkUjNpO3MKejVBZ3h2P2BGR3VJMSVHfCtIM3ExeElNeWpGOThnSitDWlNFZ0B3
aDEzbH5gOT0kSW5jaWRgP21KJjlTPEVeJFd2CnpRQFgoZjN7fjlSK2B0cilXSG07Z0pGTHR3NUBq
MzFNRH5ObXpZRnxeKzlUayFNN2s2fGEodiR8YkMqfVlNKmJ1KAp6endzP1gzM1JGb15vKFdIOTkj
Zig8M3ZrSVVOMihPaGwrM1krfSZLQXIqNGlZdjZxYypJNkZ0fVF5RTI+JEtITiQKenZeNWRVSHhR
MjtBcnJkbnU8bTBwVz9DSWBXNWRIT05nOWhfJmgqbnZFZDk0bDB9eHEqM1lQTmVwTkVtZi1hVUtM
CnpqPURfdVMxY3hTI1NsYnRod2B9RDFEQ2I2SDR4bU92aE1vUnBlUndyIVIyZ0ZTSERHSTFhZz9v
c05vTzhWJTV9cQp6ejcqSmx5NV4kOTB6IzFpNSo7S1pQSGB4T2pRLWU4SV5uSHJwI3dwezEydkBT
JDkwQiYxY09gI2pSdnRwcnp0M0oKejE5SVNeazRrOzw1a3kxfSN7WHplbjErfndjNXdMY0QycWJi
Z3BqfjZrdyUrXmtSRGREaDVXNUFQb2goVFBCUD94CnpRUlBGT3NobVhSNDliUkM4N1gpJFMxPiNT
RUJOXzJyaGw+eGYkPlRjalY3YVVjTm59ekRmQ1RIajBfOzxNfmQhKQp6NGRZOWZvK1A5YWNwUEBk
TFloZ0FETFV3WihoQEtXMCp7akFjVWlAJDE7USVTP3dNO2A9ezIhSDw4OUpGcld1LT0KemNCQWAl
dHBRRj92a2llRUtHI187R0FhcEJQYDRPb20wK31SKkpGI1JyOVlffkJ3WWRnO29tTS14bnduZktw
PHE3CnpmJTVRfmBaQTl5VkVAVG51JEM/bTUhZXNsR0s7SjVTfnA2MXMzOGhxaGN7SjNsWkdYVGZj
fEYtIWNMNkk5Y0F0Vgp6cHc0U1hVcUpLREZsKHcoUSlRPzZfenxIRGExaDRFKFojVlJ0aylOc20x
STB5UFFfViFUajA0SmcrUGFqUngyJGsKenczZz9taFQ4UiZWNU83R2JYIzZIY0dEaSgwRCMyPjhh
dFFmKHZ7cj5mP1leVkl3PlkqeGRGP2EkOHZ8VERfWHlJCnopZF8jKz5GTD0zI1RtRmRtemxwRWt4
VWhCcz8qYU5lNlNtfXFDZ0RwcWI+Ml5rMGd8RGUwKG8leVYtMlpUPiFOSwp6MDcwVj54cjxPaGFX
T0hzMldvMzdEPmF2QS1kWmohRSpmYyFKY0JsYWkkUT44Uz0oKGszZ04lZDwwbmUyKWUwVn4KemY3
QDEra0F3YHtpQlhDPl4oKyhCKytwO3Y5YEJzZTFDNSFKU0JiOSs7ZShLWTFJXjlPXzZJMmdycTl9
XnRzQjZxCnp4N2VrfnEyWTBWZT9PS3AwWWdzJHs7TXNIUng2P0RiKDNXbGp2eGRuTiRSMG4peGZu
ZGBvZT1KJV97akI+STg7Kwp6ekpNPm16Km8/TTZKSzZDMEEwQ1NGUUQyVU40bndZKmNIZ0x0QzR1
bDZoKXFSe3wtYWFiYFloJkQ4U0cjVXAldz0Kekg1NjxMODd2P1MlO29gdjA5dEU3SWIpdWcwNW4z
X3dZalQ5SUZjOW0/WkkzQUx0dDg9VmBPbjQ2Yn18NEElYz9sCnoheyNNRj5fdlktM1A2UytYR3s+
ZkFPdWg9NGpab2tzKTJiUUkhQ0xoczBkbkxzdSg4ZTgkdUtYYitTazJ4XzBTRwp6JklrM3dTa0ZX
QW9xJjhVXyptZXhBNVVGPjJTa1BPbmR6U2RKfUItbSsqbDtAcz0/X3NNJDN1cVElKGkxRD88RTUK
enZqQWlubj16bi04aSM5TzlBWWU+QV82JGViVnhnQiRZRTFwZURGVm0me01WMkxXckhNWGpQcGFV
fUVkcTc/fmBLCnpCTV9FQFpLSkxMVmYkKyNwTTFrej85d3BUJSlzPTQ1P35iQWh0fX5VNjA7cys2
djFiKXY4UD9UNzNBY2NWRzVaPQp6QTZmJGNIMjgyMUtfMXJPZX0+ciYhKUpnNGxqKEd9Qm5VZ0dD
bCpZZWNRZn5aVG8tTDY2I1FiNHF6P0ZMOCN0TDsKem1Ubk0jdztkO1UxWGw9USomfVpYNDNVeExF
YG9mIyQ/dUJ3Mk5tUGI3O0lMZTFfRk5CKy0qRnZgPjRUOTdDM0Y/CnoxbDxSYlR+eWRNWE0rYXEw
QUZ+VTZ+RzdBY1RvZ1Rae0Fza0FVOVAxXkR5Rz9nTX1ec3tlMHJ6Xyk8WkNkTXpKIwp6RUU8ZmxA
TFdJOERfeHNjO0NNeHtWNlorczw4Jj18ZVg+JGxgX0w5LW82e0N5PFpGb0VgRUFIfEVyKStXTFN8
IWoKekRacUttPSZwbHNrYHVMITUyLWNkN2UpPnxoczE5P1Q3ViQ7eDVMTUZ8NktZZjY5MW55UUVA
UnkwMWdQbDtmUElqCnohMm8qcig9bVdhbWxsYGlJM0BQKS1+Q2dNfEZxJTFGQ2d2U3BgTCp0VGVo
UmAwe254dnxNMVRMayM1YzF0XyZiQgp6dShnTG5nVUI8ZTNRKk85WHtManJ5clNhcnxBM2BPRCtD
Yjk9UDtHMylYS0BwPkZFMHZTWU9uakg4JEhQM1ZLZjYKejRpa34+PThvMi1gPUtycTgyOWYmLXxz
TjVBO2ZIaFlhWEJzPzA2dSt6cFNEIWdWYj9GQnZkb3ViY351MjZCe2NrCnpwP2J7S21MfCVGV1Rz
VkQyWkF9PShDbUhmJn5QP1hAQ2FeIWMmfUAmMmhOQHx5aX14fl52bU1salJ9MXt5X0VwYAp6LV91
JVpWPWtYK0ZYKS18ckhQSkNBM24qd0Z6YVcyKz02ZCQhOHBkbiNtUzZnO05+YmVTY002KUsmNVA3
XmpSYiUKek96Tmk2XnJHMj0kYXB6MSNOJHxGK2hZczY3aEkjdVdgWCtYXz02NndqdWdVOS1GWEw+
eDVRVFJCY2pkJndYZzkpCno9JnY3fSk9Z2MxOHxfe1BXMHJkRiEjYkVDPk9BJGA7ODZ9UXdzSnI2
V1V6S2JaKSo5PnA8K0N8ey1WQ0lHRnk+Rgp6QnZwTypXfkRoPnl8X31zaHJ9eGtFOGdHT1JEQWdY
b35zNlNeZExFITBsUiU3MjJzMlUzdigyY1EyblNSI0R9YjsKeiFEfTJwNTNvMGgqc31ec082KWRD
QipZUm1GQEYrYldFKis+UHY0ZEpafkh4LTRRfn04eENANW9eTTB8cnt+eXtXCkIreURSbwoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3Jt
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFu
c2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjI4
MmI3MzMyM2MyYmRjYTJmNDQyNDA2MGJiODMwYjY4NWVjZWZkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NTg1CisgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NTg1CitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg1ODUK
KyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDU4NQorICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDU2OQorICAgICAgUmVuZGVyQlIge0JSfSBhdCAo
MCwwKSBzaXplIDB4MTkKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAorbGF5ZXIgYXQgKDEwLDgpIHNpemUgMzZ4MjAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQp
IHtESVZ9IGF0ICgxMCw4KSBzaXplIDM2eDIwCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMzZ4MTkKKyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM2OiAiVEVTVCIK
K2xheWVyIGF0ICgxMCwyOCkgc2l6ZSAzNngyMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkg
ekk6IDEge0RJVn0gYXQgKDEwLDI4KSBzaXplIDM2eDIwCisgICAgUmVuZGVyVGV4dCB6STogMSB7
I3RleHR9IGF0ICgwLDApIHNpemUgMzZ4MTkKKyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDM2OiAiVEVTVCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113663</attachid>
            <date>2011-11-04 09:00:54 -0700</date>
            <delta_ts>2011-11-07 09:24:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71225-20111104160052.patch</filename>
            <type>text/plain</type>
            <size>45847</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg4NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NjkxN2RkNDUwMjY2OTk4
MDdlMjBhZWZhNjU0MmI4ZDA4NDM4M2U2Li5kNWQzMDQ4NThhZDRiOTRiNTdmYjFlMTlkNTEwMjY0
MjViMDZmYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTEtMDMgIEFscGhh
IExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIHdoZW4gcG9z
aXRpb246Zml4ZWQgaW4gYSBzZXBhcmF0ZSBsYXllciBpdCBkb2Vzbid0IGdldCBmdWxsIHJlc29s
dXRpb24gd2l0aCBjc3MgdHJhbnNmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFBhc3MgY29udGVudHMgc2NhbGUgZmFjdG9yIHRvIHRoZSBjb21wb3Np
dG9yIHN1Y2ggdGhhdCBpdCBjYW46CisgICAgICAgIDEuIEFkanVzdCBjb250ZW50Qm91bmRzKCkg
b2YgdGhlIGNvbXBvc2l0b2VyIGxheWVycyB3aXRoIGNvbnRlbnQgc2NhbGUuCisgICAgICAgIDIu
IEFwcGx5IHRoZSBjb250ZW50IHNjYWxlIGluIHRoZSBwYWludGVyIGZvciB0ZXh0dXJlIHVwZGF0
ZSBpbiBiZXR0ZXIgcmVzb2x1dGlvbi4KKworICAgICAgICBUZXN0czogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRUcmFuc2Zv
cm0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpzZXREZWJ1Z0Jv
cmRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUxh
eWVyUHJlc2VydmVzM0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVt
Ojp1cGRhdGVDb250ZW50c1ZpZGVvKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpzZXREZWJ1Z0JvcmRlcldpZHRoKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUZXh0dXJlVXBkYXRlckJpdG1hcDo6cHJlcGFyZVRvVXBk
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGV4dHVyZVVwZGF0ZXJTa1BpY3R1cmU6OnNh
bXBsZWRUZXhlbEZvcm1hdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxl
ZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmg6CisKIDIwMTEtMTAtMzEgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1vdmUgbG9jYWxpemF0aW9uIHN1cHBvcnQgaW50byBVSVV0aWwuanMsIHJlZHVjZSBleHRlcm5z
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4OGRmYjFhNjE0MzRkYTg1ZjAwNjg3ODBh
YWEyYjQ4OTVjOTc2ZDBlLi4zNDFkMDQxZmJhYWI0ZTFmZmY0MDdiMzEwYzQwYTU0OTk4MDZkODQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTAz
ICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSB3
aGVuIHBvc2l0aW9uOmZpeGVkIGluIGEgc2VwYXJhdGUgbGF5ZXIgaXQgZG9lc24ndCBnZXQgZnVs
bCByZXNvbHV0aW9uIHdpdGggY3NzIHRyYW5zZm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRzIEdyYXBoaWNzTGF5ZXJDbGllbnQgdG8g
cmV0dXJuIHZhbHVlcyBmb3IgcGFnZVNjYWxlRmFjdG9yIGFuZCBkZXZpY2VTY2FsZUZhY3Rvci4g
VGhleSBhcmUgdXNlZCB0byBkZXRlcm1pbmUgY29udGVudHMgc2NhbGUgZmFjdG9yIGNvbXBvc2l0
ZXIgbGF5ZXJzLgorCisgICAgICAgICogc3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6T3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJbXBsOjpkZXZpY2VTY2FsZUZhY3Rvcik6
CisgICAgICAgIChXZWJLaXQ6Ok92ZXJsYXlHcmFwaGljc0xheWVyQ2xpZW50SW1wbDo6cGFnZVNj
YWxlRmFjdG9yKToKKwogMjAxMS0xMC0zMSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBsb2NhbGl6YXRpb24gc3VwcG9y
dCBpbnRvIFVJVXRpbC5qcywgcmVkdWNlIGV4dGVybnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmNwcAppbmRleCA3MjlhOWFjZGVjYzQ4ZWYwOTljMmU1YjljMzc2MDU5NGQwYzZi
MTdlLi43MzRmNGFlZTAzZmQ3ZmQ5Y2IxMGY2MTI1YzkwNzcyZjliYmVhZjNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE5MSw2ICsxOTEsOSBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiAKIHZv
aWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybSkKIHsKKyAgICAvLyBDYWxsIHRoaXMgbWV0aG9kIGZpcnN0IHRv
IGFzc2lnbiBjb250ZW50cyBzY2FsZSB0byBMYXllckNocm9taXVtIHNvIHRoZSBwYWludGVyIGNh
biBhcHBseSB0aGUgc2NhbGUgdHJhbnNmb3JtLgorICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsK
KwogICAgIGlmICh0cmFuc2Zvcm0gPT0gbV90cmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIApA
QCAtNDQ3LDYgKzQ1MCwxMSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0RGVidWdC
b3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCBib3JkZXJXaWR0aAogICAgIH0KIH0KIAor
dm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdl
ZCgpCit7CisgICAgdXBkYXRlQ29udGVudHNTY2FsZSgpOworfQorCiB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6dXBkYXRlQ2hpbGRMaXN0KCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPExheWVy
Q2hyb21pdW0+ID4gbmV3Q2hpbGRyZW47CkBAIC01NjEsNiArNTY5LDcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QoKQogICAgICAgICB1cGRhdGVB
bmNob3JQb2ludCgpOwogICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKICAgICAgICAgdXBkYXRl
Q2hpbGRyZW5UcmFuc2Zvcm0oKTsKKyAgICAgICAgdXBkYXRlQ29udGVudHNTY2FsZSgpOwogCiAg
ICAgICAgIG1fbGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQobV9zaXplLndpZHRoKCkgLyAy
LjBmLCBtX3NpemUuaGVpZ2h0KCkgLyAyLjBmKSk7CiAKQEAgLTU3MSw2ICs1ODAsOCBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCgpCiAgICAgICAg
IC8vIFNldCB0aGUgb2xkIGxheWVyIHRvIG9wYWNpdHkgb2YgMS4gRnVydGhlciBkb3duIHdlIHdp
bGwgc2V0IHRoZSBvcGFjaXR5IG9uIHRoZSB0cmFuc2Zvcm0gbGF5ZXIuCiAgICAgICAgIG1fbGF5
ZXItPnNldE9wYWNpdHkoMSk7CiAKKyAgICAgICAgbV9sYXllci0+c2V0Q29udGVudHNTY2FsZShj
b250ZW50c1NjYWxlKCkpOworCiAgICAgICAgIC8vIE1vdmUgdGhpcyBsYXllciB0byBiZSBhIGNo
aWxkIG9mIHRoZSB0cmFuc2Zvcm0gbGF5ZXIuCiAgICAgICAgIGlmIChtX2xheWVyLT5wYXJlbnQo
KSkKICAgICAgICAgICAgIG1fbGF5ZXItPnBhcmVudCgpLT5yZXBsYWNlQ2hpbGQobV9sYXllci5n
ZXQoKSwgbV90cmFuc2Zvcm1MYXllci5nZXQoKSk7CkBAIC01OTEsNiArNjAyLDcgQEAgdm9pZCBH
cmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QoKQogICAgICAgICB1
cGRhdGVBbmNob3JQb2ludCgpOwogICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKICAgICAgICAg
dXBkYXRlQ2hpbGRyZW5UcmFuc2Zvcm0oKTsKKyAgICAgICAgdXBkYXRlQ29udGVudHNTY2FsZSgp
OwogCiAgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOwogICAgIH0KQEAgLTYzNCw2ICs2NDYsMTUg
QEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzUmVjdCgpCiAgICAg
bV9jb250ZW50c0xheWVyLT5zZXRCb3VuZHMoSW50U2l6ZShtX2NvbnRlbnRzUmVjdC53aWR0aCgp
LCBtX2NvbnRlbnRzUmVjdC5oZWlnaHQoKSkpOwogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlQ29udGVudHNTY2FsZSgpCit7CisgICAgLy8gSWYgcGFnZSBzY2FsZSBpcyBh
bHJlYWR5IGFwcGxpZWQgdGhlbiB0aGVyZSdzIG5vIG5lZWQgdG8gYXBwbHkgaXQgYWdhaW4uCisg
ICAgaWYgKGFwcGxpZXNQYWdlU2NhbGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXll
ci0+c2V0Q29udGVudHNTY2FsZShjb250ZW50c1NjYWxlKCkpOworfQorCiB2b2lkIEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKExheWVyQ2hyb21pdW0qIGNvbnRlbnRz
TGF5ZXIpCiB7CiAgICAgaWYgKGNvbnRlbnRzTGF5ZXIgPT0gbV9jb250ZW50c0xheWVyKQpAQCAt
NjY0LDYgKzY4NSwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50
c0xheWVyKExheWVyQ2hyb21pdW0qIGNvbnRlbnRzTGF5ZXIpCiAgICAgdXBkYXRlTmFtZXMoKTsK
IH0KIAorZmxvYXQgR3JhcGhpY3NMYXllckNocm9taXVtOjpjb250ZW50c1NjYWxlKCkgY29uc3QK
K3sKKyAgICBpZiAoIWFwcGxpZXNQYWdlU2NhbGUoKSkKKyAgICAgICAgcmV0dXJuIHBhZ2VTY2Fs
ZUZhY3RvcigpICogZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gMS4wZjsKK30KKwog
Ly8gVGhpcyBmdW5jdGlvbiBzaW1wbHkgbWltaWNzIHRoZSBvcGVyYXRpb24gb2YgR3JhcGhpY3NM
YXllckNBCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlT3BhY2l0eU9uTGF5ZXIo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCA3MTkwZTUwNTlmYzU2
MTY0OTY5NjkwNDk0M2E1ZTc1YzUzN2M1MzdlLi5iMDVkMDdiZjYzN2JmNWNmZTBlNGJlYzRlMzkz
ZGJhN2IwYzAzZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtOTQs
NiArOTQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCYWNrZ3JvdW5k
Q29sb3IoY29uc3QgQ29sb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29u
c3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCk7CisgICAgdmlydHVhbCB2b2lkIGRldmljZU9y
UGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBmdW5jdGlv
bnMgaW1wbGVtZW50IHRoZSBDQ0xheWVyRGVsZWdhdGUgaW50ZXJmYWNlLgogICAgIHZpcnR1YWwg
Ym9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKQEAgLTEyNCw5ICsxMjUsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRz
VmlkZW8oKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzUmVjdCgpOworICAgIHZvaWQgdXBkYXRl
Q29udGVudHNTY2FsZSgpOwogCiAgICAgdm9pZCBzZXR1cENvbnRlbnRzTGF5ZXIoTGF5ZXJDaHJv
bWl1bSopOwogICAgIExheWVyQ2hyb21pdW0qIGNvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0KKyAgICBmbG9hdCBjb250ZW50c1NjYWxlKCkgY29u
c3Q7CiAKICAgICBTdHJpbmcgbV9uYW1lQmFzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1
bS5jcHAKaW5kZXggMzYzMzYyOTY3YWNjZGViYzI1NTllMjljMjRkNDNjMWM4ODg4MDMxNy4uNWVl
MTQ5NGIxNWNiOWQ3ZDhhYTI3Mzc3N2E3NWZmYjJmYmUyZGEzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxh
eWVyQ2hyb21pdW0uY3BwCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAg
ICBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRSR0JBIDogTGF5ZXJUZXh0
dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0QkdSQTsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJ
bnRTaXplJiB0aWxlU2l6ZSwgaW50IC8qIGJvcmRlclRleGVscyAqLykKKyAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRT
aXplJiB0aWxlU2l6ZSwgaW50IC8qIGJvcmRlclRleGVscyAqLywgZmxvYXQgY29udGVudHNTY2Fs
ZSkKICAgICB7CiAgICAgICAgIG1fdGV4U3ViSW1hZ2Uuc2V0U3ViSW1hZ2VTaXplKHRpbGVTaXpl
KTsKICAgICB9CkBAIC0xODQsNSArMTg0LDExIEBAIHZvaWQgSW1hZ2VMYXllckNocm9taXVtOjpj
cmVhdGVUZXh0dXJlVXBkYXRlcihjb25zdCBDQ0xheWVyVHJlZUhvc3QqIGhvc3QpCiAgICAgbV90
ZXh0dXJlVXBkYXRlciA9IEltYWdlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKGhvc3QtPmxh
eWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS51c2luZ01hcFN1Yik7CiB9CiAKK2Jvb2wgSW1hZ2VM
YXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRzU2NhbGUoKSBjb25zdAoreworICAgIC8vIENvbnRl
bnRzIHNjYWxlIGlzIG5vdCBuZWVkIGZvciBpbWFnZSBsYXllciBiZWNhdXNlIHRoaXMgY2FuIGJl
IGRvbmUgaW4gY29tcG9zaXRvciBtb3JlIGVmZmljaWVudGx5LgorICAgIHJldHVybiBmYWxzZTsK
K30KKwogfQogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJD
aHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1h
Z2VMYXllckNocm9taXVtLmgKaW5kZXggMWFmY2NmZTJmZGNlNjQ0NzVhNzRhYjJjOTI2ZDA0MmNi
NWYzNzY3NC4uNWZlNGYyNjY2OGJkY2MzZTI5ZjA0Y2ZmY2RhODgyYTczYzMxZTMyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXll
ckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vSW1hZ2VMYXllckNocm9taXVtLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzSWZEaXJ0eSgpOworICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRlbnRzU2NhbGUo
KSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q29udGVudHMoSW1hZ2UqIGltYWdlKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcAppbmRleCA2YTZhMGU3N2M0NzQ5MDljYTAyYjQ0ODJkZmY2MDE2MGFhMTFj
ZjQ4Li43N2M0NjlmOGYxNmI1ZDVmNjVlNmE2NzQ4MDAzODQ2ZTk0ZWFkNWYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcApAQCAtNzIsNiArNzIsNyBAQCBMYXllckNocm9taXVtOjpMYXllckNocm9t
aXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgLCBtX3JlcGxpY2FMYXllcigwKQog
ICAgICwgbV9kcmF3T3BhY2l0eSgwKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNlKDApCisg
ICAgLCBtX2NvbnRlbnRzU2NhbGUoMS4wKQogewogfQogCkBAIC0zMjMsNiArMzI0LDEzIEBAIHZv
aWQgTGF5ZXJDaHJvbWl1bTo6c2V0RGVidWdCb3JkZXJXaWR0aChmbG9hdCB3aWR0aCkKICAgICBz
ZXROZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIExheWVyQ2hyb21pdW06OnNldENvbnRlbnRzU2Nh
bGUoZmxvYXQgY29udGVudHNTY2FsZSkKK3sKKyAgICBpZiAoIW5lZWRzQ29udGVudHNTY2FsZSgp
KQorICAgICAgICByZXR1cm47CisgICAgbV9jb250ZW50c1NjYWxlID0gY29udGVudHNTY2FsZTsK
K30KKwogdm9pZCBMYXllckNocm9taXVtOjpjcmVhdGVSZW5kZXJTdXJmYWNlKCkKIHsKICAgICBB
U1NFUlQoIW1fcmVuZGVyU3VyZmFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggYzdhZWNiZTU4
YTc3ZDMxOGRlZTY1NWQ1OTU0M2ZmZDAxODAzMzYxZS4uZWQwYzgxNWNiYTZlMGI1NDE2Yjg5OWU0
YmU5ZjE2MDlhNmZlODkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtMTY1LDYgKzE2NSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5yZXNlcnZlQ29udGVudHNUZXh0dXJlKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGJpbmRDb250ZW50c1RleHR1cmUoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
bmVlZHNDb250ZW50c1NjYWxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFRo
ZXNlIGV4aXN0IGp1c3QgZm9yIGRlYnVnZ2luZyAodmlhIGRyYXdEZWJ1Z0JvcmRlcigpKS4KICAg
ICB2b2lkIHNldERlYnVnQm9yZGVyQ29sb3IoY29uc3QgQ29sb3ImKTsKQEAgLTE5Myw2ICsxOTQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTY3JlZW5TcGFjZVRyYW5zZm9ybShjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4KSB7IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm0gPSBtYXRy
aXg7IH0KICAgICBjb25zdCBJbnRSZWN0JiBkcmF3YWJsZUNvbnRlbnRSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9kcmF3YWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgdm9pZCBzZXREcmF3YWJsZUNvbnRl
bnRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpIHsgbV9kcmF3YWJsZUNvbnRlbnRSZWN0ID0gcmVj
dDsgfQorICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRz
U2NhbGU7IH0KKyAgICB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQpOwogCiAgICAgLy8gUmV0
dXJucyB0cnVlIGlmIGFueSBvZiB0aGUgbGF5ZXIncyBkZXNjZW5kYW50cyBoYXMgY29udGVudCB0
byBkcmF3LgogICAgIGJvb2wgZGVzY2VuZGFudERyYXdzQ29udGVudCgpOwpAQCAtMjgxLDYgKzI4
NCw3IEBAIHByaXZhdGU6CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9kcmF3VHJhbnNmb3Jt
OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm07CiAgICAg
SW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CisgICAgZmxvYXQgbV9jb250ZW50c1NjYWxl
OwogCiAgICAgU3RyaW5nIG1fbmFtZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgK
aW5kZXggM2Q4NTk3ZTM5ZTg1ZDRjYmYwMTU2ZDVjYzExNzk0Njc5NTM3MTI0Zi4uODVlMTM3OWMy
ZGQ2MjlmOThlOThhYzMyZDA0YmQ0YzFhNmEwZGMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVw
ZGF0ZXIuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBmb3JtYXQgc3Bl
Y2lmaWVzIHRoZSBjb21wb25lbnQgb3JkZXIgaW4gdGhlIHNhbXBsZWQgdGV4ZWwuCiAgICAgLy8g
SWYgdGhlIGZvcm1hdCBpcyBUZXhlbEZvcm1hdEJHUkEsIHZlYzQueCBpcyBibHVlIGFuZCB2ZWM0
LnogaXMgcmVkLgogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZv
cm1hdChHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBh
cmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGls
ZVNpemUsIGludCBib3JkZXJUZXhlbHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRv
VXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6
ZSwgaW50IGJvcmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVUZXh0dXJlUmVjdChHcmFwaGljc0NvbnRleHQzRCosIFRleHR1cmVBbGxv
Y2F0b3IqLCBNYW5hZ2VkVGV4dHVyZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0
IEludFJlY3QmIGRlc3RSZWN0KSA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyQ2FudmFzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVy
ZVVwZGF0ZXJDYW52YXMuY3BwCmluZGV4IGFjYjJjZDNlNDZiMzAxMzRlYWY4ODA1YjQ1M2U1Y2Fi
OGQ1NDVjMWIuLmViNTRhNmU5MmNhYmNlMTg5NDQ0ZmY2YmMwZTMxZGE3N2JkMDUxYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4
dHVyZVVwZGF0ZXJDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuY3BwCkBAIC0xMzksNyArMTM5
LDcgQEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0IExheWVyVGV4dHVy
ZVVwZGF0ZXJCaXRtYXA6OnNhbXBsZWRUZXhlbEYKICAgICAgICAgICAgIExheWVyVGV4dHVyZVVw
ZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkEgOiBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1w
bGVkVGV4ZWxGb3JtYXRCR1JBOwogfQogCi12b2lkIExheWVyVGV4dHVyZVVwZGF0ZXJCaXRtYXA6
OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6
ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpCit2b2lkIExheWVyVGV4dHVyZVVwZGF0ZXJC
aXRtYXA6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3Qg
SW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2NhbGUp
CiB7CiAgICAgbV90ZXhTdWJJbWFnZS5zZXRTdWJJbWFnZVNpemUodGlsZVNpemUpOwogCkBAIC0x
NTAsNyArMTUwLDEwIEBAIHZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlckJpdG1hcDo6cHJlcGFyZVRv
VXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zCiAgICAgUGxhdGZvcm1DYW52
YXM6OlBhaW50ZXI6OlRleHRPcHRpb24gdGV4dE9wdGlvbiA9CiAgICAgICAgIGJvcmRlclRleGVs
cyA/IFBsYXRmb3JtQ2FudmFzOjpQYWludGVyOjpHcmF5c2NhbGVUZXh0IDogUGxhdGZvcm1DYW52
YXM6OlBhaW50ZXI6OlN1YnBpeGVsVGV4dDsKICAgICBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlciBj
YW52YXNQYWludGVyKCZtX2NhbnZhcywgdGV4dE9wdGlvbik7CisgICAgY2FudmFzUGFpbnRlci5j
b250ZXh0KCktPnNhdmUoKTsKKyAgICBjYW52YXNQYWludGVyLmNvbnRleHQoKS0+c2NhbGUoRmxv
YXRTaXplKGNvbnRlbnRzU2NhbGUsIGNvbnRlbnRzU2NhbGUpKTsKICAgICBwYWludENvbnRlbnRz
KCpjYW52YXNQYWludGVyLmNvbnRleHQoKSwgY29udGVudFJlY3QpOworICAgIGNhbnZhc1BhaW50
ZXIuY29udGV4dCgpLT5yZXN0b3JlKCk7CiB9CiAKIHZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlckJp
dG1hcDo6dXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFRleHR1
cmVBbGxvY2F0b3IqIGFsbG9jYXRvciwgTWFuYWdlZFRleHR1cmUqIHRleHR1cmUsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KQpAQCAtMTgyLDcgKzE4
NSw3IEBAIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdCBMYXllclRleHR1
cmVVcGRhdGVyU2tQaWN0dXJlOjpzYW1wbGVkVGV4CiAgICAgcmV0dXJuIExheWVyVGV4dHVyZVVw
ZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkE7CiB9CiAKLXZvaWQgTGF5ZXJUZXh0dXJlVXBk
YXRlclNrUGljdHVyZTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0
LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscykKK3ZvaWQgTGF5ZXJU
ZXh0dXJlVXBkYXRlclNrUGljdHVyZTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNv
bnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxv
YXQgY29udGVudHNTY2FsZSkKIHsKICAgICBTa0NhbnZhcyogY2FudmFzID0gbV9waWN0dXJlLmJl
Z2luUmVjb3JkaW5nKGNvbnRlbnRSZWN0LndpZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdodCgpKTsK
ICAgICBQbGF0Zm9ybUNvbnRleHRTa2lhIHBsYXRmb3JtQ29udGV4dChjYW52YXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0
dXJlVXBkYXRlckNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5oCmluZGV4IGZmYzcxYzY4ZmY3YzdkYzk4
MjFjZTlhYzhhMWI0MDg4YWE1ODgzODkuLjM3ODMwNzI3NDQwNmFkMDM0OTUyYTE2NWU1ZDg4OTk1
NTU5MmIxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyQ2FudmFzLmgKQEAg
LTcwLDcgKzcwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBPcmllbnRhdGlvbiBvcmllbnRh
dGlvbigpIHsgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6OkJvdHRvbVVwT3JpZW50YXRpb247
IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0Mz
RGVudW0gdGV4dHVyZUZvcm1hdCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShj
b25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBi
b3JkZXJUZXhlbHMpOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50
UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4
ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dHVy
ZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxsb2NhdG9yKiwgTWFuYWdlZFRleHR1
cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7
CiAKIHByaXZhdGU6CkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgT3Jp
ZW50YXRpb24gb3JpZW50YXRpb24oKSB7IHJldHVybiBMYXllclRleHR1cmVVcGRhdGVyOjpUb3BE
b3duT3JpZW50YXRpb247IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVk
VGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCk7Ci0gICAgdmlydHVhbCB2b2lkIHBy
ZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYg
dGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9V
cGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXpl
LCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKTsKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxsb2NhdG9y
KiwgTWFuYWdlZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRS
ZWN0JiBkZXN0UmVjdCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNw
cAppbmRleCBmY2M0NmQ5OTNkNTQwYTQyMTlkN2YyNzAxMDAxODczOGVmN2I4ZmZlLi5mMmM0MmJm
NzFiYzllOTM1OTM2NTg3N2I5MzNiY2I0MmYwNzQxODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJD
aHJvbWl1bS5jcHAKQEAgLTEzNCw2ICsxMzQsMTYgQEAgYm9vbCBUaWxlZExheWVyQ2hyb21pdW06
OmRyYXdzQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuICFtX3NraXBzRHJhdzsKIH0KIAorYm9v
bCBUaWxlZExheWVyQ2hyb21pdW06Om5lZWRzQ29udGVudHNTY2FsZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK0ludFNpemUgVGlsZWRMYXllckNocm9taXVtOjpjb250ZW50Qm91
bmRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW50U2l6ZShib3VuZHMoKS53aWR0aCgpICogY29u
dGVudHNTY2FsZSgpLCBib3VuZHMoKS5oZWlnaHQoKSAqIGNvbnRlbnRzU2NhbGUoKSk7Cit9CisK
IHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9z
dCogaG9zdCkKIHsKICAgICBMYXllckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0KGhvc3QpOwpA
QCAtMzczLDcgKzM4Myw3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRh
dGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpCiAgICAgLy8gSG93ZXZlciwgd2UgY2FuJ3Qg
ZnJlZSB0aGUgbWVtb3J5IGJhY2tpbmcgdGhlIEdyYXBoaWNzQ29udGV4dCB1bnRpbCB0aGUgcGFp
bnQgZmluaXNoZXMsCiAgICAgLy8gc28gd2UgZ3JhYiBhIGxvY2FsIHJlZmVyZW5jZSBoZXJlIHRv
IGhvbGQgdGhlIHVwZGF0ZXIgYWxpdmUgdW50aWwgdGhlIHBhaW50IGNvbXBsZXRlcy4KICAgICBS
ZWZQdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcj4gcHJvdGVjdG9yKHRleHR1cmVVcGRhdGVyKCkpOwot
ICAgIHRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgbV90aWxl
ci0+dGlsZVNpemUoKSwgbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCkpOworICAgIHRleHR1cmVV
cGRhdGVyKCktPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgbV90aWxlci0+dGlsZVNpemUo
KSwgbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCksIGNvbnRlbnRzU2NhbGUoKSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKaW5kZXggNWRhZjBmMDE5NDdhOTk0N2NkMjM1ZjU1
ZmI3Mzk1OWU0NDdiMWY1Ni4uZjBiNTQ5ZTExOWYwMjM5OWI3Y2MyMDYxNDI0MzI2M2UxMzgxZGFk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGlsZWRMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKik7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIG5l
ZWRzQ29udGVudHNTY2FsZSgpIGNvbnN0OworCisgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRC
b3VuZHMoKSBjb25zdDsKIAogICAgIC8vIFJlc2VydmVzIGFsbCBleGlzdGluZyBhbmQgdmFsaWQg
dGlsZSB0ZXh0dXJlcyB0byBwcm90ZWN0IHRoZW0gZnJvbSBiZWluZwogICAgIC8vIHJlY3ljbGVk
IGJ5IHRoZSB0ZXh0dXJlIG1hbmFnZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdl
T3ZlcmxheS5jcHAKaW5kZXggZjRhMjdmYjUyY2E3YzBhMmYzOTZhYTYxNTVhM2IzMzBmM2MyNjZi
YS4uODhlMjJhMGY2MWE2NDJlMTMyOTNiN2E3OGE2NDNlZmQzYmI0YjY5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcApAQCAtNzAsNiArNzAsMTYgQEAgcHVi
bGljOgogICAgICAgICBtX3BhZ2VPdmVybGF5Q2xpZW50LT5wYWludFBhZ2VPdmVybGF5KGNvbnRl
eHQpOwogICAgIH0KIAorICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgdmlydHVhbCBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlld0lt
cGwtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIH0KKwogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVi
dWdCb3JkZXJzKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3dlYlZpZXdJbXBsLT5w
YWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZmFiZmYzNzMz
YTg4ODVkMzFjMmJmNmQ2MTc3NWY2ZjFmMjYzYzAwLi45ZDhjN2YyMGIyMzJlNzUxOWU0YzUxOTUx
YzA5MGY1YmIyMjU5Yjk0IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMDMgIEFscGhh
IExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIHdoZW4gcG9z
aXRpb246Zml4ZWQgaW4gYSBzZXBhcmF0ZSBsYXllciBpdCBkb2Vzbid0IGdldCBmdWxsIHJlc29s
dXRpb24gd2l0aCBjc3MgdHJhbnNmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgdGhhdCBo
YXMgcG9zaXRpb246Zml4ZWQgYW5kIHBhZ2Ugc2NhbGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDogQWRkZWQuCisgICAgICAgIFRlc3Qg
d2l0aCBwb3NpdGlvbjpmaXhlZCBlbGVtZW50IGluIGEgc2VwYXJhdGUgbGF5ZXIgYW5kIHBhZ2Ug
c2NhbGUgYXBwbGllZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6IEFkZGVkLgorICAgICAgICBU
ZXN0IHdpdGggcG9zaXRpb246Zml4ZWQgZWxlbWVudCBpbiBhbiBpZnJhbWUgYW5kIHBhZ2Ugc2Nh
bGUgYXBwbGllZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6IEFkZGVkLgorICAgICAgICBU
ZXN0IHdpdGggcG9zaXRpb246Zml4ZWQgZWxlbWVudCBpbiBhIHNlcGFyYXRlIGxheWVyLCBjc3Mg
dHJhbnNmb3JtIGFuZCBwYWdlIHNjYWxlIGFwcGxpZWQuCisKIDIwMTEtMTAtMzEgIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgQ1NTIDIuMSBmYWls
dXJlOiBiYWNrZ3JvdW5kLWludHJpbnNpYy0qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBv
c2l0ZWQtcGFnZS1zY2FsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MWJiMzhlZjBkN2JjOTFjNmY0NzIz
YjVkZjNjNjQ1ZjJlNmM1MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApA
QCAtMCwwICsxLDI3IEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZpeGVkLW5vLXotaW5k
ZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7Cit9CisuZml4ZWQtd2l0
aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAxOworICBsZWZ0OiAx
MHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxlKCkgeworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAw
LCAwKTsKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7Ij4K
KzxkaXYgY2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNsYXNz
PSJmaXhlZC13aXRoLXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlm
cmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNGFmNDI4ODRhMDhmMTFkOWM4ODk5NmQxNThiNDJhMzlhODQ2ZTc3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0wLDAgKzEsMzEg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMTBweDsKK30KKy5maXhlZC13aXRoLXotaW5kZXggewor
ICBwb3NpdGlvbjogZml4ZWQ7CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7Cit9Cis8L3N0
eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhl
ZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwgMCwgMCk7CisKKyAgICB2
YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnREb2N1bWVudC5v
cGVuKCk7CisgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7IHotaW5kZXg6
IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CisgICAgZC5jbG9zZSgpOworICB9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpOyI+Cis8ZGl2IGNsYXNzPSJmaXhl
ZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGlmcmFtZSBpZD0iZnJhbWUiPjwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJh
bnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhZmFlNzc5ZGMx
YzhhYjEwMTViODA0ZDhjYTA2YzI4Y2JhODJhMjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KKy5maXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0
OiAxMHB4OworICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3RhdGUoMjBk
ZWcpOworfQorLmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1p
bmRleDogMTsKKyAgbGVmdDogMTBweDsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgo
MTBweCkgcm90YXRlKDIwZGVnKTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBmdW5jdGlvbiBz
Y2FsZSgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgZXZlbnRTZW5kZXIu
c2NhbGVQYWdlQnkoMiwgMCwgMCk7CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJzY2FsZSgpOyI+Cis8ZGl2IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+
PGJyPgorPGRpdiBjbGFzcz0iZml4ZWQtd2l0aC16LWluZGV4Ij5URVNUPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4
cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmFkYjY3YzViMTU4ZmFkZGQzOWVkZmU3ZDQ5Y2ZjZWUx
ZGY2NWE3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1NjUwCnpjbWVITFg7QFFOOGFeTmxEazY1
K0R5dj1HUHswS1k1U0NWRHMzSzRoZndCY2JLfGx4P1J6cngwbVBiJjB0aT1kTwp6YTRCakcwUiNn
PUFjPSFUNWVQOzAxUUpqUWdeJmU4ZkIrJExhNV9zbilBPSFmPi1tJVcrfXZ+U0o+UGxYX2p8d1oK
eigkXmxZVDVBcDAwc3lvUWVSYT9xZkt7NlNRMXhHfTNoKElZPlRRS1QrWT8+PDZUP3JQNDNFSmkj
ZSNAJVl3TClKCnpsVks0eTV5dWdHY2tlPTJAM0cheGJKOHwhX3dFeTY1I2Y3fkp3PEE4PkpOdHdl
KDk1WE9FfjB5RHJsN1ZWJnI7Wgp6JkNeUEh7eV90Xzw9VnJWaDZtTDNiVihRREYwMCshX1BOaSZG
ViVtMUgxQUM9UzQ7M1JLbVlVJEF9JUwpOyNeVnAKeiFfSilLUDZMQ3JkYSspK1o4QUBQUFNQb0F0
Rz0xTj5xdjxHQV5NZVpvKi1aZCEldkEyeCMqa21QcTNjJmtiNnxZCnp4aD9DfnR5X3xobH1IXnFU
clJoIz1he2FHVX5Td1FGI01ebmRIJXhVVm9eY1YpRWElak93KEdvdUdeX05JXnM8Rwp6TVhuWkxE
JGw4eHVWV0Upe1EpP3hzdEduNzJ+YDAqeSt9VFYoeComUztHWXVeKyY8dEJ7fE4xenBoWUsjdWh8
TEMKenthNnN9cXZia3lOKjlEQ3UmXnwqNTsqMDskeylLail4aWNuejdsfUtKLXB6RzJwemJuYD95
RiUjS290bEg7bFgtCno5PWAyJTtvc2kjdVNyfHJvV0g4K2dELUJ2bSMkdSFjZjNgcj8xbzthPGJH
M0FRdzRuPytTVD5OTmtWVzx2WEN2UAp6VUBSeyRpan43eitKQTklKXpIdXw7dURtfjBPYkM4VU07
NComfU1OP1ktVkNvT2VCezNsNiNfKV8jfTF7aUEzVU0KekVERVc4QSFNbz5ITmElISM8Vnc9d2kt
NTF4TztkSW9wMXtTa3RNfjc8ZFRlcUBtQCtHQDJyNXJpSzdYQj8hMmQ/CnpxbDNhTFdXXzFteTJ1
VjxPLSY2fVIyTH5uc3NhREo4dytnelM4QHhCNHJrPk85ayp6PnpFQHclWUkmeTFsUUdBfAp6UW5N
SiE8O0E0RlY4b2J6PEQhVUc1b0ZvMSZLUXxJSW08eTtfP1hqRCM5UmcqdVh5K0o8eDVzRUB+VzlM
UzkwRXMKemB3M3VQXzlpe0slVyM/aGBRRnVpY0psdTR0TDxlS2JeTzh6a0Y8QiFUcW4ldlFfVipD
aGZCQlI1Skp3OWojcDdBCnohcl5DR0BIIzN3OHZ3V0pMRlItJktwWGtpc0wrXk9wQT5eYXA8OypG
WTxBb0JsKShnN01ibiktY2kzU34tKWRFNwp6QlZ5VDRWKjFMdipRPGFWNXB8aXolPTNIOGdFe1hj
M28/T1E+RmN7OE5fST5JZyVPSWR1e2pvKUswbEk7VmE/NlYKemx1NipAaEN3SDRxeCRQR2srRn1s
YjBTWUNgSDVOUHRkUWZFPjxZalktPjZXOXRQaDNCeFAjYD1han4obkU/JjFCCnp1ezk0S2pNYUAx
az1XVk8zVEU+YUJTbyR+a2NiMEhHaUFiQjl4RStmJTVUcnNIbHZUOzIrWDxyKDNkUTNrZ3tyRwp6
SVpuJi1afVcjdDBDVEBAYTQwK2BReTlHOzROJGt4cHsrTThUPVJfNj03diUjOG0zPn0tUjRuai1f
ekNBKXpjJHUKeihzbkt6LWxxY2lSQzg3R3ZnTCVKdVI9VUk+NSVafHh2Rz54cD4jTSUrZ2gkfkVs
SG5sYWtIJVpWTyEzRD9EYXtCCnppRXhufWMlQD9RdStSe00jKnNnKm9EaCRNa2JMcnQ/VyRycUhC
dXJxO2NmRkE1M2h1SE5hNWo5eW1YYUkoaGQlcQp6RipHbkJtdiVVI0JxcG1zOH5UYDxaKTF8NmNM
Oyg8M2xWfjF4Kzh7V0FSUCZaT1VkUStrR0FFUTtnPUYjPGU3d3IKemhafiVeM1ZgTX1OdHdzMGAp
TCs0R01SfX1gdXVkT2x+dkIwSmBeNCZaQVZ6TyhFKHRnXlooU188QS10XzhgMkw1CnoyPjNRVGQo
Ml85KiQ2I0lPRl9ydGhNQWR+UHdsYHRiO0BnSTAyOUdXLV4pOXk/S3R5dz5+NEdlZFQpKmpJRio+
Nwp6PTM1c2VudyVgN1hxITZOXjdgQWZ6ZTJPMEx+WDg3MmZHT0FwfmM5UXhDbHBTUzd4PWxyemIq
dzkpNmpwcXBiVncKelJwJF9GRHFKNDJBJlMpXlcrPkAzc2doP0oxallleXVDenM/N2o5KHRTcDcy
eS1MYHNxc15PNiVNYG1WY15SOFR4Cnokeihsd00/NV5aU2FCbWBZMSp5blUzWWdrKEdpPC14NC1J
U1lwV0hiVmFZQGw+fnkhU2dqPFFwS1BwYGlSRnYzWgp6QjQrIT95Qj9yWU09bG0qa0RqUjt4Jjh4
WWo4JHhoO29yT0ojRD5IJksmNE1IUzd+P0NLaz4mKnppVE4lKTY+TTwKeiM7cVE9OXtRTD1kTEI0
JUFVSFVmJURHfXtwTGh5bHlMQXc8PXNUKCEtWXxfLTU/TX5kNlYjamUob3E3NjMpeDc7CnpGZCFN
Kml4N0JPazYjSUhjSHBPPGVqKil4VjRuWDwmbzhMNnZ2VyQpcSVDR3NWfXxPSlJAVjY8JWJWMGFH
fn5FQQp6S1I9KF5iblYlKlhUOEhsaD1GYWJoWUFXWCohUDJ3WlYjOWpGJHc5cDg9JXNEYGt5Tkg0
QHYhPlF1akwjLTd4YUUKeipsfkJuSnYlIWFnQGVKKCVXSml5b2Zmakc1R0QlNjk4ZFg3IXxaWmkt
dW1fSF9xQUNtZyNoU3BtYU9TNXcyN0cmCnpeUEtKTj9Id0oxRE5xNkArS3k3UWp+K2VCUHxSey1E
akkhYjIrPnNnSiR0NX4+diZwVT9rVCE7JUteN0FRe0NaJgp6VG9nSmZYMVhZV3dSQmw7VkNfJmNy
fUxpYyktN0E7JUxAWGV4Qj01YWJjQj9pOF5tLT5yPnE4KiN1aFRfPEx7K2AKejBZdjw9OUplQFlW
X2FybzdfdjB9cGQ+QHdJMld6NExNY0h4RXNwajBFVGslYEV7TTMlSGhIb2lhdnFXXjhKOzB0Cnp4
eENQRj9iPGE2THtzT0NoN29sXzFCQlNkUWcwSENoTWs+KTxKLUAmdmEmS2dEQH0xVG9tO2s9Vko5
Q0skWll6OAp6eTR0cDFiKHNFMihTK2NwLXQjOHV4PWcpeHYkOG8tTCMzS0hxKU9ubXlLbjt0amVf
Q0I7YyRxLV95Z0NRMCZDLWgKejBzKXk0NyNMViZIPTJoT0o7ZDh1VGwpbF8/eW8jUEU0bEFwMW9L
S2g4JCMjeFBESko1KCReM0tNYUNoRjM+P1dQCnpwaiZ7IzNhSylLJEB9OzNOOVNyZ0ZVN091TD9U
ZlM+aCV7e3hzJl59a1NVQHYzJURhaSVoci1NKHwhb3JTRUFNNgp6Y0JpPms4RG5gTmhHakopPGtW
SWAwb3M7UjlvYUVFR3ZmZSoyPWZXV3RwOTFrSi1uOSZTUG12elNKTDc2KmorXykKejh8MEZhcnJO
PFhaZUZAUShKUSVVMEx0TURHa2lsOFo1OGw7YEFEO0ByS0toT01QQjNsbl9Re1o+NEI9em0pQVpN
CnooLSVlZ2VqKHJKe3M7a21fVXpnRWB1WXFnKzxKcHMwSkZpQENBNWQ8Zj5TS1dpaT9YT2JeSnI9
UkkwMlhsNHpHVQp6e3FETV9RKERWcmcwNCUjJnArTFA4MW9CQjgtPVY3QXE3S09pLW9lTGEyKHVg
fExXUmp1SkFMR3h6K3BQMklwYj0KekhGRz5XQmNoMmRiS2FFVG0odiE3d01abHEwJTEmKDl1Q2dR
RExLcVh3USlvQmYjXm8rTlY3b20+Rz1JM0MjYWo9Cnpxe048TWV0SXJiUC1hQl5rSGIlJnA0PjBg
MiF3dEB3eWNjUyRKU24/KTlGcHcrTmNjcXNFZ01VUjB1UigmYzhUZAp6MEdNKHBib0MxcDxnb19N
ZW1BI1BpOX5ZaSFDPm0hRD0tVUREQjh4aEBoUyluUDxpezlwfSohbHpYOzk4UFRhe2gKemVQalYw
Zj9xVGU8fGZOTHJhN1MlP3c9fXFtWmRSZlIzdWohY1E0dlVkMHFubXwyeXE2czU8UnNrczA+IUhS
SSNzCnpUVHQ9diVTYUUxWFAyZzQjQXc2aUMwKEEqP1JJaj14O31rdnJ9XlJjNnRJPnY3dk0odEw1
UG54Wlk9bncmJWlWNQp6KHhwcSNlbSNFdDc7YzFwNElVSSEhI00mZkJrSmFAIWF7YStxXkZsfFY5
bl8/YDYlSjxnMVNiZFMwYWgwb1FWI0IKeks0V2hydElaUyUqe0VzTnV1RURRV1FqPXNFPlNkQzJr
KW9QYmg+aEMoYUpadVI7SD1MblFWa3dqMGUjbjRKSGZtCno1Tis9SEM3dH1rQyZSK1JQTXZ5NENY
PHRDb2lNZTxMVG5lVGMkS09mIT05Z1kkZmEjSUdJMTVOS2JeaWItQVdWSAp6bGFvYS1wVmcqR2BP
c2ZZS21qbF5HXys1ZUBHMTRLZHl9JlI+VzMqclAldGVTM1BSazxJO1h4aSYjJE1eQkYqNEgKeit3
UVRvP0tleit5VCQwRi1TKWtoSVB9VThmOUkoSXAybDB8cCs4YXVLP2leQj1ZQmB6ezsmXktfVHNV
dDA1Qip5CnpReH5MK2h0QCEqdHElUzktSzNQMUtLLXxFLSZVNi1VRF5PUHdRWXJGSUc2dXRDXmsx
JiU9Mzt7enJBdHpTTjhrQQp6SU96fE98N1RfTXxEQHFSRUpFTHhiTU5zS3BjSEJXNU09eW5edncw
XjVLZ3pabzB5b2lVcDheaDd+SCk3bSU4cioKekBIVHUxIUd7b2w0PFl6dGcmOzt6aXZTPSMhOFQo
bF4lcnFlQz1+Nk5eQUIkKHRYQkRMUzhLViYxYXszfUpzKTlLCno9MWJsaXYoaGA7PjQ5QD1QZG03
QjZAYz88N2dAa0lUQlI8dnlmRTFCO3p8IyQlMS1jVDE5U2xpUDxlLSEqYz90Iwp6JHg2RiF0UGdo
aSU9MX1EKngtWTlLWSZrNVVKV2FmJSo7JktsRVRtPElVRWtIekNQI2Z5cGtEXlk2eWxJUVRHZTwK
ek9SM3YoVXslWkc7a2xqZnRKfXUhREpzXktBal8xKiMzYz81RWJIWEtacXh9P280dm0xYnwjWTwp
fWFGQyNYcFAxCnpXKj5qLS1AUUYxWGReVX57YkFUQkY4WlQ9UXY1VWtPMUl2IW1jaHtEQjBuI2Bv
a3dBcmhnSmRQWj1naz1NeERyRwp6ZGl3ejtlcWg+Jnl0fWVuNH05VSlTfCFxQnZuNVglNDE4dkBw
X3YoSzhhYWo5RUE4OFpnfGkwdGhAVSZYKnR8YV8KejdKJWl9OCVpVnNxcjZVUTRsOTZsPDhHY1JA
VTREWHY2ezZRZURJMW9TbjUwQz5GRjkwPT8/NGdjTmdMRmVpayleCnotbyZJTkllIXlpcm8kUjgz
QD9AfDhSdTx4P0hXZDQwNUUoflRXZUtRNCYmaVdrbXl7PDhHak5EbzRud1ZpXnN3OApJe2h7YW8x
fC17KlpVNnVQCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjI4MmI3MzMy
M2MyYmRjYTJmNDQyNDA2MGJiODMwYjY4NWVjZWZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg1ODUKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDc4NXg1ODUKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDU4NQorICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA3ODV4NTg1CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA3Njl4NTY5CisgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgxOQor
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoMTAs
OCkgc2l6ZSAzNngyMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDEwLDgp
IHNpemUgMzZ4MjAKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNngxOQor
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzY6ICJURVNUIgorbGF5ZXIgYXQgKDEwLDI4
KSBzaXplIDM2eDIwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAo
MTAsMjgpIHNpemUgMzZ4MjAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAzNngxOQorICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzY6ICJURVNUIgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4
cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDI4YzYzY2VjOTJiYzFiNmE2NTZmOTc4OGVkNzQ1MzQw
MzQ3ZjM0CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1NzYzCnpjbWVJMGN+c0xgbWRCcjxnQkM1
KGspO0hMUWNGP1VXZUgwRylyQ2t+WV9nK2xLP0k1PUVKRH40aF9wK2xwcD0/WQp6d3FoJT4wMFlQ
PkxEbUZSQzx6Rk5FRm1OajVuPldaMz4wZTs9b2lvRlpLa2A9PkYkfDZYVV4yYHBYNE8oeX1hQ2EK
ekA4fG95QDlYbzxfSXAyNHtSalpDX3VPeUp4QigjaDI+PiFheUpnQGZOe1VLYUBhMUhKb2xpcFdT
MFRaWEBmYjhQCnpIWihMZkYkb1IxYlNjUWhKakI0dkprLUY8JGkmYm4jTyFofjUqZDhDK1klV0pm
VT9yTEdyI3NvRT9RKWBke3U8ZQp6PW80eGdxSj0yUWdwLW1OLUIhOCRoTmBXZGNXaipZSihjJEJY
WDZndkpKUi1tbiNzdztNXnh1MkorJSRydWRNUikKem5uNkcmQSVmeCVmdkh3bnlvVyFkY3h0TEZp
QDVqY3VKRExVY05UKGo0SUgtO3pRY1kwPXM2RndJZTNSPHZ+MmJFCnp7ZF8/fDgyN0JieSp2T0Ih
PXQwaXYpTU16c31uaWUtWHMhOSo+MSN1YUM4VW8+LW48V0VpNWNkN3Q4aFFtSH1wVQp6Ql8kPEdX
NWtQejxBTHdPO2x7Nj9XRkF4fXlRNmwxPnc5Iy1SZkNMT3pgKFpMRXhjenxNam9KIV9oVT9nZn44
LUMKelMxKGl2WnlsPSNwZHQrQz5VaypjekFMIU9GJjhZSl5AcSN1S0h2akQ1UztQSktvfWVuYWht
MnwqREwrWmchVStXCnpicDJZYGl6MT4kQllyelFYMX5sSWVgdyF2SUpSZX1HV2F+N0B+M00hTl9S
NzhURjskN0duVGN3eEB4XkdVTEc3QQp6XiFBSDtfVDRkdT1uaTQ7VT9HdyQ+e1V4a09CMWFMPlpX
VyZkOW9sc20hZWQmeHcrfXpwMTg4SWFfZ0lLelBiSjMKemtyMmhQJDtzOz8waCFlaFl+U2grMUxq
Z3tFcVFsOCtZNFE3WTsyc2NeIUIre0Rlajd4K1BUS1dNdm04e1l8UH5lCno5PyN4PkxPPnZYXigm
bE0qcTZrPk9wd3JZUlcmdDFFNHpmfHZLdHR2VlJEKWM/PTE3VVRVJT5uIUV8ZEE3blMwPQp6QClq
P212JGkmZEBWU1VCdyN8MHkldVRpOShfUzFHe0hBK1MoJVIoQnF4UUdPYUo7NnZgVTAwYilnMCtQ
X2hQaXQKekMxKDF1QFpIRkxQWnpWPEp2JV99LTdtfHtDQXZLWGpub0lkI1J3Ym1gXm44VlVUeVc8
VHslciR7bkFYOWV3VWU8CnpuVUNUI3FvTDItbzB9Uk07c25nanl1a0Y3aCVkbV5mJnclT2xhTWYt
RnpSRnk5bmNpJldOJll1IVdiU3RQZCVCJAp6T2JNSE5BfWduR1NCMDlWdVNyZkJ0TWM/RU1WKWhr
fEhpMGtaO2MhQShkRm1nc1VyMSNOaWBtKW9PbH5gPGdMd3EKejxpYnE/ZnR1Q0FPcFdaM3B3Wn5+
JmtscG5hfnV7LV9vXllJYkBiY1grTCZvOzQ1OFkxVTckX05mZ1FsM3tXcjJhCnpifTdFKHk/bU53
NTxlO2BOKzxLcDA8OCY3Xj0qbF4hbWRXbS1CaS17VEteOVZVX2pQO04hazIpKUo1eUZ1R0FJbwp6
SDh9KGBtR3t1ajZgbVdQKkA8MThZOEdAWHpuRkhHMHxxJStkaTZKTi1uXn1EejY4ZytrblJ6UW9a
KS02YnpQZz4Kekc0RFdzI2I7azEoMytaPnk2RWRtN0I1bEYpZWl1YW5+RUxFbFdDVm1ZWWZyVikk
T318c1BHY3IqN25IKG0oU3dGCno+JXUrXz5fUV98UGRvRHh0MUF1Vyl7eGNPdl80c1UrU14/Z0k0
K2QhdUlhfTxNa3B2flNSe019X3JiUGBlM3EkSAp6KlNSYDFeTW9NaTY3a0RVcSlTI055YVE2byVn
ZzVxVzRjO2pBQXN9dGFOZF49ZDN2M1RCemplSmh4SDglWiM/YU4KendfTGQhPWxqVW9sYkxVLT4k
O311Z0tZOG0/SGZoPTBxVF5CS1B0eSpFbjVFMnArajtBamdGOyQ/WDBxT2UhQ3piCnpsflhRbnF5
aWAje3klMTU3TW14V2xVcl5gTChPRkZhY1NMe0ZLbWZuMXEyOWFPPjd3ajdAaEpnPE5BdkNGb18q
awp6RTlFcWpmOVFDfTt9dXJOMFpgP3lubFoqO0ZrWmZOM2xLMmNsTiE7JUhsSzd4ajgoT000MiUy
NzJFYChZS1J1YmMKelAkfUR8Y0pMcmt4Sk0pc1kydzh+ZHlTTUkjaiEmclIpS2lRJTVfVHtTYnN9
enduVHpiJCNucFg/alVNMyk3T0p+CnpGZ1ktSHZtYV9fUnJYVVRwSlRDREpSVDN6WlI0bG07YkIt
eHFRd0BMKlBePEgyOXQjTGJ5YWs3YXZISzBFaTdwNQp6MW87S0FzRmxeI1Q8eXcqOCE3PjI4MUFj
ZXczYlQ9aiFVZlUpa3NXQV43Y09gLTVBbG1sOT9gQVQ7V2FOKkpsVzgKempISkt+d2NtI0hXb3dl
PmEoemlMdG5gSitoVkpnfWpFb0dKKVE/RHsrISRuQTQ2QUY3bm0yUj5tY3FlbWA3UHQ2Cno+byFB
dlVLXip9cVk0TWUrWSo2fGNtXj5TWnpFYzA4bXNva3wyJCRaQWE4SE1gT1phVmhHdTVUVzFpazdO
YVF2dwp6VX1qP29ePH13M243SzZGVlFHWXFSdFdvc2lwPD9IbSQkYmhkJUlPPzgoYyYwb0RPRF9U
Qk9nPWRJR3BBJndqYkMKemQ+QnhVbyV2SW97eCEtKU8oazd7O2hvVGJzdCNmflpJVl5gIzZ3PnMl
UlAyfislOTwjST00IVhBd3ohNVY/V1o8CnpnSmNiTF9CVDhYPjFfMDRaVGBSYG5gQHBOZWYpKyln
YVVae1J0IyVtKi1BI2ByMSMoOD5GPz9PKlM3Tmt4X3twdwp6KH1AZ0VxKmhoSHFuNEpuNFImY3Zi
YWRDN096bThxM3MrYHVBKX1jYzhAR141bjJLflY5elY4NEJkZGVAcDlZYCYKej5sbDRMVHRsWSUh
eX5RVUo3ZWU0KGora3UoMEs4ekNTSmt8cX1yITE3cVZheTEhdURUOFpTU3VAfmxwVEQxfDU4CnpL
V2wkbW96e2BFak5jWnFZSE1xeXFzYnpNcHg/V202d1RPdHJWP24zTHs9VygyfGhNTFdVTEleQkV9
dnMmayFePAp6ZDtfNlVHIzQkc3pKfkMhI3RFT1AkalFsTmxfayM/Z2pGUylud3MoJT9RMlVeZUhU
ZEZeRHVUfUJPYEk2UFJPeXgKekRUQ2plS21eUVRZO0EzSUUybVN+I1dASXN5NG0+dm94bT1mYzsy
KHgzciVaMFcmJCZqPHxwU3hedGprfmBQezktCnpKWThSfVEjbG5ZOyl5X2YrTUlwR2Y5R2BsWXUp
I0I8RVpKITRJU15lKypEWFdlSzlgZGJqaF55UE4wTDZ8Rmt9Ugp6WWxGU1Y9Ryg0I19LVikkLW0o
KWZPMDRNUDwwT2Mhcm0hS2VYckcybGM1X1BsOzQwMWNsWitLa1d2TyNBWmlQRTAKek1iKmw8WiZ1
bUloWW00MXYxP0dyU2E4cCsjUnxhM1BqNz53cztYKm48P1Q8U0U7ZCVRbi12dW13Z2lSRk8+VlYh
CnpVPmUzJVFPbWpMdEh7Vm1HK0Z7OSFII3RWc1FzOzwlMnFHd2FqQ2h3az5UT3lpM15qOEF+alhq
bEhAbUUmLVB7OAp6dFdFfiFgNnBnKlJUUWwqTW4qQGNeSU9eSlBAcjRDUnxQJmdkZTEzVTlSJChx
KlJTdXs2MkAhJnZDSmx+OFh3X1EKeldaZlphb1JwK2BuUXVPWEMmJkJaI2Z4MiNvYnVMJnBnIU80
eUEwMjgmZGMlXk1rNCkxdjFRfm1JaHhVaXV3TVZjCno8Q0s1PXBveUk7WmVgM3slezF6ckt0VFQx
TkNzcTRrN0BkWmpDUnQkdSgkOCl6OXZAKFN6VUdsM1BGMXdXT2RLTAp6RX0oTjMjPExiRyMyeHxa
eXRuclJvbytkRTYzTjBYdVApTjVKZzlxcWxvQGM8RTtNODN4VDV2TytkSSM8ZXh9R0cKej95NWl3
Nkt8cGI+ZmhAUVBgR0A0YmE/cDV4LX53LWwxNklLezVHSURWJEFPd3hWWFp5clZzbD92Nl5xVEI7
akBQCnooVzZJQXRiP0c2SypQODcpNndqXm50VWgpeWdHNzhFRWBJMUspXko5VGhkZ3o1QncwZEND
ZWpkcnN2MXsmOzg2OQp6NGQoVH5BKVlvYzc9fTgrVnpFWD5UJisoLXwwQyNKZ1AzamN2P0xHK0Vv
aSF6cU1mX0BYdyM2anIza3VfeygxQkkKelI0a1U3PEckSj51VX0rPWk0Yz9TWHRgTGd5bUFqbHc3
MGljKk0zP0liXmFDNkolJWg8LUNXXjh6dyFqZXJCMXhKCnp5QWhycj5rM3R1LVYkUjJqfUBMMGcr
aFVfZykmV1RRRFo8NlRiaVJ2Mn17WXBuU3hzcys2OzszcF9zeGB2VUJ4Rgp6S05jJHtMNyhSJDgz
LTAybDxrREh1K29QQ290eVd3dHk4eHBZbkIha2Y1dlIrUmR+P05UeGQoKz1zPH5pVXxnRXYKejhH
TGA+Y3U0T0hiZDI7VjY+PFAqRjVEaTFZfVBUNVRHZkFtY3o/XlZ7KGJFSHImbHI9U2NBPDxVSjBN
aT88Y0BpCnplU2tZNUhSdEhqM2E3YmUxeDhgTCtoZXtedCVHWGV8OCo+RSp9Vmh3Ymw1P3dTMUR9
K0A9WlMmQHN6QjYwT2tCSQp6LXVOIytfbEhqRmVeODc2PjNzVSVKUWtsUEkwT0soO3FVblQrUEYm
Qz5wZUlaQTBNd3Z6cFlgIylyRDN+K0k5WWEKemlOIy1OYl5uM1R0QV5yMkEqRWV4QiNQPzAwNGdZ
ZE15VW8kP2ZtQHchVStLNnBFJH1tX2B8dm5uI3c0emc7WCRJCno5NzBLaSs0em9xQGNgKDIreXox
S09UMiN4ITdvKyFlK1dFI20jcU14bCtWRE1BYGB4JV5scHVfdXV2MT9PWX5UUgp6UDNNMlBMS2A0
Vj8qSjgqd1lBYVc/dmFzXmhHdU96VmJxPUdjMGdtbF5xdG9RazZFayh2PDNyYlRCfn59SlAkK2YK
ejVFfDlmYzFuNjFSfEUtZE11enVAPDZZOD0hSjxIRCpvaHQlMCtKaT82fSk2WSh5IztvSlVBVEFo
T2tkbE9UX0VYCnooZjBMKXtsR2ROPDx6TUxQO3NofTcyKUEwR1JyKHBWRzxLZGxIbFlpKmchajtt
Mz9wX0RKZHlGZWlgU29MKzJ5PQp6WT5rSjg4NCl4dVZwbkJsU1F7SVhOdSMqOSp2aVVrKVN7ZWVj
P3wmZiFmMVZgUDJIWjApPjtUcXxMdj1adTtfWE4KelZiY1RjUC0xJkt3czlCbTh7bCVlcTEmR3gq
cVBmVjFDKk8rTkd9WUVzMTJeUndPd0ZuS2YxP18za3pjXy1vbmZlCno2ZFdZfmQpREEycDFLWmF5
JHd5I1RIVjd1a30mYWEwQSpNeDVsbE9aND0zR3ZyaH1mVzVCamp8NSVMaTtQU1NvOAp6V2wlb31a
eFlYeFJIbzFNPWxyTFo0RGZrU0wzZGJyYDAhenVJZG9HNlpiVn1TMyVqLUx5JF9xM0RoXmVFdypA
ZTgKZiZNbWM+VyRUKW5QcSs0ZnlnKn1VKVdBN0E9UUZpbXBubSYxOHZ3aG0KCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ4ZWVkMjFmMGNiNzZhODMy
YWQxZmNkOGZjYzk0YmVhZmM0NGNlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIg
QEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDU4NQorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgNzg1eDU4NQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NTg1CisgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDc4NXg1ODUKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4
KSBzaXplIDc2OXg1NjkKKyAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDE5Cisg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDI4
KSBzaXplIDMwNHgxNTQKKyAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwyMCkgc2l6
ZSAzMDR4MTU0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAzMDB4MTUwCisgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzAweDE1MAor
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MAorICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgMzAweDE1MAorICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4
KSBzaXplIDI4NHgxMzQKKyAgICBsYXllciBhdCAoOCw4KSBzaXplIDM2eDIwCisgICAgICBSZW5k
ZXJCbG9jayAocG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgsOCkgc2l6ZSAzNngyMAorICAg
ICAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNngxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM2OiAiVEVTVCIKK2xheWVyIGF0ICgxMCw4KSBz
aXplIDM2eDIwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMTAsOCkgc2l6
ZSAzNngyMAorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM2eDE5CisgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNjogIlRFU1QiCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcwMjhkYzJhZDhiOWYwZDAxNDMwOTFmYTAxNjhjNWM2Mzg4YTU5MjIKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDkzNDcKemNtZUhOWEgtK15vNDxnOWlvaUlJRzl0eC1xNjNI
bWt0U3B1YkAmR202czFjTzBTTzh5Z2JxUCpVPnJtPTJ1UkpTCnpiVjhCZGdRNmxlTntmXlBrc2Yq
dEV5K0gyPUlveVJ1eEcjUSopUlZ5ZD1ZUUJIfUN0RFV3UGo5QFJGZ2YkUFM0ZQp6MiFlPjx7Jm42
TUs/RHZVMiozRkBlej55ZGhkcHhlJnZDQns9M1dqcjlVV1hmM0FZZ142Xi1qb19VZFpOc2BpZDIK
em9pSSt5RGtwQ15zb3pqe3lwRit+elY2YG9sSmhQZktASzNlXkpsTzZDUVVOfUpXTCZmPiprfHs0
e1NNZGg8PH1sCnpfJE9hc15YZ2xRJEspXjZ7YktSbXd3TXJDZjw8SyZvP3h4O1FnbztzQDUzNHx7
fmBCfT8oZCZ3bnMyP1YlOHdfUQp6SDMlUDVIQDNkPkd+JlJZNXg/ZGdvUkQhSk9JRj19YU5LQi1w
Rz1jIVlwa2VGQF5SKl53dDEkb0g3dlRpeTAjLW8KejxSdSVNVDk9T1dBZ1NwdXVaUjlUOCVtT0c8
VmRAM040XzJ+d1kwUH1IZzEzSlNAXzZ+NTFCSWFeWWc9ZFd1SjAoCnpCR1A+WDVSWXYpemMkKTJS
SlFJI2VtOzNgRUFwS0l7ODhZIXc2d0o0OEY2ejI4OTFNdiRHV1dtcExvPmF5LWdTJgp6eks0cks+
Mjg8MWRMM1J8TW5WTE4yMWI2M2duUEVeaDdhQi0lTk4tQVBveWJQSHcmfDdgSGA8eWplcSo9M2cp
aGoKelZPUVVYVyN7RFJLS2sqTHtvNG1gTFdSYWc2QWxSP0h5IzhqYGtDYkt7T1AkeGtyT1FhRmMh
PH1HUDZ+Ym12PGVnCno8cVlzUjE0aHFKNGxaPlZ4d0VWVWtiaX1WJD1MWGUoUVMjPXR+QW1TZWRV
b3xfOWlBPkwyUVBhPVYoaT1SYXVeTwp6bUc/NU1pKztfc3dMTUxycmF0cyZ4NnpzVFNTdlNwYG8k
eylobW9JTy1Ebz1lY0J9QVMlQyhCU3RqP15HNjxoQmYKeiQwRGF6Sig4QHZ7QTd9NlRsYDc7eDh0
OCpeJWM4eHtKYEZaTlk/Nzw+eDxSeXFQJT9oR0FGO2J2YihKJmZVVUZHCnpxTE1ZOD12SjlrUCUh
dDBlQk85eCl8RVNWPH54a0EpKXAzUEgzTFZISTw4fXJCKmwkVSp+T152byZSUXA8KjRGRgp6Wk9L
fGokKGs1QnhlUnolYXEtZTxxST5ZdFhXaE9zY2tKIW47X0IrXlF3fD9+P0JHWH5iPC1jJmItQXVn
XjwrZ3gKem9UeGt8Q250dl5iPn5fY3JKUHh0RSpzRVVgUW83RiZnYCU5bkhgRzRheUopZ0dGc2ww
UTtOdWViMnJAVk9zLXp0CnpxIVQlMl88Kiskd3F3S3k8RGN4Q28qbHA0UzJ7Z0Y8eUROT1hhJWZI
SEFufkNUQWRyKnhePTdCd0w5PGt5SHxoeQp6Zmh+Ozg1dFk+blFoZEtYPzQtUGcxdXw7Xz0kZ0di
WDhIRUBWUUZDey1xWEQ/eSVtSlg/dSZgMWxMS1pkZl89OWsKenN4TWtaQ2AqZlBFYkdtVnlWQ1Fk
UEYrOGIqVjVoPHtJJXwkcW9aVHU+RCFlbnl7X1UpSHZPLTNxeGJ7X1RNe3RNCnp0VTA4UGVmKnEm
RGAkT0tLVU0pcGxHVzFNY299Z2JKS3pfSFYxYSRUYVVZfS1jUlNVMT5mXzw0JXxAZihMV20hMQp6
KHw3TGM4fHFyQ3lRY1MpeD82d3daXkdnO2o0SmxWeCokP0ZEMVQwMWF4aCNiRkZSWTBiT1hLfEhi
eVlJYFQ2Q0EKeiNuSU1pUy0tSmxBMTJnQEVOKT84O256cUJsZnxTSCl8Q2R5biM9V0sqbEppfGI1
cWxhJUpELWA8QUd3empgM2xaCno/S0J9ZCE9eGBDUmRnUnEjPmQ1KHVeJUtRQn41Zj5VXno9MjRO
XllXdkt0WWtfRGEwXntnU303ZyYyOVdxY35Ecgp6b1o4KnRrQWlLRzc1RFd1eVpZblpNYjVPUHEr
RDZ0WD9OeHNOSDBXbWI4ezA0XnMlKElLZU82elV0eSo7OyEpODIKenUxLSUoRkghPU4ley1lYEVO
PGdfdTtoRH12dUVHYi00b2NhVWk5K2lfMz0rSHZabHB0MTdBRFNRcCk9OEhwOHhZCno2SitpTG95
c05IKmY4SGMrKWRNKnE9O2NSUG1iIyZOTz1BdVZNOz0lQGlJNUtBVSMzO3NndHdYbENAamFiU1px
ZAp6RUtYLV9JOWk2YytGJTx2ZSp2UVgjfiU0fkJYYVFDTkV+K1EoPmE7SXh3RmwmaW5LRn1FcGZL
TjhhVUdYMj1OUnYKekI3JiROKmU3bTJHQlVEWCZDTmhVP08yUz5MJDlGXmtAQlhMJXohcXUwTik3
NyRsfnNQZG5sS192Ymo9NVd0ODV3CnpHQmoqXnZgLX1nO35KfHxSOFpnbm5hfmJja3lPMzs+Qisl
IWQ2bGZ9eV41Q1NnTmBGIzNyS2hGI1lqSnN6eT00Xwp6aFo7a3h6RlYyQGk8WGBFe0hoXkVKRD8z
VnJXM1RAQUd8VDA2Jns4b1FFYUpQPXc8ait3PjhIJiFsP3VSNDtzRWkKenJAKmx9N0o5ZkJMaGVi
XlIpZ30kYmwtd1Z4JmEjMVpaMCYta3BxPVdZNml3YWQyM2B8ZUQ4QnJtLWhZJlB4diQ2Cnpfan05
fiVuU2IxazJ7Zig/QWBuT3VFWU45OEV3MHxrV1QhcDN6XjlFVl5MPm8qZnRFPjgzLUpUQ0tMKlZM
P1NKPAp6I283MmI4bUEjWTQ+XzlKRl5EYCkqNFpxYD8tZThNbDZ4eGpkfFJzNU03dTFtdSZBZ1pO
YEBAa2N2KTkhUyZUTykKenJjfUg3RSEhbD1mMD4wTGF5SjM0eF5zKHtMYn4mYm9Kb0lkZzt+RE1T
VzE4IUo8c3xJNWs8XiU7aTRDbk9qdHFmCnpOTHtld2RBcDBybms1djwpSilaRWljWEx9LWwrQSs5
dX1seHNkfStaVU98RTRIKG95VUlBSGp4WnJJTCFjTlpHdgp6JGxrcCFCX3x8Um9EQT9vSjxlb0s4
RjhiYEE2eEFkK1hgN31jcjJ3V2RGTEpBbmRZcjgxXjRnWW0oUTxXWGpMMEgKejZPdTI0TklFR1dE
b0RTV1NuNF59PUM/U1MjKypyI1pHN0R6LThYa2NncW4ye009R019UjU4eXtTS2xrTz4ofD1gCnpF
cUI0cWRienR4LTU4cXdPWEhwMXwycmJAb1EpUGxSKnVOT0dOb1VtMjZMYlYmajJEcDhlN1ImRCNU
enByU3cpJAp6QSQ3QnZZQ3dgelFnVms8THhEWUBFZShSK2FaIztIcUY+TFZffnolVztANig2ZjFC
PHQrMkc2KWlKUzhjXmZRX18KekswZkpPeHhaRHxIMUM9UWZ6QGVBX1VMaHBnQUwwPT9OQko1WjVx
eWlpR1czSjlxRnhWWWkmcn5uP0grLXkjTlViCno/MlBkNl9FLWZBKHlxaGlGMkRXdSttJjwhaWBV
b1J6bHpkWHt+OVhSMjF7ZGhOQyhjbj5IUDVWPkVYJVQ5OWYpTwp6XzUyNl8kKTlrZmdYaEJmSj9j
ZldyV0xKOXVYKClMWUVebkclVEtrJmBzITckPHR7VU5XI0JCY0NYMExzRmFscEwKenBJODMhTmB+
UzRfd1J1YmlnQXw2JnJYcWM3YHdedCs/YmRjREp9MCFHTCZkLSZfKzdgJmZ3ZU0jTmx5anRIbXI5
CnpPSVdHO1dYJlR9aH1Ue34ofm9MPGJhPFBLcCthSllxKlRaZkt5UGJmVl4oSjdGLTY2aXdiNFlW
enlXd2p5b3ooVwp6ajUwcUc5djE0bUM1TnhkZCVCWGQoem1mUDlSVCVfTEIrdy1CPmRKS3FPP3NI
WCVMP0ZfSTRtSj9kMzVqaFB6IVIKeld8KU9uXyFCWkBPTSNhRmBxNlNtKDFtNEQrQUNqTDZWPlJ9
X1FIcmRNTjsqaSQpIXRrZUZOTjtOSHdQS1h1UHdZCnpvfVRnU3YxO2YhJFJ3bEFxPlNPK3c9cWxR
amJWOXlBMEYqMTVpUC1ZO29zY2ZpbUN4KVZxMjFpQ3FUblNPPUxvSQp6MTNsc1Z6PjlPPyRGSE9w
MTZkSnkrKEAxY1F1a3UpJitVfEZRJlVybUclT0phNWplJHZ7NitaYlRWRmloWmtKbnsKejlwS2Um
JT03YGB3NXBXZD5RVk5kYGhzIW9QNjdedG03M1M2ZTl8SlltV0hFXihycTZgciMkWnBreFRKQ2di
Nm1pCnpkYkpiQyheNUE4SXVSUGNRYT0lKmxvK1p8JjwrZjcpRyoyMSMpYjxtdzg8RllGbEt8PFJn
YX4jTUU5U2JZU1dyYwp6KCg7KXBxMSpIVShuUmk4Vi1vMXJJOHNaQndwUGhhUXxxOU9tMUpje0pe
VGlBa14kQXAqO2N8dmBaYCptKV44d00KeiEmMGl6e2NQOEBnJVArbk1hOXtXVyZQUUAoI3ZuTFJa
WXVsZH5VdSRoN0dhPFFifUN6QWhULWJBUXU8JkExKEt+Cno8fGgtbkVqSEhXeCpAQTJ1SnI4ZVl6
UFBabEFmPkVTSz99QllIRTV8dTJ9I1BkVjA+MnY9Ti1mVCZmMXk7WTwhSAp6Ty0mdCFPLXl9eWFn
SFBsZEpjcjVZZDZLQit7MztgKzxUXjlxbyV3NXYjdCFJNCpTJGIyVzR5bVRGZH48bmV4Y2oKelBZ
YHNWSlNncUlIdXQ+P05wXjlKI19PUjRkdnsqZXlfajt3dVJjdEtwdEpfVU8jWXt6TlBod0xjRGJa
YWI+U0lnCnpGfmNQRlF8bGwyTGU0ZTMqbFMqTCl6cDtmR1o0aD9fb1ArTCo3ajkranM8aHBZaytr
ek13ITZaKWFBQUdMXnU0YAp6U0Z1WEF3UmNDRnt3Qz9pbDR9ZngzUUNXK1NeSFByTW4qP2hDT1NY
XyFPbShIbiZqeT0wa0AlZzE7d1AjOzUjI2MKejUlYUNlVz5CJCtxTEN+UHp7fnNkMSMhJlc8JXor
WiVkZFYtK3hya2ZHVSo0VSVgcTV2PUhfRnFuYmlwK3FDZWYqCnokSiZRTUFQMjJqa1lzeSRkZDVL
Z2lLejlAc1N5e3xNNk4tQkZmfXwhUSVsKil7d18kIXYtKUVOIylnXmBzVVVwLQp6cmVgZTUrISZ9
MXk+IVV+S3pEfG40VkJYd3dPZT97NG5hfUxSUiV+dmtNRmRtX35qTEEhVTd5cCR6cVJYdXNUe0IK
ei07djcma3dBUypkKXxOWCgpOEtecWA7UW5se1o3PmFpe3lyPFojQS05SVVMMik2M0hjNWBROThk
ZT07VU1Od2cpCnphP1BsN2JmUDghUHUyLVMrYUw1dSMpX3xxRER2c1llWDkyZjVhTi1zdV96Z0FG
IWF+T0FTRjslOXFBWCpjdnQlXgp6dyhFYkQzN0MzKShPKHhaP19lbEA0KWw5PUhWZmRiYXtqfTlT
VHN0P21KIz1aWF9qU2ZMRyRtJHNkSTBJJCQ8LXYKekM9TXN4WjkweE5HRWk1LVRyM2gyYGIrd2o/
dHN+dkdEc0ozdnc+SlduT0J1VTxnUCZrS3hPRWtzN04mOz55JEQ1CnpDc3whTmlGMz55IW9uRV9A
ckJwbHxEaGBydjs8LXkyfT15IyZEQERSU3R8cmJraG1eUWxFcGMtSmZHKW8lLVpebQp6IzkjJmwl
a0s8KjBJezQ9RGtMSXReJjB3PHEhQz89Z3cqVDB4Sj05cSk9JG5EODZEQkhEIWhSTXAtaC0pQTJG
a0AKem8zTGpYdH1fYnFeN14tdmUzKlhHTT14M3ktQEZfZzlFYCleIVZLRV5reFZtS0hjKSh9JnVt
S0sxfjBobHhoVW5eCnp3e0lYT3U8UFRtSzw1SldHSnM/ZjU+bDdmQy1jP2J4QUcmWnZSQytYXjNk
YFhCZChzcVNDeUJtfDN4S2wtQFlZcAp6NCRFYnZfX0gjfCFJaU1MMiZHIX0tQTcmY2tqYGZuX2U/
eGp2cTJfak8reWJ3OHxrYzNpclZuWj5hYGorYXw1MnQKem4rd05RRkx6cjdFUkVqKm9+ST5YYXpI
I3h4YX5zQDs2KHFabFRkVEoqMikzMiMpQVhXNykkQl4hdldwXjBGVmNTCnp0dyYwJnVIRlBYKWBD
U31nbCMzNWg2IzI5S2c+WmhBSGxUKWdyVykkQlVTPSUyLTNQcUp8QjJnT0d9R2pOczwqMQp6Ky1W
TmZgNXwmWU89bnxAJGV8TXpqfnkjdFhYVCZ8c3dNN3xGdnBPXng7MzlnTjJ8RUJyXjJJdnczM3NQ
Z0dEQDkKekVlPy0wTWdoanhecCRGZ0w2Tl9EdGNtfmo/cUw/clFVPUpFP1luezAqKD5mQSROX2t8
UnxrcyhNVyYkdkFgKlBvCnowLU1TVXMmUGkwMStjYEJZa3JPUTtCVnBwe3pVPW84RThVPVB2OClP
OzdJWkpPaVdFPDZIRXpCJDFec1VaRnZMJQp6WEQ5LS1sMmRAe1hyKj80Mkg9QlZ7UUp4QVdRfitP
IyZUQ0BNfXpxZ0Y0PHJ3I3Bgc0pSLW5uMWRJOVU+MEopUTMKelVPQFoxOHBpVGlJcippeGAmUFFH
Kz1KJWMybzA/TmJ3ZlhneXVqJSN6dkhtKE5FOHczMX1uKjNaTk1KSXdGN01lCnpVYCRVSWdDR0lQ
eUdMOWNyNEAqUm1KZSN4Qks5Z0tzNXJOUXBlcTQqZkZgMUhgbHdRbkZpPnNoczU9bWs9U301eAp6
Kj16bnVWS09YPyg8JVRlI0VBdXxnU0hIMChFeWNLVVc3fHEwdFV4ezFAVn47VWc+ZjZuUF8qTVhp
b3pgdCU5YkQKemg9PjM9NmR4MF9YV2okfntfM2NwWD9AUkNZaW1ZYl50K359Q04/dTVBOXd9flBP
ZkRNRVg4cEI2Rjk8SlApelY0CnpuS1JgSzRyMV81Z0gjIVc3Vj1qTVdkP1QyWio/I25ySWtGZSFE
RFU3cEBKZWlJOE5aMzRpJH5zYnA+Zyspam9AZgp6Mj84NXtCU0NlMTY5O0xoU2tfUFN3PXkmX0Y+
IVBwNXQwZT9Ydk5UPCNsX0pwQHJ8Uy0/b2BlUz15YWcxbFlSQHMKelV9dDE7P0VvQFJxI3o5Z2ZK
IzYkLTJ+TW1jUUsqWldBTj9sQFA0NHpkcGpsR15nPH5nanlnbD8mNFVwNnJ3TFU4CnpRbEFGN1Uw
N0pDTE9XOWd1eU9kO041PlF0bEU1dlhrYChCTFVkaUlIMldUfGZ6LXRGeGMmNkh8RlA5ZHtBNnJ8
Ywp6R2ArP19hNmAkSTs9OGhpcTxzJHJqUlFmMHV5K1ApVzRybUBfRmJSfV43VHBnKHFWSkpeMVFx
fUV8ZFpqJSVHUUQKenE/QUBeV3U/RHUrXnljP3RrTHpDb0REVl55bXpkaylscGI3NylLTm9mVSFX
UURPd2gxNShZIX4xZE40bWcyMjFnCnptMkNwfiQ/X2AoWCQmY0FaZmlVNyhAKk87KWIqU3R1R1VQ
czFJIWZVbEQqbyR6NnE3X3tkekItJUdEZj41SjFBUwp6KTVSek4jZWYlQ1Y2TjY7JXhvJjBTYCVi
KHktPUlyN1grT1dHUSNyKGNtOVp+bnBBZF93RHgqbClyYGJSeUUtVzMKeiQpTEFpeiZGQ29yMG5N
Qj5tWVc3X2JQbHJDQ0A5NlZncDZhTSl2bWh0Kit2Vm1SQiFkb197Njc4QW9wZ2NMTzFmCnpDWDtR
QWpnNVZMY09uUFVDSW5vZVZeSmMwc3cqOUQ+M0ktRzAjamNEVmghYXdgakwlPFpSRiUrMkRBWTF6
ODk8Vwp6YDB8TmxPSVY7NTcrWG00UjhQP3VOX3t8Z2MrdS1uOEtBSVRwdmZAVVFWUWtQQFctZDlK
M1NKMjRaZCQtYnR1WmMKenp4Kns9S00+YS1yKV8rO0EpUUBJX2hNdkcpZGBBZkFQNmNTWnItb3VK
JXlHUm84ZzA5PyEyO2BRVm0hZFIzaTtzCno1QWd4dj9gRkd1STElR3wrSDNxMXhJTXlqRjk4Z0or
Q1pTRWdAd2gxM2x+YDk9JEluY2lkYD9tSiY5UzxFXiRXdgp6UUBYKGYze345UitgdHIpV0htO2dK
Rkx0dzVAajMxTUR+Tm16WUZ8Xis5VGshTTdrNnxhKHYkfGJDKn1ZTSpidSgKenp3cz9YMzNSRm9e
byhXSDk5I2YoPDN2a0lVTjIoT2hsKzNZK30mS0FyKjRpWXY2cWMqSTZGdH1ReUUyPiRLSE4kCnp2
XjVkVUh4UTI7QXJyZG51PG0wcFc/Q0lgVzVkSE9OZzloXyZoKm52RWQ5NGwwfXhxKjNZUE5lcE5F
bWYtYVVLTAp6aj1EX3VTMWN4UyNTbGJ0aHdgfUQxRENiNkg0eG1PdmhNb1JwZVJ3ciFSMmdGU0hE
R0kxYWc/b3NOb084ViU1fXEKeno3KkpseTVeJDkweiMxaTUqO0taUEhgeE9qUS1lOElebkhycCN3
cHsxMnZAUyQ5MEImMWNPYCNqUnZ0cHJ6dDNKCnoxOUlTXms0azs8NWt5MX0je1h6ZW4xK353YzV3
TGNEMnFiYmdwan42a3clK15rUkRkRGg1VzVBUG9oKFRQQlA/eAp6UVJQRk9zaG1YUjQ5YlJDODdY
KSRTMT4jU0VCTl8ycmhsPnhmJD5UY2pWN2FVY05ufXpEZkNUSGowXzs8TX5kISkKejRkWTlmbytQ
OWFjcFBAZExZaGdBRExVd1ooaEBLVzAqe2pBY1VpQCQxO1ElUz93TTtgPXsyIUg8ODlKRnJXdS09
CnpjQkFgJXRwUUY/dmtpZUVLRyNfO0dBYXBCUGA0T29tMCt9UipKRiNScjlZX35Cd1lkZztvbU0t
eG53bmZLcDxxNwp6ZiU1UX5gWkE5eVZFQFRudSRDP201IWVzbEdLO0o1U35wNjFzMzhocWhje0oz
bFpHWFRmY3xGLSFjTDZJOWNBdFYKenB3NFNYVXFKS0RGbCh3KFEpUT82X3p8SERhMWg0RShaI1ZS
dGspTnNtMUkweVBRX1YhVGowNEpnK1BhalJ4MiRrCnp3M2c/bWhUOFImVjVPN0diWCM2SGNHRGko
MEQjMj44YXRRZih2e3I+Zj9ZXlZJdz5ZKnhkRj9hJDh2fFREX1h5SQp6KWRfIys+Rkw9MyNUbUZk
bXpscEVreFVoQnM/KmFOZTZTbX1xQ2dEcHFiPjJeazBnfERlMChvJXlWLTJaVD4hTksKejA3MFY+
eHI8T2hhV09IczJXbzM3RD5hdkEtZFpqIUUqZmMhSmNCbGFpJFE+OFM9KChrM2dOJWQ8MG5lMill
MFZ+CnpmN0AxK2tBd2B7aUJYQz5eKCsoQisrcDt2OWBCc2UxQzUhSlNCYjkrO2UoS1kxSV45T182
STJncnE5fV50c0I2cQp6eDdla35xMlkwVmU/T0twMFlncyR7O01zSFJ4Nj9EYigzV2xqdnhkbk4k
UjBuKXhmbmRgb2U9SiVfe2pCPkk4OysKenpKTT5teipvP002Sks2QzBBMENTRlFEMlVONG53WSpj
SGdMdEM0dWw2aClxUnt8LWFhYmBZaCZEOFNHI1VwJXc9CnpINTY8TDg3dj9TJTtvYHYwOXRFN0li
KXVnMDVuM193WWpUOUlGYzltP1pJM0FMdHQ4PVZgT240NmJ9fDRBJWM/bAp6IXsjTUY+X3ZZLTNQ
NlMrWEd7PmZBT3VoPTRqWm9rcykyYlFJIUNMaHMwZG5Mc3UoOGU4JHVLWGIrU2syeF8wU0cKeiZJ
azN3U2tGV0FvcSY4VV8qbWV4QTVVRj4yU2tQT25kelNkSn1CLW0rKmw7QHM9P19zTSQzdXFRJShp
MUQ/PEU1Cnp2akFpbm49em4tOGkjOU85QVllPkFfNiRlYlZ4Z0IkWUUxcGVERlZtJntNVjJMV3JI
TVhqUHBhVX1FZHE3P35gSwp6Qk1fRUBaS0pMTFZmJCsjcE0xa3o/OXdwVCUpcz00NT9+YkFodH1+
VTYwO3MrNnYxYil2OFA/VDczQWNjVkc1Wj0KekE2ZiRjSDI4MjFLXzFyT2V9PnImISlKZzRsaihH
fUJuVWdHQ2wqWWVjUWZ+WlRvLUw2NiNRYjRxej9GTDgjdEw7CnptVG5NI3c7ZDtVMVhsPVEqJn1a
WDQzVXhMRWBvZiMkP3VCdzJObVBiNztJTGUxX0ZOQistKkZ2YD40VDk3QzNGPwp6MWw8UmJUfnlk
TVhNK2FxMEFGflU2fkc3QWNUb2dUWntBc2tBVTlQMV5EeUc/Z019XnN7ZTByel8pPFpDZE16SiMK
ekVFPGZsQExXSThEX3hzYztDTXh7VjZaK3M8OCY9fGVYPiRsYF9MOS1vNntDeTxaRm9FYEVBSHxF
cikrV0xTfCFqCnpEWnFLbT0mcGxza2B1TCE1Mi1jZDdlKT58aHMxOT9UN1YkO3g1TE1GfDZLWWY2
OTFueVFFQFJ5MDFnUGw7ZlBJagp6ITJvKnIoPW1XYW1sbGBpSTNAUCktfkNnTXxGcSUxRkNndlNw
YEwqdFRlaFJgMHtueHZ8TTFUTGsjNWMxdF8mYkIKenUoZ0xuZ1VCPGUzUSpPOVh7TGpyeXJTYXJ8
QTNgT0QrQ2I5PVA7RzMpWEtAcD5GRTB2U1lPbmpIOCRIUDNWS2Y2Cno0aWt+Pj04bzItYD1LcnE4
MjlmJi18c041QTtmSGhZYVhCcz8wNnUrenBTRCFnVmI/RkJ2ZG91YmN+dTI2Qntjawp6cD9ie0tt
THwlRldUc1ZEMlpBfT0oQ21IZiZ+UD9YQENhXiFjJn1AJjJoTkB8eWl9eH5edm1NbGpSfTF7eV9F
cGAKei1fdSVaVj1rWCtGWCktfHJIUEpDQTNuKndGemFXMis9NmQkIThwZG4jbVM2ZztOfmJlU2NN
NilLJjVQN15qUmIlCnpPek5pNl5yRzI9JGFwejEjTiR8RitoWXM2N2hJI3VXYFgrWF89NjZ3anVn
VTktRlhMPng1UVRSQmNqZCZ3WGc5KQp6PSZ2N30pPWdjMTh8X3tQVzByZEYhI2JFQz5PQSRgOzg2
fVF3c0pyNldVektiWikqOT5wPCtDfHstVkNJR0Z5PkYKekJ2cE8qV35EaD55fF99c2hyfXhrRThn
R09SREFnWG9+czZTXmRMRSEwbFIlNzIyczJVM3YoMmNRMm5TUiNEfWI7CnohRH0ycDUzbzBoKnN9
XnNPNilkQ0IqWVJtRkBGK2JXRSorPlB2NGRKWn5IeC00UX59OHhDQDVvXk0wfHJ7fnl7VwpCK3lE
Um8KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRy
YW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjYyODJiNzMzMjNjMmJkY2EyZjQ0MjQwNjBiYjgzMGI2ODVlY2VmZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgNzg1eDU4NQor
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDU4NQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3
ODV4NTg1CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc4NXg1ODUKKyAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXg1NjkKKyAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDAsMCkgc2l6ZSAweDE5CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKK2xheWVyIGF0ICgxMCw4KSBzaXplIDM2eDIwCisgIFJlbmRlckJsb2NrIChwb3Np
dGlvbmVkKSB7RElWfSBhdCAoMTAsOCkgc2l6ZSAzNngyMAorICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDM2eDE5CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNjog
IlRFU1QiCitsYXllciBhdCAoMTAsMjgpIHNpemUgMzZ4MjAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0
aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgxMCwyOCkgc2l6ZSAzNngyMAorICAgIFJlbmRlclRleHQg
ekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM2eDE5CisgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzNjogIlRFU1QiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113880</attachid>
            <date>2011-11-07 09:22:14 -0800</date>
            <delta_ts>2011-11-11 12:52:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71225-20111107172212.patch</filename>
            <type>text/plain</type>
            <size>43545</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg4NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NjkxN2RkNDUwMjY2OTk4
MDdlMjBhZWZhNjU0MmI4ZDA4NDM4M2U2Li41NjE2OTg5MDhjYWVkNjQ2OTI0MGU2YmI5ODFhZjkw
ZDVhYTI1YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTEtMDMgIEFscGhh
IExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIGNvbXBvc2l0
ZWQgbGF5ZXJzIGFyZSBibHVycnkgd2l0aCBhIHpvb20taW4gcGFnZSBzY2FsZSBmYWN0b3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjI1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyBjb250ZW50
cyBzY2FsZSBmYWN0b3IgdG8gdGhlIGNvbXBvc2l0b3Igc3VjaCB0aGF0IGl0IGNhbjoKKyAgICAg
ICAgMS4gQWRqdXN0IGNvbnRlbnRCb3VuZHMoKSBvZiB0aGUgY29tcG9zaXRvZXIgbGF5ZXJzIHdp
dGggY29udGVudCBzY2FsZS4KKyAgICAgICAgMi4gQXBwbHkgdGhlIGNvbnRlbnQgc2NhbGUgaW4g
dGhlIHBhaW50ZXIgZm9yIHRleHR1cmUgdXBkYXRlIGluIGJldHRlciByZXNvbHV0aW9uLgorCisg
ICAgICAgIFRoaXMgY2hhbmdlIGZpeGVkIGJsdXJyeSBwcm9ibGVtIGZvciBhbGwgdGlsZWQgbGF5
ZXIgdHlwZXMgYW5kIGlzIG5vdCBsaW1pdGVkIHRvCisgICAgICAgIHBvc2l0aW9uOmZpeGVkIGxh
eWVycy4KKworICAgICAgICBUZXN0czogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJh
bnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRUcmFuc2Zvcm0pOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpzZXREZWJ1Z0JvcmRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50c1Zp
ZGVvKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBDb250
ZW50c0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9J
bWFnZUxheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMYXllclRleHR1
cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJD
aHJvbWl1bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVt
OjpzZXREZWJ1Z0JvcmRlcldpZHRoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJUZXh0dXJlVXBkYXRlckJpdG1hcDo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyVGV4dHVyZVVwZGF0ZXJTa1BpY3R1cmU6OnNhbXBsZWRUZXhlbEZvcm1hdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRl
ckNhbnZhcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06OnBy
ZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGls
ZWRMYXllckNocm9taXVtLmg6CisKIDIwMTEtMTAtMzEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgbG9jYWxpemF0aW9u
IHN1cHBvcnQgaW50byBVSVV0aWwuanMsIHJlZHVjZSBleHRlcm5zLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA4OGRmYjFhNjE0MzRkYTg1ZjAwNjg3ODBhYWEyYjQ4OTVjOTc2ZDBlLi43
MTkzMzdlNzU3ZGRlNDUwZjYyODRhNGE4YTYwZDEzMWViNjc2ZDY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTAzICBBbHBoYSBMYW0gIDxoY2xh
bUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGVkIGxheWVycyBh
cmUgYmx1cnJ5IHdpdGggYSB6b29tLWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudHMgR3JhcGhpY3NMYXll
ckNsaWVudCB0byByZXR1cm4gdmFsdWVzIGZvciBwYWdlU2NhbGVGYWN0b3IgYW5kIGRldmljZVNj
YWxlRmFjdG9yLiBUaGV5IGFyZSB1c2VkIHRvIGRldGVybWluZSBjb250ZW50cyBzY2FsZSBmYWN0
b3IgY29tcG9zaXRlciBsYXllcnMuCisKKyAgICAgICAgKiBzcmMvUGFnZU92ZXJsYXkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpPdmVybGF5R3JhcGhpY3NMYXllckNsaWVudEltcGw6OmRldmljZVNj
YWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6T3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJ
bXBsOjpwYWdlU2NhbGVGYWN0b3IpOgorCiAyMDExLTEwLTMxICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIGxvY2FsaXph
dGlvbiBzdXBwb3J0IGludG8gVUlVdGlsLmpzLCByZWR1Y2UgZXh0ZXJucy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJD
aHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDcyOWE5YWNkZWNjNDhlZjA5OWMyZTViOWMz
NzYwNTk0ZDBjNmIxN2UuLjczNGY0YWVlMDNmZDdmZDljYjEwZjYxMjVjOTA3NzJmOWJiZWFmM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApAQCAtMTkxLDYgKzE5MSw5
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYg
c2l6ZSkKIAogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldFRyYW5zZm9ybShjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKQogeworICAgIC8vIENhbGwgdGhpcyBtZXRo
b2QgZmlyc3QgdG8gYXNzaWduIGNvbnRlbnRzIHNjYWxlIHRvIExheWVyQ2hyb21pdW0gc28gdGhl
IHBhaW50ZXIgY2FuIGFwcGx5IHRoZSBzY2FsZSB0cmFuc2Zvcm0uCisgICAgdXBkYXRlQ29udGVu
dHNTY2FsZSgpOworCiAgICAgaWYgKHRyYW5zZm9ybSA9PSBtX3RyYW5zZm9ybSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC00NDcsNiArNDUwLDExIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVt
OjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IGJvcmRlcldpZHRoCiAg
ICAgfQogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6ZGV2aWNlT3JQYWdlU2NhbGVG
YWN0b3JDaGFuZ2VkKCkKK3sKKyAgICB1cGRhdGVDb250ZW50c1NjYWxlKCk7Cit9CisKIHZvaWQg
R3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVDaGlsZExpc3QoKQogewogICAgIFZlY3RvcjxS
ZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiBuZXdDaGlsZHJlbjsKQEAgLTU2MSw2ICs1NjksNyBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCgpCiAgICAg
ICAgIHVwZGF0ZUFuY2hvclBvaW50KCk7CiAgICAgICAgIHVwZGF0ZVRyYW5zZm9ybSgpOwogICAg
ICAgICB1cGRhdGVDaGlsZHJlblRyYW5zZm9ybSgpOworICAgICAgICB1cGRhdGVDb250ZW50c1Nj
YWxlKCk7CiAKICAgICAgICAgbV9sYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludChtX3NpemUu
d2lkdGgoKSAvIDIuMGYsIG1fc2l6ZS5oZWlnaHQoKSAvIDIuMGYpKTsKIApAQCAtNTcxLDYgKzU4
MCw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVMYXllclByZXNlcnZlczNE
KCkKICAgICAgICAgLy8gU2V0IHRoZSBvbGQgbGF5ZXIgdG8gb3BhY2l0eSBvZiAxLiBGdXJ0aGVy
IGRvd24gd2Ugd2lsbCBzZXQgdGhlIG9wYWNpdHkgb24gdGhlIHRyYW5zZm9ybSBsYXllci4KICAg
ICAgICAgbV9sYXllci0+c2V0T3BhY2l0eSgxKTsKIAorICAgICAgICBtX2xheWVyLT5zZXRDb250
ZW50c1NjYWxlKGNvbnRlbnRzU2NhbGUoKSk7CisKICAgICAgICAgLy8gTW92ZSB0aGlzIGxheWVy
IHRvIGJlIGEgY2hpbGQgb2YgdGhlIHRyYW5zZm9ybSBsYXllci4KICAgICAgICAgaWYgKG1fbGF5
ZXItPnBhcmVudCgpKQogICAgICAgICAgICAgbV9sYXllci0+cGFyZW50KCktPnJlcGxhY2VDaGls
ZChtX2xheWVyLmdldCgpLCBtX3RyYW5zZm9ybUxheWVyLmdldCgpKTsKQEAgLTU5MSw2ICs2MDIs
NyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCgp
CiAgICAgICAgIHVwZGF0ZUFuY2hvclBvaW50KCk7CiAgICAgICAgIHVwZGF0ZVRyYW5zZm9ybSgp
OwogICAgICAgICB1cGRhdGVDaGlsZHJlblRyYW5zZm9ybSgpOworICAgICAgICB1cGRhdGVDb250
ZW50c1NjYWxlKCk7CiAKICAgICAgICAgdXBkYXRlQ2hpbGRMaXN0KCk7CiAgICAgfQpAQCAtNjM0
LDYgKzY0NiwxNSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHNS
ZWN0KCkKICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKG1fY29udGVudHNS
ZWN0LndpZHRoKCksIG1fY29udGVudHNSZWN0LmhlaWdodCgpKSk7CiB9CiAKK3ZvaWQgR3JhcGhp
Y3NMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50c1NjYWxlKCkKK3sKKyAgICAvLyBJZiBwYWdl
IHNjYWxlIGlzIGFscmVhZHkgYXBwbGllZCB0aGVuIHRoZXJlJ3Mgbm8gbmVlZCB0byBhcHBseSBp
dCBhZ2Fpbi4KKyAgICBpZiAoYXBwbGllc1BhZ2VTY2FsZSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2xheWVyLT5zZXRDb250ZW50c1NjYWxlKGNvbnRlbnRzU2NhbGUoKSk7Cit9CisKIHZv
aWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXR1cENvbnRlbnRzTGF5ZXIoTGF5ZXJDaHJvbWl1
bSogY29udGVudHNMYXllcikKIHsKICAgICBpZiAoY29udGVudHNMYXllciA9PSBtX2NvbnRlbnRz
TGF5ZXIpCkBAIC02NjQsNiArNjg1LDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpz
ZXR1cENvbnRlbnRzTGF5ZXIoTGF5ZXJDaHJvbWl1bSogY29udGVudHNMYXllcikKICAgICB1cGRh
dGVOYW1lcygpOwogfQogCitmbG9hdCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmNvbnRlbnRzU2Nh
bGUoKSBjb25zdAoreworICAgIGlmICghYXBwbGllc1BhZ2VTY2FsZSgpKQorICAgICAgICByZXR1
cm4gcGFnZVNjYWxlRmFjdG9yKCkgKiBkZXZpY2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiAx
LjBmOworfQorCiAvLyBUaGlzIGZ1bmN0aW9uIHNpbXBseSBtaW1pY3MgdGhlIG9wZXJhdGlvbiBv
ZiBHcmFwaGljc0xheWVyQ0EKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVPcGFj
aXR5T25MYXllcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDcx
OTBlNTA1OWZjNTYxNjQ5Njk2OTA0OTQzYTVlNzVjNTM3YzUzN2UuLmIwNWQwN2JmNjM3YmY1Y2Zl
MGU0YmVjNGUzOTNkYmE3YjBjMDNkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1
bS5oCkBAIC05NCw2ICs5NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1
Z0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1
Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAKICAgICAvLyBUaGUgZm9sbG93
aW5nIGZ1bmN0aW9ucyBpbXBsZW1lbnQgdGhlIENDTGF5ZXJEZWxlZ2F0ZSBpbnRlcmZhY2UuCiAg
ICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OwpAQCAtMTI0LDkgKzEyNSwxMSBA
QCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQ29udGVudHNJbWFnZSgpOwogICAgIHZvaWQgdXBk
YXRlQ29udGVudHNWaWRlbygpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNSZWN0KCk7CisgICAg
dm9pZCB1cGRhdGVDb250ZW50c1NjYWxlKCk7CiAKICAgICB2b2lkIHNldHVwQ29udGVudHNMYXll
cihMYXllckNocm9taXVtKik7CiAgICAgTGF5ZXJDaHJvbWl1bSogY29udGVudHNMYXllcigpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGVudHNMYXllci5nZXQoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRz
U2NhbGUoKSBjb25zdDsKIAogICAgIFN0cmluZyBtX25hbWVCYXNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VM
YXllckNocm9taXVtLmNwcAppbmRleCAzNjMzNjI5NjdhY2NkZWJjMjU1OWUyOWMyNGQ0M2MxYzg4
ODgwMzE3Li45ZDNlOWYzYTFlNzBkZWU1ZjE5ZTNjZjBiMjQ4Yjk0M2FmYTEwMmMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVy
Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkEg
OiBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRCR1JBOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJl
Y3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgLyogYm9yZGVyVGV4ZWxzICovKQorICAg
IHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3Qs
IGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgLyogYm9yZGVyVGV4ZWxzICovLCBmbG9hdCAv
KiBjb250ZW50c1NjYWxlICovKQogICAgIHsKICAgICAgICAgbV90ZXhTdWJJbWFnZS5zZXRTdWJJ
bWFnZVNpemUodGlsZVNpemUpOwogICAgIH0KQEAgLTE4NCw1ICsxODQsMTEgQEAgdm9pZCBJbWFn
ZUxheWVyQ2hyb21pdW06OmNyZWF0ZVRleHR1cmVVcGRhdGVyKGNvbnN0IENDTGF5ZXJUcmVlSG9z
dCogaG9zdCkKICAgICBtX3RleHR1cmVVcGRhdGVyID0gSW1hZ2VMYXllclRleHR1cmVVcGRhdGVy
OjpjcmVhdGUoaG9zdC0+bGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcygpLnVzaW5nTWFwU3ViKTsK
IH0KIAorYm9vbCBJbWFnZUxheWVyQ2hyb21pdW06Om5lZWRzQ29udGVudHNTY2FsZSgpIGNvbnN0
Cit7CisgICAgLy8gQ29udGVudHMgc2NhbGUgaXMgbm90IG5lZWQgZm9yIGltYWdlIGxheWVyIGJl
Y2F1c2UgdGhpcyBjYW4gYmUgZG9uZSBpbiBjb21wb3NpdG9yIG1vcmUgZWZmaWNpZW50bHkuCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vSW1hZ2VMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaAppbmRleCAxYWZjY2ZlMmZkY2U2NDQ3
NWE3NGFiMmM5MjZkMDQyY2I1ZjM3Njc0Li41ZmU0ZjI2NjY4YmRjYzNlMjlmMDRjZmZjZGE4ODJh
NzNjMzFlMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaApAQCAtNTQsNiArNTQsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KCk7CisgICAgdmlydHVhbCBib29sIG5l
ZWRzQ29udGVudHNTY2FsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDb250ZW50cyhJbWFnZSog
aW1hZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDZhNmEwZTc3YzQ3NDkwOWNhMDJi
NDQ4MmRmZjYwMTYwYWExMWNmNDguLjc3YzQ2OWY4ZjE2YjVkNWY2NWU2YTY3NDgwMDM4NDZlOTRl
YWQ1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC03Miw2ICs3Miw3IEBAIExheWVyQ2hy
b21pdW06OkxheWVyQ2hyb21pdW0oQ0NMYXllckRlbGVnYXRlKiBkZWxlZ2F0ZSkKICAgICAsIG1f
cmVwbGljYUxheWVyKDApCiAgICAgLCBtX2RyYXdPcGFjaXR5KDApCiAgICAgLCBtX3RhcmdldFJl
bmRlclN1cmZhY2UoMCkKKyAgICAsIG1fY29udGVudHNTY2FsZSgxLjApCiB7CiB9CiAKQEAgLTMy
Myw2ICszMjQsMTMgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXREZWJ1Z0JvcmRlcldpZHRoKGZs
b2F0IHdpZHRoKQogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKK3ZvaWQgTGF5ZXJDaHJvbWl1
bTo6c2V0Q29udGVudHNTY2FsZShmbG9hdCBjb250ZW50c1NjYWxlKQoreworICAgIGlmICghbmVl
ZHNDb250ZW50c1NjYWxlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NvbnRlbnRzU2NhbGUg
PSBjb250ZW50c1NjYWxlOworfQorCiB2b2lkIExheWVyQ2hyb21pdW06OmNyZWF0ZVJlbmRlclN1
cmZhY2UoKQogewogICAgIEFTU0VSVCghbV9yZW5kZXJTdXJmYWNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
aAppbmRleCBjN2FlY2JlNThhNzdkMzE4ZGVlNjU1ZDU5NTQzZmZkMDE4MDMzNjFlLi5lZDBjODE1
Y2JhNmUwYjU0MTZiODk5ZTRiZTlmMTYwOWE2ZmU4OTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBA
IC0xNjUsNiArMTY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250
ZW50c1RleHR1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpIHsgfQor
ICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRlbnRzU2NhbGUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gVGhlc2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0Rl
YnVnQm9yZGVyKCkpLgogICAgIHZvaWQgc2V0RGVidWdCb3JkZXJDb2xvcihjb25zdCBDb2xvciYp
OwpAQCAtMTkzLDYgKzE5NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcmVlblNwYWNlVHJh
bnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpIHsgbV9zY3JlZW5TcGFj
ZVRyYW5zZm9ybSA9IG1hdHJpeDsgfQogICAgIGNvbnN0IEludFJlY3QmIGRyYXdhYmxlQ29udGVu
dFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2RyYXdhYmxlQ29udGVudFJlY3Q7IH0KICAgICB2b2lk
IHNldERyYXdhYmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkgeyBtX2RyYXdhYmxl
Q29udGVudFJlY3QgPSByZWN0OyB9CisgICAgZmxvYXQgY29udGVudHNTY2FsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY29udGVudHNTY2FsZTsgfQorICAgIHZvaWQgc2V0Q29udGVudHNTY2FsZShmbG9h
dCk7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgYW55IG9mIHRoZSBsYXllcidzIGRlc2NlbmRh
bnRzIGhhcyBjb250ZW50IHRvIGRyYXcuCiAgICAgYm9vbCBkZXNjZW5kYW50RHJhd3NDb250ZW50
KCk7CkBAIC0yODEsNiArMjg0LDcgQEAgcHJpdmF0ZToKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBtX2RyYXdUcmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9zY3JlZW5TcGFj
ZVRyYW5zZm9ybTsKICAgICBJbnRSZWN0IG1fZHJhd2FibGVDb250ZW50UmVjdDsKKyAgICBmbG9h
dCBtX2NvbnRlbnRzU2NhbGU7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVw
ZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
VGV4dHVyZVVwZGF0ZXIuaAppbmRleCAzZDg1OTdlMzllODVkNGNiZjAxNTZkNWNjMTE3OTQ2Nzk1
MzcxMjRmLi44NWUxMzc5YzJkZDYyOWY5OGU5OGFjMzJkMDRiZDRjMWE2YTBkYzEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1
cmVVcGRhdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAv
LyBUaGlzIGZvcm1hdCBzcGVjaWZpZXMgdGhlIGNvbXBvbmVudCBvcmRlciBpbiB0aGUgc2FtcGxl
ZCB0ZXhlbC4KICAgICAvLyBJZiB0aGUgZm9ybWF0IGlzIFRleGVsRm9ybWF0QkdSQSwgdmVjNC54
IGlzIGJsdWUgYW5kIHZlYzQueiBpcyByZWQuCiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3Jt
YXQgc2FtcGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBj
b25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0
IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxl
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4
dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1hbmFnZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpID0gMDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVy
ZVVwZGF0ZXJDYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5jcHAKaW5kZXggYWNiMmNkM2U0NmIzMDEz
NGVhZjg4MDViNDUzZTVjYWI4ZDU0NWMxYi4uYTI2ZWI1MjAyNGM2MDA4Nzk5MDllODlhNjE2NWQw
ZThlMDVkY2MwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5j
cHAKQEAgLTEzOSw3ICsxMzksNyBAQCBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxG
b3JtYXQgTGF5ZXJUZXh0dXJlVXBkYXRlckJpdG1hcDo6c2FtcGxlZFRleGVsRgogICAgICAgICAg
ICAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQSA6IExheWVyVGV4
dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdEJHUkE7CiB9CiAKLXZvaWQgTGF5ZXJUZXh0
dXJlVXBkYXRlckJpdG1hcDo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRS
ZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscykKK3ZvaWQgTGF5
ZXJUZXh0dXJlVXBkYXRlckJpdG1hcDo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNv
bnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxv
YXQgY29udGVudHNTY2FsZSkKIHsKICAgICBtX3RleFN1YkltYWdlLnNldFN1YkltYWdlU2l6ZSh0
aWxlU2l6ZSk7CiAKQEAgLTE1MCw3ICsxNTAsMTYgQEAgdm9pZCBMYXllclRleHR1cmVVcGRhdGVy
Qml0bWFwOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnMK
ICAgICBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6VGV4dE9wdGlvbiB0ZXh0T3B0aW9uID0KICAg
ICAgICAgYm9yZGVyVGV4ZWxzID8gUGxhdGZvcm1DYW52YXM6OlBhaW50ZXI6OkdyYXlzY2FsZVRl
eHQgOiBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6U3VicGl4ZWxUZXh0OwogICAgIFBsYXRmb3Jt
Q2FudmFzOjpQYWludGVyIGNhbnZhc1BhaW50ZXIoJm1fY2FudmFzLCB0ZXh0T3B0aW9uKTsKKwor
ICAgIGlmIChjb250ZW50c1NjYWxlICE9IDEuMCkgeworICAgICAgICBjYW52YXNQYWludGVyLmNv
bnRleHQoKS0+c2F2ZSgpOworICAgICAgICBjYW52YXNQYWludGVyLmNvbnRleHQoKS0+c2NhbGUo
RmxvYXRTaXplKGNvbnRlbnRzU2NhbGUsIGNvbnRlbnRzU2NhbGUpKTsKKyAgICB9CisKICAgICBw
YWludENvbnRlbnRzKCpjYW52YXNQYWludGVyLmNvbnRleHQoKSwgY29udGVudFJlY3QpOworCisg
ICAgaWYgKGNvbnRlbnRzU2NhbGUgIT0gMS4wKQorICAgICAgICBjYW52YXNQYWludGVyLmNvbnRl
eHQoKS0+cmVzdG9yZSgpOwogfQogCiB2b2lkIExheWVyVGV4dHVyZVVwZGF0ZXJCaXRtYXA6OnVw
ZGF0ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBUZXh0dXJlQWxsb2Nh
dG9yKiBhbGxvY2F0b3IsIE1hbmFnZWRUZXh0dXJlKiB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKQEAgLTE4Miw3ICsxOTEsNyBAQCBM
YXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXQgTGF5ZXJUZXh0dXJlVXBkYXRl
clNrUGljdHVyZTo6c2FtcGxlZFRleAogICAgIHJldHVybiBMYXllclRleHR1cmVVcGRhdGVyOjpT
YW1wbGVkVGV4ZWxGb3JtYXRSR0JBOwogfQogCi12b2lkIExheWVyVGV4dHVyZVVwZGF0ZXJTa1Bp
Y3R1cmU6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3Qg
SW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpCit2b2lkIExheWVyVGV4dHVyZVVw
ZGF0ZXJTa1BpY3R1cmU6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVj
dCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRl
bnRzU2NhbGUpCiB7CiAgICAgU2tDYW52YXMqIGNhbnZhcyA9IG1fcGljdHVyZS5iZWdpblJlY29y
ZGluZyhjb250ZW50UmVjdC53aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQoKSk7CiAgICAgUGxh
dGZvcm1Db250ZXh0U2tpYSBwbGF0Zm9ybUNvbnRleHQoY2FudmFzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0
ZXJDYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuaAppbmRleCBmZmM3MWM2OGZmN2M3ZGM5ODIxY2U5YWM4
YTFiNDA4OGFhNTg4Mzg5Li4zNzgzMDcyNzQ0MDZhZDAzNDk1MmExNjVlNWQ4ODk5NTU1OTJiMTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclRleHR1cmVVcGRhdGVyQ2FudmFzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5oCkBAIC03MCw3ICs3
MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSB7
IHJldHVybiBMYXllclRleHR1cmVVcGRhdGVyOjpCb3R0b21VcE9yaWVudGF0aW9uOyB9CiAgICAg
dmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtIHRl
eHR1cmVGb3JtYXQpOwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50
UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4
ZWxzKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNv
bnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxv
YXQgY29udGVudHNTY2FsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KEdy
YXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1hbmFnZWRUZXh0dXJlKiwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOwogCiBwcml2
YXRlOgpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIE9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKCkgeyByZXR1cm4gTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VG9wRG93bk9yaWVu
dGF0aW9uOyB9CiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9y
bWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpOwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9V
cGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXpl
LCBpbnQgYm9yZGVyVGV4ZWxzKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNv
bnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJv
cmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1hbmFn
ZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVz
dFJlY3QpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXgg
ZmNjNDZkOTkzZDU0MGE0MjE5ZDdmMjcwMTAwMTg3MzhlZjdiOGZmZS4uZjJjNDJiZjcxYmM5ZTkz
NTkzNjU4NzdiOTMzYmNiNDJmMDc0MTg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwCkBAIC0xMzQsNiArMTM0LDE2IEBAIGJvb2wgVGlsZWRMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogICAgIHJldHVybiAhbV9za2lwc0RyYXc7CiB9CiAKK2Jvb2wgVGlsZWRM
YXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRzU2NhbGUoKSBjb25zdAoreworICAgIHJldHVybiB0
cnVlOworfQorCitJbnRTaXplIFRpbGVkTGF5ZXJDaHJvbWl1bTo6Y29udGVudEJvdW5kcygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIEludFNpemUoYm91bmRzKCkud2lkdGgoKSAqIGNvbnRlbnRzU2Nh
bGUoKSwgYm91bmRzKCkuaGVpZ2h0KCkgKiBjb250ZW50c1NjYWxlKCkpOworfQorCiB2b2lkIFRp
bGVkTGF5ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqIGhvc3Qp
CiB7CiAgICAgTGF5ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChob3N0KTsKQEAgLTM3Myw3
ICszODMsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0
IEludFJlY3QmIGNvbnRlbnRSZWN0KQogICAgIC8vIEhvd2V2ZXIsIHdlIGNhbid0IGZyZWUgdGhl
IG1lbW9yeSBiYWNraW5nIHRoZSBHcmFwaGljc0NvbnRleHQgdW50aWwgdGhlIHBhaW50IGZpbmlz
aGVzLAogICAgIC8vIHNvIHdlIGdyYWIgYSBsb2NhbCByZWZlcmVuY2UgaGVyZSB0byBob2xkIHRo
ZSB1cGRhdGVyIGFsaXZlIHVudGlsIHRoZSBwYWludCBjb21wbGV0ZXMuCiAgICAgUmVmUHRyPExh
eWVyVGV4dHVyZVVwZGF0ZXI+IHByb3RlY3Rvcih0ZXh0dXJlVXBkYXRlcigpKTsKLSAgICB0ZXh0
dXJlVXBkYXRlcigpLT5wcmVwYXJlVG9VcGRhdGUobV9wYWludFJlY3QsIG1fdGlsZXItPnRpbGVT
aXplKCksIG1fdGlsZXItPmhhc0JvcmRlclRleGVscygpKTsKKyAgICB0ZXh0dXJlVXBkYXRlcigp
LT5wcmVwYXJlVG9VcGRhdGUobV9wYWludFJlY3QsIG1fdGlsZXItPnRpbGVTaXplKCksIG1fdGls
ZXItPmhhc0JvcmRlclRleGVscygpLCBjb250ZW50c1NjYWxlKCkpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVy
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDVkYWYwZjAxOTQ3YTk5NDdjZDIzNWY1NWZiNzM5NTll
NDQ3YjFmNTYuLmYwYjU0OWUxMTlmMDIzOTliN2NjMjA2MTQyNDMyNjNlMTM4MWRhZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCopOwogCiAgICAgdmlydHVh
bCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRl
bnRzU2NhbGUoKSBjb25zdDsKKworICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50Qm91bmRzKCkg
Y29uc3Q7CiAKICAgICAvLyBSZXNlcnZlcyBhbGwgZXhpc3RpbmcgYW5kIHZhbGlkIHRpbGUgdGV4
dHVyZXMgdG8gcHJvdGVjdCB0aGVtIGZyb20gYmVpbmcKICAgICAvLyByZWN5Y2xlZCBieSB0aGUg
dGV4dHVyZSBtYW5hZ2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXku
Y3BwCmluZGV4IGY0YTI3ZmI1MmNhN2MwYTJmMzk2YWE2MTU1YTNiMzMwZjNjMjY2YmEuLjg4ZTIy
YTBmNjFhNjQyZTEzMjkzYjdhNzhhNjQzZWZkM2JiNGI2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAKQEAgLTcwLDYgKzcwLDE2IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9wYWdlT3ZlcmxheUNsaWVudC0+cGFpbnRQYWdlT3ZlcmxheShjb250ZXh0KTsKICAg
ICB9CiAKKyAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxl
RmFjdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3dlYlZpZXdJbXBsLT5wYWdl
U2NhbGVGYWN0b3IoKTsKKyAgICB9CisKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVy
cygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV93ZWJWaWV3SW1wbC0+cGFnZSgpLT5z
ZXR0aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2ZhYmZmMzczM2E4ODg1ZDMx
YzJiZjZkNjE3NzVmNmYxZjI2M2MwMC4uYzUwZDY0NjAyYTMxZWFjN2RiYTVkMTVmMmE0OWI0MTU0
YTIyYzllMCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTAzICBBbHBoYSBMYW0gIDxo
Y2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGVkIGxheWVy
cyBhcmUgYmx1cnJ5IHdpdGggYSB6b29tLWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIEFk
ZGVkIHRlc3QgY2FzZXMgdGhhdCBoYXMgcG9zaXRpb246Zml4ZWQgYW5kIHBhZ2Ugc2NhbGUuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDog
QWRkZWQuCisgICAgICAgIFRlc3Qgd2l0aCBwb3NpdGlvbjpmaXhlZCBlbGVtZW50IGluIGEgc2Vw
YXJhdGUgbGF5ZXIgYW5kIHBhZ2Ugc2NhbGUgYXBwbGllZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0
bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHdpdGggcG9zaXRpb246Zml4ZWQgZWxlbWVudCBpbiBh
biBpZnJhbWUgYW5kIHBhZ2Ugc2NhbGUgYXBwbGllZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0
bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHdpdGggcG9zaXRpb246Zml4ZWQgZWxlbWVudCBpbiBh
IHNlcGFyYXRlIGxheWVyLCBjc3MgdHJhbnNmb3JtIGFuZCBwYWdlIHNjYWxlIGFwcGxpZWQuCisK
IDIwMTEtMTAtMzEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAK
ICAgICAgICAgQ1NTIDIuMSBmYWlsdXJlOiBiYWNrZ3JvdW5kLWludHJpbnNpYy0qCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRj
NjA0YzY4ZjZhY2NlODE3NzRjZThmY2Q2ODUxZmU1Y2QyZWRjMTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgbGVmdDogMTBweDsKK30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBwb3Np
dGlvbjogZml4ZWQ7CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7Cit9Cis6Oi13ZWJraXQt
c2Nyb2xsYmFyIHsKKyAgd2lkdGg6IDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBmdW5j
dGlvbiBzY2FsZSgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0
cnVlKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgZXZlbnRT
ZW5kZXIuc2NhbGVQYWdlQnkoMiwgMCwgMCk7CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJzY2FsZSgpOyI+Cis8ZGl2IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNU
PC9kaXY+PGJyPgorPGRpdiBjbGFzcz0iZml4ZWQtd2l0aC16LWluZGV4Ij5URVNUPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29t
cG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFiOTc0ZDMyNGRkM2E1NjU4Mjg4
YjFkYWE1ODFiZDJmODMwNzk4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
bGVmdDogMTBweDsKK30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7
CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7Cit9Cis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsK
KyAgd2lkdGg6IDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBmdW5jdGlvbiB0ZXN0KCkg
eworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRF
bmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBldmVudFNlbmRlci5zY2FsZVBh
Z2VCeSgyLCAwLCAwKTsKKworICAgIHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zy
YW1lJykuY29udGVudERvY3VtZW50Lm9wZW4oKTsKKyAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdw
b3NpdGlvbjpmaXhlZDsgei1pbmRleDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKKyAg
ICBkLmNsb3NlKCk7CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0
KCk7Ij4KKzxkaXYgY2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8aWZy
YW1lIGlkPSJmcmFtZSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmJiOWExNmM5MzkxMWJlZGZlNjUzZTk3YjdmZmUzZGI0ODJmNjQxOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMCwwICsxLDMz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZml4ZWQtbm8t
ei1pbmRleCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMTBweDsKKyAgLXdlYmtp
dC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCkgcm90YXRlKDIwZGVnKTsKK30KKy5maXhlZC13
aXRoLXotaW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6
IDEwcHg7CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpIHJvdGF0ZSgyMGRl
Zyk7Cit9Cis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgd2lkdGg6IDBweDsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0PgorICBmdW5jdGlvbiBzY2FsZSgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBv
c2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwgMCwgMCk7CisgIH0KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzY2FsZSgpOyI+Cis8ZGl2IGNsYXNzPSJmaXhl
ZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGRpdiBjbGFzcz0iZml4ZWQtd2l0aC16LWlu
ZGV4Ij5URVNUPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2UwMTBlMDQ1
NDZjY2NiMzU1YmViOTliNGEwNjRkZWRlNzY0MmQyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1
MDg4CnpjbWVJMD1+TDYhOHBuXlVUN3xSJkxNdkQ0bThxYmpwYHtvRjFocGQ5cUFZPyFpSTQhNyNZ
N1NXNmU1SE92flUzXwp6THk8Kmc1bjdEd2FGSyoxQiV+TkVzfHFCNUFxZkhqKiRHPktFWmw9TF9k
anMlKyF5M2NXLT5YP2RDdjJFem58eSkKemVvNC1iX0ZBOXFgd1JlfWJAM25QdUs9TD5IMl45ZUo1
fUg+ZHYqNjMhPl9+UGJ7XnE9TEg+VUR1LW4xRiUqWDd6CnpsbTg2eF58MSk+dkdEdVd8QWdOdUFL
I05HZTs+MGBDb1RNWkVpYEtDQ2pybjJ5P0ZrdFRWKEYrNUdFKlZXJUhFOwp6S2htaistYkAmMXFw
MjIjcDJnM2NROFVfa20+djdUI2NhVzMmbGs5XzQmdD9+S1l0TiNWd3dJZ1pMNj07QyhyTE8KeiNu
bkNBZT19JEp0YyN+QW9pPWRzY30qUUBRPTlPbUEwPUVFYnpAME53KkoqZGRZZSk/ZWI+O1lmaEg/
R2xLRz1MCnowSD55dig+bmxBdmNCKkR6KC17X2AxJXJkMmwjb0hEWSQxQXN9NFJ0UjFMdE5ZSUAq
SVBLeWZJc3Etb1JHPU5ocgp6bzJ2OCg+MyNxSGVUMHhpRWgoOCklSTIjb0Q9VyomcTloIUJUamtu
bE8tKVN8YXw2ZCNheil4O241TEdHdHc3Vn4Kem54I1NtMUIwZXBxWmRsdFZFU1IwT3h5MTZaZnp+
Q3taQEMlaG1JRnR4ZSo/fHl3Wj1zUjBsSUJDbnhkIW1DZnRwCnprNWg7ZE84SSYpcE8kQSQzWUQk
U3M7YTgkPTsoO1pRYkJpfm02ZklDMzhHTHc2IXk5ejx7WT9wXnsybX49KjE/PAp6dCUoU3ZQNWxA
THZFVENoaD4pUDVwbHs1ZChgZWx5R2MmVWd4TkApRVRjTUROb2hZQ3YybUFWLXVmXj9rKzZrTj0K
em1pOTItSnYoI3REcCVaKlRAYno0cm1pYCQ9JnpLcCszZk4wQGtSRS1oWXpRd3JvTiRmTmUyVDlY
OENqPztSaWZeCnp4Kj0+THh1YHh5dkdJR0ZPKFMrYHAwJWxicTJxTVAoWHBGXzw+O3NZd30zanoh
SkJ3fClKKUIqWXhOe1BFZnt7cAp6RDtxMSo/eEYzIT96YkFKJSpAVW5MKmo1YUp6YH41bTU0PjU7
TlZIeCVVNV50ZGkxQDwqUFo/TzxOVzcwZFRscjUKenVEWUI9ITxmazdtUk9GI0AkMj1+UVBNZklj
WGI/RTZfbWRAejR8QnQ5KkReWkFgKSQqUiViQEVqdllHfDVwZlhRCnpgLUs7VFJWYnQpMmohRF9M
NC0pYUFjZVc7V0BLYyopI1R8NGBYT1dFM0Y1UGdpV1RTMnojNmdRWk9ne3tNOGhtPQp6O2hRJmFg
dW5CSnkteGFlRT1Nd2psdWdDVW1vTG8meU4zaSZAUHZSYWI+OHl3XjY+Qyp4ey1Zcnp4d3R4UHBN
UVEKell9U1NnNkF2Nm85K34ybiFUNXFZZTFHT3FfcW1aQTA2SUslSHBpSGBqfC1Jajd8UU0yeDU+
K0k/UTNnbT9PZmQ0CnotM0BKYCpWWkpYMX1NVSUlZGl1JTc3e2hRR05zfF4pMkFDVThQcDdzYlMq
ZXxjQ3dlTXNpQmNpVUw3bmxRTmpiYwp6UVhNVCZzTGhTKHMpJVNgYThGIzNXYkJiYkNxb1MpODRH
ezUyZz00V29QPzMxc1M9NSMkT05gZExzUWMqWDYtJDkKenRKeHA3c05zfE89Zz8/MDF8dzJNU1Vj
LS0zQFAka0JRS0p5JT1KTV8xdVZ0Z3YyXj5hWHF3eUFzfXxQUWpJcU9NCnp3I3Z4QnooQTVmQVJ1
Y2RzKUc2d2krdnNfM0NzbTQ8c1BrS1Q9Qmwybmt1TmMxJU9eN05+TWZTcjhZRClGcUhEOAp6KlYl
bFVlQEU3MDV0RkdUKypiJEg1MkNTTW90PlEoOVl8LTdvPlQrV3dNYUhoR2hQJEhUeiFXWnJAOyth
XjJMdGQKenRTQjNrKVdzMlRIcFd9PUdYUi13biFKX2l7X057V0dmUFdMZE9wVF9fb1lqaDd8VDVs
cW9ibyt4LSNuUj9TOyk+CnpwUVZmUldeKGlMVzxQdXxOJW8hUVJvSkg7QGNJfkdtbkxzdkEqM08r
eXxKPEohaTVXWiNIS3M1QEF5UjRYPXgzVwp6OHB6SzAxSWohLUo+QUp4QHd+V0xKWUJeUyh1dFVM
e1d5UTl6YT58dik3LSY5KHF2Q0BObDhna1FqJDw4XmxHfX0KeiNmWXFkNmQyKjhTWGZ3OzwkZXlI
X19qJjBnMFpmZHJUTmVme2Qoa1Q3Zk5LaylNK2picXNTJCU1KXUtS0VYOFVFCnprX0RDRGUwT0U0
dWRncDJWS2RPenc+KHU9SDN1RWdueE01NjI1VHwqU0lVSlFLJCRIdFU+I0hnXkAlJF9EYzdwRwp6
OHJRZzlITiNJXlRVK05ET09DRnR5fDl4UUZFMX41Y2otdDlHNnA4PT1qVnFadVc7aU9XdnU8NkMz
dSVMK21sV1oKek05bnYmUE1vK2lgWkQjKDdSdHQlTTx9cV5gfWdnJHlmZnBgO1BxcDEmeGEybVZD
fFMjZWwrWXpmMkNLe1FXcntKCnpHJCZ0UWYme1E0RXNtfHVAfVpheTlYaUM2JXtBcCZNY2ZHd3pi
UnlfSCUjUUN4QjY3fT9+Pz9BZ050cT0hcTdXOQp6cSVGbkpHQ1hLKjc8JSVAZlN9O3VKZUNnQEl9
QkdJTyloRn5DYlBSP2I4MVVVWmI7T1I9RUwlVGNlUipRPU1yMDUKelRIMjl+dnxTJnwqc2F8eT92
UmhoJEgjWWRiJjJFNiZDUik3dF4/dW1lQz14KzJyfCk3MCp9V0ZvOU56YWNUMkljCnpWc0EoZVhP
RH1aPENCY0BiOD5UWURlUG9wSFNud3h3fFJibSQ2Rm9uT1JFVDNxNlBFY3k/ZlVfNGZSK3hfNWRR
aAp6Yjh+PnRNfDtDPW5oTExERmY3V1p2VHNZWEtoNWZ0N2I2PXhta1FmeVVHeThoUGJ0Y0VzITF9
IVI9Jl5AdEQxdGsKelVMV0VFUTkpOzUpIykwKnFjQ2Q1TGhINWRXOzYqeEklYWlka1luS0s9e1l4
ZDkpUjZqYmR0QHB2Z0t6KlA0bW5xCnooJGFYNTNGSEBDRSNza3ltbXpkVCZTPjs+cClPYnVkSHg9
fCh1JU0oQnsyI00zIytRO0MjZU87bFopSnJHO2I8cAp6c2l+PWYtTUl9LXkqdDJBPWNDPV9hTjBv
MThgPU1BTzgwP2dRNzlDSyhGXlAhNVUxVUFJb3ZYTDd7M1dscW9lTVgKekwhNTdTZlVMU2gkfk4q
VGwmendRckcjQUJgMCNzTEt3d30+KFgrfSoyKGtzcT1xblVxRENaSUVnYklGUzdmLUdxCnpjS1B6
PDZ7IT96TXp+bEd0SlhfKExoUlhORXRgUyhsZndnMTlySkptZilkV1lgTCExaW0xckhPWUNXUDFZ
UzI2Swp6e1Ykb1hTS0V2Vzc/UEk7KEIqYjZlTyNgVnd6aUZZcHx6fnd6Z3pneVd3Yyp0RyNabzEp
STFSUiMzWHJaM2NwQ3cKemkzbTZqP3hFNEo2bmAwfG5YY2F+REp7aUNNbjwtfDkpTTFTISp7Vzxz
WSN9LXRxRFMwQCF3WXlNcW48T3hpV1dlCnpRWmVJOElJN1gzMEdOZ28pdmhAP0lmYUZWa3JlOV8x
eFJ7dU43Z2ExOWhzflVlN1BINzUzamQ4ZzNMZj9XMWR3MQp6MFNSOGQ1Q194TEw+ITJvdD9PPyRZ
LSh6dnRjJGIxaUJRNShCSVpFWEdkNmJaMDdvKHE8eG5gdDI1KVM1Y3NTdVMKekReZjJmQ25ze1VJ
USErUlM1UjIoX0RgdSk+Q0U1fk1BTlo+USZ2e3x3e0tsXklsS3lWK0pWIUpBMHl+IW0lfVNhCnpz
UTNYS0NhTCVEbitoU3c+Z2J9RnM1dzY7cmBLYEQ3b3A2SmpFbzltSGZ9Z0xiaWtxME9jWEh9ayFs
Pz0lSm02cQp6e0B2MnIrTkdYaTJVa35EYyVOdSlaaVhPaWpGazk3M1VFXk5AaV5TSVEtMjMlSUtS
IWE4YH5aYVBLZC09JFBtb1QKelY8TTlAe3hHbjgwQGdROE9HYEA+QmIme30jMD5LSlE3Y25pTkpV
TTw9eFBXPHR+KjhtOWd2YDl1b2IyU0g8WWZRCnpzc2lONUNSQnt3UDdzM2wtYCY/Zi1PWD0xKGtI
d3xaeD9nQm40antvWStGeTtkZkx8MEN3PGVnWks/bFhPVVowQQpZWTNIVWooJkctcFM5YWl7byNY
aytiSikyNTBQNk55ITJrZE4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1
YTFiYjliYWM1MjllNzQ1ODFlZDY4NmVlNmJjMDNkZWZlZjQ2ODUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDU4NQorICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDU4NQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MzYKKyAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDM2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSA3ODR4MjAKKyAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAw
eDE5CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0
ICgxMCw4KSBzaXplIDM2eDIwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAo
MTAsOCkgc2l6ZSAzNngyMAorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM2
eDE5CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNjogIlRFU1QiCitsYXllciBhdCAo
MTAsMjgpIHNpemUgMzZ4MjAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9
IGF0ICgxMCwyOCkgc2l6ZSAzNngyMAorICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDM2eDE5CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNjogIlRFU1Qi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxl
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzM4YmRkNWE5NmM4MWU4ZWY3YzBhMjc3MTRj
ZGIyZmZmNDZmMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUyODIKemNtZUkwWDtoUEU3Uk1q
S0hyNSYjazA9UHpTblVXZEFjYDIyTFBqbTN3VE9UU2lYPCFwUUF5WShnQDYmKURoUkRNCnpmTlc3
RE03RCVRSypBUDlLdkBKdEElc0xnJUR4I09LblRsUlBRVDhGYEMjWUZJcGUzQ15QYXA8PygrWnQ/
dE9DVwp6I0JtR2tPM2pyQkE/KHAzS2lEOW95YiZRS2haUmNqV1VibS05cilOOVZEMXAkY0Z4Xysp
QmhxQj9iK3EoO2JQI3YKellhaWEtJjI2dVhgI3VsMUp4MmRASFF3diRmIzJpZDsrbV8lZXVqfFJv
fSloO0lRZXRKaD1nP1JvZVduazlqaU5rCno7UG19ZiNZYWp0LWRhNnNHMDEpSiVmVEhsSE97Tjhp
cUtVWVRDNmlMR359O0h7QFZLNUZUYWlzQTcxJnlUdW9UYwp6dj9md2NKM0lkIy05LXJ4VDF9LT1s
UjdISGUxKW0/QlJ6Wmp4X3hFKUl3c152Vn5YKXRHP05abnlLUEwhIVl8Y3cKejU8PDRVQlR6eXMp
O0oqS3FWelN8Xz49UThiblVBaD0oMGlCN3dCKFd2SnJafGQ+IzVuPj9pcUJtOE9HVHdgLSQkCnp5
R1RSfmt5aTVne0JWOCNWP0lDbGVNISk/KnVTQ095SWopTEJwdStlUjc4WlMrR1F2cVRBLWJJekIh
ZkptZGskaAp6c1FibU9IRWYlLWxpUlEqYzkrXlpJdjlWdns0SXRVb0Y+K1hyPV9MeU8lXiFxQ3N7
ViQtZVgtQUgoNWN3X2FEWTYKekszMXJ6Pnp8endkR2hwNT1jY2dQPzJMP3wzfDwqdS1XIWpuMnY2
QUJgWVQyWHFlMmcmJWUmVFY7eUc7SCt4ZWNZCnpEeUdLNkh3bkBnWW1fbGo4fXt3S3lGUGoraUNG
WkkmMzVtdHlLaW90Y3s8T2RAaWsjIzxgSXxjKXNLa2BoUFJ2Mgp6dyVOVXsobWlRc0h4RUIpUFlS
Vml4VC05LTJgYjZZJm8zKTAzKDRtM2MjeD0mJTZ2fkJEYGpyQ1NEYHFSZ34mMHUKemtQfldeT14r
O2dtZH1rSmgtYntwU3tMV1g3IXJ3dWk4Q0pqWThnNkEmU1kkJlAkKHRpSFFPem8yNmE4WmUmXjFl
Cno5QCpxVHZ4USVjQzA9cTtvP0JFQFIxJDBDKzBzfSkoYnF1QXpoSE1eRFczSTErTD5MMSQ/djli
OXhsdiFiNnVTewp6R3VePlpIPHp8SmRZZ3tGKzxYV2hHVENIN2RtcSV0eFlWaHVrM3xMdCQhJV8k
KFJ6LWpoPiYwSntCI0c3PztgekIKeio9QDJLMzdxZmskekdUcDs8PVBKNzZ3aTkjPktAWT4rKnw+
d0tPJThMWntrQk1ATVYwez1JZCt3a3VKcjFBTWclCnpzX1BROSg7P2U9PzBzcGc2VjF0NWpjcyMm
czNqfFdvdH4oYUswUnxCZ003QiMpNldqMyg7WGNoVGVCUSN4bVlOYQp6VnJyemxmWkVRRUEpWm1J
ZTBiPWxybHd9SnpFZzBnQWsyNWU4cX1HeHJJSnZAcyFPdzRvTTw1NnNpRyZMaW04USMKemc9RjNJ
akVxKlVsY0h1akZNK1dqUGdeUlJpO2VoTWRXZUMmbH5xR29zQThTb25Nb0c4ez1RKmZKLSZsLXso
TzxGCnojVzZnMnNVanBPYFJ3ZDAzKkwqY1Q3YFc0P3RNXmNYezYjOWI1ZD1aYy1NRnZSNDk/ZHky
UWBSJWhTQ0x4I3QlWQp6eWlQS3U1M2YtfDV6a1llVU53MzxVYEJuSWxqOTRpcypeJXx0PH1vc3Jg
a2JjITUrT3pYdlExTHA8Z19sPm9UVGkKelhKLWRGVihCJEBfRD1ifS1Cc2hrZVhrU0FLRX4qPlpD
cHkmI2ckODt5bjQ/Y0RedHtqTUBCfFVIOElGSko4eUZ+CnpSQ3tufXNDTE15STUzZ1lFLXZ6fjRW
Tz4hTU9BfWtEXyZ0dmt3X2Zee3Y1alFsNCRKZmRKUUxSWW0/NyhNLWs+ZQp6UmBrU30mXz9JTE8q
YlRSPXgyPWpHLXl3I3ZtOXc4aEIjfVIxX3VhYjglSVYpbCF0MFF0V1V8dkBUfFBPSFpkYEEKek5u
ZXt3T0d7fnppPjt1Xy1SSDsqI15NZEUqNnJsU1N5QGl5bSopUkchTihiclZRJU04bm99KlNCZWt7
b0JPa2plCno4Y2U2Zmc0KSM3KUMwNztQfU45bmxjfnwtRkAwam00ME1jQzxtV0VleTVmI2V7aWI5
fTxjYXFaS1Y+V35CcWIkcgp6eCFtNX5VaVB0PShZOERlU2dJayhHfCFgNnYtPXVDa0ReMFZUREIo
RDVyZGVFQShzXj1OUHJFIUxhfms2R19iLWMKeit4Yn14PjV9fUY0cj5ue2tKfSZjbjhXRzJkclV0
cUJjcGg2TDFDWUQjPmxOSVYlUEIlJFkzNCRqe31ibz5kVmRSCnpjNyRXZXROIzxhV2U7JVomcTB6
NkZFJHtiRFNwPXRFcEFiNyted1c1TV8qe35LcE9ZN3lxPFI1LXAtQmYteF8tcwp6QVFfUndjWGFA
VTl6Tj5peVBHcGxhQTJPfDVma0gtKGQrJXlROC1ycj5lditWdjtQYHZtIzhpTDhGVDkwUTttUzgK
emZgUzZqVyk3RC1uakVnNSZnQ1pJejI4SHRDWl5pR1gjb0t0dmpkIX5RJklETk5VK2FLWTFHKj1l
bE44KVQyRVZCCnpUanpMIUY3cnE1WmZEa2JFbSY9e01QJGszbmAxcUpUYlZ6Q2EteiY7YHlXdTU7
OV55cio8NzdyIT5VczhQMjhvWQp6SzMmZ1NpRkUzI3lNTmN5KHtwbGkwdmYmcDxDVkJuK3lGNXs9
UiVrNGIyMj9XXlg2fHR1JXtxY0h1I1BjVEFIMj8KekBiIVhXKEQtY0p3YjgpSk8jWCtLY1pzI3hq
QUU+dTxYZ0c2IVlkPFNUMCtBYzhEU35zc01KenZsQD5pWHhDTUNTCnpVSz9HTDJvWFdwM1EqamFw
YERMKW1Vb2BAcFBQfH0kJCUmTyF8b1poe1JHMVZmYWBQMzFRKj1ARmlad2swKkVUQgp6ZXQkd2Yt
VjtMXzlUP2JwYC04bFhnP29+aG4oNl5XUTl0VypVPHN6VlFrQmZBcztjZTA2MkVLbEZpd08qcCMj
eTEKeldmdUEhTTt5Pj4kPW4kcUE3Mnt8UXZvYWFwME99em12TUB7V2pXSC04V1ZfZSskPTYkbCYh
IXdCPCVBQ257WkB1CnpQOzV7U1pnXklxczB8MUhsNztoRkVWbGRtWjs/VGRyTD1tXzQjJEdiNSht
JmY8Vio7dF8pcjtNUDF9VD0yamUkfAp6JHkhTWF0bTFsRWVMVE1QP09RZVRDS3dacWpVUntlOFVr
ckZkI19rU2F3TmtWZ0t8QGtJRVBOdTwxNC0pZmtFRHYKeihzeytCe0FBcjkqPjc2MTlNJCNDSmZU
bUlOKXVJKGFiYmNpPnxKfDFPaz0qNmdueTM7eysxTWFjTDBIRk5Eb1d7CnpgY0U3PlJQbHk9T20l
fj9MOE99IT5pYWNzY2xJX2B2S2dRciVzc0R8WDFPbEhBWXVnJXJkYEZUbm9TQWFgVndoRwp6WWM9
fVJGaiRiQGJ6T1l7c3dzYHJNOEBfQiVySENvcyVkYUxLcFNHe0NwNSR2bDMmTXJtJGtpbDwyUkk1
eFh4VFUKelI9IXZVUSR7OX01ZjxrciowVkhfYW0+PHQ9Y14qdEwrYk1uRmcoX0NxdD4kJVpEaUpu
RnZvM2J4WHMqcDRxI1UoCnozM01jcmB8YztLe3hkMU5LKSNqWklTTkh3T2RHM0lDIUpOUl5hZHlv
WDdHfms3b3A0a089QDNkKjZKNWlnZDlEWAp6KlotYyRvZnswem00PylvOzw7Q1B1X0pWdnNTYllW
SGN+K2JHUnUwd2ckb3piZEF5eEcrS0F8NEU+KVNaKEc+YkYKeiklWTQyPDlgWnFoNzdRb21gblM4
OTxSfGs5YFJBeCNLZEgycGUkS3EmSlVuWm40ZklVSFlvPjJqZWhfbllieVhyCno/clUlazdFI301
MmJ2ekMoLWlgSz8kMktpMz1XPmphV3lCQyQhPjBMQCp9WDxJTUYxcytNVlVBTTZtc29nUFczZAp6
RkwtKmtAPEBhIW4wWWxAakklYHxRNFEwITA5R2NxPlBXMDRhT1B1SVVsUUdgKTd7cCNgR0x2Tig5
bHAyQXNzeFYKenpMUGl5JkVjSWIlQUxiTCVaMl9DPV9DMUMwT2ZLOSFeK0NhLXJuQmRlKihIKzg+
Sj01QlI3REBzKkp4eWczSWE2CnpeSigyOT9TLW5EX0JeNiNzO0JEb000ZGErSHFve0g2fGg7b1Ew
I1kxRXsxWGtLRCtWLXUoP052NzRrK2I0KFZAdgp6MikjZTFVejdxNlQyUEZecDdKaFl6MlZaQ2VX
fjVtUUwzND5ncUw1c0h8dTs5WktuTDVsVHMlcitJfWsyQTstMXkKenVAd2VzNnh+fEghQlY+UUBM
IyF9ZSE0flheR1RvWio2X0tRcE5zaF5aPXMoflBwTUl9YndGSWU3c2deNGlxJCtFCnpndm8kYWlf
NnRGUyYwTzE0ZE1oZ182VHUmTH02PyRMZFVieFBqMGlFVG1eVVQrdW9+e3s8PkBTciVVa2pOdVJD
dgpoemlHWXlaKUh2fjlFPmN2bzY/TWJnQDVxU1FTOytKYTFUMFBgND5AdXhVdjhNCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0MWNiYjU3OGUxNzJk
YTg0NGRhNjg3ODk3MzlkYTc2NGM0MTQxNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg1ODUKKyAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDgwMHg1ODUKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDE5NQorICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTk1CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSA3ODR4MTc5CisgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgx
OQorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAo
OCwyOCkgc2l6ZSAzMDR4MTU0CisgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMjAp
IHNpemUgMzA0eDE1NCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMzAweDE1MAorICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDMwMHgx
NTAKKyAgICBsYXllciBhdCAoMCwwKSBzaXplIDMwMHgxNTAKKyAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDMwMHgxNTAKKyAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSAyODR4MTM0CisgICAgbGF5ZXIgYXQgKDgsOCkgc2l6ZSAzNngyMAorICAgICAg
UmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICg4LDgpIHNpemUgMzZ4MjAK
KyAgICAgICAgUmVuZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMzZ4MTkKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNjogIlRFU1QiCitsYXllciBhdCAoMTAs
OCkgc2l6ZSAzNngyMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDEwLDgp
IHNpemUgMzZ4MjAKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNngxOQor
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzY6ICJURVNUIgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iOWM1MTFiMTMxZDBlZjZlZmE2NGJhZjRiNTRjMDdhNmE1ODBhMGJh
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4ODgwCnpjbWVITlhJTjl8dyUrSXs5dCskIzRyVC1l
WFV4YjVOPTcze2xNSTdwQV9eUzM2dXwtcjIjRTk9KUg2RFEkUVQ0dgp6cz9zfnNkcWYxNDUtYiR5
U09CR2stYT9aNVgzbyQxPERUPDhfc0BOdjtnN0oqLXJ4N0Z3Y2ZKVSZQX2Q/VzFINFgKenR8dGck
NmFDbDJgVUo2aDJTS2JkVUFHRVhCKSpaNSNYcX48a0M/aWp5SV56OShhcG4mSTc/TncqfXcwcz9Z
Vk9ZCnpsPWRyQTVBMzY9Q0BHIyVSI3NBXlFmPCFlUzI0YT1keEljJDVjST5FaFRidmJ5PyVjZiZq
bDxfNl85ZDVeMWtuPQp6VFhTQT4kQikqM3ZwJSEken1ASTA4KCVtKnQpbXkrM1YtJXJuLWh+U1hl
Vmt1U0s2TldQM1o1VEIzSDUjYzNmU2oKelMoIzhEZHxWe3R5V2tvZFJ9c3pjekIwQTtWbGRSSC0w
blNqZjZTZ1U5aGg2YnJvdlNwLW97P3k5T3xENXNGdXlICnp0Vyp+dmNJWWczUnVlP2ZPejR3VSNK
WEwxMWFiOW1keCMrR1JVMyNNX3h7JlFpdD40PGVGaF58aTtCZ0pYQTtDQgp6RW5WfFVreFBIfEwj
LVExRWA5enpyTEspcDZrNmNRVnJUWERMPWYlQnJ1QTdXWmJSRU57N2FwQyVYMy0kPC05WXMKem1v
SHlWSWRNTmZraGZlQVVgWV4rbTxOQTF3WHZ9JnV4cDdeYlpxYWReNHFYc0x5MSRqQ3dJSWcqUnJB
Km10KW51Cno7YFdgWnBDOWpUbk85c3ojTX4qSW99TWxVKmhGV044emM5MlNOaERmclc8N1gyaEtE
ZllgSVVCcjg1ZikzbXRSSAp6WShHNF5uUnFuUnAqOEp3WFgjTlFoXmxYfSU4QCVpelNwY1UlXisy
MFArVkpFK3MpMDUjKyFYaHJjYWEmJEwlI1EKei1nN0VIREokI1o7XmgweXZPMyVMcGEwZD9jSVpf
M1goR3JWV0FfeWd7WT5MKk5wPGZfT3RTRSFkLWdRRmMla2UpCnpJZS1tSlI0dyM5ZGh7c2VXVkJB
UyhxNElhJEp4KVg+a0VtWDJaPD83SExCQGxabz9AYClsMURUdyYlfjI+MkRHPQp6dWJEZlM0ZmNC
Vko5UVYyI350ITNfWlYkUTNebEs8NGMkcnxTe2phRHNNUjc4Y0JQZj1HISskPnpXRGw0OWZ1KnsK
emxJY25wLUBWRTxGS091NG4wflItdEprQXJxUEsjJmV9QSFhWmBiMjwmJmwpJE49flpJSio3N3sl
ZyZFPSZXdT9jCnpBYnZoNlVFQDErLSVqNzd0O24lTSZMZV9NUHR9Uk56RFgpbHZSIVdYWmhBbmU3
cEtwJSFaVHBwKFB7Plo0KCFQJgp6eUo5cnVlK2p7cDRLejEzXzIkaVdxIXljR25jbkk4Xzl5Rn5I
OHBFO0VHczR8WFZeJkFyQF9IRlBDdFZrcWhmcVIKemw7Rm9XZUJTdktRRTFPTGtCVyMkUEU5M2sq
KXNJJGxWUnQ+cSRLaip6MWcxUVUzOH1WWHVIJExgY09KXjxwWVY4CnpXXndNZi0rcjRKWUt9aFNI
PWkwRz1xcD8tKEVGYWA+PyZlJHk3a28pLSs/UWwhb3xxK3dQTT4hOW9qTSs9MnprYwp6T1l0fjJA
KkVMP0d2I0R1V3l6YENqZzBKYllkSXVYWCVZMEckbmR6TjJPRWlqTWd5Jm1Jfm0+QCVKeSVQczZC
NGEKemUqYXB3LUgxdXZ4Xj9UQFI5eXl0WH1HKEBCe3Y3OWRoTE8tc0FLSypQMDxIa2JlTG8kNUZj
JERKN3MzMyVIWGZHCnpkZH1AYE19VUo+JTwwVXImSH1yeExWTHVsbmF4STcmIXpuJWFTUD9OMXl5
djAyeSlYb3hpS3FQR3lUcmFWe3pfIQp6OEJaeVVyTiZsT2oqNSFQPmFgb3dZK0o2MGlpPlNtSnk2
NyhabHJqUHk+cVI8d2U/dC1HPl5aKTUrdXMtZSNFK08KemxJVEBfMzticjZ6fEhRUGk2XzVoKX5f
KWgpSnpaTzJqPUJCJGxwbXhIU3dZPl5mTVRxb31Ocnt5I01zZWdWakBeCnpFaXs0dSp0XkhrTj1e
P24wK3pFJmBqJFYxPnRiKDNyPmxJY2VDS0BVK0R5WDlyd1ZMTyl7VGUqYSg1KzNya04oVwp6M0pN
QjM/MkNGTW9wJGpqb2slMi1PSVA4U1g4fkopNTBvUkJ1SWU9cnY7NjZic1BzRClnS19qfGViYXJh
Vl9TeU4KelY+X1YwSUxEJEIwbDVNdSp0LTh5YWtxMmteeDRDSm5CbTcmblA+R0pSdS1xKSNFJjFF
WGA8Y2Ara1R1JHJjZ05WCno5LXFVeENpPCRseHtUJHd0eTtCWWRUPztDWlBVRndRQmZ2S1h8MGI9
Zy1SK3E7UGVyaitjUW1FUCpjeHVafSokMwp6QlJ2bjVCNiVEYEJ2TmVHdn0zYEBKKlN2bThzanJI
UjtaeCMoM2p6fDZwUFpsKCRZbzBlcntqQlAyKilaeDdfbFAKempMfT9Id1J3cCVrR3FoWUtpTzZ0
enx8TDIzOzB+d3hCfjRjMShlNExaU0NsdiZpcW4kQmUheG9JUWg2cDVZP24kCnopIyVpNzhRbzND
Sjt1QXs4c3V9Y1krRiN4RDZ3NjFXP1k7R1hwS3lsUkp5b1chcishclNTITxfR1hBZzk0TmB+Vwp6
e0cyJmBSa0ZycmJ3VFo2ZndQST5hYkA1YUR7ZmJaUyY0Sih2UmkrM2ZZdUUkckBxUmlRckN9PjZz
dzdWSF5kWUIKenclP3lUUTF4JkNwbXY2LT8rO2o+Wkl6OVBHRWAxYWpxfWFPJUd5SWA8fSFHcio9
OXU8REBHdEsoakw+RiZjRkNXCnohTHI9S3FzXz1qWX0rQVVjWlpMXmt4bm0kMl5QYmA8MD55bEhz
N1pYUHJrMjM/ZzlYIzgtUkZ0SU10QCU/JVpnSAp6O09pMW0hb3UzJnU9VUFrclNUVmNjN344Qkkj
czxZYllgKHJ3PXZfX0lUeUpUJXB+MS00TyFsWlRLfCR4VTVIb1UKejxUYVRyXk9CcWZGPVRES3FK
eURCMSY5JX1RZWZOTVJwSTR3PUZFSEM+JilXS0JTNShQbVlYQ0pXUlFMO3dfJiVPCnpvYk8wXz5K
VTVEVHdpfj4kRjBSPHIxZVd1MXNLd2dGLTJuQkE9OGJHamFeK2B1ZFVzcig9KGhCP1l1a3sjO354
dAp6QnlUZz01WWNoayZ1T0dTYGhmaih5X0FkbD1Ue0c+T1NHPFVxJnJjfWkhWHZGNVpDTz4qUH5z
a2VOWjVEVz5SdnAKenJDWVAya2dLc25rVWpzZC0mJXNMMkF6Xy1fJTgyRSZEQXZsLTErU3F7KTsj
SjEzNztFZXY5dktncD08Sl5SOHpzCnowcW5jSE89KFZOM3Y+bXV4LXxZJm1faGU9Y0xAVkpxUHl+
c0diM2M3UXNrZjN2YlZRKWM2Sl5xMzB9WnFCS01sMwp6MGAtbEptSFpiY1RlKFM4c15qTWt6a0At
LUJxZEV7NWdFP1okTEMtWHstfjlwOU4xMzNhVEEpem4odU5Ie0llaDsKekR5c2lkP0l3eEYzeG1W
TXh1KigtSHVmNnxTKl8tcHM0Vj5yaXVkVyRyPytuMTAheSU/NHw0a2FJRDYmZjlEdkhLCnpRdzRJ
O2AmU1g5MWomNyhxYktnKHl9TDQtTipqTmpjcX5mNlFaQl4tUG02IzVVWUV2bUFFZG9+XjlGcG4o
M1RzaAp6STUhTW9hanFDSXJtN25hNHRfTG57UTFDelJ8QXBlJk9Rc2hVZnNuYDYlZn5PdkZqb1A+
OSpVaEpQNVAyX3JSNXMKent5QExGVjJSRFVQVylQeElONUlRKHAmNmd1NlY0TUE+YmhnT0NMZmd3
KE9Xd2dQRl43cWUjbHc4KlIhLW97RDM4CnpSKW9Bcy0yOHF5aWowLWItdmR4MjZRdigtKk1+fGlq
Q09GRUkyI0NNS0A5YXVnYitzO1VMYDtlQyVURzhVJl9ZIQp6O01jKEB0Ry0rLTdJPkFAJnRnci0j
UnRySC1ySU1zKnJtU0B7fGl9SVBOS2R0RlRDKmh7N1l1PVpleT9oZkNZUVgKeno8cytvZFQyYkxT
X0dJSVJnYnIoelhrRFU+flVJOFNYXkt+ZXY8Sj1NMSYkfXpiKF4qRzV1MXVfSiVrRSorKnRICnpQ
I0oqa3JUMCZOXlhsYGwxST5obGd2amBRZW5fVUhXfjBweGoyPUdaSkIhX2A+MzVISTxtUCVldihw
Vig+VzVNQgp6XzltMDcyKTVzRjZNNWxuN2dpSlF6OWx+MSpUbWh+Yz4pMjZSJjw7UGckeGY0N0NI
QVdtI30hX2JuJXRoeDRRRGkKel5+Kj58OD4rKkFNPj14azJ0LV4jVVMzO1FtJEdNMW1VNn1+YlVO
TTR0WlM9SXEkdDVRODZIe0plcEJEWXcre0B2CnpmbH5SP25XejghS3xBdCpWPj9LfVhKIWFSMWpg
ayRHKDlNTEQ5QCViUWJPTHwodG9QMVpHfE0hXyswJGtwOVk/bAp6QTc+YCUjSHg8MEN6S2dTXktf
RHRXfUxgMCZzcX0tKlk3KTt5fTM1Kz57cyQmPHl2dUMpe3ZuSU9kVjxsJFdaZmcKejl4VHlaTyZF
SWVaJn1CLXFMZ3RqP3tpYHBUKllJb3dZMFJ2IWIjKmZkY2cyaGAqM2piRjxsMmRHYCtsYHArUiFy
CnoqPUpFKyZCVCtrMzNWJHNidDwoMClCIWhVfEpKcyorKFFgYXooRD4kJjkhNTx3e15scVkqK0pL
OE1DQUxmdm04eQp6bDJnfH4pPjU7Qmo/dW9WZktNOyhxI3lhN0FhcTduNz43O2sxYm1KX1dBPkYr
aXcxV0wkeyRYcT4qfV8mdzZNNG4KejZAdWtsTEhVRWs8SiNKa3NAWFRLdnI5JnEjKyRZJlBxdygx
NWw+VjtVKV8ra1VkP2xDaztoQGdobGpocEswPUUxCno5N2QlSU1WUVd2aUhRTj1XQGwkc1Vkc2Bh
NEEoZj9fZ1AybEJxIWAxZU9NWTtvY2g9JUxGaVImQGNMQEJYfWp7Sgp6MVJWY1FIOUhVY0I4LV5P
PDBjJVhlKFVCTk0mbztEPGRsMWtYVFZDbCZDbT42N3EoNjFHREkqfms9OVpVaVNYcH4KejF0NFlj
OUomRD82cVNpNV90UHxZbiFAdDMqPSVYfVdnd3FEVXFxJWVQeUExTWolJC1nJjIzVj1BWkNwNE54
NCtNCnpoSUJLVE9jOzwqZ2I9Y0NWaWhwZ1MpRyVWbWk4SXlAYz1vYihfZ3wyYnp0UiFmRnMxdXB+
ZVFRTXRLWVVvYkQxMQp6al4kRTBSb3wja2FkQmF5SHcwPjVkZylCOHMpdjRaOCopKyo1Yyg0NGFM
WFJrUzB5Z30/YHY8d2sye0pHNG10NFgKelI2Qk1MX0lZPT1mZGFISVNSOX1NQUtkU2ZSPSNBTlFS
dSlYPzxJbzVHal9ZPkw0WDtId0tCJEFRezthOUBtRDgqCnotbCRjKXkzY2UmZ25VNmtmJFdLVWRS
bntlTVRpKX5sVXcxOFZPSmBiaE41OHlRM30hT0s5X3hiZDtsflN1YmI1egp6UG9xKChaYTUkVUtI
NktjJns9JX5KZ2V1bis3VEJ9UVFBJW5feWdEbWx6VTtKYGBlVjB3M1lZYlI9IWA3TU9MckgKelpI
YUl8aWd3SGAjTHhPfShxRzQ9QSpwYTcyMHs7Zl55cERBcnwtZjlxQiNDcytIVlk9c2VFfVBsVCpR
fHVCQHp0Cno1ZmBje1lTb1V6NmR7PE9WJUJCM2V5bGcqUzAqSlQqfXFOY3V5OHd4OH1zdz8qS1Ul
V3Q/MV98KDMjKkZWSmt0aAp6QF8kUz5CYzV+YFh7e2NPVnl6NHdsTEAjPnJoXmRTKF85U3M4TCh0
dXpJLXVBSWYzQCYoNGoqYD0xZWs3aWRFVFYKejgpI3lATWdWYCNOfXduIUoxazBEdFRBX35uajI8
JDY5Y1BFdntxK00mKHozUypfPU9yQjJMezAkX1YqT097Smg9CnpuVTBJSHhjcE1jSFlpSio8X0Mo
S3E/QlJ+Knl8JnwhdDxheTdoQWxTaCRtflpjajtXRiRqZGpmKipiPzchSjN3Kwp6TiFfQWhLd3JN
RXgpUClrTGE4b29AUntmSSk3KnhkNVNFSnxNQFZpZ3kwMGtUTDR1JCtaPnRkfHdYSUZVI05yPCgK
ekVxfGNyZ0dPOEghUFhoQUBZT2dOJk9aZzRxZmgmMz9BNjJDRDdQeTMmNGdXUmpnS2hCRjhiI01K
SChOVkZUbXY/CnpkSll7cW1PbDlfb1dPKyYxYntXZVJ1bFIpbmlZazNCSilETW8xfHl0Pk48cm9q
X1MoTSRVQlghaXFscXBxQkdIQgp6LVFLMSRaQ0RYO193SVFjOCheUnFBKkN+Y3hLRHs7OGZJbWUy
VW5KNnE/OWgybndkUl9qR1JCbm1ecH1nYVlWczwKeiZMIypfOHE5Qm1SaFIpIXRCU2d7OGxgaWxf
QnNyZjZmTXd5cT1qX2FgI25fMnFUMWdGbDg7Ujsmd2RHeWo+YSF0CnpfKmdIcmBgcSl9PEVTRHRH
cVkjXmRmTEk0UlNsIUFJentIRlR1O3c9STgtTHRYU31GbWRTKnRSO1JoMGNUVzZ0Vwp6Jjt1QldI
TU8pYkk4X1V2QTluISZpUlp5XigwcGU8Z1g7VHloR1Vtemg3VVMqJjJzbj85TFFmRmNvNUdFe00m
KmsKejVoSE1ELTxCMEJidWVXX1BObGNoUCpZUGdCV0kqRmVJfU9VWi0rSmxhPDB1cD8+WXY2QmFU
KFBgRUhaaykwVHMyCnpRM3hHNiV8cV49Xi16UnBKMG5yeFdJQ2NCOHhoZiNzdjhmbXRhTERWQ01D
fGp5TDk2IXtnPFhHZ0pMMjw4LUN2OAp6ZClPTyY/M3hXKmw4V1Y3KCEpdHxhcEd1aXZsIztabmwp
P0NTQiR7VCZ2alYhWEJjSGQyeUBJIUNlWFUoVVQlZCkKeiR9Y0RvbShsMmYmWV5vWj0yUH1sZ3s/
cmpgPEZMWXVVLXxgU1JBLTE4PCh+P1FYP3YoZSktYzIxZTgpU21WZUtECno0WihJOXZAP2Vzbzt1
WnVxd34yZUs/T1coZFp0O1d3PTFydGl8dGxXJFNMSnAzNj90fjt6ezNwVzhwVm0xY05wPQp6KHBF
ODVGUXV6fjJgJip3d3I3JTBKfi1mbSZpQShUQSt5MmJVXkcyczVmbz80UzY1dUIweVJrRnM7I2o0
c0tsa3kKellUVTRPQm4xb2EhM2RLK3MzV2wxU3NtY1ZCcVE0Rm1YPSlHNnJafERCTFNaJEgydUxY
JDNpOU5VVEtNPV5KTnRsCnomTC0pODMlOXgtVipwaTtrK0ZVanFjaCl6eVRIal5hZV59bStwZ0Eq
OzUwblh1XyY3Y249c31+N3tZdDtVfXQhJgp6JmR5SFFFTS1ea2psXzxARzEyeFVkYm83Sj9DVEpQ
QCpqKGFlKS1vNCg3Sl81QU0oeDYod1hEZCUrQWlEe0x5a0gKejlTUFp6PylBbStISzZ3TyZaQjY9
ZztHI1F2YS1tdHUwYnV5UlNTbUBtPlhjWUFReFlwa1lKNXxtVEtGeSpqYGV0CnoydFI/X0J9ayth
aHFqVU8oSHdNajVncHJDNXdmYj5FOHM/YDN+V0lxdzdWe1o2dDxPV0pLQ05kcmF0fVJPfHJJYgp6
YDMlPFleWnBweEkpQWcpdSpqaUpJQ25fal5gYXhnJFB0dFQzS3JyRnhQe3Z7KlZEVCtJWilHRGxB
TjUzJjZSPikKejRaYH5rO15BSTxUJVRgO0JZRHgobG0pJEpsRUdoZUIjfXYwXlAyR2dre3NtPmgw
NHErQUtgTzMzKn1uR2p2dmtlCnpoanZeXks4cWN6aEh4eCVgdnJrTUsxKGVPe3RTLWFpWmM3cXtx
Y0Yyakg+KFJfY3ZzOCowaDY+Y0lte0o0c09JQQp6OWVQVHFmPCN2OUM/MzxtNmFzdUUrO15wcThA
NCRkJilgU29gdjBLVkQ3U094JE5XWnhROFdkQmlOMEVEWUFVPngKelExdEtMWEd9VDxNTFU9OG98
Q0U8NGo1Sno3PWlgKHQ4Qn1QZDJzKVBkflc0cyRQS247KGtWbGZDYlg3JTxtcnFRCnp2fXBMdnpD
T21DOChsIU5QaDArK21gPE83LWo9Xz1GMig8fDY9MUFQSnJfKDwxaz4tJWd8KCN7KnVEN1VKMFVY
ZQp6USRBSiRneTVTVz0qO003RjhDLShyeGMpKk1ZfUljVFk4Q3tXPzBxMFFnZFJaUl97ZlIoVGYp
Ql5YdFNnODUkLVUKekBmZUs2I2BZIzIzIXwhNnJ2M1E/QjFqa1oxemttczMqdiVGYVojfnRyYX53
dFlmQzlROUJ9Rj8xUzMjUykkKlFnCnp3TUdfRGx7PTUjQD9RUnV4LWl5Pm56PV8/MXw3YCY4aFk9
VmhaJEhib28qJkhKYVNlZTlsNUx2dU9DNEw5Y35LOwp6NCpEflgmPkFjfitwS0hZUkNONGhiMkFV
PDx6Zj1JWXd6QjFWUXFweztZe3B2S2NQKSt0OStDU1Y0dGhNXl4ob3oKekNyKmVGJH1LVGNTQiVi
cF5UMDAxJU13X3QzVzAhMitpajROdzFxKlRQO30+dmsjX2hKVkxWfn5JQXxZTHkoZ2B+CnpoSCY2
RlkxJlBWalkxe3w1eUwzUGR3O2tvOTNJWkVURUJrMXtfdk9BaU8pQDdVbUw2eG9xSEEkRm8xN2Vn
Kmg/TQp6PDk+VU1AcDBVPHgxPVdAUjQrN0NPbF5mUzchI29jZ3ZZT1o1X1lkM1pzUlB8ZVVMXkpn
RlJZKTtSRnU3WGM7XioKenRtJlQpZm87R0Y8WUFPMkNhdGNGUXYqbVZzTTVlTCY4Kil4a1chUiV3
cEJNWUhLQlEqXzJ7cjljfF5tYmo+SyV0CnpTfDRRPHhKMldCcXpPazlDX2Z+czxCI3ZPZ2ZJfXdx
aWBNSXRlUTlPZl81cjVBenxSdkwjQEhWIVNzSGYoVmZgWAp6ZkkxMTIpKG9SalRtKmhqb1NhbVJm
VTIrLUtaSy1AWihmfVZzPFg4Y0F6cWVBbkBaQCorbUVCcTAtOFlJNHJxUnoKek5feUtfMztgeWwq
azVFczFPXlRja1A9eVRDI0hrOzdAWj40UjRTRmg/ZH5yfHR7KGBKJig2MURwX1Viczg8QCFxCnpe
KDshZnpiXiZwI1pXPGZ5WHN4RDRUVDhfM0Z1TnRtaFBgejAleEx5aXNzVCsyXjwtVDMxeUs8cmZY
fCs4KEF4agp6QmY2KVhYRlo5YV5+M2U1cmleQHlURWFBeig9WlZnYHFLeEJqX31pfWNyTSV0dSF0
V1NPa1AxUTloUDNiPXUzYzgKeiFCfDFkWTFjWjVSTW9hXzdnbnM8PVo2MyM/OGxLbzJ8Vz0pUE9i
bEZVZDlEWHRUMy0pbEk+cTVYeVZNVWRYTTRNCnp0ZV9oQllrQTxCSTBvMDFYZV50V25vdSF9UVM8
KGNscEgyKVRlWkZrQHZ8YSg9SWdBQGRvOWJ8KEphRHRTQzM/NQp6UndKJCREcn1PYEBDUlVkJVg2
N2x0VXlLNHBgb0ZQY2FMfHtuRyo4R0Z8I00lO1BuOD4hYTVtPkFiX18tKCNIVGQKemR8SytqMXdF
ZVJnbHg2NkNeMkJqbzttaTwpSGokUSFnMm1VKkZTd2F1JmQrYS1IMz8kZVBUcFIqI2BIb01tTTZ9
CnppOzllIz1xVzJlUmkmQCM9P348TiVXV3R7a0xHJml3c3FgSCMyUk9tLT97VkwpUTd0Q0ApMW01
PVFoNj1BXnZ7Rgp6Qz19MjxDaGM8YCVTeXkhbX5zWT0zdXNwZkY8Qz5qYFZZVDZLNEVwODk9QHc7
V3hBMXJBP3RScG8rJSsyKHdVJGsKellqOFEtcElVZCtUQjd5QmthY1cyTWw7I1NFd3RvR2tjZFJD
fDVgJSUmWGVVdEN2PTlHIXJGMT1GeihqMjc5cVooCnppdkMrSzZhS3dkNHU1Xj5LWUs7PFNHQGo7
KlQzOzVAMkBpWHQ0I2hYbG1Gbj1feH53aW9GdlRYXyU/eChAVmZ3aQpvWTJ8PFA2QD5yT0pwNGI1
e2sodWspU2w5JEpZQExiRDx9bTBofGJ9aFUjemVHSCp9QEYkcDhRVgoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWExYmI5YmFjNTI5ZTc0
NTgxZWQ2ODZlZTZiYzAzZGVmZWY0Njg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTg1CisgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NTg1CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgzNgorICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MzYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDc4NHgyMAorICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBzaXplIDB4MTkK
KyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDEw
LDgpIHNpemUgMzZ4MjAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgxMCw4
KSBzaXplIDM2eDIwCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzZ4MTkK
KyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM2OiAiVEVTVCIKK2xheWVyIGF0ICgxMCwy
OCkgc2l6ZSAzNngyMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQg
KDEwLDI4KSBzaXplIDM2eDIwCisgICAgUmVuZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMzZ4MTkKKyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM2OiAiVEVTVCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114753</attachid>
            <date>2011-11-11 12:52:50 -0800</date>
            <delta_ts>2011-11-14 10:57:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71225-20111111205248.patch</filename>
            <type>text/plain</type>
            <size>36862</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk5OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0YmJkZDlmY2VhZmMyZDQx
N2IyM2Y4N2MyMmFlYTU2MWI0NzRkNTVjLi4zNjkxOGM2NTgxMzQwNzg4Y2U4MjBlOTMwYTliYTY0
ZjBkM2ZjZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMTEtMDMgIEFscGhh
IExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIGNvbXBvc2l0
ZWQgbGF5ZXJzIGFyZSBibHVycnkgd2l0aCBhIHpvb20taW4gcGFnZSBzY2FsZSBmYWN0b3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjI1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyBjb250ZW50
cyBzY2FsZSBmYWN0b3IgdG8gdGhlIGNvbXBvc2l0b3Igc3VjaCB0aGF0IGl0IGNhbjoKKyAgICAg
ICAgMS4gQWRqdXN0IGNvbnRlbnRCb3VuZHMoKSBvZiB0aGUgY29tcG9zaXRvZXIgbGF5ZXJzIHdp
dGggY29udGVudCBzY2FsZS4KKyAgICAgICAgMi4gQXBwbHkgdGhlIGNvbnRlbnQgc2NhbGUgaW4g
dGhlIHBhaW50ZXIgZm9yIHRleHR1cmUgdXBkYXRlIGluIGJldHRlciByZXNvbHV0aW9uLgorICAg
ICAgICAzLiBBcHBseSB0aGUgY29udGVudCBzY2FsZSB0byB0aGUgZGlydHkgcmVjdCBpbiBDYW52
YXNMYXllclRleHR1cmVVcGRhdGVyLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGZpeGVkIGJsdXJy
eSBwcm9ibGVtIGZvciBhbGwgdGlsZWQgbGF5ZXIgdHlwZXMgYW5kIGlzIG5vdCBsaW1pdGVkIHRv
CisgICAgICAgIHBvc2l0aW9uOmZpeGVkIGxheWVycy4KKworICAgICAgICBUZXN0czogY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5o
dG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1p
ZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUtZG93bi5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
cjo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwYWludENvbnRlbnRzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRh
dGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
c2V0VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNocm9taXVtOjpjb250ZW50c1NjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJl
VG9VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMYXllckNocm9taXVtOjpuZWVkc0Nv
bnRlbnRzU2NhbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdl
TGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6TGF5ZXJD
aHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRDb250ZW50c1Nj
YWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRzU2NhbGUp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6Y29udGVudHNTY2FsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNrUGljdHVyZUNhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06Om5lZWRzQ29udGVudHNT
Y2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06OmNvbnRlbnRCb3Vu
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJv
bWl1bS5oOgorCiAyMDExLTExLTExICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEFwcGxpY2F0aW9uIGNhY2hlIHN0YXR1cyBpbmRpY2F0b3IgZ2V0cyBz
dHVjayBhdCBET1dOTE9BRElORyBhZnRlciBhIGZhaWx1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggNzM0MjNhNTc5ZjEwNmUxZjI4MTk4NjZjYWI0NTlhNjk4YTVlMWM5Zi4uNTEwMjRi
NzVhNDJmYzI2ZDIzYzVmYjVlMzVmYzY3ZTgzMDYxYWFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMS0wMyAgQWxwaGEgTGFtICA8aGNsYW1AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gY29tcG9zaXRlZCBsYXllcnMgYXJlIGJs
dXJyeSB3aXRoIGEgem9vbS1pbiBwYWdlIHNjYWxlIGZhY3RvcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRzIEdyYXBoaWNzTGF5ZXJDbGll
bnQgdG8gcmV0dXJuIHZhbHVlcyBmb3IgcGFnZVNjYWxlRmFjdG9yIGFuZCBkZXZpY2VTY2FsZUZh
Y3Rvci4gVGhleSBhcmUgdXNlZCB0byBkZXRlcm1pbmUgY29udGVudHMgc2NhbGUgZmFjdG9yIGNv
bXBvc2l0ZXIgbGF5ZXJzLgorCisgICAgICAgICogc3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6T3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJbXBsOjpkZXZpY2VTY2FsZUZh
Y3Rvcik6CisgICAgICAgIChXZWJLaXQ6Ok92ZXJsYXlHcmFwaGljc0xheWVyQ2xpZW50SW1wbDo6
cGFnZVNjYWxlRmFjdG9yKToKKwogMjAxMS0xMS0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRml4IENDTGF5ZXJUcmVlSG9zdCBs
ZWFrIGluIHdlYmtpdF91bml0X3Rlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZh
c0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCmluZGV4IDA3MWRlNjQ4NDM4YWQzMmMwYzRlNmVjODlj
MzhmNjVhYTgxMzU0OTUuLjAwMzg2MjlhZjM5ZDdkZGEwOWVmMmFiYzhjYWQ2YWQ3ODdkOTk4OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Jp
dG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIu
Y3BwCkBAIC03Nyw3ICs3Nyw3IEBAIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZv
cm1hdCBCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpzYW1wbGVkCiAgICAgICAgICAg
ICBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRSR0JBIDogTGF5ZXJUZXh0
dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0QkdSQTsKIH0KIAotdm9pZCBCaXRtYXBDYW52
YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29u
dGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzKQordm9p
ZCBCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUoY29uc3Qg
SW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVy
VGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKQogewogICAgIG1fdGV4U3ViSW1hZ2Uuc2V0U3Vi
SW1hZ2VTaXplKHRpbGVTaXplKTsKIApAQCAtODgsNyArODgsNyBAQCB2b2lkIEJpdG1hcENhbnZh
c0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250
ZW50UmVjdAogICAgIFBsYXRmb3JtQ2FudmFzOjpQYWludGVyOjpUZXh0T3B0aW9uIHRleHRPcHRp
b24gPQogICAgICAgICBib3JkZXJUZXhlbHMgPyBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6R3Jh
eXNjYWxlVGV4dCA6IFBsYXRmb3JtQ2FudmFzOjpQYWludGVyOjpTdWJwaXhlbFRleHQ7CiAgICAg
UGxhdGZvcm1DYW52YXM6OlBhaW50ZXIgY2FudmFzUGFpbnRlcigmbV9jYW52YXMsIHRleHRPcHRp
b24pOwotICAgIHBhaW50Q29udGVudHMoKmNhbnZhc1BhaW50ZXIuY29udGV4dCgpLCBjb250ZW50
UmVjdCk7CisgICAgcGFpbnRDb250ZW50cygqY2FudmFzUGFpbnRlci5jb250ZXh0KCksIGNvbnRl
bnRSZWN0LCBjb250ZW50c1NjYWxlKTsKIH0KIAogdm9pZCBCaXRtYXBDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyOjp1cGRhdGVUZXh0dXJlUmVjdChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwg
VGV4dHVyZUFsbG9jYXRvciogYWxsb2NhdG9yLCBNYW5hZ2VkVGV4dHVyZSogdGV4dHVyZSwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52
YXNMYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKaW5kZXggNjc1ZGRk
ZDViNDliMjFjMGY3NWI4ZmE0MjI4OWNjMmYxMGU1NGE0NC4uYzhlNmUwMmRhMmZjNjU3YmQ2OWQ3
MzQzYzdiMzkwMmI5NTM1YTMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXIuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPExheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmU+IGNyZWF0ZVRleHR1cmUo
VGV4dHVyZU1hbmFnZXIqKTsKICAgICB2aXJ0dWFsIE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkg
eyByZXR1cm4gTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Qm90dG9tVXBPcmllbnRhdGlvbjsgfQogICAg
IHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZvcm1hdChHQzNEZW51bSB0
ZXh0dXJlRm9ybWF0KTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IElu
dFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRl
eGVscyk7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBj
b250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMsIGZs
b2F0IGNvbnRlbnRzU2NhbGUpOwogICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3ND
b250ZXh0M0QqLCBUZXh0dXJlQWxsb2NhdG9yKiwgTWFuYWdlZFRleHR1cmUqLCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52
YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCmluZGV4IGEzZThmN2I3
YmYzZDYwMDhkZWIwYzYzOGFhMzcxMTVmOTdhMmE2YmEuLjYxNjIyMTcxZjhjNDU3NGYyYjE2Yjk4
Njg2ZjkwMDhjNDM2MWM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXIuY3BwCkBAIC00NSwxMiArNDUsMjQgQEAgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6
fkNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIoKQogewogfQogCi12b2lkIENhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXI6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCkKK3ZvaWQgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6
cGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGNv
bnRlbnRSZWN0LCBmbG9hdCBjb250ZW50c1NjYWxlKQogewogICAgIGNvbnRleHQudHJhbnNsYXRl
KC1jb250ZW50UmVjdC54KCksIC1jb250ZW50UmVjdC55KCkpOwogICAgIHsKICAgICAgICAgVFJB
Q0VfRVZFTlQoIkNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnBhaW50IiwgdGhpcywgMCk7Ci0g
ICAgICAgIG1fcGFpbnRlci0+cGFpbnQoY29udGV4dCwgY29udGVudFJlY3QpOworCisgICAgICAg
IEludFJlY3Qgc2NhbGVkQ29udGVudFJlY3QgPSBjb250ZW50UmVjdDsKKworICAgICAgICBpZiAo
Y29udGVudHNTY2FsZSAhPSAxLjApIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2F2ZSgpOworICAg
ICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoY29udGVudHNTY2FsZSwgY29udGVudHNT
Y2FsZSkpOworICAgICAgICAgICAgc2NhbGVkQ29udGVudFJlY3Quc2NhbGUoMSAvIGNvbnRlbnRz
U2NhbGUpOworICAgICAgICB9CisKKyAgICAgICAgbV9wYWludGVyLT5wYWludChjb250ZXh0LCBz
Y2FsZWRDb250ZW50UmVjdCk7CisKKyAgICAgICAgaWYgKGNvbnRlbnRzU2NhbGUgIT0gMS4wKQor
ICAgICAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpOwogICAgIH0KICAgICBtX2NvbnRlbnRSZWN0
ID0gY29udGVudFJlY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVy
LmgKaW5kZXggZmQ3OWEwNGQwYTM2ZDc5NmE0ZTdmMzM0MzMxNzJhODIwNGJjMTQ5ZS4uYThmZWZm
MzQyMmIxYjg1MzBiOGY2ODlmZjJjNTY2NzY2MGJlZDVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
c0xheWVyVGV4dHVyZVVwZGF0ZXIuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcihQYXNzT3duUHRyPExh
eWVyUGFpbnRlckNocm9taXVtPik7CiAKLSAgICB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpOworICAgIHZvaWQgcGFpbnRDb250
ZW50cyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgZmxvYXQg
Y29udGVudHNTY2FsZSk7CiAgICAgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRlbnRSZWN0OyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NM
YXllckNocm9taXVtLmNwcAppbmRleCAxNTZiMmU5MGVmNDVlNjkwMDc4MmVhNTk0ODA4YjZhZDgy
ZTNmYmM5Li5jYWVkODljYzg5OWY1ZTRiNWEyNjJhMDk0N2YxY2MxZmI1YTNiZGMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xh
eWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE5MSw2ICsxOTEsOSBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiAK
IHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKIHsKKyAgICAvLyBDYWxsIHRoaXMgbWV0aG9kIGZpcnN0
IHRvIGFzc2lnbiBjb250ZW50cyBzY2FsZSB0byBMYXllckNocm9taXVtIHNvIHRoZSBwYWludGVy
IGNhbiBhcHBseSB0aGUgc2NhbGUgdHJhbnNmb3JtLgorICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUo
KTsKKwogICAgIGlmICh0cmFuc2Zvcm0gPT0gbV90cmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsK
IApAQCAtNTYxLDYgKzU2NCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVM
YXllclByZXNlcnZlczNEKCkKICAgICAgICAgdXBkYXRlQW5jaG9yUG9pbnQoKTsKICAgICAgICAg
dXBkYXRlVHJhbnNmb3JtKCk7CiAgICAgICAgIHVwZGF0ZUNoaWxkcmVuVHJhbnNmb3JtKCk7Cisg
ICAgICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsKIAogICAgICAgICBtX2xheWVyLT5zZXRQb3Np
dGlvbihGbG9hdFBvaW50KG1fc2l6ZS53aWR0aCgpIC8gMi4wZiwgbV9zaXplLmhlaWdodCgpIC8g
Mi4wZikpOwogCkBAIC01NzEsNiArNTc1LDggQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06
OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QoKQogICAgICAgICAvLyBTZXQgdGhlIG9sZCBsYXllciB0
byBvcGFjaXR5IG9mIDEuIEZ1cnRoZXIgZG93biB3ZSB3aWxsIHNldCB0aGUgb3BhY2l0eSBvbiB0
aGUgdHJhbnNmb3JtIGxheWVyLgogICAgICAgICBtX2xheWVyLT5zZXRPcGFjaXR5KDEpOwogCisg
ICAgICAgIG1fbGF5ZXItPnNldENvbnRlbnRzU2NhbGUoY29udGVudHNTY2FsZSgpKTsKKwogICAg
ICAgICAvLyBNb3ZlIHRoaXMgbGF5ZXIgdG8gYmUgYSBjaGlsZCBvZiB0aGUgdHJhbnNmb3JtIGxh
eWVyLgogICAgICAgICBpZiAobV9sYXllci0+cGFyZW50KCkpCiAgICAgICAgICAgICBtX2xheWVy
LT5wYXJlbnQoKS0+cmVwbGFjZUNoaWxkKG1fbGF5ZXIuZ2V0KCksIG1fdHJhbnNmb3JtTGF5ZXIu
Z2V0KCkpOwpAQCAtNTkxLDYgKzU5Nyw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1
cGRhdGVMYXllclByZXNlcnZlczNEKCkKICAgICAgICAgdXBkYXRlQW5jaG9yUG9pbnQoKTsKICAg
ICAgICAgdXBkYXRlVHJhbnNmb3JtKCk7CiAgICAgICAgIHVwZGF0ZUNoaWxkcmVuVHJhbnNmb3Jt
KCk7CisgICAgICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsKIAogICAgICAgICB1cGRhdGVDaGls
ZExpc3QoKTsKICAgICB9CkBAIC02MzQsNiArNjQxLDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNo
cm9taXVtOjp1cGRhdGVDb250ZW50c1JlY3QoKQogICAgIG1fY29udGVudHNMYXllci0+c2V0Qm91
bmRzKEludFNpemUobV9jb250ZW50c1JlY3Qud2lkdGgoKSwgbV9jb250ZW50c1JlY3QuaGVpZ2h0
KCkpKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzU2Nh
bGUoKQoreworICAgIC8vIElmIHBhZ2Ugc2NhbGUgaXMgYWxyZWFkeSBhcHBsaWVkIHRoZW4gdGhl
cmUncyBubyBuZWVkIHRvIGFwcGx5IGl0IGFnYWluLgorICAgIGlmIChhcHBsaWVzUGFnZVNjYWxl
KCkgfHwgIW1fbGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbGF5ZXItPnNldENvbnRl
bnRzU2NhbGUoY29udGVudHNTY2FsZSgpKTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21p
dW06OnNldHVwQ29udGVudHNMYXllcihMYXllckNocm9taXVtKiBjb250ZW50c0xheWVyKQogewog
ICAgIGlmIChjb250ZW50c0xheWVyID09IG1fY29udGVudHNMYXllcikKQEAgLTY2NCw2ICs2ODAs
MTMgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldHVwQ29udGVudHNMYXllcihMYXll
ckNocm9taXVtKiBjb250ZW50c0xheWVyKQogICAgIHVwZGF0ZU5hbWVzKCk7CiB9CiAKK2Zsb2F0
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6Y29udGVudHNTY2FsZSgpIGNvbnN0Cit7CisgICAgaWYg
KCFhcHBsaWVzUGFnZVNjYWxlKCkpCisgICAgICAgIHJldHVybiBwYWdlU2NhbGVGYWN0b3IoKSAq
IGRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIDEuMGY7Cit9CisKIC8vIFRoaXMgZnVu
Y3Rpb24gc2ltcGx5IG1pbWljcyB0aGUgb3BlcmF0aW9uIG9mIEdyYXBoaWNzTGF5ZXJDQQogdm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZU9wYWNpdHlPbkxheWVyKCkKIHsKQEAgLTY3
NCw2ICs2OTcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6ZGV2aWNlT3JQYWdlU2Nh
bGVGYWN0b3JDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9sYXllcikKICAgICAgICAgbV9sYXllci0+
cGFnZVNjYWxlQ2hhbmdlZCgpOworICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsKIH0KIAogYm9v
bCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGY3M2U3MzM3MzliYTE2YTUyMjExYjMxMWUyNjlj
NTM2YmNhYmE3MjAuLmIwNWQwN2JmNjM3YmY1Y2ZlMGU0YmVjNGUzOTNkYmE3YjBjMDNkZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCkBAIC05NCwxMyArOTQsMTMgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQmFja2dyb3VuZENvbG9yKGNvbnN0IENv
bG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxv
YXQgYm9yZGVyV2lkdGgpOworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3Rv
ckNoYW5nZWQoKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGltcGxlbWVudCB0
aGUgQ0NMYXllckRlbGVnYXRlIGludGVyZmFjZS4KICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250
ZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNS
ZXF1aXJlZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hh
bmdlZCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7CiAKQEAg
LTEyNSw5ICsxMjUsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzSW1hZ2Uo
KTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzVmlkZW8oKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRl
bnRzUmVjdCgpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHNTY2FsZSgpOwogCiAgICAgdm9pZCBz
ZXR1cENvbnRlbnRzTGF5ZXIoTGF5ZXJDaHJvbWl1bSopOwogICAgIExheWVyQ2hyb21pdW0qIGNv
bnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXIuZ2V0KCk7IH0KKyAg
ICBmbG9hdCBjb250ZW50c1NjYWxlKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgbV9uYW1lQmFzZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SW1hZ2VMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMGJkODJhZTFhMThhMjUzMGY4
NzQyMGU0ODFkMGQ1Y2EyMzBiOTAxMi4uMDZiNDVhNjI4MTNjZmRlZDBkMjk5NzcxNzUwNzRlMTBm
YTA0NjY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCkBAIC04NSw3ICs4NSw3
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVk
VGV4ZWxGb3JtYXRSR0JBIDogTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0
QkdSQTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IElu
dFJlY3QmIC8qIGNvbnRlbnRSZWN0ICovLCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IC8q
IGJvcmRlclRleGVscyAqLykKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0
IEludFJlY3QmIC8qIGNvbnRlbnRSZWN0ICovLCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50
IC8qIGJvcmRlclRleGVscyAqLywgZmxvYXQgLyogY29udGVudHNTY2FsZSAqLykKICAgICB7CiAg
ICAgICAgIG1fdGV4U3ViSW1hZ2Uuc2V0U3ViSW1hZ2VTaXplKHRpbGVTaXplKTsKICAgICB9CkBA
IC0yMDgsNSArMjA4LDExIEBAIHZvaWQgSW1hZ2VMYXllckNocm9taXVtOjpjcmVhdGVUZXh0dXJl
VXBkYXRlcihjb25zdCBDQ0xheWVyVHJlZUhvc3QqIGhvc3QpCiAgICAgbV90ZXh0dXJlVXBkYXRl
ciA9IEltYWdlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKGhvc3QtPmxheWVyUmVuZGVyZXJD
YXBhYmlsaXRpZXMoKS51c2luZ01hcFN1Yik7CiB9CiAKK2Jvb2wgSW1hZ2VMYXllckNocm9taXVt
OjpuZWVkc0NvbnRlbnRzU2NhbGUoKSBjb25zdAoreworICAgIC8vIENvbnRlbnRzIHNjYWxlIGlz
IG5vdCBuZWVkIGZvciBpbWFnZSBsYXllciBiZWNhdXNlIHRoaXMgY2FuIGJlIGRvbmUgaW4gY29t
cG9zaXRvciBtb3JlIGVmZmljaWVudGx5LgorICAgIHJldHVybiBmYWxzZTsKK30KKwogfQogI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9t
aXVtLmgKaW5kZXggMWFmY2NmZTJmZGNlNjQ0NzVhNzRhYjJjOTI2ZDA0MmNiNWYzNzY3NC4uNWZl
NGYyNjY2OGJkY2MzZTI5ZjA0Y2ZmY2RhODgyYTczYzMxZTMyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXll
ckNocm9taXVtLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IGRyYXdzQ29udGVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzSWZE
aXJ0eSgpOworICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRlbnRzU2NhbGUoKSBjb25zdDsKIAog
ICAgIHZvaWQgc2V0Q29udGVudHMoSW1hZ2UqIGltYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNw
cAppbmRleCBkOTcxN2UxZjY0Mzk2MmYzYzFmZWNmZTAwODQ2MGJmMDE0OWRmODZmLi4xODU1YTNk
YzdmNzdjYjc0NWE2YjNmN2MxZTVlZjgyZDUzMDU5MjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNw
cApAQCAtNzMsNiArNzMsNyBAQCBMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKENDTGF5ZXJE
ZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgLCBtX3JlcGxpY2FMYXllcigwKQogICAgICwgbV9kcmF3
T3BhY2l0eSgwKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNlKDApCisgICAgLCBtX2NvbnRl
bnRzU2NhbGUoMS4wKQogICAgICwgbV9wYWdlU2NhbGVEaXJ0eShmYWxzZSkKIHsKIH0KQEAgLTMz
Nyw2ICszMzgsMTMgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXREZWJ1Z0JvcmRlcldpZHRoKGZs
b2F0IHdpZHRoKQogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKK3ZvaWQgTGF5ZXJDaHJvbWl1
bTo6c2V0Q29udGVudHNTY2FsZShmbG9hdCBjb250ZW50c1NjYWxlKQoreworICAgIGlmICghbmVl
ZHNDb250ZW50c1NjYWxlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NvbnRlbnRzU2NhbGUg
PSBjb250ZW50c1NjYWxlOworfQorCiB2b2lkIExheWVyQ2hyb21pdW06OmNyZWF0ZVJlbmRlclN1
cmZhY2UoKQogewogICAgIEFTU0VSVCghbV9yZW5kZXJTdXJmYWNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
aAppbmRleCAzMzQ2ZGQ4NThiZWNiZjBjZjVlNmQ1ZDc1ZThkNTk1YzU2NjExZTEyLi4wOTk0NDk5
OThlYTA3NjY4MTMwNjlkODNkNjYyZGIyM2UwMmUzNDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBA
IC0xNjUsNiArMTY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBiaW5kQ29udGVudHNU
ZXh0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VTY2FsZUNoYW5nZWQoKSB7IG1fcGFn
ZVNjYWxlRGlydHkgPSB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHByb3RlY3RWaXNpYmxlVGls
ZVRleHR1cmVzKCkgeyB9CisgICAgdmlydHVhbCBib29sIG5lZWRzQ29udGVudHNTY2FsZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBUaGVzZSBleGlzdCBqdXN0IGZvciBkZWJ1
Z2dpbmcgKHZpYSBkcmF3RGVidWdCb3JkZXIoKSkuCiAgICAgdm9pZCBzZXREZWJ1Z0JvcmRlckNv
bG9yKGNvbnN0IENvbG9yJik7CkBAIC0xOTMsNiArMTk0LDggQEAgcHVibGljOgogICAgIHZvaWQg
c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJp
eCkgeyBtX3NjcmVlblNwYWNlVHJhbnNmb3JtID0gbWF0cml4OyB9CiAgICAgY29uc3QgSW50UmVj
dCYgZHJhd2FibGVDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd2FibGVDb250ZW50
UmVjdDsgfQogICAgIHZvaWQgc2V0RHJhd2FibGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiBy
ZWN0KSB7IG1fZHJhd2FibGVDb250ZW50UmVjdCA9IHJlY3Q7IH0KKyAgICBmbG9hdCBjb250ZW50
c1NjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c1NjYWxlOyB9CisgICAgdm9pZCBzZXRD
b250ZW50c1NjYWxlKGZsb2F0KTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgb2YgdGhl
IGxheWVyJ3MgZGVzY2VuZGFudHMgaGFzIGNvbnRlbnQgdG8gZHJhdy4KICAgICBib29sIGRlc2Nl
bmRhbnREcmF3c0NvbnRlbnQoKTsKQEAgLTI4MSw2ICsyODQsNyBAQCBwcml2YXRlOgogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IG1fZHJhd1RyYW5zZm9ybTsKICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBtX3NjcmVlblNwYWNlVHJhbnNmb3JtOwogICAgIEludFJlY3QgbV9kcmF3YWJsZUNvbnRl
bnRSZWN0OworICAgIGZsb2F0IG1fY29udGVudHNTY2FsZTsKIAogICAgIFN0cmluZyBtX25hbWU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaAppbmRleCA0NTI1Y2U3ZWIxMWM5YzU2ZWUx
ZDI3ODUyZjA3MmYzOTU1YzgxMWVkLi45MDg4NGNmZDViZTBmY2UxODQ3MjdhY2EyODA0NmEyNjQ3
YmMyYzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC03OCw3ICs3OCw3IEBA
IHB1YmxpYzoKICAgICAvLyBUaGlzIGZvcm1hdCBzcGVjaWZpZXMgdGhlIGNvbXBvbmVudCBvcmRl
ciBpbiB0aGUgc2FtcGxlZCB0ZXhlbC4KICAgICAvLyBJZiB0aGUgZm9ybWF0IGlzIFRleGVsRm9y
bWF0QkdSQSwgdmVjNC54IGlzIGJsdWUgYW5kIHZlYzQueiBpcyByZWQuCiAgICAgdmlydHVhbCBT
YW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtIHRleHR1cmVGb3Jt
YXQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3Qm
IC8qIGNvbnRlbnRSZWN0ICovLCBjb25zdCBJbnRTaXplJiAvKiB0aWxlU2l6ZSAqLywgaW50IC8q
IGJvcmRlclRleGVscyAqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShj
b25zdCBJbnRSZWN0JiAvKiBjb250ZW50UmVjdCAqLywgY29uc3QgSW50U2l6ZSYgLyogdGlsZVNp
emUgKi8sIGludCAvKiBib3JkZXJUZXhlbHMgKi8sIGZsb2F0IC8qIGNvbnRlbnRzU2NhbGUgKi8p
IHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRleCBkY2ZkNjNlNzE5
MzQyYWU3NTBiZGZlYWE4Y2FiMzJmMWNmZmM4MmMyLi5iNzUxNWJmZDEwYjU0MGQ2NGFiNmFhOWU3
ODVlZWRhYTQxYjhlNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52
YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtNDgsMTIgKzQ4LDEyIEBAIFNrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6On5Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyKCkKIHsKIH0KIAotdm9pZCBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpw
cmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUm
IC8qIHRpbGVTaXplICovLCBpbnQgLyogYm9yZGVyVGV4ZWxzICovKQordm9pZCBTa1BpY3R1cmVD
YW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYg
Y29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIC8qIHRpbGVTaXplICovLCBpbnQgLyogYm9yZGVy
VGV4ZWxzICovLCBmbG9hdCBjb250ZW50c1NjYWxlKQogewogICAgIFNrQ2FudmFzKiBjYW52YXMg
PSBtX3BpY3R1cmUuYmVnaW5SZWNvcmRpbmcoY29udGVudFJlY3Qud2lkdGgoKSwgY29udGVudFJl
Y3QuaGVpZ2h0KCkpOwogICAgIFBsYXRmb3JtQ29udGV4dFNraWEgcGxhdGZvcm1Db250ZXh0KGNh
bnZhcyk7CiAgICAgR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dCgmcGxhdGZvcm1Db250
ZXh0KTsKLSAgICBwYWludENvbnRlbnRzKGdyYXBoaWNzQ29udGV4dCwgY29udGVudFJlY3QpOwor
ICAgIHBhaW50Q29udGVudHMoZ3JhcGhpY3NDb250ZXh0LCBjb250ZW50UmVjdCwgY29udGVudHNT
Y2FsZSk7CiAgICAgbV9waWN0dXJlLmVuZFJlY29yZGluZygpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNM
YXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKaW5kZXggODkxYTZk
M2M5ZjEyMjAxY2E0YjE4MTc0MGJmMGZiYTQ3ZTAxZGI1NC4uNDQwZjhiMDNlYTRmMjczOWE5NzU0
Mzg2N2FjN2ViMTU0MDMwZDBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgZXhwbGljaXQgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcihQ
YXNzT3duUHRyPExheWVyUGFpbnRlckNocm9taXVtPik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJl
cGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0
aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscyk7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1Vw
ZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUs
IGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2NhbGUpOwogICAgIHZvaWQgZHJhd1Bp
Y3R1cmUoU2tDYW52YXMqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwCmluZGV4IGJkMWYzNjY3NzE3M2QyZGM5ZWQ0ZDc5YjAzNmRiN2I3ODRhNjIxMjIuLmRjYjg3
N2VlNzgwZmNjNzQ4MzJkOTY4YTQ0YWI5OTE2YzA1NjZmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXll
ckNocm9taXVtLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNELmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgiCiAjaW5jbHVkZSAiTWFu
YWdlZFRleHR1cmUuaCIKKyNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiVGV4dFN0
cmVhbS5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiY2MvQ0NUZXh0
dXJlVXBkYXRlci5oIgpAQCAtMTM3LDYgKzEzOCwxNiBAQCBib29sIFRpbGVkTGF5ZXJDaHJvbWl1
bTo6ZHJhd3NDb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gIW1fc2tpcHNEcmF3OwogfQogCiti
b29sIFRpbGVkTGF5ZXJDaHJvbWl1bTo6bmVlZHNDb250ZW50c1NjYWxlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworSW50U2l6ZSBUaWxlZExheWVyQ2hyb21pdW06OmNvbnRlbnRC
b3VuZHMoKSBjb25zdAoreworICAgIHJldHVybiBJbnRTaXplKGxyb3VuZGYoYm91bmRzKCkud2lk
dGgoKSAqIGNvbnRlbnRzU2NhbGUoKSksIGxyb3VuZGYoYm91bmRzKCkuaGVpZ2h0KCkgKiBjb250
ZW50c1NjYWxlKCkpKTsKK30KKwogdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnNldExheWVyVHJl
ZUhvc3QoQ0NMYXllclRyZWVIb3N0KiBob3N0KQogewogICAgIExheWVyQ2hyb21pdW06OnNldExh
eWVyVHJlZUhvc3QoaG9zdCk7CkBAIC0zNzEsNyArMzgyLDcgQEAgdm9pZCBUaWxlZExheWVyQ2hy
b21pdW06OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCkKICAgICAv
LyBIb3dldmVyLCB3ZSBjYW4ndCBmcmVlIHRoZSBtZW1vcnkgYmFja2luZyB0aGUgR3JhcGhpY3ND
b250ZXh0IHVudGlsIHRoZSBwYWludCBmaW5pc2hlcywKICAgICAvLyBzbyB3ZSBncmFiIGEgbG9j
YWwgcmVmZXJlbmNlIGhlcmUgdG8gaG9sZCB0aGUgdXBkYXRlciBhbGl2ZSB1bnRpbCB0aGUgcGFp
bnQgY29tcGxldGVzLgogICAgIFJlZlB0cjxMYXllclRleHR1cmVVcGRhdGVyPiBwcm90ZWN0b3Io
dGV4dHVyZVVwZGF0ZXIoKSk7Ci0gICAgdGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVRvVXBkYXRl
KG1fcGFpbnRSZWN0LCBtX3RpbGVyLT50aWxlU2l6ZSgpLCBtX3RpbGVyLT5oYXNCb3JkZXJUZXhl
bHMoKSk7CisgICAgdGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVRvVXBkYXRlKG1fcGFpbnRSZWN0
LCBtX3RpbGVyLT50aWxlU2l6ZSgpLCBtX3RpbGVyLT5oYXNCb3JkZXJUZXhlbHMoKSwgY29udGVu
dHNTY2FsZSgpKTsKIAogICAgIG1fdGlsZXItPmNvbnRlbnRSZWN0VG9UaWxlSW5kaWNlcyhtX3Jl
cXVlc3RlZFVwZGF0ZVJlY3QsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7CiAgICAgZm9yIChp
bnQgaiA9IHRvcDsgaiA8PSBib3R0b207ICsraikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
aAppbmRleCA1ZGFmMGYwMTk0N2E5OTQ3Y2QyMzVmNTVmYjczOTU5ZTQ0N2IxZjU2Li5mMGI1NDll
MTE5ZjAyMzk5YjdjYzIwNjE0MjQzMjYzZTEzODFkYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uaApAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHB1c2hQ
cm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRl
bnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250ZW50c1NjYWxlKCkgY29uc3Q7
CisKKyAgICB2aXJ0dWFsIEludFNpemUgY29udGVudEJvdW5kcygpIGNvbnN0OwogCiAgICAgLy8g
UmVzZXJ2ZXMgYWxsIGV4aXN0aW5nIGFuZCB2YWxpZCB0aWxlIHRleHR1cmVzIHRvIHByb3RlY3Qg
dGhlbSBmcm9tIGJlaW5nCiAgICAgLy8gcmVjeWNsZWQgYnkgdGhlIHRleHR1cmUgbWFuYWdlci4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcAppbmRleCBmNGEyN2Zi
NTJjYTdjMGEyZjM5NmFhNjE1NWEzYjMzMGYzYzI2NmJhLi5mMWI4OThiOTYzNGU5MTBmNWM4NjVm
MDJlYjRlZWI2ZDM0M2NiMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9QYWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92
ZXJsYXkuY3BwCkBAIC03MCw2ICs3MCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fcGFnZU92ZXJs
YXlDbGllbnQtPnBhaW50UGFnZU92ZXJsYXkoY29udGV4dCk7CiAgICAgfQogCisgICAgdmlydHVh
bCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bV93ZWJWaWV3SW1wbC0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV93
ZWJWaWV3SW1wbC0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgfQorCiAgICAgdmlydHVhbCBib29s
IHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fd2ViVmll
d0ltcGwtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI0
NDFjNzQyNGY4NGFhYzRjYzNjZTg5ODdjYzg1NDI5MjMwY2QyMjEuLjIzODk1MzNjODU0ZGVlNzdj
YWIwY2ZkNjQyNDcyOWYwYjBjZjA3YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0xMS0w
MyAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Y29tcG9zaXRlZCBsYXllcnMgYXJlIGJsdXJyeSB3aXRoIGEgem9vbS1pbiBwYWdlIHNjYWxlIGZh
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEy
MjUKKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2VzIHRoYXQgaGFzIHBvc2l0aW9uOmZpeGVkIGFu
ZCBwYWdlIHNjYWxlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1w
YWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBv
c2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTEtMTEtMTEgIFNh
ZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNw
ZWN1bGF0aXZlIGZpeCBmb3IgYSBmZXcgd29ya2VyIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdl
LXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFjN2QzYjhhZjM2NDQ5ZDBjYzhhMGQ1MGM0ODkzNDYxMjhlNGNiM2MKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyIEBACitURVNUCitURVNUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLWRvd24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjMwNmEzZjllOTk2ZjlkMDZhZGYx
MGI5ZGM0YjVkMzM4ZTkyMjEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVm
dDogMTBweDsKK30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7Cisg
IHotaW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7Cit9Cis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAg
d2lkdGg6IDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBmdW5jdGlvbiBzY2FsZSgpIHsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAw
LCAwKTsKKyAgICB9CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzY2Fs
ZSgpOyI+Cis8ZGl2IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGRp
diBjbGFzcz0iZml4ZWQtd2l0aC16LWluZGV4Ij5URVNUPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzdkM2I4YWYzNjQ0OWQwY2M4YTBkNTBjNDg5MzQ2MTI4
ZTRjYjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIgQEAKK1RFU1QKK1RFU1QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg3MzUzZWU5ODM4NTk4MzlkYTI0NjIxOGVh
ZDE4MzU5ZjE0ZjcyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0w
LDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5m
aXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAxMHB4Owor
fQorLmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1pbmRleDog
MTsKKyAgbGVmdDogMTBweDsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0aDogMHB4
OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxlKCkgeworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQodHJ1ZSk7CisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICB9
CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzY2FsZSgpOyI+Cis8ZGl2
IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGRpdiBjbGFzcz0iZml4
ZWQtd2l0aC16LWluZGV4Ij5URVNUPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUt
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1kb3duLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzc0NWRmNDgzODY2ZDllNzQyYjIw
ZDA1MWFmOWM1Y2JhY2U0OWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS1kb3duLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1RFU1QKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNTVjOGRkNDNkY2FiNzgwMGU1ZTZlYWQ2OGU1MDZiOTk1NTQ0ZDZm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTAs
MCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZp
eGVkLW5vLXotaW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7Cit9
CisuZml4ZWQtd2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAx
OworICBsZWZ0OiAxMHB4OworfQorOjotd2Via2l0LXNjcm9sbGJhciB7CisgIHdpZHRoOiAwcHg7
Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRp
bmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KHRydWUpOworICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICB9
CisKKyAgICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnRE
b2N1bWVudC5vcGVuKCk7CisgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7
IHotaW5kZXg6IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CisgICAgZC5jbG9zZSgpOwor
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpOyI+Cis8ZGl2IGNs
YXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGlmcmFtZSBpZD0iZnJhbWUi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYzc0NWRmNDgzODY2ZDllNzQyYjIwZDA1MWFmOWM1Y2JhY2U0OWQzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
IEBACitURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjY2MDcwODdmZDUwYTk2OWM1YWZkYmY3
M2NlZWNlZDMyZmNiZWQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5o
dG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KKy5maXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0
OiAxMHB4OworfQorLmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAg
ei1pbmRleDogMTsKKyAgbGVmdDogMTBweDsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3
aWR0aDogMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDAp
OworICAgIH0KKworICAgIHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJyku
Y29udGVudERvY3VtZW50Lm9wZW4oKTsKKyAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdwb3NpdGlv
bjpmaXhlZDsgei1pbmRleDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKKyAgICBkLmNs
b3NlKCk7CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4K
KzxkaXYgY2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8aWZyYW1lIGlk
PSJmcmFtZSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS1kb3duLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzdkM2I4YWYzNjQ0OWQwY2M4YTBkNTBj
NDg5MzQ2MTI4ZTRjYjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS1kb3duLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1RFU1QKK1RFU1QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5z
Zm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1kb3duLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDViMWM4Nzk0NmMyNzkxZDI2Y2U2M2JkY2NiNDg2
MTlkMDQxOTgzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93
bi5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKy5maXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBs
ZWZ0OiAxMHB4OworICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3RhdGUo
MjBkZWcpOworfQorLmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAg
ei1pbmRleDogMTsKKyAgbGVmdDogMTBweDsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVgoMTBweCkgcm90YXRlKDIwZGVnKTsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0
aDogMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxlKCkgeworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVD
b21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQodHJ1ZSk7CisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDAp
OworICAgIH0KKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7
Ij4KKzxkaXYgY2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNs
YXNzPSJmaXhlZC13aXRoLXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM3ZDNiOGFmMzY0NDlkMGNj
OGEwZDUwYzQ4OTM0NjEyOGU0Y2IzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorVEVTVAorVEVTVApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJh
bnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQzYjZkZGM2YzI2NGUwMDUwZTkwMmFjOGFjYzc1NWI4ZTY1MDIw
NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZp
eGVkLW5vLXotaW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7Cisg
IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpIHJvdGF0ZSgyMGRlZyk7Cit9Cisu
Zml4ZWQtd2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAxOwor
ICBsZWZ0OiAxMHB4OworICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3Rh
dGUoMjBkZWcpOworfQorOjotd2Via2l0LXNjcm9sbGJhciB7CisgIHdpZHRoOiAwcHg7Cit9Cis8
L3N0eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gc2NhbGUoKSB7CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
Rml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVl
KTsKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgIH0KKyAgfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7Ij4KKzxkaXYgY2xhc3M9
ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNsYXNzPSJmaXhlZC13aXRo
LXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBkMzkyNTU1
ZDU2M2VkOWNkMjg3MWJlMDBlNjkzMTQyNjdmOTM4ZmY4Li5kMjA0ODU1NWFhNzI3ODUzNTQ1NWU3
MDJkNmUxNTYyMGU1MjhmODIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0zODkyLDMgKzM4OTIsMTEgQEAgQlVHVjhf
MTgyMSBXSU4gTElOVVggOiBodHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RlZGljYXRlZC13
b3JrZXJzLWxpc3QuaHRtbAogQlVHV0s3MjEzMyBNQUMgOiBodHRwL3Rlc3RzL2luc3BlY3Rvci1l
bmFibGVkL2RlZGljYXRlZC13b3JrZXJzLWxpc3QuaHRtbCA9IFBBU1MgQ1JBU0ggVElNRU9VVAog
CiBCVUdXSzcyMTQ5IDogbWVkaWEvdHJhY2svdHJhY2tsaXN0LWlzLXJlYWNoYWJsZS5odG1sID0g
VEVYVAorCisvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGRvbid0IGhhdmUgdGVzdCBleHBhY3RhdGlv
bnMgYmVjYXVzZSBwYWdlIHNjYWxpbmcgd2l0aCBhY2NlbGVyYXRlZCBjb21wb3NpdGllZCBtb2Rl
IGlzIGJyb2tlbi4KK0JVR1dLNzEyMjUgTElOVVggTUFDIFdJTiA6IGNvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sID0gTUlTU0lORwor
QlVHV0s3MTIyNSBMSU5VWCBNQUMgV0lOIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sID0gTUlTU0lORworQlVHV0s3
MTIyNSBMSU5VWCBNQUMgV0lOIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sID0gTUlTU0lORworQlVHV0s3MTIy
NSBMSU5VWCBNQUMgV0lOIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbCA9IE1JU1NJTkcKK0JVR1dLNzEyMjUgTElOVVgg
TUFDIFdJTiA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sID0gTUlTU0lORworQlVHV0s3MTIyNSBMSU5VWCBN
QUMgV0lOIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgPSBNSVNTSU5HCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114983</attachid>
            <date>2011-11-14 10:57:47 -0800</date>
            <delta_ts>2011-11-15 04:53:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71225-20111114185745.patch</filename>
            <type>text/plain</type>
            <size>37374</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNjMDQ0NGVhYmZlODVk
ODE2YzBkNmY5YTJmNWI0ZGNkNjFmZDBjZS4uYmNmMmQ4YWY2YWE5ZDAxYTdjZjNhZDE0ZGFlZjNh
YTU5Njg5Y2MwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTExLTAzICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3Np
dGVkIGxheWVycyBhcmUgYmx1cnJ5IHdpdGggYSB6b29tLWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgY29udGVu
dHMgc2NhbGUgZmFjdG9yIHRvIHRoZSBjb21wb3NpdG9yIHN1Y2ggdGhhdCBpdCBjYW46CisgICAg
ICAgIDEuIEFkanVzdCBjb250ZW50Qm91bmRzKCkgb2YgdGhlIGNvbXBvc2l0b2VyIGxheWVycyB3
aXRoIGNvbnRlbnQgc2NhbGUuCisgICAgICAgIDIuIEFwcGx5IHRoZSBjb250ZW50IHNjYWxlIGlu
IHRoZSBwYWludGVyIGZvciB0ZXh0dXJlIHVwZGF0ZSBpbiBiZXR0ZXIgcmVzb2x1dGlvbi4KKyAg
ICAgICAgMy4gQXBwbHkgdGhlIGNvbnRlbnQgc2NhbGUgdG8gdGhlIGRpcnR5IHJlY3QgaW4gQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlZCBibHVy
cnkgcHJvYmxlbSBmb3IgYWxsIHRpbGVkIGxheWVyIHR5cGVzIGFuZCBpcyBub3QgbGltaXRlZCB0
bworICAgICAgICBwb3NpdGlvbjpmaXhlZCBsYXllcnMuCisKKyAgICAgICAgVGVzdHM6IGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3du
Lmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLWRvd24uaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXI6OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06
OnNldFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06
OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNocm9taXVtOjp1cGRhdGVDb250ZW50c1NjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6Y29udGVudHNTY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFy
ZVRvVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6bmVlZHND
b250ZW50c1NjYWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFn
ZUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OkxheWVy
Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNT
Y2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6bmVlZHNDb250ZW50c1NjYWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OmNvbnRlbnRzU2NhbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTa1BpY3R1cmVDYW52YXNM
YXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRz
U2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpjb250ZW50Qm91
bmRzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBk
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uaDoKKwogMjAxMS0xMS0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgTWVkaWFDb250cm9sbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBlYzNmZjQxMTlmN2QxNTdjNWE3OThhM2IzYjUxNjM3MzA0NjNjM2ZkLi42NWVj
ODUzOGNlZGViMjI3YTEyNTNkZTk0OTczMmE3YjNmNTk5ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTAzICBBbHBoYSBMYW0gIDxoY2xhbUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGVkIGxheWVycyBhcmUg
Ymx1cnJ5IHdpdGggYSB6b29tLWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudHMgR3JhcGhpY3NMYXllckNs
aWVudCB0byByZXR1cm4gdmFsdWVzIGZvciBwYWdlU2NhbGVGYWN0b3IgYW5kIGRldmljZVNjYWxl
RmFjdG9yLiBUaGV5IGFyZSB1c2VkIHRvIGRldGVybWluZSBjb250ZW50cyBzY2FsZSBmYWN0b3Ig
Y29tcG9zaXRlciBsYXllcnMuCisKKyAgICAgICAgKiBzcmMvUGFnZU92ZXJsYXkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpPdmVybGF5R3JhcGhpY3NMYXllckNsaWVudEltcGw6OmRldmljZVNjYWxl
RmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6T3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJbXBs
OjpwYWdlU2NhbGVGYWN0b3IpOgorCiAyMDExLTExLTE0ICBUb21teSBXaWRlbmZseWNodCAgPHRv
bW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWVkaWFTdHJlYW0gQVBJOiBB
bGxvdyBmb3IgbnVsbCBXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKaW5kZXggMDcxZGU2NDg0Mzhh
ZDMyYzBjNGU2ZWM4OWMzOGY2NWFhODEzNTQ5NS4uMDAzODYyOWFmMzlkN2RkYTA5ZWYyYWJjOGNh
ZDZhZDc4N2Q5OTg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6
U2FtcGxlZFRleGVsRm9ybWF0IEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnNhbXBs
ZWQKICAgICAgICAgICAgIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJH
QkEgOiBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRCR1JBOwogfQogCi12
b2lkIEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZShjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3Jk
ZXJUZXhlbHMpCit2b2lkIEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVU
b1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNp
emUsIGludCBib3JkZXJUZXhlbHMsIGZsb2F0IGNvbnRlbnRzU2NhbGUpCiB7CiAgICAgbV90ZXhT
dWJJbWFnZS5zZXRTdWJJbWFnZVNpemUodGlsZVNpemUpOwogCkBAIC04OCw3ICs4OCw3IEBAIHZv
aWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0
IEludFJlY3QmIGNvbnRlbnRSZWN0CiAgICAgUGxhdGZvcm1DYW52YXM6OlBhaW50ZXI6OlRleHRP
cHRpb24gdGV4dE9wdGlvbiA9CiAgICAgICAgIGJvcmRlclRleGVscyA/IFBsYXRmb3JtQ2FudmFz
OjpQYWludGVyOjpHcmF5c2NhbGVUZXh0IDogUGxhdGZvcm1DYW52YXM6OlBhaW50ZXI6OlN1YnBp
eGVsVGV4dDsKICAgICBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlciBjYW52YXNQYWludGVyKCZtX2Nh
bnZhcywgdGV4dE9wdGlvbik7Ci0gICAgcGFpbnRDb250ZW50cygqY2FudmFzUGFpbnRlci5jb250
ZXh0KCksIGNvbnRlbnRSZWN0KTsKKyAgICBwYWludENvbnRlbnRzKCpjYW52YXNQYWludGVyLmNv
bnRleHQoKSwgY29udGVudFJlY3QsIGNvbnRlbnRzU2NhbGUpOwogfQogCiB2b2lkIEJpdG1hcENh
bnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnVwZGF0ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4
dDNEKiBjb250ZXh0LCBUZXh0dXJlQWxsb2NhdG9yKiBhbGxvY2F0b3IsIE1hbmFnZWRUZXh0dXJl
KiB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0
UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIu
aAppbmRleCA2NzVkZGRkNWI0OWIyMWMwZjc1YjhmYTQyMjg5Y2MyZjEwZTU0YTQ0Li5jOGU2ZTAy
ZGEyZmM2NTdiZDY5ZDczNDNjN2IzOTAyYjk1MzVhMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVV
cGRhdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Qml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZT4g
Y3JlYXRlVGV4dHVyZShUZXh0dXJlTWFuYWdlciopOwogICAgIHZpcnR1YWwgT3JpZW50YXRpb24g
b3JpZW50YXRpb24oKSB7IHJldHVybiBMYXllclRleHR1cmVVcGRhdGVyOjpCb3R0b21VcE9yaWVu
dGF0aW9uOyB9CiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9y
bWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpOwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9V
cGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXpl
LCBpbnQgYm9yZGVyVGV4ZWxzKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNv
bnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJv
cmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSk7CiAgICAgdm9pZCB1cGRhdGVUZXh0dXJl
UmVjdChHcmFwaGljc0NvbnRleHQzRCosIFRleHR1cmVBbGxvY2F0b3IqLCBNYW5hZ2VkVGV4dHVy
ZSosIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KTsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAK
aW5kZXggYTNlOGY3YjdiZjNkNjAwOGRlYjBjNjM4YWEzNzExNWY5N2EyYTZiYS4uZDFiNzJmZTQ0
NjY2ZGRlZTc5Yjg4OWFmODg3NTUxMjk5Y2IyZmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJMYXllclBhaW50ZXJDaHJvbWl1bS5oIgogI2luY2x1
ZGUgIlRyYWNlRXZlbnQuaCIKKyNpbmNsdWRlICJ3dGYvTWF0aEV4dHJhcy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQ1LDEyICs0NiwzMyBAQCBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyOjp+Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcigpCiB7CiB9CiAKLXZvaWQgQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0KQordm9pZCBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyOjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UmVj
dCYgY29udGVudFJlY3QsIGZsb2F0IGNvbnRlbnRzU2NhbGUpCiB7CiAgICAgY29udGV4dC50cmFu
c2xhdGUoLWNvbnRlbnRSZWN0LngoKSwgLWNvbnRlbnRSZWN0LnkoKSk7CiAgICAgewogICAgICAg
ICBUUkFDRV9FVkVOVCgiQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnQiLCB0aGlzLCAw
KTsKLSAgICAgICAgbV9wYWludGVyLT5wYWludChjb250ZXh0LCBjb250ZW50UmVjdCk7CisKKyAg
ICAgICAgSW50UmVjdCBzY2FsZWRDb250ZW50UmVjdCA9IGNvbnRlbnRSZWN0OworCisgICAgICAg
IGlmIChjb250ZW50c1NjYWxlICE9IDEuMCkgeworICAgICAgICAgICAgY29udGV4dC5zYXZlKCk7
CisgICAgICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZShjb250ZW50c1NjYWxlLCBjb250
ZW50c1NjYWxlKSk7CisKKyAgICAgICAgICAgIGZsb2F0IGludlNjYWxlID0gMSAvIGNvbnRlbnRz
U2NhbGU7CisgICAgICAgICAgICBpbnQgeCA9IGZsb29yKGNvbnRlbnRSZWN0LngoKSAqIGludlNj
YWxlKTsKKyAgICAgICAgICAgIGludCB5ID0gZmxvb3IoY29udGVudFJlY3QueSgpICogaW52U2Nh
bGUpOworICAgICAgICAgICAgaW50IG1heFggPSBjZWlsKGNvbnRlbnRSZWN0Lm1heFgoKSAqIGlu
dlNjYWxlKTsKKyAgICAgICAgICAgIGludCBtYXhZID0gY2VpbChjb250ZW50UmVjdC5tYXhZKCkg
KiBpbnZTY2FsZSk7CisgICAgICAgICAgICBzY2FsZWRDb250ZW50UmVjdC5zZXRYKHgpOworICAg
ICAgICAgICAgc2NhbGVkQ29udGVudFJlY3Quc2V0WSh5KTsKKyAgICAgICAgICAgIHNjYWxlZENv
bnRlbnRSZWN0LnNldFdpZHRoKG1heFggLSB4KTsKKyAgICAgICAgICAgIHNjYWxlZENvbnRlbnRS
ZWN0LnNldEhlaWdodChtYXhZIC0geSk7CisgICAgICAgIH0KKworICAgICAgICBtX3BhaW50ZXIt
PnBhaW50KGNvbnRleHQsIHNjYWxlZENvbnRlbnRSZWN0KTsKKworICAgICAgICBpZiAoY29udGVu
dHNTY2FsZSAhPSAxLjApCisgICAgICAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7CiAgICAgfQog
ICAgIG1fY29udGVudFJlY3QgPSBjb250ZW50UmVjdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXIuaAppbmRleCBmZDc5YTA0ZDBhMzZkNzk2YTRlN2YzMzQzMzE3MmE4
MjA0YmMxNDllLi5hOGZlZmYzNDIyYjFiODUzMGI4ZjY4OWZmMmM1NjY3NjYwYmVkNWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNM
YXllclRleHR1cmVVcGRhdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC00NCw3ICs0NCw3IEBA
IHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyKFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+KTsKIAotICAgIHZvaWQgcGFpbnRD
b250ZW50cyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCk7Cisg
ICAgdm9pZCBwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNv
bnRlbnRSZWN0LCBmbG9hdCBjb250ZW50c1NjYWxlKTsKICAgICBjb25zdCBJbnRSZWN0JiBjb250
ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudFJlY3Q7IH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDE1NmIyZTkwZWY0NWU2OTAw
NzgyZWE1OTQ4MDhiNmFkODJlM2ZiYzkuLmNhZWQ4OWNjODk5ZjVlNGI1YTI2MmEwOTQ3ZjFjYzFm
YjVhM2JkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApAQCAtMTkx
LDYgKzE5MSw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRTaXplKGNvbnN0IEZs
b2F0U2l6ZSYgc2l6ZSkKIAogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldFRyYW5zZm9y
bShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKQogeworICAgIC8vIENhbGwg
dGhpcyBtZXRob2QgZmlyc3QgdG8gYXNzaWduIGNvbnRlbnRzIHNjYWxlIHRvIExheWVyQ2hyb21p
dW0gc28gdGhlIHBhaW50ZXIgY2FuIGFwcGx5IHRoZSBzY2FsZSB0cmFuc2Zvcm0uCisgICAgdXBk
YXRlQ29udGVudHNTY2FsZSgpOworCiAgICAgaWYgKHRyYW5zZm9ybSA9PSBtX3RyYW5zZm9ybSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC01NjEsNiArNTY0LDcgQEAgdm9pZCBHcmFwaGljc0xheWVy
Q2hyb21pdW06OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QoKQogICAgICAgICB1cGRhdGVBbmNob3JQ
b2ludCgpOwogICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKICAgICAgICAgdXBkYXRlQ2hpbGRy
ZW5UcmFuc2Zvcm0oKTsKKyAgICAgICAgdXBkYXRlQ29udGVudHNTY2FsZSgpOwogCiAgICAgICAg
IG1fbGF5ZXItPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQobV9zaXplLndpZHRoKCkgLyAyLjBmLCBt
X3NpemUuaGVpZ2h0KCkgLyAyLjBmKSk7CiAKQEAgLTU3MSw2ICs1NzUsOCBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCgpCiAgICAgICAgIC8vIFNl
dCB0aGUgb2xkIGxheWVyIHRvIG9wYWNpdHkgb2YgMS4gRnVydGhlciBkb3duIHdlIHdpbGwgc2V0
IHRoZSBvcGFjaXR5IG9uIHRoZSB0cmFuc2Zvcm0gbGF5ZXIuCiAgICAgICAgIG1fbGF5ZXItPnNl
dE9wYWNpdHkoMSk7CiAKKyAgICAgICAgbV9sYXllci0+c2V0Q29udGVudHNTY2FsZShjb250ZW50
c1NjYWxlKCkpOworCiAgICAgICAgIC8vIE1vdmUgdGhpcyBsYXllciB0byBiZSBhIGNoaWxkIG9m
IHRoZSB0cmFuc2Zvcm0gbGF5ZXIuCiAgICAgICAgIGlmIChtX2xheWVyLT5wYXJlbnQoKSkKICAg
ICAgICAgICAgIG1fbGF5ZXItPnBhcmVudCgpLT5yZXBsYWNlQ2hpbGQobV9sYXllci5nZXQoKSwg
bV90cmFuc2Zvcm1MYXllci5nZXQoKSk7CkBAIC01OTEsNiArNTk3LDcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QoKQogICAgICAgICB1cGRhdGVB
bmNob3JQb2ludCgpOwogICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKICAgICAgICAgdXBkYXRl
Q2hpbGRyZW5UcmFuc2Zvcm0oKTsKKyAgICAgICAgdXBkYXRlQ29udGVudHNTY2FsZSgpOwogCiAg
ICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOwogICAgIH0KQEAgLTYzNCw2ICs2NDEsMTUgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzUmVjdCgpCiAgICAgbV9jb250
ZW50c0xheWVyLT5zZXRCb3VuZHMoSW50U2l6ZShtX2NvbnRlbnRzUmVjdC53aWR0aCgpLCBtX2Nv
bnRlbnRzUmVjdC5oZWlnaHQoKSkpOwogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
dXBkYXRlQ29udGVudHNTY2FsZSgpCit7CisgICAgLy8gSWYgcGFnZSBzY2FsZSBpcyBhbHJlYWR5
IGFwcGxpZWQgdGhlbiB0aGVyZSdzIG5vIG5lZWQgdG8gYXBwbHkgaXQgYWdhaW4uCisgICAgaWYg
KGFwcGxpZXNQYWdlU2NhbGUoKSB8fCAhbV9sYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9sYXllci0+c2V0Q29udGVudHNTY2FsZShjb250ZW50c1NjYWxlKCkpOworfQorCiB2b2lkIEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKExheWVyQ2hyb21pdW0qIGNv
bnRlbnRzTGF5ZXIpCiB7CiAgICAgaWYgKGNvbnRlbnRzTGF5ZXIgPT0gbV9jb250ZW50c0xheWVy
KQpAQCAtNjY0LDYgKzY4MCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBD
b250ZW50c0xheWVyKExheWVyQ2hyb21pdW0qIGNvbnRlbnRzTGF5ZXIpCiAgICAgdXBkYXRlTmFt
ZXMoKTsKIH0KIAorZmxvYXQgR3JhcGhpY3NMYXllckNocm9taXVtOjpjb250ZW50c1NjYWxlKCkg
Y29uc3QKK3sKKyAgICBpZiAoIWFwcGxpZXNQYWdlU2NhbGUoKSkKKyAgICAgICAgcmV0dXJuIHBh
Z2VTY2FsZUZhY3RvcigpICogZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gMS4wZjsK
K30KKwogLy8gVGhpcyBmdW5jdGlvbiBzaW1wbHkgbWltaWNzIHRoZSBvcGVyYXRpb24gb2YgR3Jh
cGhpY3NMYXllckNBCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlT3BhY2l0eU9u
TGF5ZXIoKQogewpAQCAtNjc0LDYgKzY5Nyw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVt
OjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogewogICAgIGlmIChtX2xheWVyKQog
ICAgICAgICBtX2xheWVyLT5wYWdlU2NhbGVDaGFuZ2VkKCk7CisgICAgdXBkYXRlQ29udGVudHNT
Y2FsZSgpOwogfQogCiBib29sIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggZjczZTczMzczOWJh
MTZhNTIyMTFiMzExZTI2OWM1MzZiY2FiYTcyMC4uYjA1ZDA3YmY2MzdiZjVjZmUwZTRiZWM0ZTM5
M2RiYTdiMGMwM2RmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTk0
LDEzICs5NCwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCYWNrZ3Jv
dW5kQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIo
Y29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCk7CisgICAgdmlydHVhbCB2b2lkIGRldmlj
ZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBmdW5j
dGlvbnMgaW1wbGVtZW50IHRoZSBDQ0xheWVyRGVsZWdhdGUgaW50ZXJmYWNlLgogICAgIHZpcnR1
YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250
ZW50cyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKICAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQ
YWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlT3BhY2l0
eU9uTGF5ZXIoKTsKIApAQCAtMTI1LDkgKzEyNSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlQ29udGVudHNJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNWaWRlbygpOwogICAg
IHZvaWQgdXBkYXRlQ29udGVudHNSZWN0KCk7CisgICAgdm9pZCB1cGRhdGVDb250ZW50c1NjYWxl
KCk7CiAKICAgICB2b2lkIHNldHVwQ29udGVudHNMYXllcihMYXllckNocm9taXVtKik7CiAgICAg
TGF5ZXJDaHJvbWl1bSogY29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNM
YXllci5nZXQoKTsgfQorICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUoKSBjb25zdDsKIAogICAgIFN0
cmluZyBtX25hbWVCYXNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAppbmRleCAw
YmQ4MmFlMWExOGEyNTMwZjg3NDIwZTQ4MWQwZDVjYTIzMGI5MDEyLi4wNmI0NWE2MjgxM2NmZGVk
MGQyOTk3NzE3NTA3NGUxMGZhMDQ2NjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5j
cHAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIExheWVyVGV4dHVy
ZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkEgOiBMYXllclRleHR1cmVVcGRhdGVyOjpT
YW1wbGVkVGV4ZWxGb3JtYXRCR1JBOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgLyogY29udGVudFJlY3QgKi8sIGNvbnN0IEludFNpemUm
IHRpbGVTaXplLCBpbnQgLyogYm9yZGVyVGV4ZWxzICovKQorICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgLyogY29udGVudFJlY3QgKi8sIGNvbnN0IEludFNp
emUmIHRpbGVTaXplLCBpbnQgLyogYm9yZGVyVGV4ZWxzICovLCBmbG9hdCAvKiBjb250ZW50c1Nj
YWxlICovKQogICAgIHsKICAgICAgICAgbV90ZXhTdWJJbWFnZS5zZXRTdWJJbWFnZVNpemUodGls
ZVNpemUpOwogICAgIH0KQEAgLTIwOCw1ICsyMDgsMTEgQEAgdm9pZCBJbWFnZUxheWVyQ2hyb21p
dW06OmNyZWF0ZVRleHR1cmVVcGRhdGVyKGNvbnN0IENDTGF5ZXJUcmVlSG9zdCogaG9zdCkKICAg
ICBtX3RleHR1cmVVcGRhdGVyID0gSW1hZ2VMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUoaG9z
dC0+bGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcygpLnVzaW5nTWFwU3ViKTsKIH0KIAorYm9vbCBJ
bWFnZUxheWVyQ2hyb21pdW06Om5lZWRzQ29udGVudHNTY2FsZSgpIGNvbnN0Cit7CisgICAgLy8g
Q29udGVudHMgc2NhbGUgaXMgbm90IG5lZWQgZm9yIGltYWdlIGxheWVyIGJlY2F1c2UgdGhpcyBj
YW4gYmUgZG9uZSBpbiBjb21wb3NpdG9yIG1vcmUgZWZmaWNpZW50bHkuCisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VM
YXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9JbWFnZUxheWVyQ2hyb21pdW0uaAppbmRleCAxYWZjY2ZlMmZkY2U2NDQ3NWE3NGFiMmM5MjZk
MDQyY2I1ZjM3Njc0Li41ZmU0ZjI2NjY4YmRjYzNlMjlmMDRjZmZjZGE4ODJhNzNjMzFlMzI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFn
ZUxheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IHBhaW50Q29udGVudHNJZkRpcnR5KCk7CisgICAgdmlydHVhbCBib29sIG5lZWRzQ29udGVudHNT
Y2FsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDb250ZW50cyhJbWFnZSogaW1hZ2UpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IGNhMDBjMjM1MjRmNzdhNjNiMGU4NTk4YmQ4MTNmMjAz
NmM2MDg2NDguLmZiNzM2ZWY3YWJkNTkyMDUxODFmNjBmNmIxN2FhNWE0MDUwODg0NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwCkBAIC03Myw2ICs3Myw3IEBAIExheWVyQ2hyb21pdW06OkxheWVy
Q2hyb21pdW0oQ0NMYXllckRlbGVnYXRlKiBkZWxlZ2F0ZSkKICAgICAsIG1fcmVwbGljYUxheWVy
KDApCiAgICAgLCBtX2RyYXdPcGFjaXR5KDApCiAgICAgLCBtX3RhcmdldFJlbmRlclN1cmZhY2Uo
MCkKKyAgICAsIG1fY29udGVudHNTY2FsZSgxLjApCiAgICAgLCBtX3BhZ2VTY2FsZURpcnR5KGZh
bHNlKQogewogfQpAQCAtMzI4LDYgKzMyOSwxMyBAQCB2b2lkIExheWVyQ2hyb21pdW06OnNldERl
YnVnQm9yZGVyV2lkdGgoZmxvYXQgd2lkdGgpCiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAor
dm9pZCBMYXllckNocm9taXVtOjpzZXRDb250ZW50c1NjYWxlKGZsb2F0IGNvbnRlbnRzU2NhbGUp
Cit7CisgICAgaWYgKCFuZWVkc0NvbnRlbnRzU2NhbGUoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IG1fY29udGVudHNTY2FsZSA9IGNvbnRlbnRzU2NhbGU7Cit9CisKIHZvaWQgTGF5ZXJDaHJvbWl1
bTo6Y3JlYXRlUmVuZGVyU3VyZmFjZSgpCiB7CiAgICAgQVNTRVJUKCFtX3JlbmRlclN1cmZhY2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDc0N2RjOTg2OWNmMTBiNjJmMzBlOWJmMDlhZjIyNzk4
NjY0ZDM0MjQuLmUyMjZjZDMwMTEzNWRiYjg4YjBmNGEwMzM0MWVmODU5MDA3MDA1ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hy
b21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmgKQEAgLTE2NCw2ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGJpbmRDb250ZW50c1RleHR1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFnZVNjYWxl
Q2hhbmdlZCgpIHsgbV9wYWdlU2NhbGVEaXJ0eSA9IHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHND
b250ZW50c1NjYWxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFRoZXNlIGV4
aXN0IGp1c3QgZm9yIGRlYnVnZ2luZyAodmlhIGRyYXdEZWJ1Z0JvcmRlcigpKS4KICAgICB2b2lk
IHNldERlYnVnQm9yZGVyQ29sb3IoY29uc3QgQ29sb3ImKTsKQEAgLTE5Miw2ICsxOTMsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRTY3JlZW5TcGFjZVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgbWF0cml4KSB7IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm0gPSBtYXRyaXg7IH0K
ICAgICBjb25zdCBJbnRSZWN0JiBkcmF3YWJsZUNvbnRlbnRSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9kcmF3YWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgdm9pZCBzZXREcmF3YWJsZUNvbnRlbnRSZWN0
KGNvbnN0IEludFJlY3QmIHJlY3QpIHsgbV9kcmF3YWJsZUNvbnRlbnRSZWN0ID0gcmVjdDsgfQor
ICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzU2NhbGU7
IH0KKyAgICB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQpOwogCiAgICAgLy8gUmV0dXJucyB0
cnVlIGlmIGFueSBvZiB0aGUgbGF5ZXIncyBkZXNjZW5kYW50cyBoYXMgY29udGVudCB0byBkcmF3
LgogICAgIGJvb2wgZGVzY2VuZGFudERyYXdzQ29udGVudCgpOwpAQCAtMjgwLDYgKzI4Myw3IEBA
IHByaXZhdGU6CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9kcmF3VHJhbnNmb3JtOwogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm07CiAgICAgSW50UmVj
dCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CisgICAgZmxvYXQgbV9jb250ZW50c1NjYWxlOwogCiAg
ICAgU3RyaW5nIG1fbmFtZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCmluZGV4IDQ1
MjVjZTdlYjExYzljNTZlZTFkMjc4NTJmMDcyZjM5NTVjODExZWQuLjkwODg0Y2ZkNWJlMGZjZTE4
NDcyN2FjYTI4MDQ2YTI2NDdiYzJjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgK
QEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIC8vIFRoaXMgZm9ybWF0IHNwZWNpZmllcyB0
aGUgY29tcG9uZW50IG9yZGVyIGluIHRoZSBzYW1wbGVkIHRleGVsLgogICAgIC8vIElmIHRoZSBm
b3JtYXQgaXMgVGV4ZWxGb3JtYXRCR1JBLCB2ZWM0LnggaXMgYmx1ZSBhbmQgdmVjNC56IGlzIHJl
ZC4KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0Mz
RGVudW0gdGV4dHVyZUZvcm1hdCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRh
dGUoY29uc3QgSW50UmVjdCYgLyogY29udGVudFJlY3QgKi8sIGNvbnN0IEludFNpemUmIC8qIHRp
bGVTaXplICovLCBpbnQgLyogYm9yZGVyVGV4ZWxzICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIC8qIGNvbnRlbnRSZWN0ICovLCBjb25zdCBJ
bnRTaXplJiAvKiB0aWxlU2l6ZSAqLywgaW50IC8qIGJvcmRlclRleGVscyAqLywgZmxvYXQgLyog
Y29udGVudHNTY2FsZSAqLykgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1
cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3Bw
CmluZGV4IGRjZmQ2M2U3MTkzNDJhZTc1MGJkZmVhYThjYWIzMmYxY2ZmYzgyYzIuLmI3NTE1YmZk
MTBiNTQwZDY0YWI2YWE5ZTc4NWVlZGFhNDFiOGU3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVy
ZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwCkBAIC00OCwxMiArNDgs
MTIgQEAgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6flNrUGljdHVyZUNhbnZh
c0xheWVyVGV4dHVyZVVwZGF0ZXIoKQogewogfQogCi12b2lkIFNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVj
dCwgY29uc3QgSW50U2l6ZSYgLyogdGlsZVNpemUgKi8sIGludCAvKiBib3JkZXJUZXhlbHMgKi8p
Cit2b2lkIFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0
ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgLyogdGlsZVNpemUg
Ki8sIGludCAvKiBib3JkZXJUZXhlbHMgKi8sIGZsb2F0IGNvbnRlbnRzU2NhbGUpCiB7CiAgICAg
U2tDYW52YXMqIGNhbnZhcyA9IG1fcGljdHVyZS5iZWdpblJlY29yZGluZyhjb250ZW50UmVjdC53
aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQoKSk7CiAgICAgUGxhdGZvcm1Db250ZXh0U2tpYSBw
bGF0Zm9ybUNvbnRleHQoY2FudmFzKTsKICAgICBHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250
ZXh0KCZwbGF0Zm9ybUNvbnRleHQpOwotICAgIHBhaW50Q29udGVudHMoZ3JhcGhpY3NDb250ZXh0
LCBjb250ZW50UmVjdCk7CisgICAgcGFpbnRDb250ZW50cyhncmFwaGljc0NvbnRleHQsIGNvbnRl
bnRSZWN0LCBjb250ZW50c1NjYWxlKTsKICAgICBtX3BpY3R1cmUuZW5kUmVjb3JkaW5nKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXIuaAppbmRleCA4OTFhNmQzYzlmMTIyMDFjYTRiMTgxNzQwYmYwZmJhNDdlMDFkYjU0Li40NDBm
OGIwM2VhNGYyNzM5YTk3NTQzODY3YWM3ZWIxNTQwMzBkMGMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCkBAIC00Niw3ICs0Niw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBTa1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyKFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+KTsKIAotICAg
IHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3Qs
IGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJ
bnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSk7
CiAgICAgdm9pZCBkcmF3UGljdHVyZShTa0NhbnZhcyopOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNo
cm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMjYwYTE3NWM0MjhjMTU5YTYzOGUwMjQ3NWE0YjVk
ZTQyMWQyZWE0YS4uNGY2ZmUxZmRhOWIzNTVkY2FmMDU4NTY2Y2E5Y2U3ZWU0OWFmZjkxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRM
YXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJMYXllclJlbmRlcmVyQ2hyb21pdW0u
aCIKICNpbmNsdWRlICJNYW5hZ2VkVGV4dHVyZS5oIgorI2luY2x1ZGUgIk1hdGhFeHRyYXMuaCIK
ICNpbmNsdWRlICJUZXh0U3RyZWFtLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllckltcGwuaCIKICNp
bmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCkBAIC0xMzcsNiArMTM4LDE2IEBAIGJvb2wg
VGlsZWRMYXllckNocm9taXVtOjpkcmF3c0NvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiAhbV9z
a2lwc0RyYXc7CiB9CiAKK2Jvb2wgVGlsZWRMYXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRzU2Nh
bGUoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCitJbnRTaXplIFRpbGVkTGF5ZXJD
aHJvbWl1bTo6Y29udGVudEJvdW5kcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIEludFNpemUobHJv
dW5kZihib3VuZHMoKS53aWR0aCgpICogY29udGVudHNTY2FsZSgpKSwgbHJvdW5kZihib3VuZHMo
KS5oZWlnaHQoKSAqIGNvbnRlbnRzU2NhbGUoKSkpOworfQorCiB2b2lkIFRpbGVkTGF5ZXJDaHJv
bWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqIGhvc3QpCiB7CiAgICAgTGF5
ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChob3N0KTsKQEAgLTM3MSw3ICszODIsNyBAQCB2
b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNv
bnRlbnRSZWN0KQogICAgIC8vIEhvd2V2ZXIsIHdlIGNhbid0IGZyZWUgdGhlIG1lbW9yeSBiYWNr
aW5nIHRoZSBHcmFwaGljc0NvbnRleHQgdW50aWwgdGhlIHBhaW50IGZpbmlzaGVzLAogICAgIC8v
IHNvIHdlIGdyYWIgYSBsb2NhbCByZWZlcmVuY2UgaGVyZSB0byBob2xkIHRoZSB1cGRhdGVyIGFs
aXZlIHVudGlsIHRoZSBwYWludCBjb21wbGV0ZXMuCiAgICAgUmVmUHRyPExheWVyVGV4dHVyZVVw
ZGF0ZXI+IHByb3RlY3Rvcih0ZXh0dXJlVXBkYXRlcigpKTsKLSAgICB0ZXh0dXJlVXBkYXRlcigp
LT5wcmVwYXJlVG9VcGRhdGUobV9wYWludFJlY3QsIG1fdGlsZXItPnRpbGVTaXplKCksIG1fdGls
ZXItPmhhc0JvcmRlclRleGVscygpKTsKKyAgICB0ZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlVG9V
cGRhdGUobV9wYWludFJlY3QsIG1fdGlsZXItPnRpbGVTaXplKCksIG1fdGlsZXItPmhhc0JvcmRl
clRleGVscygpLCBjb250ZW50c1NjYWxlKCkpOwogCiAgICAgbV90aWxlci0+Y29udGVudFJlY3RU
b1RpbGVJbmRpY2VzKG1fcmVxdWVzdGVkVXBkYXRlUmVjdCwgbGVmdCwgdG9wLCByaWdodCwgYm90
dG9tKTsKICAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVy
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDVkYWYwZjAxOTQ3YTk5NDdjZDIzNWY1NWZiNzM5NTll
NDQ3YjFmNTYuLmYwYjU0OWUxMTlmMDIzOTliN2NjMjA2MTQyNDMyNjNlMTM4MWRhZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCopOwogCiAgICAgdmlydHVh
bCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRl
bnRzU2NhbGUoKSBjb25zdDsKKworICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50Qm91bmRzKCkg
Y29uc3Q7CiAKICAgICAvLyBSZXNlcnZlcyBhbGwgZXhpc3RpbmcgYW5kIHZhbGlkIHRpbGUgdGV4
dHVyZXMgdG8gcHJvdGVjdCB0aGVtIGZyb20gYmVpbmcKICAgICAvLyByZWN5Y2xlZCBieSB0aGUg
dGV4dHVyZSBtYW5hZ2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXku
Y3BwCmluZGV4IGY0YTI3ZmI1MmNhN2MwYTJmMzk2YWE2MTU1YTNiMzMwZjNjMjY2YmEuLmYxYjg5
OGI5NjM0ZTkxMGY1Yzg2NWYwMmViNGVlYjZkMzQzY2IwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAKQEAgLTcwLDYgKzcwLDE2IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9wYWdlT3ZlcmxheUNsaWVudC0+cGFpbnRQYWdlT3ZlcmxheShjb250ZXh0KTsKICAg
ICB9CiAKKyAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBtX3dlYlZpZXdJbXBsLT5kZXZpY2VTY2FsZUZhY3RvcigpOworICAg
IH0KKworICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX3dlYlZpZXdJbXBsLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICB9CisK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gbV93ZWJWaWV3SW1wbC0+cGFnZSgpLT5zZXR0aW5ncygpLT5zaG93RGVidWdCb3Jk
ZXJzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOGU0ZGJhNTVlN2EwNDhlOWU3MGI4MGExOThkNWI1OGQ3OTY5MWZlNC4u
ZTZiY2Y3Mjg5M2IxNzRiY2QxNTNiNGFmMmZjYjNhYTExYjU0OTkwNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDExLTExLTAzICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGVkIGxheWVycyBhcmUgYmx1cnJ5IHdpdGggYSB6b29t
LWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgdGhhdCBoYXMg
cG9zaXRpb246Zml4ZWQgYW5kIHBhZ2Ugc2NhbGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFn
ZS1zY2FsZS1kb3duLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDogQWRkZWQuCisgICAg
ICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3Jt
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoK
KwogMjAxMS0xMS0xMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJbXBsZW1lbnQgTWVkaWFDb250cm9sbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRv
d24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFjN2QzYjhhZjM2NDQ5ZDBjYzhhMGQ1MGM0ODkzNDYxMjhlNGNiM2MKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitU
RVNUCitURVNUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLWRvd24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjMwNmEzZjllOTk2ZjlkMDZhZGYxMGI5ZGM0YjVk
MzM4ZTkyMjEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApAQCAt
MCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisu
Zml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMTBweDsK
K30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7CisgIHotaW5kZXg6
IDE7CisgIGxlZnQ6IDEwcHg7Cit9Cis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgd2lkdGg6IDBw
eDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBmdW5jdGlvbiBzY2FsZSgpIHsKKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KHRydWUpOworICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAg
ICB9CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzY2FsZSgpOyI+Cis8
ZGl2IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGRpdiBjbGFzcz0i
Zml4ZWQtd2l0aC16LWluZGV4Ij5URVNUPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYzdkM2I4YWYzNjQ0OWQwY2M4YTBkNTBjNDg5MzQ2MTI4ZTRjYjNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIg
QEAKK1RFU1QKK1RFU1QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg3MzUzZWU5ODM4NTk4MzlkYTI0NjIxOGVhZDE4MzU5ZjE0
ZjcyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0wLDAgKzEsMzMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5maXhlZC1uby16
LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAxMHB4OworfQorLmZpeGVk
LXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1pbmRleDogMTsKKyAgbGVm
dDogMTBweDsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0aDogMHB4OworfQorPC9z
dHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxlKCkgeworICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZp
eGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7
CisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICB9CisgIH0KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzY2FsZSgpOyI+Cis8ZGl2IGNsYXNzPSJm
aXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGRpdiBjbGFzcz0iZml4ZWQtd2l0aC16
LWluZGV4Ij5URVNUPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3du
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzc0NWRmNDgzODY2ZDllNzQyYjIwZDA1MWFmOWM1
Y2JhY2U0OWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1RFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1kb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNTVjOGRkNDNkY2FiNzgwMGU1ZTZlYWQ2OGU1MDZiOTk1NTQ0ZDZmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTAsMCArMSwzNyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZpeGVkLW5vLXot
aW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7Cit9CisuZml4ZWQt
d2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAxOworICBsZWZ0
OiAxMHB4OworfQorOjotd2Via2l0LXNjcm9sbGJhciB7CisgIHdpZHRoOiAwcHg7Cit9Cis8L3N0
eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhl
ZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwor
ICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICB9CisKKyAgICB2
YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnREb2N1bWVudC5v
cGVuKCk7CisgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7IHotaW5kZXg6
IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CisgICAgZC5jbG9zZSgpOworICB9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpOyI+Cis8ZGl2IGNsYXNzPSJmaXhl
ZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGlmcmFtZSBpZD0iZnJhbWUiPjwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
Yzc0NWRmNDgzODY2ZDllNzQyYjIwZDA1MWFmOWM1Y2JhY2U0OWQzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1l
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitURVNU
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjY2MDcwODdmZDUwYTk2OWM1YWZkYmY3M2NlZWNlZDMy
ZmNiZWQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0w
LDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5m
aXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAxMHB4Owor
fQorLmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1pbmRleDog
MTsKKyAgbGVmdDogMTBweDsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0aDogMHB4
OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0
aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCh0cnVlKTsKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgIH0K
KworICAgIHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJykuY29udGVudERv
Y3VtZW50Lm9wZW4oKTsKKyAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsg
ei1pbmRleDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKKyAgICBkLmNsb3NlKCk7Cisg
IH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKzxkaXYgY2xh
c3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8aWZyYW1lIGlkPSJmcmFtZSI+
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdl
LXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzdkM2I4YWYzNjQ0OWQwY2M4YTBkNTBjNDg5MzQ2MTI4
ZTRjYjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1RFU1QKK1RFU1QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3du
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDViMWM4Nzk0NmMyNzkxZDI2Y2U2M2JkY2NiNDg2MTlkMDQxOTgz
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCkBA
IC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
Ky5maXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAxMHB4
OworICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3RhdGUoMjBkZWcpOwor
fQorLmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1pbmRleDog
MTsKKyAgbGVmdDogMTBweDsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCkg
cm90YXRlKDIwZGVnKTsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0aDogMHB4Owor
fQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxlKCkgeworICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
dHJ1ZSk7CisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgIH0K
KyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7Ij4KKzxkaXYg
Y2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNsYXNzPSJmaXhl
ZC13aXRoLXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9y
bS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM3ZDNiOGFmMzY0NDlkMGNjOGEwZDUwYzQ4
OTM0NjEyOGU0Y2IzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorVEVTVAorVEVTVApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQzYjZkZGM2YzI2NGUwMDUwZTkwMmFjOGFjYzc1NWI4ZTY1MDIwNmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZpeGVkLW5vLXot
aW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7CisgIC13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpIHJvdGF0ZSgyMGRlZyk7Cit9CisuZml4ZWQtd2l0
aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAxOworICBsZWZ0OiAx
MHB4OworICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3RhdGUoMjBkZWcp
OworfQorOjotd2Via2l0LXNjcm9sbGJhciB7CisgIHdpZHRoOiAwcHg7Cit9Cis8L3N0eWxlPgor
PHNjcmlwdD4KKyAgZnVuY3Rpb24gc2NhbGUoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3Np
dGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAg
IGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgIH0KKyAgfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7Ij4KKzxkaXYgY2xhc3M9ImZpeGVkLW5v
LXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNsYXNzPSJmaXhlZC13aXRoLXotaW5kZXgi
PlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBiNDY5ZjdkZWQ2NWY2MzM1
NDllODQxMTgzZjgzMzk5ODJlODdlMmVlLi5mMzRiNzY0MTAzM2I1NmZlMDhiNzI3YzQ4NTU3NzE1
NDZlZTA0Yjg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CkBAIC0zODgxLDMgKzM4ODEsMTEgQEAgQlVHV0s3MjI3MiBXSU4g
OiBzZWN1cml0eS9jcnlwdG8tcmFuZG9tLXZhbHVlcy10eXBlcy5odG1sID0gVEVYVCBQQVNTCiBC
VUdXSzcyMjc5IDogbWVkaWEvdHJhY2svdHJhY2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5o
dG1sID0gVElNRU9VVCBQQVNTCiAKIEJVR1dLNTk3NzEgV0lOIDogaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLWZyYW1lLWFkZC5odG1sID0gVElNRU9VVCBQ
QVNTCisKKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgZG9uJ3QgaGF2ZSB0ZXN0IGV4cGFjdGF0aW9u
cyBiZWNhdXNlIHBhZ2Ugc2NhbGluZyB3aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aWVkIG1vZGUg
aXMgYnJva2VuLgorQlVHV0s3MTIyNSBMSU5VWCBNQUMgV0lOIDogY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgPSBNSVNTSU5HCitC
VUdXSzcxMjI1IExJTlVYIE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgPSBNSVNTSU5HCitCVUdXSzcx
MjI1IExJTlVYIE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10
cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgPSBNSVNTSU5HCitCVUdXSzcxMjI1
IExJTlVYIE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sID0gTUlTU0lORworQlVHV0s3MTIyNSBMSU5VWCBN
QUMgV0lOIDogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBv
c2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgPSBNSVNTSU5HCitCVUdXSzcxMjI1IExJTlVYIE1B
QyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbCA9IE1JU1NJTkcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115144</attachid>
            <date>2011-11-15 04:53:57 -0800</date>
            <delta_ts>2011-11-15 14:22:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71225-20111115125355.patch</filename>
            <type>text/plain</type>
            <size>57218</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM1NzEwOTNiNjQwZDNm
Y2Q1Zjg1MGQ3ZWRiMjUzNDk1NmVkOTRmNC4uZmQ3MjRjZjUwYzE0ZTMyY2M4YWNjYWQzOGFlZmMx
OTRkYzdmNmJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTExLTAzICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3Np
dGVkIGxheWVycyBhcmUgYmx1cnJ5IHdpdGggYSB6b29tLWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgY29udGVu
dHMgc2NhbGUgZmFjdG9yIHRvIHRoZSBjb21wb3NpdG9yIHN1Y2ggdGhhdCBpdCBjYW46CisgICAg
ICAgIDEuIEFkanVzdCBjb250ZW50Qm91bmRzKCkgb2YgdGhlIGNvbXBvc2l0b2VyIGxheWVycyB3
aXRoIGNvbnRlbnQgc2NhbGUuCisgICAgICAgIDIuIEFwcGx5IHRoZSBjb250ZW50IHNjYWxlIGlu
IHRoZSBwYWludGVyIGZvciB0ZXh0dXJlIHVwZGF0ZSBpbiBiZXR0ZXIgcmVzb2x1dGlvbi4KKyAg
ICAgICAgMy4gQXBwbHkgdGhlIGNvbnRlbnQgc2NhbGUgdG8gdGhlIGRpcnR5IHJlY3QgaW4gQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlZCBibHVy
cnkgcHJvYmxlbSBmb3IgYWxsIHRpbGVkIGxheWVyIHR5cGVzIGFuZCBpcyBub3QgbGltaXRlZCB0
bworICAgICAgICBwb3NpdGlvbjpmaXhlZCBsYXllcnMuCisKKyAgICAgICAgVGVzdHM6IGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3du
Lmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLWRvd24uaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXI6OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06
OnNldFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06
OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNocm9taXVtOjp1cGRhdGVDb250ZW50c1NjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6Y29udGVudHNTY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFy
ZVRvVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6bmVlZHND
b250ZW50c1NjYWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFn
ZUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OkxheWVy
Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNT
Y2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6bmVlZHNDb250ZW50c1NjYWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OmNvbnRlbnRzU2NhbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTa1BpY3R1cmVDYW52YXNM
YXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRz
U2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpjb250ZW50Qm91
bmRzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBk
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uaDoKKwogMjAxMS0xMS0xNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMDIxMy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYTkzYzdkNjhhOGZkZTA5MGRlYTU2MTI5YWNmMDEz
OTQwZGE4ZWZhNC4uOGFlYTQ0MGE5MWM0MWQ0MzEzM2NlOGE5YTc0MzI4MWNkN2JjMTg4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMS0wMyAgQWxw
aGEgTGFtICA8aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gY29tcG9z
aXRlZCBsYXllcnMgYXJlIGJsdXJyeSB3aXRoIGEgem9vbS1pbiBwYWdlIHNjYWxlIGZhY3Rvcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMjUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRz
IEdyYXBoaWNzTGF5ZXJDbGllbnQgdG8gcmV0dXJuIHZhbHVlcyBmb3IgcGFnZVNjYWxlRmFjdG9y
IGFuZCBkZXZpY2VTY2FsZUZhY3Rvci4gVGhleSBhcmUgdXNlZCB0byBkZXRlcm1pbmUgY29udGVu
dHMgc2NhbGUgZmFjdG9yIGNvbXBvc2l0ZXIgbGF5ZXJzLgorCisgICAgICAgICogc3JjL1BhZ2VP
dmVybGF5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6T3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJ
bXBsOjpkZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6Ok92ZXJsYXlHcmFwaGlj
c0xheWVyQ2xpZW50SW1wbDo6cGFnZVNjYWxlRmFjdG9yKToKKwogMjAxMS0xMS0xNSAgQWxwaGEg
TGFtICA8aGNsYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gc2Nyb2xsIGRl
bHRhcyBhcmUgY2xlYXJlZCBkdXJpbmcgY29tbWl0IHRvIHRoZSBtYWluIHRocmVhZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRleCAw
NzFkZTY0ODQzOGFkMzJjMGM0ZTZlYzg5YzM4ZjY1YWE4MTM1NDk1Li4wMDM4NjI5YWYzOWQ3ZGRh
MDllZjJhYmM4Y2FkNmFkNzg3ZDk5ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBD
YW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtNzcsNyArNzcsNyBAQCBMYXllclRleHR1
cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6c2FtcGxlZAogICAgICAgICAgICAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRl
eGVsRm9ybWF0UkdCQSA6IExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdEJH
UkE7CiB9CiAKLXZvaWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRv
VXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6
ZSwgaW50IGJvcmRlclRleGVscykKK3ZvaWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
cjo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRT
aXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSkKIHsK
ICAgICBtX3RleFN1YkltYWdlLnNldFN1YkltYWdlU2l6ZSh0aWxlU2l6ZSk7CiAKQEAgLTg4LDcg
Kzg4LDcgQEAgdm9pZCBCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9V
cGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QKICAgICBQbGF0Zm9ybUNhbnZhczo6UGFp
bnRlcjo6VGV4dE9wdGlvbiB0ZXh0T3B0aW9uID0KICAgICAgICAgYm9yZGVyVGV4ZWxzID8gUGxh
dGZvcm1DYW52YXM6OlBhaW50ZXI6OkdyYXlzY2FsZVRleHQgOiBQbGF0Zm9ybUNhbnZhczo6UGFp
bnRlcjo6U3VicGl4ZWxUZXh0OwogICAgIFBsYXRmb3JtQ2FudmFzOjpQYWludGVyIGNhbnZhc1Bh
aW50ZXIoJm1fY2FudmFzLCB0ZXh0T3B0aW9uKTsKLSAgICBwYWludENvbnRlbnRzKCpjYW52YXNQ
YWludGVyLmNvbnRleHQoKSwgY29udGVudFJlY3QpOworICAgIHBhaW50Q29udGVudHMoKmNhbnZh
c1BhaW50ZXIuY29udGV4dCgpLCBjb250ZW50UmVjdCwgY29udGVudHNTY2FsZSk7CiB9CiAKIHZv
aWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6dXBkYXRlVGV4dHVyZVJlY3QoR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFRleHR1cmVBbGxvY2F0b3IqIGFsbG9jYXRvciwgTWFu
YWdlZFRleHR1cmUqIHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IElu
dFJlY3QmIGRlc3RSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlci5oCmluZGV4IDY3NWRkZGQ1YjQ5YjIxYzBmNzViOGZhNDIyODljYzJmMTBlNTRh
NDQuLmM4ZTZlMDJkYTJmYzY1N2JkNjlkNzM0M2M3YjM5MDJiOTUzNWEzMDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xh
eWVyVGV4dHVyZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKQEAgLTU5LDcgKzU5
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxMYXllclRleHR1cmVVcGRhdGVy
OjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKFRleHR1cmVNYW5hZ2VyKik7CiAgICAgdmlydHVhbCBP
cmllbnRhdGlvbiBvcmllbnRhdGlvbigpIHsgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6OkJv
dHRvbVVwT3JpZW50YXRpb247IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1w
bGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCk7Ci0gICAgdmlydHVhbCB2b2lk
IHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6
ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVT
aXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKTsKICAgICB2b2lkIHVw
ZGF0ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1h
bmFnZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYg
ZGVzdFJlY3QpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVV
cGRhdGVyLmNwcAppbmRleCBhM2U4ZjdiN2JmM2Q2MDA4ZGViMGM2MzhhYTM3MTE1Zjk3YTJhNmJh
Li4xMjkxOTQ5MGVlNzFkMzAwYTVkYjdlMmVhMjkwY2MzYWZjZWY0NGM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1
cmVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkxheWVyUGFpbnRlckNocm9taXVt
LmgiCiAjaW5jbHVkZSAiVHJhY2VFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUsMTIgKzQ2LDI3IEBAIENhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI6On5DYW52YXNMYXllclRleHR1cmVVcGRhdGVyKCkKIHsKIH0KIAotdm9p
ZCBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpCit2b2lkIENhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXI6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgZmxvYXQgY29udGVudHNTY2FsZSkKIHsKICAgICBj
b250ZXh0LnRyYW5zbGF0ZSgtY29udGVudFJlY3QueCgpLCAtY29udGVudFJlY3QueSgpKTsKICAg
ICB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwYWlu
dCIsIHRoaXMsIDApOwotICAgICAgICBtX3BhaW50ZXItPnBhaW50KGNvbnRleHQsIGNvbnRlbnRS
ZWN0KTsKKworICAgICAgICBJbnRSZWN0IHNjYWxlZENvbnRlbnRSZWN0ID0gY29udGVudFJlY3Q7
CisKKyAgICAgICAgaWYgKGNvbnRlbnRzU2NhbGUgIT0gMS4wKSB7CisgICAgICAgICAgICBjb250
ZXh0LnNhdmUoKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKGNvbnRlbnRz
U2NhbGUsIGNvbnRlbnRzU2NhbGUpKTsKKworICAgICAgICAgICAgRmxvYXRSZWN0IHJlY3QgPSBj
b250ZW50UmVjdDsKKyAgICAgICAgICAgIHJlY3Quc2NhbGUoMSAvIGNvbnRlbnRzU2NhbGUpOwor
ICAgICAgICAgICAgc2NhbGVkQ29udGVudFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpOwor
ICAgICAgICB9CisKKyAgICAgICAgbV9wYWludGVyLT5wYWludChjb250ZXh0LCBzY2FsZWRDb250
ZW50UmVjdCk7CisKKyAgICAgICAgaWYgKGNvbnRlbnRzU2NhbGUgIT0gMS4wKQorICAgICAgICAg
ICAgIGNvbnRleHQucmVzdG9yZSgpOwogICAgIH0KICAgICBtX2NvbnRlbnRSZWN0ID0gY29udGVu
dFJlY3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKaW5kZXgg
ZmQ3OWEwNGQwYTM2ZDc5NmE0ZTdmMzM0MzMxNzJhODIwNGJjMTQ5ZS4uYThmZWZmMzQyMmIxYjg1
MzBiOGY2ODlmZjJjNTY2NzY2MGJlZDVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXIuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAg
ZXhwbGljaXQgQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcihQYXNzT3duUHRyPExheWVyUGFpbnRl
ckNocm9taXVtPik7CiAKLSAgICB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpOworICAgIHZvaWQgcGFpbnRDb250ZW50cyhHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgZmxvYXQgY29udGVudHNT
Y2FsZSk7CiAgICAgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRlbnRSZWN0OyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmNwcAppbmRleCAxNTZiMmU5MGVmNDVlNjkwMDc4MmVhNTk0ODA4YjZhZDgyZTNmYmM5Li40
YmVhYTUyNTVjYTYyODgzOWZhNDdiYWQ2NWU2MTRiNmZjNTUxNzU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE5MSw2ICsxOTEsOSBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bTo6c2V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiAKIHZvaWQgR3Jh
cGhpY3NMYXllckNocm9taXVtOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHRyYW5zZm9ybSkKIHsKKyAgICAvLyBDYWxsIHRoaXMgbWV0aG9kIGZpcnN0IHRvIGFzc2ln
biBjb250ZW50cyBzY2FsZSB0byBMYXllckNocm9taXVtIHNvIHRoZSBwYWludGVyIGNhbiBhcHBs
eSB0aGUgc2NhbGUgdHJhbnNmb3JtLgorICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsKKwogICAg
IGlmICh0cmFuc2Zvcm0gPT0gbV90cmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIApAQCAtNTcx
LDYgKzU3NCw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVMYXllclByZXNl
cnZlczNEKCkKICAgICAgICAgLy8gU2V0IHRoZSBvbGQgbGF5ZXIgdG8gb3BhY2l0eSBvZiAxLiBG
dXJ0aGVyIGRvd24gd2Ugd2lsbCBzZXQgdGhlIG9wYWNpdHkgb24gdGhlIHRyYW5zZm9ybSBsYXll
ci4KICAgICAgICAgbV9sYXllci0+c2V0T3BhY2l0eSgxKTsKIAorICAgICAgICBtX2xheWVyLT5z
ZXRDb250ZW50c1NjYWxlKGNvbnRlbnRzU2NhbGUoKSk7CisKICAgICAgICAgLy8gTW92ZSB0aGlz
IGxheWVyIHRvIGJlIGEgY2hpbGQgb2YgdGhlIHRyYW5zZm9ybSBsYXllci4KICAgICAgICAgaWYg
KG1fbGF5ZXItPnBhcmVudCgpKQogICAgICAgICAgICAgbV9sYXllci0+cGFyZW50KCktPnJlcGxh
Y2VDaGlsZChtX2xheWVyLmdldCgpLCBtX3RyYW5zZm9ybUxheWVyLmdldCgpKTsKQEAgLTYzNCw2
ICs2MzksMTUgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzUmVj
dCgpCiAgICAgbV9jb250ZW50c0xheWVyLT5zZXRCb3VuZHMoSW50U2l6ZShtX2NvbnRlbnRzUmVj
dC53aWR0aCgpLCBtX2NvbnRlbnRzUmVjdC5oZWlnaHQoKSkpOwogfQogCit2b2lkIEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHNTY2FsZSgpCit7CisgICAgLy8gSWYgcGFnZSBz
Y2FsZSBpcyBhbHJlYWR5IGFwcGxpZWQgdGhlbiB0aGVyZSdzIG5vIG5lZWQgdG8gYXBwbHkgaXQg
YWdhaW4uCisgICAgaWYgKGFwcGxpZXNQYWdlU2NhbGUoKSB8fCAhbV9sYXllcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9sYXllci0+c2V0Q29udGVudHNTY2FsZShjb250ZW50c1NjYWxlKCkp
OworfQorCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKExh
eWVyQ2hyb21pdW0qIGNvbnRlbnRzTGF5ZXIpCiB7CiAgICAgaWYgKGNvbnRlbnRzTGF5ZXIgPT0g
bV9jb250ZW50c0xheWVyKQpAQCAtNjY0LDYgKzY3OCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKExheWVyQ2hyb21pdW0qIGNvbnRlbnRzTGF5ZXIp
CiAgICAgdXBkYXRlTmFtZXMoKTsKIH0KIAorZmxvYXQgR3JhcGhpY3NMYXllckNocm9taXVtOjpj
b250ZW50c1NjYWxlKCkgY29uc3QKK3sKKyAgICBpZiAoIWFwcGxpZXNQYWdlU2NhbGUoKSkKKyAg
ICAgICAgcmV0dXJuIHBhZ2VTY2FsZUZhY3RvcigpICogZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAg
ICByZXR1cm4gMTsKK30KKwogLy8gVGhpcyBmdW5jdGlvbiBzaW1wbHkgbWltaWNzIHRoZSBvcGVy
YXRpb24gb2YgR3JhcGhpY3NMYXllckNBCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBk
YXRlT3BhY2l0eU9uTGF5ZXIoKQogewpAQCAtNjcyLDYgKzY5Myw3IEBAIHZvaWQgR3JhcGhpY3NM
YXllckNocm9taXVtOjp1cGRhdGVPcGFjaXR5T25MYXllcigpCiAKIHZvaWQgR3JhcGhpY3NMYXll
ckNocm9taXVtOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogeworICAgIHVwZGF0
ZUNvbnRlbnRzU2NhbGUoKTsKICAgICBpZiAobV9sYXllcikKICAgICAgICAgbV9sYXllci0+cGFn
ZVNjYWxlQ2hhbmdlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRl
eCBmNzNlNzMzNzM5YmExNmE1MjIxMWIzMTFlMjY5YzUzNmJjYWJhNzIwLi5iMDVkMDdiZjYzN2Jm
NWNmZTBlNGJlYzRlMzkzZGJhN2IwYzAzZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uaApAQCAtOTQsMTMgKzk0LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXREZWJ1Z0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAKICAgICAvLyBUaGUg
Zm9sbG93aW5nIGZ1bmN0aW9ucyBpbXBsZW1lbnQgdGhlIENDTGF5ZXJEZWxlZ2F0ZSBpbnRlcmZh
Y2UuCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNsaXAp
OwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoKTsKIAotICAgIHZpcnR1YWwg
dm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKIHByaXZhdGU6CiAgICAgdm9p
ZCB1cGRhdGVPcGFjaXR5T25MYXllcigpOwogCkBAIC0xMjUsOSArMTI1LDExIEBAIHByaXZhdGU6
CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c0ltYWdlKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50
c1ZpZGVvKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1JlY3QoKTsKKyAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRzU2NhbGUoKTsKIAogICAgIHZvaWQgc2V0dXBDb250ZW50c0xheWVyKExheWVyQ2hy
b21pdW0qKTsKICAgICBMYXllckNocm9taXVtKiBjb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZW50c0xheWVyLmdldCgpOyB9CisgICAgZmxvYXQgY29udGVudHNTY2FsZSgpIGNv
bnN0OwogCiAgICAgU3RyaW5nIG1fbmFtZUJhc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21p
dW0uY3BwCmluZGV4IDBiZDgyYWUxYTE4YTI1MzBmODc0MjBlNDgxZDBkNWNhMjMwYjkwMTIuLjA2
YjQ1YTYyODEzY2ZkZWQwZDI5OTc3MTc1MDc0ZTEwZmEwNDY2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VM
YXllckNocm9taXVtLmNwcApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQSA6IExheWVyVGV4
dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdEJHUkE7CiAgICAgfQogCi0gICAgdmlydHVh
bCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiAvKiBjb250ZW50UmVjdCAqLywg
Y29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCAvKiBib3JkZXJUZXhlbHMgKi8pCisgICAgdmly
dHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiAvKiBjb250ZW50UmVjdCAq
LywgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCAvKiBib3JkZXJUZXhlbHMgKi8sIGZsb2F0
IC8qIGNvbnRlbnRzU2NhbGUgKi8pCiAgICAgewogICAgICAgICBtX3RleFN1YkltYWdlLnNldFN1
YkltYWdlU2l6ZSh0aWxlU2l6ZSk7CiAgICAgfQpAQCAtMjA4LDUgKzIwOCwxMSBAQCB2b2lkIElt
YWdlTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGV4dHVyZVVwZGF0ZXIoY29uc3QgQ0NMYXllclRyZWVI
b3N0KiBob3N0KQogICAgIG1fdGV4dHVyZVVwZGF0ZXIgPSBJbWFnZUxheWVyVGV4dHVyZVVwZGF0
ZXI6OmNyZWF0ZShob3N0LT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkudXNpbmdNYXBTdWIp
OwogfQogCitib29sIEltYWdlTGF5ZXJDaHJvbWl1bTo6bmVlZHNDb250ZW50c1NjYWxlKCkgY29u
c3QKK3sKKyAgICAvLyBDb250ZW50cyBzY2FsZSBpcyBub3QgbmVlZCBmb3IgaW1hZ2UgbGF5ZXIg
YmVjYXVzZSB0aGlzIGNhbiBiZSBkb25lIGluIGNvbXBvc2l0b3IgbW9yZSBlZmZpY2llbnRseS4K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDFhZmNjZmUyZmRjZTY0
NDc1YTc0YWIyYzkyNmQwNDJjYjVmMzc2NzQuLjVmZTRmMjY2NjhiZGNjM2UyOWYwNGNmZmNkYTg4
MmE3M2MzMWUzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCkBAIC01NCw2ICs1NCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoKTsKKyAgICB2aXJ0dWFsIGJvb2wg
bmVlZHNDb250ZW50c1NjYWxlKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldENvbnRlbnRzKEltYWdl
KiBpbWFnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMzYyOTA4ZDBiNGRmMTI2N2Ji
MjRmYjM2OGMwOGQ4M2Y2ZGExZjIzYS4uNTRhN2Y4ODU3ZDY4OTAzODZhZWZhODU2NmE4ZDI3ZDVk
NWNlNTAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTczLDYgKzczLDcgQEAgTGF5ZXJD
aHJvbWl1bTo6TGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwg
bV9yZXBsaWNhTGF5ZXIoMCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0
UmVuZGVyU3VyZmFjZSgwKQorICAgICwgbV9jb250ZW50c1NjYWxlKDEuMCkKICAgICAsIG1fcGFn
ZVNjYWxlRGlydHkoZmFsc2UpCiB7CiB9CkBAIC0zMjksNiArMzMwLDEzIEBAIHZvaWQgTGF5ZXJD
aHJvbWl1bTo6c2V0RGVidWdCb3JkZXJXaWR0aChmbG9hdCB3aWR0aCkKICAgICBzZXROZWVkc0Nv
bW1pdCgpOwogfQogCit2b2lkIExheWVyQ2hyb21pdW06OnNldENvbnRlbnRzU2NhbGUoZmxvYXQg
Y29udGVudHNTY2FsZSkKK3sKKyAgICBpZiAoIW5lZWRzQ29udGVudHNTY2FsZSgpKQorICAgICAg
ICByZXR1cm47CisgICAgbV9jb250ZW50c1NjYWxlID0gY29udGVudHNTY2FsZTsKK30KKwogdm9p
ZCBMYXllckNocm9taXVtOjpjcmVhdGVSZW5kZXJTdXJmYWNlKCkKIHsKICAgICBBU1NFUlQoIW1f
cmVuZGVyU3VyZmFjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggYWFiOWQzODg1ODYwN2M4NDU5
ZjFjZGI3MzQ5YjA5ZGQ0YjIzMjVjNy4uMzc0MDAxZTk1YWQzNzM1MmNhNjI2YzI4NmZkZjJhYmJh
YTNlOTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBwYWdlU2NhbGVDaGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5ID0gdHJ1ZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpIHsgfQorICAgIHZpcnR1
YWwgYm9vbCBuZWVkc0NvbnRlbnRzU2NhbGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgLy8gVGhlc2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0RlYnVnQm9yZGVy
KCkpLgogICAgIHZvaWQgc2V0RGVidWdCb3JkZXJDb2xvcihjb25zdCBDb2xvciYpOwpAQCAtMTk2
LDYgKzE5Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcmVlblNwYWNlVHJhbnNmb3JtKGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpIHsgbV9zY3JlZW5TcGFjZVRyYW5zZm9y
bSA9IG1hdHJpeDsgfQogICAgIGNvbnN0IEludFJlY3QmIGRyYXdhYmxlQ29udGVudFJlY3QoKSBj
b25zdCB7IHJldHVybiBtX2RyYXdhYmxlQ29udGVudFJlY3Q7IH0KICAgICB2b2lkIHNldERyYXdh
YmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkgeyBtX2RyYXdhYmxlQ29udGVudFJl
Y3QgPSByZWN0OyB9CisgICAgZmxvYXQgY29udGVudHNTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y29udGVudHNTY2FsZTsgfQorICAgIHZvaWQgc2V0Q29udGVudHNTY2FsZShmbG9hdCk7CiAKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgYW55IG9mIHRoZSBsYXllcidzIGRlc2NlbmRhbnRzIGhhcyBj
b250ZW50IHRvIGRyYXcuCiAgICAgYm9vbCBkZXNjZW5kYW50RHJhd3NDb250ZW50KCk7CkBAIC0y
ODQsNiArMjg3LDcgQEAgcHJpdmF0ZToKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2RyYXdU
cmFuc2Zvcm07CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9zY3JlZW5TcGFjZVRyYW5zZm9y
bTsKICAgICBJbnRSZWN0IG1fZHJhd2FibGVDb250ZW50UmVjdDsKKyAgICBmbG9hdCBtX2NvbnRl
bnRzU2NhbGU7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRh
dGVyLmgKaW5kZXggNDUyNWNlN2ViMTFjOWM1NmVlMWQyNzg1MmYwNzJmMzk1NWM4MTFlZC4uOTA4
ODRjZmQ1YmUwZmNlMTg0NzI3YWNhMjgwNDZhMjY0N2JjMmM2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4
dHVyZVVwZGF0ZXIuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBmb3Jt
YXQgc3BlY2lmaWVzIHRoZSBjb21wb25lbnQgb3JkZXIgaW4gdGhlIHNhbXBsZWQgdGV4ZWwuCiAg
ICAgLy8gSWYgdGhlIGZvcm1hdCBpcyBUZXhlbEZvcm1hdEJHUkEsIHZlYzQueCBpcyBibHVlIGFu
ZCB2ZWM0LnogaXMgcmVkLgogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRU
ZXhlbEZvcm1hdChHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiAvKiBjb250ZW50UmVjdCAqLywgY29uc3Qg
SW50U2l6ZSYgLyogdGlsZVNpemUgKi8sIGludCAvKiBib3JkZXJUZXhlbHMgKi8pIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgLyogY29udGVudFJl
Y3QgKi8sIGNvbnN0IEludFNpemUmIC8qIHRpbGVTaXplICovLCBpbnQgLyogYm9yZGVyVGV4ZWxz
ICovLCBmbG9hdCAvKiBjb250ZW50c1NjYWxlICovKSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0
dXJlVXBkYXRlci5jcHAKaW5kZXggZGNmZDYzZTcxOTM0MmFlNzUwYmRmZWFhOGNhYjMyZjFjZmZj
ODJjMi4uYjc1MTViZmQxMGI1NDBkNjRhYjZhYTllNzg1ZWVkYWE0MWI4ZTc1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAK
QEAgLTQ4LDEyICs0OCwxMiBAQCBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjp+
U2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcigpCiB7CiB9CiAKLXZvaWQgU2tQaWN0
dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJl
Y3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiAvKiB0aWxlU2l6ZSAqLywgaW50IC8qIGJv
cmRlclRleGVscyAqLykKK3ZvaWQgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6
cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXpl
JiAvKiB0aWxlU2l6ZSAqLywgaW50IC8qIGJvcmRlclRleGVscyAqLywgZmxvYXQgY29udGVudHNT
Y2FsZSkKIHsKICAgICBTa0NhbnZhcyogY2FudmFzID0gbV9waWN0dXJlLmJlZ2luUmVjb3JkaW5n
KGNvbnRlbnRSZWN0LndpZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdodCgpKTsKICAgICBQbGF0Zm9y
bUNvbnRleHRTa2lhIHBsYXRmb3JtQ29udGV4dChjYW52YXMpOwogICAgIEdyYXBoaWNzQ29udGV4
dCBncmFwaGljc0NvbnRleHQoJnBsYXRmb3JtQ29udGV4dCk7Ci0gICAgcGFpbnRDb250ZW50cyhn
cmFwaGljc0NvbnRleHQsIGNvbnRlbnRSZWN0KTsKKyAgICBwYWludENvbnRlbnRzKGdyYXBoaWNz
Q29udGV4dCwgY29udGVudFJlY3QsIGNvbnRlbnRzU2NhbGUpOwogICAgIG1fcGljdHVyZS5lbmRS
ZWNvcmRpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5oCmluZGV4IDg5MWE2ZDNjOWYxMjIwMWNhNGIxODE3NDBiZjBmYmE0
N2UwMWRiNTQuLjQ0MGY4YjAzZWE0ZjI3MzlhOTc1NDM4NjdhYzdlYjE1NDAzMGQwYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVy
ZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFNrUGlj
dHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIoUGFzc093blB0cjxMYXllclBhaW50ZXJDaHJv
bWl1bT4pOwogCi0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0
JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMp
OworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVu
dFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBj
b250ZW50c1NjYWxlKTsKICAgICB2b2lkIGRyYXdQaWN0dXJlKFNrQ2FudmFzKik7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAppbmRleCAyNjBhMTc1YzQyOGMxNTlh
NjM4ZTAyNDc1YTRiNWRlNDIxZDJlYTRhLi40ZjZmZTFmZGE5YjM1NWRjYWYwNTg1NjZjYTljZTdl
ZTQ5YWZmOTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkxheWVyUmVu
ZGVyZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIk1hbmFnZWRUZXh0dXJlLmgiCisjaW5jbHVkZSAi
TWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKICNpbmNsdWRlICJjYy9DQ0xh
eWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKQEAgLTEzNyw2ICsx
MzgsMTYgQEAgYm9vbCBUaWxlZExheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCgpIGNvbnN0CiAg
ICAgcmV0dXJuICFtX3NraXBzRHJhdzsKIH0KIAorYm9vbCBUaWxlZExheWVyQ2hyb21pdW06Om5l
ZWRzQ29udGVudHNTY2FsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0ludFNp
emUgVGlsZWRMYXllckNocm9taXVtOjpjb250ZW50Qm91bmRzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gSW50U2l6ZShscm91bmRmKGJvdW5kcygpLndpZHRoKCkgKiBjb250ZW50c1NjYWxlKCkpLCBs
cm91bmRmKGJvdW5kcygpLmhlaWdodCgpICogY29udGVudHNTY2FsZSgpKSk7Cit9CisKIHZvaWQg
VGlsZWRMYXllckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdCogaG9z
dCkKIHsKICAgICBMYXllckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0KGhvc3QpOwpAQCAtMzcx
LDcgKzM4Miw3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGUoY29u
c3QgSW50UmVjdCYgY29udGVudFJlY3QpCiAgICAgLy8gSG93ZXZlciwgd2UgY2FuJ3QgZnJlZSB0
aGUgbWVtb3J5IGJhY2tpbmcgdGhlIEdyYXBoaWNzQ29udGV4dCB1bnRpbCB0aGUgcGFpbnQgZmlu
aXNoZXMsCiAgICAgLy8gc28gd2UgZ3JhYiBhIGxvY2FsIHJlZmVyZW5jZSBoZXJlIHRvIGhvbGQg
dGhlIHVwZGF0ZXIgYWxpdmUgdW50aWwgdGhlIHBhaW50IGNvbXBsZXRlcy4KICAgICBSZWZQdHI8
TGF5ZXJUZXh0dXJlVXBkYXRlcj4gcHJvdGVjdG9yKHRleHR1cmVVcGRhdGVyKCkpOwotICAgIHRl
eHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgbV90aWxlci0+dGls
ZVNpemUoKSwgbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCkpOworICAgIHRleHR1cmVVcGRhdGVy
KCktPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgbV90aWxlci0+dGlsZVNpemUoKSwgbV90
aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCksIGNvbnRlbnRzU2NhbGUoKSk7CiAKICAgICBtX3RpbGVy
LT5jb250ZW50UmVjdFRvVGlsZUluZGljZXMobV9yZXF1ZXN0ZWRVcGRhdGVSZWN0LCBsZWZ0LCB0
b3AsIHJpZ2h0LCBib3R0b20pOwogICAgIGZvciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyAr
K2opIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKaW5kZXggNWRhZjBmMDE5NDdhOTk0N2Nk
MjM1ZjU1ZmI3Mzk1OWU0NDdiMWY1Ni4uZjBiNTQ5ZTExOWYwMjM5OWI3Y2MyMDYxNDI0MzI2M2Ux
MzgxZGFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKQEAgLTQ5LDYgKzQ5LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKik7
CiAKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBi
b29sIG5lZWRzQ29udGVudHNTY2FsZSgpIGNvbnN0OworCisgICAgdmlydHVhbCBJbnRTaXplIGNv
bnRlbnRCb3VuZHMoKSBjb25zdDsKIAogICAgIC8vIFJlc2VydmVzIGFsbCBleGlzdGluZyBhbmQg
dmFsaWQgdGlsZSB0ZXh0dXJlcyB0byBwcm90ZWN0IHRoZW0gZnJvbSBiZWluZwogICAgIC8vIHJl
Y3ljbGVkIGJ5IHRoZSB0ZXh0dXJlIG1hbmFnZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9QYWdlT3ZlcmxheS5jcHAKaW5kZXggZjRhMjdmYjUyY2E3YzBhMmYzOTZhYTYxNTVhM2IzMzBm
M2MyNjZiYS4uZjFiODk4Yjk2MzRlOTEwZjVjODY1ZjAyZWI0ZWViNmQzNDNjYjA1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcApAQCAtNzAsNiArNzAsMTYg
QEAgcHVibGljOgogICAgICAgICBtX3BhZ2VPdmVybGF5Q2xpZW50LT5wYWludFBhZ2VPdmVybGF5
KGNvbnRleHQpOwogICAgIH0KIAorICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Io
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlld0ltcGwtPmRldmljZVNjYWxl
RmFjdG9yKCk7CisgICAgfQorCisgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlld0ltcGwtPnBhZ2VTY2FsZUZhY3Rv
cigpOworICAgIH0KKwogICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX3dlYlZpZXdJbXBsLT5wYWdlKCktPnNldHRpbmdzKCkt
PnNob3dEZWJ1Z0JvcmRlcnMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MjVlZWM3OTkyNDMzMzllNDk3MWNjMjIxNTNj
YzNlYjAwMDkzZGIxLi5kNGZjZDdmMDYzZDI2Y2QzYzI3MWIxZjU0Y2ZiOWMyYzVhNzgzNDEwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMTEtMDMgIEFscGhhIExhbSAgPGhjbGFtQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIGNvbXBvc2l0ZWQgbGF5ZXJzIGFyZSBibHVy
cnkgd2l0aCBhIHpvb20taW4gcGFnZSBzY2FsZSBmYWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjI1CisKKyAgICAgICAgQWRkZWQgdGVzdCBj
YXNlcyB0aGF0IGhhcyBwb3NpdGlvbjpmaXhlZCBhbmQgcGFnZSBzY2FsZS4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUtZG93bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1p
ZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDogQWRkZWQuCisg
ICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0OgorCiAyMDExLTExLTE1ICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdt
YWlsLmNvbT4KIAogICAgICAgICBSZWJhc2VsaW5lIGdyYXktc2NhbGUtanBlZy13aXRoLWNvbG9y
LXByb2ZpbGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjN2QzYjhhZjM2
NDQ5ZDBjYzhhMGQ1MGM0ODkzNDYxMjhlNGNiM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitURVNUCitURVNUCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mODg2NjZjYTM0NWQwZjlmMzIxNWExNmZiODcwZTg5NzNjNThhMTMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApAQCAtMCwwICsxLDM0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZml4ZWQtbm8tei1pbmRl
eCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMTBweDsKK30KKy5maXhlZC13aXRo
LXotaW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6IDEw
cHg7Cit9Cis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgd2lkdGg6IDBweDsKKyAgaGVpZ2h0OiAw
cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gc2NhbGUoKSB7CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCh0cnVlKTsKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7Cisg
ICAgfQorICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2NhbGUoKTsiIHN0
eWxlPSJ3aWR0aDoyMDAwcHg7aGVpZ2h0OjIwMDBweDsiPgorPGRpdiBjbGFzcz0iZml4ZWQtbm8t
ei1pbmRleCI+VEVTVDwvZGl2Pjxicj4KKzxkaXYgY2xhc3M9ImZpeGVkLXdpdGgtei1pbmRleCI+
VEVTVDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM3ZDNi
OGFmMzY0NDlkMGNjOGEwZDUwYzQ4OTM0NjEyOGU0Y2IzYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitURVNUCitURVNUCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE3NTVkZGE2MDgzODY0OGNiODgxZjNhMzMwMzU2YTM3OWQ2NWI4ODgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgbGVmdDogMTBweDsKK30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBw
b3NpdGlvbjogZml4ZWQ7CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7Cit9Cis6Oi13ZWJr
aXQtc2Nyb2xsYmFyIHsKKyAgd2lkdGg6IDBweDsKKyAgaGVpZ2h0OiAwcHg7Cit9Cis8L3N0eWxl
PgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gc2NhbGUoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQ
b3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAg
ICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgIH0KKyAgfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7IiBzdHlsZT0id2lkdGg6MjAwMHB4
O2hlaWdodDoyMDAwcHg7Ij4KKzxkaXYgY2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rp
dj48YnI+Cis8ZGl2IGNsYXNzPSJmaXhlZC13aXRoLXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1p
ZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFjNzQ1ZGY0ODM4NjZkOWU3NDJiMjBkMDUxYWY5YzVjYmFjZTQ5ZDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJh
bWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBA
QAorVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbCBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkZjY5ZTY2M2RhOGYyM2I5
ODUzYmU0MGI1ZTE4YjA2YzdhZmQwMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdl
LXNjYWxlLWRvd24uaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c3R5bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgbGVmdDogMTBweDsKK30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBwb3NpdGlv
bjogZml4ZWQ7CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7Cit9Cis6Oi13ZWJraXQtc2Ny
b2xsYmFyIHsKKyAgd2lkdGg6IDBweDsKKyAgaGVpZ2h0OiAwcHg7Cit9Cis8L3N0eWxlPgorPHNj
cmlwdD4KKyAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9u
KGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgZXZl
bnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICB9CisKKyAgICB2YXIgZCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7Cisg
ICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7IHotaW5kZXg6IDE7IGxlZnQ7
IDEwcHg7Jz5URVNUPC9kaXY+Iik7CisgICAgZC5jbG9zZSgpOworICB9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpOyIgc3R5bGU9IndpZHRoOjIwMDBweDtoZWlnaHQ6
MjAwMHB4OyI+Cis8ZGl2IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgor
PGlmcmFtZSBpZD0iZnJhbWUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1l
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzc0NWRmNDgzODY2ZDllNzQyYjIwZDA1MWFmOWM1
Y2JhY2U0OWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyIEBACitURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODVmNjFl
OWMwNGQyNTkzOTY0ODg0YzZlMjA5MzI0ODBkZGU0YTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBv
c2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5maXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246
IGFic29sdXRlOworICBsZWZ0OiAxMHB4OworfQorLmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBv
c2l0aW9uOiBmaXhlZDsKKyAgei1pbmRleDogMTsKKyAgbGVmdDogMTBweDsKK30KKzo6LXdlYmtp
dC1zY3JvbGxiYXIgeworICB3aWR0aDogMHB4OworICBoZWlnaHQ6IDBweDsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0PgorICBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9z
aXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAg
ICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICB9CisKKyAgICB2YXIgZCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7
CisgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7IHotaW5kZXg6IDE7IGxl
ZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CisgICAgZC5jbG9zZSgpOworICB9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpOyIgc3R5bGU9IndpZHRoOjIwMDBweDtoZWln
aHQ6MjAwMHB4OyI+Cis8ZGl2IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJy
PgorPGlmcmFtZSBpZD0iZnJhbWUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJh
bnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM3ZDNiOGFmMzY0
NDlkMGNjOGEwZDUwYzQ4OTM0NjEyOGU0Y2IzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitURVNUCitU
RVNUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlOWQ5Y2MzMzNhMWM4N2U3
MzFlYzU0MzBkNDg4Y2Y2ZGM0ZDgxMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1w
YWdlLXNjYWxlLWRvd24uaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgbGVmdDogMTBweDsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgo
MTBweCkgcm90YXRlKDIwZGVnKTsKK30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBwb3NpdGlv
bjogZml4ZWQ7CisgIHotaW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7CisgIC13ZWJraXQtdHJhbnNm
b3JtOiB0cmFuc2xhdGVYKDEwcHgpIHJvdGF0ZSgyMGRlZyk7Cit9Cis6Oi13ZWJraXQtc2Nyb2xs
YmFyIHsKKyAgd2lkdGg6IDBweDsKKyAgaGVpZ2h0OiAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KKyAgZnVuY3Rpb24gc2NhbGUoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihk
b2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgIGV2ZW50
U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgfQorICB9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0ic2NhbGUoKTsiIHN0eWxlPSJ3aWR0aDoyMDAwcHg7aGVpZ2h0
OjIwMDBweDsiPgorPGRpdiBjbGFzcz0iZml4ZWQtbm8tei1pbmRleCI+VEVTVDwvZGl2Pjxicj4K
KzxkaXYgY2xhc3M9ImZpeGVkLXdpdGgtei1pbmRleCI+VEVTVDwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzdkM2I4YWYz
NjQ0OWQwY2M4YTBkNTBjNDg5MzQ2MTI4ZTRjYjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBv
c2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitURVNUCitURVNU
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1w
YWdlLXNjYWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdmYjNkZmFiZDM3MTIxZjgzMGYzOWZmYmMwNTdm
MDkwNmY2YzBlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDog
MTBweDsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCkgcm90YXRlKDIwZGVn
KTsKK30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7CisgIHotaW5k
ZXg6IDE7CisgIGxlZnQ6IDEwcHg7CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEw
cHgpIHJvdGF0ZSgyMGRlZyk7Cit9Cis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgd2lkdGg6IDBw
eDsKKyAgaGVpZ2h0OiAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gc2Nh
bGUoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5
KDIsIDAsIDApOworICAgIH0KKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InNjYWxlKCk7IiBzdHlsZT0id2lkdGg6MjAwMHB4O2hlaWdodDoyMDAwcHg7Ij4KKzxkaXYgY2xh
c3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNsYXNzPSJmaXhlZC13
aXRoLXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnBuZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMTk0OTJhNWQwOTdjY2QyM2FjYzkxMGFlYjEzZTE0OGI1Y2Y5NjQzCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAyOTkxCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+
aTAqWik9aF5obEElQFdzJGxIYG9rPG19P29UIXNgZwp6cXRxbGJ2IXBadyVUJEE4R1lkO29PR3xe
fkc+YXJkVkBvcWIlT3NiSCFJMkNNKz5WfHVqdipDdS1ybWBHX0V2KDMKekwhZUNIMGhTS0loKD1k
fCRybW1qRmJZfVlkWUdkX0J5NyUkPEV+eE91QVMjSj9JTkZ2PmFFfUt3ZTk9d3kkbFFzCnpLRUtW
a1hKOXorLXp8Wlc7UnVUdWdNJHhAayl5VnVPfT1pZyt9LSF6RlRYVlRfYSMrYHEyWiFXTGF5MkRt
b24yVwp6ZTRhbG5zSVomQWNgXmUtUGE0emZqfTw9OEdrKjJJRCUhYXdZO3xWb3dkWDFmNDJSej14
fHNOKnZWUENKY1FYQ1EKekA4KkA7JjlfJSlXUWgzbCU+Q1dePilDNW9CdVo/JXtxfTNzLV4yY18z
P0tNc3wzQzVmXnYpUSlfUVZfU3pqcSVeCnorOGNMMlp+SipxMV9ybWQ0P3dyUUltcEQmIUt1VTBG
eWpEX2FxfGZ1Z1RVc0t2SjQ3b2xkVHlYJlp3MEdDNEFwOAp6RmN7OWghXm5fP01GKDgjQzw4ZWxN
PysmWUckMmBPRyRvOXRnd2QyUm5oUXBBIUR1Y1JJa30qZ28lZTNYT15zKHAKUnp7V0hLZ1F1Jlgl
UX5sb0NJSVRpaXVNMmkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZTAx
MGUwNDU0NmNjY2IzNTViZWI5OWI0YTA2NGRlZGU3NjQyZDIKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDUwODgKemNtZUkwPX5MNiE4cG5eVVQ3fFImTE12RDRtOHFianBge29GMWhwZDlxQVk/IWlJ
NCE3I1k3U1c2ZTVIT3Z+VTNfCnpMeTwqZzVuN0R3YUZLKjFCJX5ORXN8cUI1QXFmSGoqJEc+S0Va
bD1MX2RqcyUrIXkzY1ctPlg/ZEN2MkV6bnx5KQp6ZW80LWJfRkE5cWB3UmV9YkAzblB1Sz1MPkgy
XjllSjV9SD5kdio2MyE+X35QYntecT1MSD5VRHUtbjFGJSpYN3oKemxtODZ4XnwxKT52R0R1V3xB
Z051QUsjTkdlOz4wYENvVE1aRWlgS0NDanJuMnk/Rmt0VFYoRis1R0UqVlclSEU7CnpLaG1qKy1i
QCYxcXAyMiNwMmczY1E4VV9rbT52N1QjY2FXMyZsazlfNCZ0P35LWXROI1Z3d0lnWkw2PTtDKHJM
Twp6I25uQ0FlPX0kSnRjI35Bb2k9ZHNjfSpRQFE9OU9tQTA9RUViekAwTncqSipkZFllKT9lYj47
WWZoSD9HbEtHPUwKejBIPnl2KD5ubEF2Y0IqRHooLXtfYDElcmQybCNvSERZJDFBc300UnRSMUx0
TllJQCpJUEt5ZklzcS1vUkc9TmhyCnpvMnY4KD4zI3FIZVQweGlFaCg4KSVJMiNvRD1XKiZxOWgh
QlRqa25sTy0pU3xhfDZkI2F6KXg7bjVMR0d0dzdWfgp6bngjU20xQjBlcHFaZGx0VkVTUjBPeHkx
Nlpmen5De1pAQyVobUlGdHhlKj98eXdaPXNSMGxJQkNueGQhbUNmdHAKems1aDtkTzhJJilwTyRB
JDNZRCRTczthOCQ9Oyg7WlFiQml+bTZmSUMzOEdMdzYheTl6PHtZP3BeezJtfj0qMT88Cnp0JShT
dlA1bEBMdkVUQ2hoPilQNXBsezVkKGBlbHlHYyZVZ3hOQClFVGNNRE5vaFlDdjJtQVYtdWZeP2sr
NmtOPQp6bWk5Mi1KdigjdERwJVoqVEBiejRybWlgJD0mektwKzNmTjBAa1JFLWhZelF3cm9OJGZO
ZTJUOVg4Q2o/O1JpZl4KengqPT5MeHVgeHl2R0lHRk8oUytgcDAlbGJxMnFNUChYcEZfPD47c1l3
fTNqeiFKQnd8KUopQipZeE57UEVme3twCnpEO3ExKj94RjMhP3piQUolKkBVbkwqajVhSnpgfjVt
NTQ+NTtOVkh4JVU1XnRkaTFAPCpQWj9PPE5XNzBkVGxyNQp6dURZQj0hPGZrN21ST0YjQCQyPX5R
UE1mSWNYYj9FNl9tZEB6NHxCdDkqRF5aQWApJCpSJWJARWp2WUd8NXBmWFEKemAtSztUUlZidCky
aiFEX0w0LSlhQWNlVztXQEtjKikjVHw0YFhPV0UzRjVQZ2lXVFMyeiM2Z1FaT2d7e004aG09Cno7
aFEmYWB1bkJKeS14YWVFPU13amx1Z0NVbW9MbyZ5TjNpJkBQdlJhYj44eXdeNj5DKnh7LVlyenh3
dHhQcE1RUQp6WX1TU2c2QXY2bzkrfjJuIVQ1cVllMUdPcV9xbVpBMDZJSyVIcGlIYGp8LUlqN3xR
TTJ4NT4rST9RM2dtP09mZDQKei0zQEpgKlZaSlgxfU1VJSVkaXUlNzd7aFFHTnN8XikyQUNVOFBw
N3NiUyplfGNDd2VNc2lCY2lVTDdubFFOamJjCnpRWE1UJnNMaFMocyklU2BhOEYjM1diQmJiQ3Fv
Uyk4NEd7NTJnPTRXb1A/MzFzUz01IyRPTmBkTHNRYypYNi0kOQp6dEp4cDdzTnN8Tz1nPz8wMXx3
Mk1TVWMtLTNAUCRrQlFLSnklPUpNXzF1VnRndjJePmFYcXd5QXN9fFBRaklxT00KencjdnhCeihB
NWZBUnVjZHMpRzZ3aSt2c18zQ3NtNDxzUGtLVD1CbDJua3VOYzElT143Tn5NZlNyOFlEKUZxSEQ4
CnoqViVsVWVARTcwNXRGR1QrKmIkSDUyQ1NNb3Q+USg5WXwtN28+VCtXd01hSGhHaFAkSFR6IVda
ckA7K2FeMkx0ZAp6dFNCM2spV3MyVEhwV309R1hSLXduIUpfaXtfTntXR2ZQV0xkT3BUX19vWWpo
N3xUNWxxb2JvK3gtI25SP1M7KT4KenBRVmZSV14oaUxXPFB1fE4lbyFRUm9KSDtAY0l+R21uTHN2
QSozTyt5fEo8SiFpNVdaI0hLczVAQXlSNFg9eDNXCno4cHpLMDFJaiEtSj5BSnhAd35XTEpZQl5T
KHV0VUx7V3lROXphPnx2KTctJjkocXZDQE5sOGdrUWokPDhebEd9fQp6I2ZZcWQ2ZDIqOFNYZnc7
PCRleUhfX2omMGcwWmZkclROZWZ7ZChrVDdmTktrKU0ramJxc1MkJTUpdS1LRVg4VUUKemtfRENE
ZTBPRTR1ZGdwMlZLZE96dz4odT1IM3VFZ254TTU2MjVUfCpTSVVKUUskJEh0VT4jSGdeQCUkX0Rj
N3BHCno4clFnOUhOI0leVFUrTkRPT0NGdHl8OXhRRkUxfjVjai10OUc2cDg9PWpWcVp1VztpT1d2
dTw2QzN1JUwrbWxXWgp6TTludiZQTW8raWBaRCMoN1J0dCVNPH1xXmB9Z2ckeWZmcGA7UHFwMSZ4
YTJtVkN8UyNlbCtZemYyQ0t7UVdye0oKekckJnRRZiZ7UTRFc218dUB9WmF5OVhpQzYle0FwJk1j
Zkd3emJSeV9IJSNRQ3hCNjd9P34/P0FnTnRxPSFxN1c5CnpxJUZuSkdDWEsqNzwlJUBmU307dUpl
Q2dASX1CR0lPKWhGfkNiUFI/YjgxVVVaYjtPUj1FTCVUY2VSKlE9TXIwNQp6VEgyOX52fFMmfCpz
YXx5P3ZSaGgkSCNZZGImMkU2JkNSKTd0Xj91bWVDPXgrMnJ8KTcwKn1XRm85TnphY1QySWMKelZz
QShlWE9EfVo8Q0JjQGI4PlRZRGVQb3BIU253eHd8UmJtJDZGb25PUkVUM3E2UEVjeT9mVV80ZlIr
eF81ZFFoCnpiOH4+dE18O0M9bmhMTERGZjdXWnZUc1lYS2g1ZnQ3YjY9eG1rUWZ5VUd5OGhQYnRj
RXMhMX0hUj0mXkB0RDF0awp6VUxXRUVROSk7NSkjKTAqcWNDZDVMaEg1ZFc7Nip4SSVhaWRrWW5L
Sz17WXhkOSlSNmpiZHRAcHZnS3oqUDRtbnEKeigkYVg1M0ZIQENFI3NreW1temRUJlM+Oz5wKU9i
dWRIeD18KHUlTShCezIjTTMjK1E7QyNlTztsWilKckc7YjxwCnpzaX49Zi1NSX0teSp0MkE9Y0M9
X2FOMG8xOGA9TUFPODA/Z1E3OUNLKEZeUCE1VTFVQUlvdlhMN3szV2xxb2VNWAp6TCE1N1NmVUxT
aCR+TipUbCZ6d1FyRyNBQmAwI3NMS3d3fT4oWCt9KjIoa3NxPXFuVXFEQ1pJRWdiSUZTN2YtR3EK
emNLUHo8NnshP3pNen5sR3RKWF8oTGhSWE5FdGBTKGxmd2cxOXJKSm1mKWRXWWBMITFpbTFySE9Z
Q1dQMVlTMjZLCnp7ViRvWFNLRXZXNz9QSTsoQipiNmVPI2BWd3ppRllwfHp+d3pnemd5V3djKnRH
I1pvMSlJMVJSIzNYclozY3BDdwp6aTNtNmo/eEU0SjZuYDB8blhjYX5ESntpQ01uPC18OSlNMVMh
KntXPHNZI30tdHFEUzBAIXdZeU1xbjxPeGlXV2UKelFaZUk4SUk3WDMwR05nbyl2aEA/SWZhRlZr
cmU5XzF4Unt1TjdnYTE5aHN+VWU3UEg3NTNqZDhnM0xmP1cxZHcxCnowU1I4ZDVDX3hMTD4hMm90
P08/JFktKHp2dGMkYjFpQlE1KEJJWkVYR2Q2YlowN28ocTx4bmB0MjUpUzVjc1N1Uwp6RF5mMmZD
bnN7VUlRIStSUzVSMihfRGB1KT5DRTV+TUFOWj5RJnZ7fHd7S2xeSWxLeVYrSlYhSkEweX4hbSV9
U2EKenNRM1hLQ2FMJURuK2hTdz5nYn1GczV3NjtyYEtgRDdvcDZKakVvOW1IZn1nTGJpa3EwT2NY
SH1rIWw/PSVKbTZxCnp7QHYycitOR1hpMlVrfkRjJU51KVppWE9pakZrOTczVUVeTkBpXlNJUS0y
MyVJS1IhYThgflphUEtkLT0kUG1vVAp6VjxNOUB7eEduODBAZ1E4T0dgQD5CYiZ7fSMwPktKUTdj
bmlOSlVNPD14UFc8dH4qOG05Z3ZgOXVvYjJTSDxZZlEKenNzaU41Q1JCe3dQN3MzbC1gJj9mLU9Y
PTEoa0h3fFp4P2dCbjRqe29ZK0Z5O2RmTHwwQ3c8ZWdaSz9sWE9VWjBBCllZM0hVaigmRy1wUzlh
aXtvI1hrK2JKKTI1MFA2TnkhMmtkTgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93
bi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVmYzU4OWRmNDQwMThkZDMxYmJmZDc2ZDdlMTg4
MWI3OWY4NThmNApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzE3OAp6Y21lQVNATj8ob2xIeWB1
VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVG41dD0KekJWJHVE
Z0FgTEV2bV8mPGw7bClucWh4YjRCYTZnVDZOP25mI0ZTKiskemx1KSs8IWI+OTc4SlJ5dUVBYXJ5
TUViCno1UDFDb0xzKXtQbnZ6MlBNblJWfE5ePUFnKTtHeW9CdEAlO1gqPjc/eXZreCpsTlBtMG0l
R09BTHVsJiQya3FoTwp6RWA5Ji0+ejVUWCEtQ0p9N24oQ0xlN01WQCFfWTl9MDI0ejhDeWVveWJJ
cnIkK3BqTV5lKkV+PUVZckhMY3xyXmcKejd2fipfKGg8OUNDSEtmKz9lKil8Y2krdT51Zm84dip0
WVRPbW9GeDM3ciEpTF58aCtEcz4oYHM/JDwofl4yR08hCnppd31RentyT3xudVA0dSpKJHYtJShZ
dHI9OXNfbDN7e001KkA2KUdHTSs2PT0oM3lWdll9KTdQPCpXPUpUSG5eNgp6e0NuNEd7YHZPQTls
TGhUSS04Y0JvX19vN0g7QGl4e3ZRa3NOI19tJVUzbThYSnNUVUZpaEpMJHt7OFhzQHV5RnAKekY2
P0cjU3AwNE4wVl8rKG9xUEElVUozS0N2QTM3NjskfHAjVzIzfV48UiFTQFlLMDtXYHslRUJAOSp6
bGVLcEpLCnorUVlYaDM8bkg8dDg1VktLRHduWmVWX205dVYyNkJaTkZ7SiR4dnt7aiZzZk88O3lj
PWVmSX5oejVlPzA8O3lTVQp6bSlaRi1Gfn1ecHVWY15GVDZIeVI+K1FHaS1vSm1YJWc5aVpUUTN1
I3Vka24rJXpKbzRqR3A9SXYrKn1YODRpZWwKemB8MTdle2s1TXBjMDdsI1VjSClRV15IWUtKOCEk
Wkl3TTJoJXxHQWN7ck9xJCROc01xVnQ2cGFsQVc3REwyVSFqCnp2ck1CNXEoSnoqLVRlOVU9allG
I1pAPE9HYU54VmFvXytofHNgd2NnP3N2SmpGZmJUNHZOOHc9TX5wSD8xN1MySgpzak9LI1RUcmlw
b01zdll2RSpPVG47SjNJVT1jRUprQUJGcX1iey1mIVVIeDN2SVZDZyEwRj5Od2l+cy10CgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzM4YmRkNWE5
NmM4MWU4ZWY3YzBhMjc3MTRjZGIyZmZmNDZmMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUy
ODIKemNtZUkwWDtoUEU3Uk1qS0hyNSYjazA9UHpTblVXZEFjYDIyTFBqbTN3VE9UU2lYPCFwUUF5
WShnQDYmKURoUkRNCnpmTlc3RE03RCVRSypBUDlLdkBKdEElc0xnJUR4I09LblRsUlBRVDhGYEMj
WUZJcGUzQ15QYXA8PygrWnQ/dE9DVwp6I0JtR2tPM2pyQkE/KHAzS2lEOW95YiZRS2haUmNqV1Vi
bS05cilOOVZEMXAkY0Z4XyspQmhxQj9iK3EoO2JQI3YKellhaWEtJjI2dVhgI3VsMUp4MmRASFF3
diRmIzJpZDsrbV8lZXVqfFJvfSloO0lRZXRKaD1nP1JvZVduazlqaU5rCno7UG19ZiNZYWp0LWRh
NnNHMDEpSiVmVEhsSE97TjhpcUtVWVRDNmlMR359O0h7QFZLNUZUYWlzQTcxJnlUdW9UYwp6dj9m
d2NKM0lkIy05LXJ4VDF9LT1sUjdISGUxKW0/QlJ6Wmp4X3hFKUl3c152Vn5YKXRHP05abnlLUEwh
IVl8Y3cKejU8PDRVQlR6eXMpO0oqS3FWelN8Xz49UThiblVBaD0oMGlCN3dCKFd2SnJafGQ+IzVu
Pj9pcUJtOE9HVHdgLSQkCnp5R1RSfmt5aTVne0JWOCNWP0lDbGVNISk/KnVTQ095SWopTEJwdStl
Ujc4WlMrR1F2cVRBLWJJekIhZkptZGskaAp6c1FibU9IRWYlLWxpUlEqYzkrXlpJdjlWdns0SXRV
b0Y+K1hyPV9MeU8lXiFxQ3N7ViQtZVgtQUgoNWN3X2FEWTYKekszMXJ6Pnp8endkR2hwNT1jY2dQ
PzJMP3wzfDwqdS1XIWpuMnY2QUJgWVQyWHFlMmcmJWUmVFY7eUc7SCt4ZWNZCnpEeUdLNkh3bkBn
WW1fbGo4fXt3S3lGUGoraUNGWkkmMzVtdHlLaW90Y3s8T2RAaWsjIzxgSXxjKXNLa2BoUFJ2Mgp6
dyVOVXsobWlRc0h4RUIpUFlSVml4VC05LTJgYjZZJm8zKTAzKDRtM2MjeD0mJTZ2fkJEYGpyQ1NE
YHFSZ34mMHUKemtQfldeT14rO2dtZH1rSmgtYntwU3tMV1g3IXJ3dWk4Q0pqWThnNkEmU1kkJlAk
KHRpSFFPem8yNmE4WmUmXjFlCno5QCpxVHZ4USVjQzA9cTtvP0JFQFIxJDBDKzBzfSkoYnF1QXpo
SE1eRFczSTErTD5MMSQ/djliOXhsdiFiNnVTewp6R3VePlpIPHp8SmRZZ3tGKzxYV2hHVENIN2Rt
cSV0eFlWaHVrM3xMdCQhJV8kKFJ6LWpoPiYwSntCI0c3PztgekIKeio9QDJLMzdxZmskekdUcDs8
PVBKNzZ3aTkjPktAWT4rKnw+d0tPJThMWntrQk1ATVYwez1JZCt3a3VKcjFBTWclCnpzX1BROSg7
P2U9PzBzcGc2VjF0NWpjcyMmczNqfFdvdH4oYUswUnxCZ003QiMpNldqMyg7WGNoVGVCUSN4bVlO
YQp6VnJyemxmWkVRRUEpWm1JZTBiPWxybHd9SnpFZzBnQWsyNWU4cX1HeHJJSnZAcyFPdzRvTTw1
NnNpRyZMaW04USMKemc9RjNJakVxKlVsY0h1akZNK1dqUGdeUlJpO2VoTWRXZUMmbH5xR29zQThT
b25Nb0c4ez1RKmZKLSZsLXsoTzxGCnojVzZnMnNVanBPYFJ3ZDAzKkwqY1Q3YFc0P3RNXmNYezYj
OWI1ZD1aYy1NRnZSNDk/ZHkyUWBSJWhTQ0x4I3QlWQp6eWlQS3U1M2YtfDV6a1llVU53MzxVYEJu
SWxqOTRpcypeJXx0PH1vc3Jga2JjITUrT3pYdlExTHA8Z19sPm9UVGkKelhKLWRGVihCJEBfRD1i
fS1Cc2hrZVhrU0FLRX4qPlpDcHkmI2ckODt5bjQ/Y0RedHtqTUBCfFVIOElGSko4eUZ+CnpSQ3tu
fXNDTE15STUzZ1lFLXZ6fjRWTz4hTU9BfWtEXyZ0dmt3X2Zee3Y1alFsNCRKZmRKUUxSWW0/NyhN
LWs+ZQp6UmBrU30mXz9JTE8qYlRSPXgyPWpHLXl3I3ZtOXc4aEIjfVIxX3VhYjglSVYpbCF0MFF0
V1V8dkBUfFBPSFpkYEEKek5uZXt3T0d7fnppPjt1Xy1SSDsqI15NZEUqNnJsU1N5QGl5bSopUkch
TihiclZRJU04bm99KlNCZWt7b0JPa2plCno4Y2U2Zmc0KSM3KUMwNztQfU45bmxjfnwtRkAwam00
ME1jQzxtV0VleTVmI2V7aWI5fTxjYXFaS1Y+V35CcWIkcgp6eCFtNX5VaVB0PShZOERlU2dJayhH
fCFgNnYtPXVDa0ReMFZUREIoRDVyZGVFQShzXj1OUHJFIUxhfms2R19iLWMKeit4Yn14PjV9fUY0
cj5ue2tKfSZjbjhXRzJkclV0cUJjcGg2TDFDWUQjPmxOSVYlUEIlJFkzNCRqe31ibz5kVmRSCnpj
NyRXZXROIzxhV2U7JVomcTB6NkZFJHtiRFNwPXRFcEFiNyted1c1TV8qe35LcE9ZN3lxPFI1LXAt
QmYteF8tcwp6QVFfUndjWGFAVTl6Tj5peVBHcGxhQTJPfDVma0gtKGQrJXlROC1ycj5lditWdjtQ
YHZtIzhpTDhGVDkwUTttUzgKemZgUzZqVyk3RC1uakVnNSZnQ1pJejI4SHRDWl5pR1gjb0t0dmpk
IX5RJklETk5VK2FLWTFHKj1lbE44KVQyRVZCCnpUanpMIUY3cnE1WmZEa2JFbSY9e01QJGszbmAx
cUpUYlZ6Q2EteiY7YHlXdTU7OV55cio8NzdyIT5VczhQMjhvWQp6SzMmZ1NpRkUzI3lNTmN5KHtw
bGkwdmYmcDxDVkJuK3lGNXs9UiVrNGIyMj9XXlg2fHR1JXtxY0h1I1BjVEFIMj8KekBiIVhXKEQt
Y0p3YjgpSk8jWCtLY1pzI3hqQUU+dTxYZ0c2IVlkPFNUMCtBYzhEU35zc01KenZsQD5pWHhDTUNT
CnpVSz9HTDJvWFdwM1EqamFwYERMKW1Vb2BAcFBQfH0kJCUmTyF8b1poe1JHMVZmYWBQMzFRKj1A
Rmlad2swKkVUQgp6ZXQkd2YtVjtMXzlUP2JwYC04bFhnP29+aG4oNl5XUTl0VypVPHN6VlFrQmZB
cztjZTA2MkVLbEZpd08qcCMjeTEKeldmdUEhTTt5Pj4kPW4kcUE3Mnt8UXZvYWFwME99em12TUB7
V2pXSC04V1ZfZSskPTYkbCYhIXdCPCVBQ257WkB1CnpQOzV7U1pnXklxczB8MUhsNztoRkVWbGRt
Wjs/VGRyTD1tXzQjJEdiNShtJmY8Vio7dF8pcjtNUDF9VD0yamUkfAp6JHkhTWF0bTFsRWVMVE1Q
P09RZVRDS3dacWpVUntlOFVrckZkI19rU2F3TmtWZ0t8QGtJRVBOdTwxNC0pZmtFRHYKeihzeytC
e0FBcjkqPjc2MTlNJCNDSmZUbUlOKXVJKGFiYmNpPnxKfDFPaz0qNmdueTM7eysxTWFjTDBIRk5E
b1d7CnpgY0U3PlJQbHk9T20lfj9MOE99IT5pYWNzY2xJX2B2S2dRciVzc0R8WDFPbEhBWXVnJXJk
YEZUbm9TQWFgVndoRwp6WWM9fVJGaiRiQGJ6T1l7c3dzYHJNOEBfQiVySENvcyVkYUxLcFNHe0Nw
NSR2bDMmTXJtJGtpbDwyUkk1eFh4VFUKelI9IXZVUSR7OX01ZjxrciowVkhfYW0+PHQ9Y14qdEwr
Yk1uRmcoX0NxdD4kJVpEaUpuRnZvM2J4WHMqcDRxI1UoCnozM01jcmB8YztLe3hkMU5LKSNqWklT
Tkh3T2RHM0lDIUpOUl5hZHlvWDdHfms3b3A0a089QDNkKjZKNWlnZDlEWAp6KlotYyRvZnswem00
PylvOzw7Q1B1X0pWdnNTYllWSGN+K2JHUnUwd2ckb3piZEF5eEcrS0F8NEU+KVNaKEc+YkYKeikl
WTQyPDlgWnFoNzdRb21gblM4OTxSfGs5YFJBeCNLZEgycGUkS3EmSlVuWm40ZklVSFlvPjJqZWhf
bllieVhyCno/clUlazdFI301MmJ2ekMoLWlgSz8kMktpMz1XPmphV3lCQyQhPjBMQCp9WDxJTUYx
cytNVlVBTTZtc29nUFczZAp6RkwtKmtAPEBhIW4wWWxAakklYHxRNFEwITA5R2NxPlBXMDRhT1B1
SVVsUUdgKTd7cCNgR0x2Tig5bHAyQXNzeFYKenpMUGl5JkVjSWIlQUxiTCVaMl9DPV9DMUMwT2ZL
OSFeK0NhLXJuQmRlKihIKzg+Sj01QlI3REBzKkp4eWczSWE2CnpeSigyOT9TLW5EX0JeNiNzO0JE
b000ZGErSHFve0g2fGg7b1EwI1kxRXsxWGtLRCtWLXUoP052NzRrK2I0KFZAdgp6MikjZTFVejdx
NlQyUEZecDdKaFl6MlZaQ2VXfjVtUUwzND5ncUw1c0h8dTs5WktuTDVsVHMlcitJfWsyQTstMXkK
enVAd2VzNnh+fEghQlY+UUBMIyF9ZSE0flheR1RvWio2X0tRcE5zaF5aPXMoflBwTUl9YndGSWU3
c2deNGlxJCtFCnpndm8kYWlfNnRGUyYwTzE0ZE1oZ182VHUmTH02PyRMZFVieFBqMGlFVG1eVVQr
dW9+e3s8PkBTciVVa2pOdVJDdgpoemlHWXlaKUh2fjlFPmN2bzY/TWJnQDVxU1FTOytKYTFUMFBg
ND5AdXhVdjhNCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVj
dGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNTJmNjI0NDM3Yzc0ZWY2MTZjNjE4Y2FmYTYyZDY4Njg4ZmZk
ZWUzCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzOTMwCnpjbWVIfj1+SShlN3sjeEVYY2M1ISpo
SW5CM1BhcmowVEtoNnchYEFXKCQ8QVZBKEA2dmZoR2FqbDBafX1OR1ZjTAp6NmVOTEsjI3FheUVR
WkFfTkhzLS1LdkRLQjB0TiZeTFYkI2pyUHNmc25SI2RLSkl7eW5wOEs1aGB8eEllPWtIXj4Kelkz
QypZZmEhX2pvPDlJIXhDYTEocHA2RF9WIXAlTjBVbk4qeUBEPGlxOVhffjM1anQ0ZyYre1otM1Uk
KnMwY0pGCnpHVGgxNGpvXndyNXteV25CZzBXblh0IUplKzY5MHViMDw4JUlnYFNlOXxeY291KUxF
bUx5b2ZReklXKVRAaW4+aAp6eCN5UjBuSj4yR3syc0VTcG5rP282Rm05SCpWam89bz9GZWcpfTZm
ZTxpPHc3KkIxTXBKdXctNFltWj80dyNWcVIKelpDKiYle2NqcEtpe2N2KE1vS3QxUFVuPDcqZnVQ
enE7X3FRU31IR2prZSF7cTRnalhMWldiUWVGPC18Zz44biVzCnpkWDg9WWR8aHNXSj9IJitPTk5i
R1kpfUo5UjFzViY7alQmS0xhZmZAKll5Q0FYNm8wSmsrP1k3V3tyJHx6VEE2JAp6aklQdUNgfHk7
NXl9Zk9eUWlNZUEwe3FKXnNkIzM1YCQyWj5hMDl0NWYxbUshK0ZVaEgrd3xraFVrZGdJVm1iX2YK
enZiQGMxPmxXaC00cHJncj53NiUkQ0xDYyEoPTdNRmtFamEqISZWcEQ0K34zPFFZRktVbj1LQUJY
alg9QHZhJGw/CnplKikwY2RndCEmU2dNJTAhSHp+a1NuY3ZpQUB4Oy09MiNyT1VzJXs2P3tzR3Ek
RiUpfnlpaWloZExubX48Jl5AaQp6b1ZLVFhIYmU8YXNGRnI7Uz5DYWJ5NkVtcVE9Nk4lTjFJez9Z
QVZtT3hoc1ApMU9qMlU0X1p7c24oZkJhTVlMUHcKek5DQylqbDtEe2pzcXMzaz05M0hBRDt4R3RC
VFhkSDNwPWAraklkSjYxYV96fm4qM1NaKEFgNiFEcSlVdkA3fSVUCno9UEVJcFJ6dHdaKXZtbGoz
VmtXdlUwcSNzMUdUKDBOJU1wdFBwNGc1Q0BVKSlmO00/ey1RcmFIO3BmczlhWU41Vwp6bDdgfGtU
RS10Z0R4cEFePVBIN25WdE9sNTxzWDxVMU01S04kPHJFaDVtdm5fRV9GfHVMJnMxNF5PUFgpX1Z6
eGUKelM/WW5aI0hyVD5SRH5wTUB8STgxVHRFNH5AcEAyck5JVEQwTUcwPjF3bE9oPXVBdWJLbVNH
SyhgS041dG1iem5JCnp6P0dTY0N3WDVDTG1qMTNpTm80aVRPVDxhTkxgczVzRUtIPVdSTEMpKlo+
ZndlbHRjZmFMfUFJQUh0PXI0aVJ+Mgp6LUNtWCpNTSFhVkEweTtDNHRDP0IpaSF7fjZzZTc3ckp+
bHAza2Uta3NnIz94Yns3VmtCNzErZnsyV0l5TzRVKXkKenRkVmNjMFUhVT5SYVhwI0dWfTBXKXBA
bz1xWnFAQTg0MDUpNlMrajVYNjBRVmopfHBmMmtUP1pjQS1oZUVGKTBwCnomMDR4NGcteV5ZQy1T
UGZzKmYjcmwxYCZvNy1CRWZ2PnolKU1zPmJ7VVdCRFE7dXRya24kdF5oMllrb2Q0MUFoVwp6bCRB
Vl4qZiV7cntrUkRPeEFtYztTbiVxVlRpanFCVyU9VzZoayNGMmhZNFdRKWstYGZNS098JGl0USYm
Y1JmSGwKenAjZ3YzUW9kendDKH5XPXM1RCptcF9ySG5pXm83ZWc7fkktR1BIUm0lUHVgLXZDUlB2
JHg1bG5IS3VvJUVaOGxFCno/YjtzVEF5ZHMoXk9XeSVQe1g4Rl5TfSNhN1N7a09NJnhnPUBYRTJN
I1BRTjtIMSZmbFRhe1dhI0hDSVpqNUhfSAp6V2lLc0BRTiZUV2NiSjUxTExpMmhhJn5yaGF3MEVx
NmVZPXtzZ15qSnRpUWolc0teJEtBOD5pN3o/JkxwMWxMQncKejshNX5lNEZqOzZDNUtYNGUyKldo
NT5CQ2h0Py0hcEdLfn0rSnVOUCFoakEjJmw5NlV7Q3pGYmFHNnZ7IU8lXmQ4CnpPSCljQUpfcntW
N1lgM0wtX1ZTcWxLeGQqSFB9RiZOYkMhfT1mNHBrSUBFI20wO0g4bWByMTZaMnBJKUFsKjZgVAp6
RE5FQ1Z4VV9uaD9Ja3FxJkB8N3FnNUtZbEFaR2EkZDs5cHtWNj5CJmtrSzwxSz4jcUUtfGI1VmZP
UTxkNCpZRm8KejBseE90enYhMnNaLVNsekpxM0NTXmMzaFIme09hfnI5aXU3b1BDRjt5ajU9d2Yw
bkBzRk1yUmZafUhkdTFDO0wwCkF6V0BMTAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxl
LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWM1MTFiMTMxZDBlZjZlZmE2NGJhZjRiNTRjMDdh
NmE1ODBhMGJhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4ODgwCnpjbWVITlhJTjl8dyUrSXs5
dCskIzRyVC1lWFV4YjVOPTcze2xNSTdwQV9eUzM2dXwtcjIjRTk9KUg2RFEkUVQ0dgp6cz9zfnNk
cWYxNDUtYiR5U09CR2stYT9aNVgzbyQxPERUPDhfc0BOdjtnN0oqLXJ4N0Z3Y2ZKVSZQX2Q/VzFI
NFgKenR8dGckNmFDbDJgVUo2aDJTS2JkVUFHRVhCKSpaNSNYcX48a0M/aWp5SV56OShhcG4mSTc/
TncqfXcwcz9ZVk9ZCnpsPWRyQTVBMzY9Q0BHIyVSI3NBXlFmPCFlUzI0YT1keEljJDVjST5FaFRi
dmJ5PyVjZiZqbDxfNl85ZDVeMWtuPQp6VFhTQT4kQikqM3ZwJSEken1ASTA4KCVtKnQpbXkrM1Yt
JXJuLWh+U1hlVmt1U0s2TldQM1o1VEIzSDUjYzNmU2oKelMoIzhEZHxWe3R5V2tvZFJ9c3pjekIw
QTtWbGRSSC0wblNqZjZTZ1U5aGg2YnJvdlNwLW97P3k5T3xENXNGdXlICnp0Vyp+dmNJWWczUnVl
P2ZPejR3VSNKWEwxMWFiOW1keCMrR1JVMyNNX3h7JlFpdD40PGVGaF58aTtCZ0pYQTtDQgp6RW5W
fFVreFBIfEwjLVExRWA5enpyTEspcDZrNmNRVnJUWERMPWYlQnJ1QTdXWmJSRU57N2FwQyVYMy0k
PC05WXMKem1vSHlWSWRNTmZraGZlQVVgWV4rbTxOQTF3WHZ9JnV4cDdeYlpxYWReNHFYc0x5MSRq
Q3dJSWcqUnJBKm10KW51Cno7YFdgWnBDOWpUbk85c3ojTX4qSW99TWxVKmhGV044emM5MlNOaERm
clc8N1gyaEtEZllgSVVCcjg1ZikzbXRSSAp6WShHNF5uUnFuUnAqOEp3WFgjTlFoXmxYfSU4QCVp
elNwY1UlXisyMFArVkpFK3MpMDUjKyFYaHJjYWEmJEwlI1EKei1nN0VIREokI1o7XmgweXZPMyVM
cGEwZD9jSVpfM1goR3JWV0FfeWd7WT5MKk5wPGZfT3RTRSFkLWdRRmMla2UpCnpJZS1tSlI0dyM5
ZGh7c2VXVkJBUyhxNElhJEp4KVg+a0VtWDJaPD83SExCQGxabz9AYClsMURUdyYlfjI+MkRHPQp6
dWJEZlM0ZmNCVko5UVYyI350ITNfWlYkUTNebEs8NGMkcnxTe2phRHNNUjc4Y0JQZj1HISskPnpX
RGw0OWZ1KnsKemxJY25wLUBWRTxGS091NG4wflItdEprQXJxUEsjJmV9QSFhWmBiMjwmJmwpJE49
flpJSio3N3slZyZFPSZXdT9jCnpBYnZoNlVFQDErLSVqNzd0O24lTSZMZV9NUHR9Uk56RFgpbHZS
IVdYWmhBbmU3cEtwJSFaVHBwKFB7Plo0KCFQJgp6eUo5cnVlK2p7cDRLejEzXzIkaVdxIXljR25j
bkk4Xzl5Rn5IOHBFO0VHczR8WFZeJkFyQF9IRlBDdFZrcWhmcVIKemw7Rm9XZUJTdktRRTFPTGtC
VyMkUEU5M2sqKXNJJGxWUnQ+cSRLaip6MWcxUVUzOH1WWHVIJExgY09KXjxwWVY4CnpXXndNZi0r
cjRKWUt9aFNIPWkwRz1xcD8tKEVGYWA+PyZlJHk3a28pLSs/UWwhb3xxK3dQTT4hOW9qTSs9Mnpr
Ywp6T1l0fjJAKkVMP0d2I0R1V3l6YENqZzBKYllkSXVYWCVZMEckbmR6TjJPRWlqTWd5Jm1Jfm0+
QCVKeSVQczZCNGEKemUqYXB3LUgxdXZ4Xj9UQFI5eXl0WH1HKEBCe3Y3OWRoTE8tc0FLSypQMDxI
a2JlTG8kNUZjJERKN3MzMyVIWGZHCnpkZH1AYE19VUo+JTwwVXImSH1yeExWTHVsbmF4STcmIXpu
JWFTUD9OMXl5djAyeSlYb3hpS3FQR3lUcmFWe3pfIQp6OEJaeVVyTiZsT2oqNSFQPmFgb3dZK0o2
MGlpPlNtSnk2NyhabHJqUHk+cVI8d2U/dC1HPl5aKTUrdXMtZSNFK08KemxJVEBfMzticjZ6fEhR
UGk2XzVoKX5fKWgpSnpaTzJqPUJCJGxwbXhIU3dZPl5mTVRxb31Ocnt5I01zZWdWakBeCnpFaXs0
dSp0XkhrTj1eP24wK3pFJmBqJFYxPnRiKDNyPmxJY2VDS0BVK0R5WDlyd1ZMTyl7VGUqYSg1KzNy
a04oVwp6M0pNQjM/MkNGTW9wJGpqb2slMi1PSVA4U1g4fkopNTBvUkJ1SWU9cnY7NjZic1BzRCln
S19qfGViYXJhVl9TeU4KelY+X1YwSUxEJEIwbDVNdSp0LTh5YWtxMmteeDRDSm5CbTcmblA+R0pS
dS1xKSNFJjFFWGA8Y2Ara1R1JHJjZ05WCno5LXFVeENpPCRseHtUJHd0eTtCWWRUPztDWlBVRndR
QmZ2S1h8MGI9Zy1SK3E7UGVyaitjUW1FUCpjeHVafSokMwp6QlJ2bjVCNiVEYEJ2TmVHdn0zYEBK
KlN2bThzanJIUjtaeCMoM2p6fDZwUFpsKCRZbzBlcntqQlAyKilaeDdfbFAKempMfT9Id1J3cCVr
R3FoWUtpTzZ0enx8TDIzOzB+d3hCfjRjMShlNExaU0NsdiZpcW4kQmUheG9JUWg2cDVZP24kCnop
IyVpNzhRbzNDSjt1QXs4c3V9Y1krRiN4RDZ3NjFXP1k7R1hwS3lsUkp5b1chcishclNTITxfR1hB
Zzk0TmB+Vwp6e0cyJmBSa0ZycmJ3VFo2ZndQST5hYkA1YUR7ZmJaUyY0Sih2UmkrM2ZZdUUkckBx
UmlRckN9PjZzdzdWSF5kWUIKenclP3lUUTF4JkNwbXY2LT8rO2o+Wkl6OVBHRWAxYWpxfWFPJUd5
SWA8fSFHcio9OXU8REBHdEsoakw+RiZjRkNXCnohTHI9S3FzXz1qWX0rQVVjWlpMXmt4bm0kMl5Q
YmA8MD55bEhzN1pYUHJrMjM/ZzlYIzgtUkZ0SU10QCU/JVpnSAp6O09pMW0hb3UzJnU9VUFrclNU
VmNjN344QkkjczxZYllgKHJ3PXZfX0lUeUpUJXB+MS00TyFsWlRLfCR4VTVIb1UKejxUYVRyXk9C
cWZGPVRES3FKeURCMSY5JX1RZWZOTVJwSTR3PUZFSEM+JilXS0JTNShQbVlYQ0pXUlFMO3dfJiVP
CnpvYk8wXz5KVTVEVHdpfj4kRjBSPHIxZVd1MXNLd2dGLTJuQkE9OGJHamFeK2B1ZFVzcig9KGhC
P1l1a3sjO354dAp6QnlUZz01WWNoayZ1T0dTYGhmaih5X0FkbD1Ue0c+T1NHPFVxJnJjfWkhWHZG
NVpDTz4qUH5za2VOWjVEVz5SdnAKenJDWVAya2dLc25rVWpzZC0mJXNMMkF6Xy1fJTgyRSZEQXZs
LTErU3F7KTsjSjEzNztFZXY5dktncD08Sl5SOHpzCnowcW5jSE89KFZOM3Y+bXV4LXxZJm1faGU9
Y0xAVkpxUHl+c0diM2M3UXNrZjN2YlZRKWM2Sl5xMzB9WnFCS01sMwp6MGAtbEptSFpiY1RlKFM4
c15qTWt6a0AtLUJxZEV7NWdFP1okTEMtWHstfjlwOU4xMzNhVEEpem4odU5Ie0llaDsKekR5c2lk
P0l3eEYzeG1WTXh1KigtSHVmNnxTKl8tcHM0Vj5yaXVkVyRyPytuMTAheSU/NHw0a2FJRDYmZjlE
dkhLCnpRdzRJO2AmU1g5MWomNyhxYktnKHl9TDQtTipqTmpjcX5mNlFaQl4tUG02IzVVWUV2bUFF
ZG9+XjlGcG4oM1RzaAp6STUhTW9hanFDSXJtN25hNHRfTG57UTFDelJ8QXBlJk9Rc2hVZnNuYDYl
Zn5PdkZqb1A+OSpVaEpQNVAyX3JSNXMKent5QExGVjJSRFVQVylQeElONUlRKHAmNmd1NlY0TUE+
YmhnT0NMZmd3KE9Xd2dQRl43cWUjbHc4KlIhLW97RDM4CnpSKW9Bcy0yOHF5aWowLWItdmR4MjZR
digtKk1+fGlqQ09GRUkyI0NNS0A5YXVnYitzO1VMYDtlQyVURzhVJl9ZIQp6O01jKEB0Ry0rLTdJ
PkFAJnRnci0jUnRySC1ySU1zKnJtU0B7fGl9SVBOS2R0RlRDKmh7N1l1PVpleT9oZkNZUVgKeno8
cytvZFQyYkxTX0dJSVJnYnIoelhrRFU+flVJOFNYXkt+ZXY8Sj1NMSYkfXpiKF4qRzV1MXVfSiVr
RSorKnRICnpQI0oqa3JUMCZOXlhsYGwxST5obGd2amBRZW5fVUhXfjBweGoyPUdaSkIhX2A+MzVI
STxtUCVldihwVig+VzVNQgp6XzltMDcyKTVzRjZNNWxuN2dpSlF6OWx+MSpUbWh+Yz4pMjZSJjw7
UGckeGY0N0NIQVdtI30hX2JuJXRoeDRRRGkKel5+Kj58OD4rKkFNPj14azJ0LV4jVVMzO1FtJEdN
MW1VNn1+YlVOTTR0WlM9SXEkdDVRODZIe0plcEJEWXcre0B2CnpmbH5SP25XejghS3xBdCpWPj9L
fVhKIWFSMWpgayRHKDlNTEQ5QCViUWJPTHwodG9QMVpHfE0hXyswJGtwOVk/bAp6QTc+YCUjSHg8
MEN6S2dTXktfRHRXfUxgMCZzcX0tKlk3KTt5fTM1Kz57cyQmPHl2dUMpe3ZuSU9kVjxsJFdaZmcK
ejl4VHlaTyZFSWVaJn1CLXFMZ3RqP3tpYHBUKllJb3dZMFJ2IWIjKmZkY2cyaGAqM2piRjxsMmRH
YCtsYHArUiFyCnoqPUpFKyZCVCtrMzNWJHNidDwoMClCIWhVfEpKcyorKFFgYXooRD4kJjkhNTx3
e15scVkqK0pLOE1DQUxmdm04eQp6bDJnfH4pPjU7Qmo/dW9WZktNOyhxI3lhN0FhcTduNz43O2sx
Ym1KX1dBPkYraXcxV0wkeyRYcT4qfV8mdzZNNG4KejZAdWtsTEhVRWs8SiNKa3NAWFRLdnI5JnEj
KyRZJlBxdygxNWw+VjtVKV8ra1VkP2xDaztoQGdobGpocEswPUUxCno5N2QlSU1WUVd2aUhRTj1X
QGwkc1Vkc2BhNEEoZj9fZ1AybEJxIWAxZU9NWTtvY2g9JUxGaVImQGNMQEJYfWp7Sgp6MVJWY1FI
OUhVY0I4LV5PPDBjJVhlKFVCTk0mbztEPGRsMWtYVFZDbCZDbT42N3EoNjFHREkqfms9OVpVaVNY
cH4KejF0NFljOUomRD82cVNpNV90UHxZbiFAdDMqPSVYfVdnd3FEVXFxJWVQeUExTWolJC1nJjIz
Vj1BWkNwNE54NCtNCnpoSUJLVE9jOzwqZ2I9Y0NWaWhwZ1MpRyVWbWk4SXlAYz1vYihfZ3wyYnp0
UiFmRnMxdXB+ZVFRTXRLWVVvYkQxMQp6al4kRTBSb3wja2FkQmF5SHcwPjVkZylCOHMpdjRaOCop
Kyo1Yyg0NGFMWFJrUzB5Z30/YHY8d2sye0pHNG10NFgKelI2Qk1MX0lZPT1mZGFISVNSOX1NQUtk
U2ZSPSNBTlFSdSlYPzxJbzVHal9ZPkw0WDtId0tCJEFRezthOUBtRDgqCnotbCRjKXkzY2UmZ25V
NmtmJFdLVWRSbntlTVRpKX5sVXcxOFZPSmBiaE41OHlRM30hT0s5X3hiZDtsflN1YmI1egp6UG9x
KChaYTUkVUtINktjJns9JX5KZ2V1bis3VEJ9UVFBJW5feWdEbWx6VTtKYGBlVjB3M1lZYlI9IWA3
TU9MckgKelpIYUl8aWd3SGAjTHhPfShxRzQ9QSpwYTcyMHs7Zl55cERBcnwtZjlxQiNDcytIVlk9
c2VFfVBsVCpRfHVCQHp0Cno1ZmBje1lTb1V6NmR7PE9WJUJCM2V5bGcqUzAqSlQqfXFOY3V5OHd4
OH1zdz8qS1UlV3Q/MV98KDMjKkZWSmt0aAp6QF8kUz5CYzV+YFh7e2NPVnl6NHdsTEAjPnJoXmRT
KF85U3M4TCh0dXpJLXVBSWYzQCYoNGoqYD0xZWs3aWRFVFYKejgpI3lATWdWYCNOfXduIUoxazBE
dFRBX35uajI8JDY5Y1BFdntxK00mKHozUypfPU9yQjJMezAkX1YqT097Smg9CnpuVTBJSHhjcE1j
SFlpSio8X0MoS3E/QlJ+Knl8JnwhdDxheTdoQWxTaCRtflpjajtXRiRqZGpmKipiPzchSjN3Kwp6
TiFfQWhLd3JNRXgpUClrTGE4b29AUntmSSk3KnhkNVNFSnxNQFZpZ3kwMGtUTDR1JCtaPnRkfHdY
SUZVI05yPCgKekVxfGNyZ0dPOEghUFhoQUBZT2dOJk9aZzRxZmgmMz9BNjJDRDdQeTMmNGdXUmpn
S2hCRjhiI01KSChOVkZUbXY/CnpkSll7cW1PbDlfb1dPKyYxYntXZVJ1bFIpbmlZazNCSilETW8x
fHl0Pk48cm9qX1MoTSRVQlghaXFscXBxQkdIQgp6LVFLMSRaQ0RYO193SVFjOCheUnFBKkN+Y3hL
RHs7OGZJbWUyVW5KNnE/OWgybndkUl9qR1JCbm1ecH1nYVlWczwKeiZMIypfOHE5Qm1SaFIpIXRC
U2d7OGxgaWxfQnNyZjZmTXd5cT1qX2FgI25fMnFUMWdGbDg7Ujsmd2RHeWo+YSF0CnpfKmdIcmBg
cSl9PEVTRHRHcVkjXmRmTEk0UlNsIUFJentIRlR1O3c9STgtTHRYU31GbWRTKnRSO1JoMGNUVzZ0
Vwp6Jjt1QldITU8pYkk4X1V2QTluISZpUlp5XigwcGU8Z1g7VHloR1Vtemg3VVMqJjJzbj85TFFm
RmNvNUdFe00mKmsKejVoSE1ELTxCMEJidWVXX1BObGNoUCpZUGdCV0kqRmVJfU9VWi0rSmxhPDB1
cD8+WXY2QmFUKFBgRUhaaykwVHMyCnpRM3hHNiV8cV49Xi16UnBKMG5yeFdJQ2NCOHhoZiNzdjhm
bXRhTERWQ01DfGp5TDk2IXtnPFhHZ0pMMjw4LUN2OAp6ZClPTyY/M3hXKmw4V1Y3KCEpdHxhcEd1
aXZsIztabmwpP0NTQiR7VCZ2alYhWEJjSGQyeUBJIUNlWFUoVVQlZCkKeiR9Y0RvbShsMmYmWV5v
Wj0yUH1sZ3s/cmpgPEZMWXVVLXxgU1JBLTE4PCh+P1FYP3YoZSktYzIxZTgpU21WZUtECno0WihJ
OXZAP2Vzbzt1WnVxd34yZUs/T1coZFp0O1d3PTFydGl8dGxXJFNMSnAzNj90fjt6ezNwVzhwVm0x
Y05wPQp6KHBFODVGUXV6fjJgJip3d3I3JTBKfi1mbSZpQShUQSt5MmJVXkcyczVmbz80UzY1dUIw
eVJrRnM7I2o0c0tsa3kKellUVTRPQm4xb2EhM2RLK3MzV2wxU3NtY1ZCcVE0Rm1YPSlHNnJafERC
TFNaJEgydUxYJDNpOU5VVEtNPV5KTnRsCnomTC0pODMlOXgtVipwaTtrK0ZVanFjaCl6eVRIal5h
ZV59bStwZ0EqOzUwblh1XyY3Y249c31+N3tZdDtVfXQhJgp6JmR5SFFFTS1ea2psXzxARzEyeFVk
Ym83Sj9DVEpQQCpqKGFlKS1vNCg3Sl81QU0oeDYod1hEZCUrQWlEe0x5a0gKejlTUFp6PylBbStI
SzZ3TyZaQjY9ZztHI1F2YS1tdHUwYnV5UlNTbUBtPlhjWUFReFlwa1lKNXxtVEtGeSpqYGV0Cnoy
dFI/X0J9aythaHFqVU8oSHdNajVncHJDNXdmYj5FOHM/YDN+V0lxdzdWe1o2dDxPV0pLQ05kcmF0
fVJPfHJJYgp6YDMlPFleWnBweEkpQWcpdSpqaUpJQ25fal5gYXhnJFB0dFQzS3JyRnhQe3Z7KlZE
VCtJWilHRGxBTjUzJjZSPikKejRaYH5rO15BSTxUJVRgO0JZRHgobG0pJEpsRUdoZUIjfXYwXlAy
R2dre3NtPmgwNHErQUtgTzMzKn1uR2p2dmtlCnpoanZeXks4cWN6aEh4eCVgdnJrTUsxKGVPe3RT
LWFpWmM3cXtxY0Yyakg+KFJfY3ZzOCowaDY+Y0lte0o0c09JQQp6OWVQVHFmPCN2OUM/MzxtNmFz
dUUrO15wcThANCRkJilgU29gdjBLVkQ3U094JE5XWnhROFdkQmlOMEVEWUFVPngKelExdEtMWEd9
VDxNTFU9OG98Q0U8NGo1Sno3PWlgKHQ4Qn1QZDJzKVBkflc0cyRQS247KGtWbGZDYlg3JTxtcnFR
Cnp2fXBMdnpDT21DOChsIU5QaDArK21gPE83LWo9Xz1GMig8fDY9MUFQSnJfKDwxaz4tJWd8KCN7
KnVEN1VKMFVYZQp6USRBSiRneTVTVz0qO003RjhDLShyeGMpKk1ZfUljVFk4Q3tXPzBxMFFnZFJa
Ul97ZlIoVGYpQl5YdFNnODUkLVUKekBmZUs2I2BZIzIzIXwhNnJ2M1E/QjFqa1oxemttczMqdiVG
YVojfnRyYX53dFlmQzlROUJ9Rj8xUzMjUykkKlFnCnp3TUdfRGx7PTUjQD9RUnV4LWl5Pm56PV8/
MXw3YCY4aFk9VmhaJEhib28qJkhKYVNlZTlsNUx2dU9DNEw5Y35LOwp6NCpEflgmPkFjfitwS0hZ
UkNONGhiMkFVPDx6Zj1JWXd6QjFWUXFweztZe3B2S2NQKSt0OStDU1Y0dGhNXl4ob3oKekNyKmVG
JH1LVGNTQiVicF5UMDAxJU13X3QzVzAhMitpajROdzFxKlRQO30+dmsjX2hKVkxWfn5JQXxZTHko
Z2B+CnpoSCY2RlkxJlBWalkxe3w1eUwzUGR3O2tvOTNJWkVURUJrMXtfdk9BaU8pQDdVbUw2eG9x
SEEkRm8xN2VnKmg/TQp6PDk+VU1AcDBVPHgxPVdAUjQrN0NPbF5mUzchI29jZ3ZZT1o1X1lkM1pz
UlB8ZVVMXkpnRlJZKTtSRnU3WGM7XioKenRtJlQpZm87R0Y8WUFPMkNhdGNGUXYqbVZzTTVlTCY4
Kil4a1chUiV3cEJNWUhLQlEqXzJ7cjljfF5tYmo+SyV0CnpTfDRRPHhKMldCcXpPazlDX2Z+czxC
I3ZPZ2ZJfXdxaWBNSXRlUTlPZl81cjVBenxSdkwjQEhWIVNzSGYoVmZgWAp6ZkkxMTIpKG9SalRt
Kmhqb1NhbVJmVTIrLUtaSy1AWihmfVZzPFg4Y0F6cWVBbkBaQCorbUVCcTAtOFlJNHJxUnoKek5f
eUtfMztgeWwqazVFczFPXlRja1A9eVRDI0hrOzdAWj40UjRTRmg/ZH5yfHR7KGBKJig2MURwX1Vi
czg8QCFxCnpeKDshZnpiXiZwI1pXPGZ5WHN4RDRUVDhfM0Z1TnRtaFBgejAleEx5aXNzVCsyXjwt
VDMxeUs8cmZYfCs4KEF4agp6QmY2KVhYRlo5YV5+M2U1cmleQHlURWFBeig9WlZnYHFLeEJqX31p
fWNyTSV0dSF0V1NPa1AxUTloUDNiPXUzYzgKeiFCfDFkWTFjWjVSTW9hXzdnbnM8PVo2MyM/OGxL
bzJ8Vz0pUE9ibEZVZDlEWHRUMy0pbEk+cTVYeVZNVWRYTTRNCnp0ZV9oQllrQTxCSTBvMDFYZV50
V25vdSF9UVM8KGNscEgyKVRlWkZrQHZ8YSg9SWdBQGRvOWJ8KEphRHRTQzM/NQp6UndKJCREcn1P
YEBDUlVkJVg2N2x0VXlLNHBgb0ZQY2FMfHtuRyo4R0Z8I00lO1BuOD4hYTVtPkFiX18tKCNIVGQK
emR8SytqMXdFZVJnbHg2NkNeMkJqbzttaTwpSGokUSFnMm1VKkZTd2F1JmQrYS1IMz8kZVBUcFIq
I2BIb01tTTZ9CnppOzllIz1xVzJlUmkmQCM9P348TiVXV3R7a0xHJml3c3FgSCMyUk9tLT97Vkwp
UTd0Q0ApMW01PVFoNj1BXnZ7Rgp6Qz19MjxDaGM8YCVTeXkhbX5zWT0zdXNwZkY8Qz5qYFZZVDZL
NEVwODk9QHc7V3hBMXJBP3RScG8rJSsyKHdVJGsKellqOFEtcElVZCtUQjd5QmthY1cyTWw7I1NF
d3RvR2tjZFJDfDVgJSUmWGVVdEN2PTlHIXJGMT1GeihqMjc5cVooCnppdkMrSzZhS3dkNHU1Xj5L
WUs7PFNHQGo7KlQzOzVAMkBpWHQ0I2hYbG1Gbj1feH53aW9GdlRYXyU/eChAVmZ3aQpvWTJ8PFA2
QD5yT0pwNGI1e2sodWspU2w5JEpZQExiRDx9bTBofGJ9aFUjemVHSCp9QEYkcDhRVgoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDNjYzFjODdhMzQ1Yzk0NzM3ODZmNGZkMDZhYTMw
ZGVmMmNjMWE0NjAuLjRhZmVlMDZlMGU4YzQyYmU2YWU1ODc5ZjM2MjE2Y2M3MDhjNmFlYTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKQEAgLTM4NzMsMyArMzg3MywxMSBAQCBCVUdXSzcyMjc5IDogbWVkaWEvdHJhY2svdHJh
Y2std2VidnR0LXRjMDA0LW1hZ2ljLWhlYWRlci5odG1sID0gVElNRU9VVCBQQVNTCiBCVUdXSzcy
MzY5IDogbWVkaWEvdHJhY2svdHJhY2std2VidnR0LXRjMDAzLW5ld2xpbmVzLmh0bWwgPSBURVhU
IFBBU1MKIAogQlVHV0s1OTc3MSBXSU4gOiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10
cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwgPSBUSU1FT1VUIFBBU1MKKworLy8gVGhl
IGZvbGxvd2luZyB0ZXN0cyBkb24ndCBoYXZlIHRlc3QgZXhwYWN0YXRpb25zIGJlY2F1c2UgcGFn
ZSBzY2FsaW5nIHdpdGggYWNjZWxlcmF0ZWQgY29tcG9zaXRpZWQgbW9kZSBpcyBicm9rZW4uCitC
VUdXSzcxMjI1IE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCA9IE1JU1NJTkcKK0JVR1dLNzEyMjUgTUFDIFdJTiA6
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbCA9IE1JU1NJTkcKK0JVR1dLNzEyMjUgTUFDIFdJTiA6IGNvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUu
aHRtbCA9IE1JU1NJTkcKK0JVR1dLNzEyMjUgTUFDIFdJTiA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgPSBNSVNTSU5H
CitCVUdXSzcxMjI1IE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbCA9IE1JU1NJTkcKK0JVR1dL
NzEyMjUgTUFDIFdJTiA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5z
Zm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sID0gTUlTU0lORwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115242</attachid>
            <date>2011-11-15 14:22:27 -0800</date>
            <delta_ts>2011-11-18 16:05:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71225-20111115222226.patch</filename>
            <type>text/plain</type>
            <size>57300</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFmMGEyZjRmNDQ5ZWMy
YmY0NjdiNDEwMmVjNjIzOTg3MWQ4ZjZmZC4uZmExNGJjMWQ4YWY4MzIyYmY2NWMxNTM0YTlkYjI2
NTFkYjU1YzRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDExLTExLTAzICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3Np
dGVkIGxheWVycyBhcmUgYmx1cnJ5IHdpdGggYSB6b29tLWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgY29udGVu
dHMgc2NhbGUgZmFjdG9yIHRvIHRoZSBjb21wb3NpdG9yIHN1Y2ggdGhhdCBpdCBjYW46CisgICAg
ICAgIDEuIEFkanVzdCBjb250ZW50Qm91bmRzKCkgb2YgdGhlIGNvbXBvc2l0b2VyIGxheWVycyB3
aXRoIGNvbnRlbnQgc2NhbGUuCisgICAgICAgIDIuIEFwcGx5IHRoZSBjb250ZW50IHNjYWxlIGlu
IHRoZSBwYWludGVyIGZvciB0ZXh0dXJlIHVwZGF0ZSBpbiBiZXR0ZXIgcmVzb2x1dGlvbi4KKyAg
ICAgICAgMy4gQXBwbHkgdGhlIGNvbnRlbnQgc2NhbGUgdG8gdGhlIGRpcnR5IHJlY3QgaW4gQ2Fu
dmFzTGF5ZXJUZXh0dXJlVXBkYXRlci4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlZCBibHVy
cnkgcHJvYmxlbSBmb3IgYWxsIHRpbGVkIGxheWVyIHR5cGVzIGFuZCBpcyBub3QgbGltaXRlZCB0
bworICAgICAgICBwb3NpdGlvbjpmaXhlZCBsYXllcnMuCisKKyAgICAgICAgVGVzdHM6IGNvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3du
Lmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLWRvd24uaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRh
dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXI6OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cGFpbnRDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBk
YXRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06
OnNldFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06
OnVwZGF0ZUxheWVyUHJlc2VydmVzM0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNocm9taXVtOjp1cGRhdGVDb250ZW50c1NjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6Y29udGVudHNTY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFy
ZVRvVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6bmVlZHND
b250ZW50c1NjYWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFn
ZUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OkxheWVy
Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNT
Y2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6bmVlZHNDb250ZW50c1NjYWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OmNvbnRlbnRzU2NhbGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5
ZXJUZXh0dXJlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTa1BpY3R1cmVDYW52YXNM
YXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRz
U2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpjb250ZW50Qm91
bmRzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBk
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uaDoKKwogMjAxMS0xMS0xNSAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBpcyBub3cgdGhlIG9ubHkgU3VicmVz
b3VyY2VMb2FkZXJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDhhMzA0M2U3
M2U0NjMyY2I0NGJlMzE2ODM1MTNhMTVmNTg3NmQzNy4uYTAwN2NhYjdiMzU4NTdmOGY0NzIwZWMw
Zjk3MGFlN2YyMjk2NmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxMS0xMS0wMyAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gY29tcG9zaXRlZCBsYXllcnMgYXJlIGJsdXJyeSB3aXRoIGEgem9vbS1p
biBwYWdlIHNjYWxlIGZhY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzEyMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnRzIEdyYXBoaWNzTGF5ZXJDbGllbnQgdG8gcmV0dXJuIHZhbHVl
cyBmb3IgcGFnZVNjYWxlRmFjdG9yIGFuZCBkZXZpY2VTY2FsZUZhY3Rvci4gVGhleSBhcmUgdXNl
ZCB0byBkZXRlcm1pbmUgY29udGVudHMgc2NhbGUgZmFjdG9yIGNvbXBvc2l0ZXIgbGF5ZXJzLgor
CisgICAgICAgICogc3JjL1BhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6T3Zlcmxh
eUdyYXBoaWNzTGF5ZXJDbGllbnRJbXBsOjpkZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChX
ZWJLaXQ6Ok92ZXJsYXlHcmFwaGljc0xheWVyQ2xpZW50SW1wbDo6cGFnZVNjYWxlRmFjdG9yKToK
KwogMjAxMS0xMS0xNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIEhvc3RXaW5kb3cgc2NyZWVuVG9XaW5kb3cvd2luZG93VG9TY3JlZW4gc2hvdWxkIGJl
IHNjcmVlblRvUm9vdFZpZXcvcm9vdFZpZXdUb1NjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJl
VXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9C
aXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRleCAwNzFkZTY0ODQzOGFkMzJj
MGM0ZTZlYzg5YzM4ZjY1YWE4MTM1NDk1Li4wMDM4NjI5YWYzOWQ3ZGRhMDllZjJhYmM4Y2FkNmFk
Nzg3ZDk5ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRtYXBDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyLmNwcApAQCAtNzcsNyArNzcsNyBAQCBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1w
bGVkVGV4ZWxGb3JtYXQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6c2FtcGxlZAog
ICAgICAgICAgICAgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQSA6
IExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdEJHUkE7CiB9CiAKLXZvaWQg
Qml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IElu
dFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgaW50IGJvcmRlclRl
eGVscykKK3ZvaWQgQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBk
YXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwg
aW50IGJvcmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSkKIHsKICAgICBtX3RleFN1Yklt
YWdlLnNldFN1YkltYWdlU2l6ZSh0aWxlU2l6ZSk7CiAKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBC
aXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50
UmVjdCYgY29udGVudFJlY3QKICAgICBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6VGV4dE9wdGlv
biB0ZXh0T3B0aW9uID0KICAgICAgICAgYm9yZGVyVGV4ZWxzID8gUGxhdGZvcm1DYW52YXM6OlBh
aW50ZXI6OkdyYXlzY2FsZVRleHQgOiBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6U3VicGl4ZWxU
ZXh0OwogICAgIFBsYXRmb3JtQ2FudmFzOjpQYWludGVyIGNhbnZhc1BhaW50ZXIoJm1fY2FudmFz
LCB0ZXh0T3B0aW9uKTsKLSAgICBwYWludENvbnRlbnRzKCpjYW52YXNQYWludGVyLmNvbnRleHQo
KSwgY29udGVudFJlY3QpOworICAgIHBhaW50Q29udGVudHMoKmNhbnZhc1BhaW50ZXIuY29udGV4
dCgpLCBjb250ZW50UmVjdCwgY29udGVudHNTY2FsZSk7CiB9CiAKIHZvaWQgQml0bWFwQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcjo6dXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQsIFRleHR1cmVBbGxvY2F0b3IqIGFsbG9jYXRvciwgTWFuYWdlZFRleHR1cmUqIHRl
eHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Qml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCmlu
ZGV4IDY3NWRkZGQ1YjQ5YjIxYzBmNzViOGZhNDIyODljYzJmMTBlNTRhNDQuLmM4ZTZlMDJkYTJm
YzY1N2JkNjlkNzM0M2M3YjM5MDJiOTUzNWEzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0JpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9CaXRt
YXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVh
dGVUZXh0dXJlKFRleHR1cmVNYW5hZ2VyKik7CiAgICAgdmlydHVhbCBPcmllbnRhdGlvbiBvcmll
bnRhdGlvbigpIHsgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6OkJvdHRvbVVwT3JpZW50YXRp
b247IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQo
R0MzRGVudW0gdGV4dHVyZUZvcm1hdCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0
ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGlu
dCBib3JkZXJUZXhlbHMpOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3Qg
SW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVy
VGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKTsKICAgICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0
KEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9jYXRvciosIE1hbmFnZWRUZXh0dXJlKiwg
Y29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAppbmRl
eCBhM2U4ZjdiN2JmM2Q2MDA4ZGViMGM2MzhhYTM3MTE1Zjk3YTJhNmJhLi4xMjkxOTQ5MGVlNzFk
MzAwYTVkYjdlMmVhMjkwY2MzYWZjZWY0NGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkxheWVyUGFpbnRlckNocm9taXVtLmgiCiAjaW5jbHVkZSAi
VHJhY2VFdmVudC5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDUsMTIgKzQ2LDI3IEBAIENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6
On5DYW52YXNMYXllclRleHR1cmVVcGRhdGVyKCkKIHsKIH0KIAotdm9pZCBDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyOjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgSW50UmVjdCYgY29udGVudFJlY3QpCit2b2lkIENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6
OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBj
b250ZW50UmVjdCwgZmxvYXQgY29udGVudHNTY2FsZSkKIHsKICAgICBjb250ZXh0LnRyYW5zbGF0
ZSgtY29udGVudFJlY3QueCgpLCAtY29udGVudFJlY3QueSgpKTsKICAgICB7CiAgICAgICAgIFRS
QUNFX0VWRU5UKCJDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpwYWludCIsIHRoaXMsIDApOwot
ICAgICAgICBtX3BhaW50ZXItPnBhaW50KGNvbnRleHQsIGNvbnRlbnRSZWN0KTsKKworICAgICAg
ICBJbnRSZWN0IHNjYWxlZENvbnRlbnRSZWN0ID0gY29udGVudFJlY3Q7CisKKyAgICAgICAgaWYg
KGNvbnRlbnRzU2NhbGUgIT0gMS4wKSB7CisgICAgICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAg
ICAgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKGNvbnRlbnRzU2NhbGUsIGNvbnRlbnRz
U2NhbGUpKTsKKworICAgICAgICAgICAgRmxvYXRSZWN0IHJlY3QgPSBjb250ZW50UmVjdDsKKyAg
ICAgICAgICAgIHJlY3Quc2NhbGUoMSAvIGNvbnRlbnRzU2NhbGUpOworICAgICAgICAgICAgc2Nh
bGVkQ29udGVudFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpOworICAgICAgICB9CisKKyAg
ICAgICAgbV9wYWludGVyLT5wYWludChjb250ZXh0LCBzY2FsZWRDb250ZW50UmVjdCk7CisKKyAg
ICAgICAgaWYgKGNvbnRlbnRzU2NhbGUgIT0gMS4wKQorICAgICAgICAgICAgIGNvbnRleHQucmVz
dG9yZSgpOwogICAgIH0KICAgICBtX2NvbnRlbnRSZWN0ID0gY29udGVudFJlY3Q7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNM
YXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKaW5kZXggZmQ3OWEwNGQwYTM2ZDc5
NmE0ZTdmMzM0MzMxNzJhODIwNGJjMTQ5ZS4uYThmZWZmMzQyMmIxYjg1MzBiOGY2ODlmZjJjNTY2
NzY2MGJlZDVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaApA
QCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcihQYXNzT3duUHRyPExheWVyUGFpbnRlckNocm9taXVtPik7CiAK
LSAgICB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYg
Y29udGVudFJlY3QpOworICAgIHZvaWQgcGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgZmxvYXQgY29udGVudHNTY2FsZSk7CiAgICAgY29u
c3QgSW50UmVjdCYgY29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRSZWN0OyB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCAx
NTZiMmU5MGVmNDVlNjkwMDc4MmVhNTk0ODA4YjZhZDgyZTNmYmM5Li40YmVhYTUyNTVjYTYyODgz
OWZhNDdiYWQ2NWU2MTRiNmZjNTUxNzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5jcHAKQEAgLTE5MSw2ICsxOTEsOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
c2V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiAKIHZvaWQgR3JhcGhpY3NMYXllckNocm9t
aXVtOjpzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkK
IHsKKyAgICAvLyBDYWxsIHRoaXMgbWV0aG9kIGZpcnN0IHRvIGFzc2lnbiBjb250ZW50cyBzY2Fs
ZSB0byBMYXllckNocm9taXVtIHNvIHRoZSBwYWludGVyIGNhbiBhcHBseSB0aGUgc2NhbGUgdHJh
bnNmb3JtLgorICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsKKwogICAgIGlmICh0cmFuc2Zvcm0g
PT0gbV90cmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIApAQCAtNTcxLDYgKzU3NCw4IEBAIHZv
aWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVMYXllclByZXNlcnZlczNEKCkKICAgICAg
ICAgLy8gU2V0IHRoZSBvbGQgbGF5ZXIgdG8gb3BhY2l0eSBvZiAxLiBGdXJ0aGVyIGRvd24gd2Ug
d2lsbCBzZXQgdGhlIG9wYWNpdHkgb24gdGhlIHRyYW5zZm9ybSBsYXllci4KICAgICAgICAgbV9s
YXllci0+c2V0T3BhY2l0eSgxKTsKIAorICAgICAgICBtX2xheWVyLT5zZXRDb250ZW50c1NjYWxl
KGNvbnRlbnRzU2NhbGUoKSk7CisKICAgICAgICAgLy8gTW92ZSB0aGlzIGxheWVyIHRvIGJlIGEg
Y2hpbGQgb2YgdGhlIHRyYW5zZm9ybSBsYXllci4KICAgICAgICAgaWYgKG1fbGF5ZXItPnBhcmVu
dCgpKQogICAgICAgICAgICAgbV9sYXllci0+cGFyZW50KCktPnJlcGxhY2VDaGlsZChtX2xheWVy
LmdldCgpLCBtX3RyYW5zZm9ybUxheWVyLmdldCgpKTsKQEAgLTYzNCw2ICs2MzksMTUgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzUmVjdCgpCiAgICAgbV9jb250
ZW50c0xheWVyLT5zZXRCb3VuZHMoSW50U2l6ZShtX2NvbnRlbnRzUmVjdC53aWR0aCgpLCBtX2Nv
bnRlbnRzUmVjdC5oZWlnaHQoKSkpOwogfQogCit2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
dXBkYXRlQ29udGVudHNTY2FsZSgpCit7CisgICAgLy8gSWYgcGFnZSBzY2FsZSBpcyBhbHJlYWR5
IGFwcGxpZWQgdGhlbiB0aGVyZSdzIG5vIG5lZWQgdG8gYXBwbHkgaXQgYWdhaW4uCisgICAgaWYg
KGFwcGxpZXNQYWdlU2NhbGUoKSB8fCAhbV9sYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9sYXllci0+c2V0Q29udGVudHNTY2FsZShjb250ZW50c1NjYWxlKCkpOworfQorCiB2b2lkIEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKExheWVyQ2hyb21pdW0qIGNv
bnRlbnRzTGF5ZXIpCiB7CiAgICAgaWYgKGNvbnRlbnRzTGF5ZXIgPT0gbV9jb250ZW50c0xheWVy
KQpAQCAtNjY0LDYgKzY3OCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBD
b250ZW50c0xheWVyKExheWVyQ2hyb21pdW0qIGNvbnRlbnRzTGF5ZXIpCiAgICAgdXBkYXRlTmFt
ZXMoKTsKIH0KIAorZmxvYXQgR3JhcGhpY3NMYXllckNocm9taXVtOjpjb250ZW50c1NjYWxlKCkg
Y29uc3QKK3sKKyAgICBpZiAoIWFwcGxpZXNQYWdlU2NhbGUoKSkKKyAgICAgICAgcmV0dXJuIHBh
Z2VTY2FsZUZhY3RvcigpICogZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gMTsKK30K
KwogLy8gVGhpcyBmdW5jdGlvbiBzaW1wbHkgbWltaWNzIHRoZSBvcGVyYXRpb24gb2YgR3JhcGhp
Y3NMYXllckNBCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlT3BhY2l0eU9uTGF5
ZXIoKQogewpAQCAtNjcyLDYgKzY5Myw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1
cGRhdGVPcGFjaXR5T25MYXllcigpCiAKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpkZXZp
Y2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogeworICAgIHVwZGF0ZUNvbnRlbnRzU2NhbGUo
KTsKICAgICBpZiAobV9sYXllcikKICAgICAgICAgbV9sYXllci0+cGFnZVNjYWxlQ2hhbmdlZCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCBmNzNlNzMzNzM5YmEx
NmE1MjIxMWIzMTFlMjY5YzUzNmJjYWJhNzIwLi5iMDVkMDdiZjYzN2JmNWNmZTBlNGJlYzRlMzkz
ZGJhN2IwYzAzZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtOTQs
MTMgKzk0LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91
bmRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihj
b25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNl
T3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGZ1bmN0
aW9ucyBpbXBsZW1lbnQgdGhlIENDTGF5ZXJEZWxlZ2F0ZSBpbnRlcmZhY2UuCiAgICAgdmlydHVh
bCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRl
bnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNsaXApOwogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBh
Z2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVPcGFjaXR5
T25MYXllcigpOwogCkBAIC0xMjUsOSArMTI1LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVDb250ZW50c0ltYWdlKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1ZpZGVvKCk7CiAgICAg
dm9pZCB1cGRhdGVDb250ZW50c1JlY3QoKTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzU2NhbGUo
KTsKIAogICAgIHZvaWQgc2V0dXBDb250ZW50c0xheWVyKExheWVyQ2hyb21pdW0qKTsKICAgICBM
YXllckNocm9taXVtKiBjb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xh
eWVyLmdldCgpOyB9CisgICAgZmxvYXQgY29udGVudHNTY2FsZSgpIGNvbnN0OwogCiAgICAgU3Ry
aW5nIG1fbmFtZUJhc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IDBi
ZDgyYWUxYTE4YTI1MzBmODc0MjBlNDgxZDBkNWNhMjMwYjkwMTIuLjA2YjQ1YTYyODEzY2ZkZWQw
ZDI5OTc3MTc1MDc0ZTEwZmEwNDY2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNw
cApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQSA6IExheWVyVGV4dHVyZVVwZGF0ZXI6OlNh
bXBsZWRUZXhlbEZvcm1hdEJHUkE7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVU
b1VwZGF0ZShjb25zdCBJbnRSZWN0JiAvKiBjb250ZW50UmVjdCAqLywgY29uc3QgSW50U2l6ZSYg
dGlsZVNpemUsIGludCAvKiBib3JkZXJUZXhlbHMgKi8pCisgICAgdmlydHVhbCB2b2lkIHByZXBh
cmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiAvKiBjb250ZW50UmVjdCAqLywgY29uc3QgSW50U2l6
ZSYgdGlsZVNpemUsIGludCAvKiBib3JkZXJUZXhlbHMgKi8sIGZsb2F0IC8qIGNvbnRlbnRzU2Nh
bGUgKi8pCiAgICAgewogICAgICAgICBtX3RleFN1YkltYWdlLnNldFN1YkltYWdlU2l6ZSh0aWxl
U2l6ZSk7CiAgICAgfQpAQCAtMjA4LDUgKzIwOCwxMSBAQCB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1
bTo6Y3JlYXRlVGV4dHVyZVVwZGF0ZXIoY29uc3QgQ0NMYXllclRyZWVIb3N0KiBob3N0KQogICAg
IG1fdGV4dHVyZVVwZGF0ZXIgPSBJbWFnZUxheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0ZShob3N0
LT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkudXNpbmdNYXBTdWIpOwogfQogCitib29sIElt
YWdlTGF5ZXJDaHJvbWl1bTo6bmVlZHNDb250ZW50c1NjYWxlKCkgY29uc3QKK3sKKyAgICAvLyBD
b250ZW50cyBzY2FsZSBpcyBub3QgbmVlZCBmb3IgaW1hZ2UgbGF5ZXIgYmVjYXVzZSB0aGlzIGNh
biBiZSBkb25lIGluIGNvbXBvc2l0b3IgbW9yZSBlZmZpY2llbnRseS4KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIH0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxh
eWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ltYWdlTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDFhZmNjZmUyZmRjZTY0NDc1YTc0YWIyYzkyNmQw
NDJjYjVmMzc2NzQuLjVmZTRmMjY2NjhiZGNjM2UyOWYwNGNmZmNkYTg4MmE3M2MzMWUzMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdl
TGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50c0lmRGlydHkoKTsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250ZW50c1Nj
YWxlKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldENvbnRlbnRzKEltYWdlKiBpbWFnZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMzYyOTA4ZDBiNGRmMTI2N2JiMjRmYjM2OGMwOGQ4M2Y2
ZGExZjIzYS4uNTRhN2Y4ODU3ZDY4OTAzODZhZWZhODU2NmE4ZDI3ZDVkNWNlNTAyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTczLDYgKzczLDcgQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJD
aHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9yZXBsaWNhTGF5ZXIo
MCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZSgw
KQorICAgICwgbV9jb250ZW50c1NjYWxlKDEuMCkKICAgICAsIG1fcGFnZVNjYWxlRGlydHkoZmFs
c2UpCiB7CiB9CkBAIC0zMjksNiArMzMwLDEzIEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0RGVi
dWdCb3JkZXJXaWR0aChmbG9hdCB3aWR0aCkKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCit2
b2lkIExheWVyQ2hyb21pdW06OnNldENvbnRlbnRzU2NhbGUoZmxvYXQgY29udGVudHNTY2FsZSkK
K3sKKyAgICBpZiAoIW5lZWRzQ29udGVudHNTY2FsZSgpKQorICAgICAgICByZXR1cm47CisgICAg
bV9jb250ZW50c1NjYWxlID0gY29udGVudHNTY2FsZTsKK30KKwogdm9pZCBMYXllckNocm9taXVt
OjpjcmVhdGVSZW5kZXJTdXJmYWNlKCkKIHsKICAgICBBU1NFUlQoIW1fcmVuZGVyU3VyZmFjZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllckNocm9taXVtLmgKaW5kZXggYWFiOWQzODg1ODYwN2M4NDU5ZjFjZGI3MzQ5YjA5ZGQ0
YjIzMjVjNy4uMzc0MDAxZTk1YWQzNzM1MmNhNjI2YzI4NmZkZjJhYmJhYTNlOTQwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaApAQCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWdlU2NhbGVD
aGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5ID0gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBw
cm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBuZWVkc0Nv
bnRlbnRzU2NhbGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gVGhlc2UgZXhp
c3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0RlYnVnQm9yZGVyKCkpLgogICAgIHZvaWQg
c2V0RGVidWdCb3JkZXJDb2xvcihjb25zdCBDb2xvciYpOwpAQCAtMTk2LDYgKzE5Nyw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNjcmVlblNwYWNlVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBtYXRyaXgpIHsgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybSA9IG1hdHJpeDsgfQog
ICAgIGNvbnN0IEludFJlY3QmIGRyYXdhYmxlQ29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBt
X2RyYXdhYmxlQ29udGVudFJlY3Q7IH0KICAgICB2b2lkIHNldERyYXdhYmxlQ29udGVudFJlY3Qo
Y29uc3QgSW50UmVjdCYgcmVjdCkgeyBtX2RyYXdhYmxlQ29udGVudFJlY3QgPSByZWN0OyB9Cisg
ICAgZmxvYXQgY29udGVudHNTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNTY2FsZTsg
fQorICAgIHZvaWQgc2V0Q29udGVudHNTY2FsZShmbG9hdCk7CiAKICAgICAvLyBSZXR1cm5zIHRy
dWUgaWYgYW55IG9mIHRoZSBsYXllcidzIGRlc2NlbmRhbnRzIGhhcyBjb250ZW50IHRvIGRyYXcu
CiAgICAgYm9vbCBkZXNjZW5kYW50RHJhd3NDb250ZW50KCk7CkBAIC0yODQsNiArMjg3LDcgQEAg
cHJpdmF0ZToKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX2RyYXdUcmFuc2Zvcm07CiAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggbV9zY3JlZW5TcGFjZVRyYW5zZm9ybTsKICAgICBJbnRSZWN0
IG1fZHJhd2FibGVDb250ZW50UmVjdDsKKyAgICBmbG9hdCBtX2NvbnRlbnRzU2NhbGU7CiAKICAg
ICBTdHJpbmcgbV9uYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgKaW5kZXggNDUy
NWNlN2ViMTFjOWM1NmVlMWQyNzg1MmYwNzJmMzk1NWM4MTFlZC4uOTA4ODRjZmQ1YmUwZmNlMTg0
NzI3YWNhMjgwNDZhMjY0N2JjMmM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXIuaApA
QCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBmb3JtYXQgc3BlY2lmaWVzIHRo
ZSBjb21wb25lbnQgb3JkZXIgaW4gdGhlIHNhbXBsZWQgdGV4ZWwuCiAgICAgLy8gSWYgdGhlIGZv
cm1hdCBpcyBUZXhlbEZvcm1hdEJHUkEsIHZlYzQueCBpcyBibHVlIGFuZCB2ZWM0LnogaXMgcmVk
LgogICAgIHZpcnR1YWwgU2FtcGxlZFRleGVsRm9ybWF0IHNhbXBsZWRUZXhlbEZvcm1hdChHQzNE
ZW51bSB0ZXh0dXJlRm9ybWF0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0
ZShjb25zdCBJbnRSZWN0JiAvKiBjb250ZW50UmVjdCAqLywgY29uc3QgSW50U2l6ZSYgLyogdGls
ZVNpemUgKi8sIGludCAvKiBib3JkZXJUZXhlbHMgKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBw
cmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgLyogY29udGVudFJlY3QgKi8sIGNvbnN0IElu
dFNpemUmIC8qIHRpbGVTaXplICovLCBpbnQgLyogYm9yZGVyVGV4ZWxzICovLCBmbG9hdCAvKiBj
b250ZW50c1NjYWxlICovKSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVy
ZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAK
aW5kZXggZGNmZDYzZTcxOTM0MmFlNzUwYmRmZWFhOGNhYjMyZjFjZmZjODJjMi4uYjc1MTViZmQx
MGI1NDBkNjRhYjZhYTllNzg1ZWVkYWE0MWI4ZTc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJl
VXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5jcHAKQEAgLTQ4LDEyICs0OCwx
MiBAQCBTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjp+U2tQaWN0dXJlQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcigpCiB7CiB9CiAKLXZvaWQgU2tQaWN0dXJlQ2FudmFzTGF5ZXJU
ZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0
LCBjb25zdCBJbnRTaXplJiAvKiB0aWxlU2l6ZSAqLywgaW50IC8qIGJvcmRlclRleGVscyAqLykK
K3ZvaWQgU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6cHJlcGFyZVRvVXBkYXRl
KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiAvKiB0aWxlU2l6ZSAq
LywgaW50IC8qIGJvcmRlclRleGVscyAqLywgZmxvYXQgY29udGVudHNTY2FsZSkKIHsKICAgICBT
a0NhbnZhcyogY2FudmFzID0gbV9waWN0dXJlLmJlZ2luUmVjb3JkaW5nKGNvbnRlbnRSZWN0Lndp
ZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdodCgpKTsKICAgICBQbGF0Zm9ybUNvbnRleHRTa2lhIHBs
YXRmb3JtQ29udGV4dChjYW52YXMpOwogICAgIEdyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRl
eHQoJnBsYXRmb3JtQ29udGV4dCk7Ci0gICAgcGFpbnRDb250ZW50cyhncmFwaGljc0NvbnRleHQs
IGNvbnRlbnRSZWN0KTsKKyAgICBwYWludENvbnRlbnRzKGdyYXBoaWNzQ29udGV4dCwgY29udGVu
dFJlY3QsIGNvbnRlbnRzU2NhbGUpOwogICAgIG1fcGljdHVyZS5lbmRSZWNvcmRpbmcoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
U2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRl
ci5oCmluZGV4IDg5MWE2ZDNjOWYxMjIwMWNhNGIxODE3NDBiZjBmYmE0N2UwMWRiNTQuLjQ0MGY4
YjAzZWE0ZjI3MzlhOTc1NDM4NjdhYzdlYjE1NDAzMGQwYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NrUGljdHVyZUNhbnZhc0xheWVyVGV4
dHVyZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Ta1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFNrUGljdHVyZUNhbnZhc0xheWVy
VGV4dHVyZVVwZGF0ZXIoUGFzc093blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4pOwogCi0gICAg
dmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwg
Y29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpOworICAgIHZpcnR1YWwg
dm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IElu
dFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKTsK
ICAgICB2b2lkIGRyYXdQaWN0dXJlKFNrQ2FudmFzKik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGls
ZWRMYXllckNocm9taXVtLmNwcAppbmRleCAyNjBhMTc1YzQyOGMxNTlhNjM4ZTAyNDc1YTRiNWRl
NDIxZDJlYTRhLi40ZjZmZTFmZGE5YjM1NWRjYWYwNTg1NjZjYTljZTdlZTQ5YWZmOTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExh
eWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5o
IgogI2luY2x1ZGUgIk1hbmFnZWRUZXh0dXJlLmgiCisjaW5jbHVkZSAiTWF0aEV4dHJhcy5oIgog
I2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKICNpbmNsdWRlICJjYy9DQ0xheWVySW1wbC5oIgogI2lu
Y2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKQEAgLTEzNyw2ICsxMzgsMTYgQEAgYm9vbCBU
aWxlZExheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuICFtX3Nr
aXBzRHJhdzsKIH0KIAorYm9vbCBUaWxlZExheWVyQ2hyb21pdW06Om5lZWRzQ29udGVudHNTY2Fs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0ludFNpemUgVGlsZWRMYXllckNo
cm9taXVtOjpjb250ZW50Qm91bmRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW50U2l6ZShscm91
bmRmKGJvdW5kcygpLndpZHRoKCkgKiBjb250ZW50c1NjYWxlKCkpLCBscm91bmRmKGJvdW5kcygp
LmhlaWdodCgpICogY29udGVudHNTY2FsZSgpKSk7Cit9CisKIHZvaWQgVGlsZWRMYXllckNocm9t
aXVtOjpzZXRMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdCogaG9zdCkKIHsKICAgICBMYXll
ckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0KGhvc3QpOwpAQCAtMzcxLDcgKzM4Miw3IEBAIHZv
aWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29u
dGVudFJlY3QpCiAgICAgLy8gSG93ZXZlciwgd2UgY2FuJ3QgZnJlZSB0aGUgbWVtb3J5IGJhY2tp
bmcgdGhlIEdyYXBoaWNzQ29udGV4dCB1bnRpbCB0aGUgcGFpbnQgZmluaXNoZXMsCiAgICAgLy8g
c28gd2UgZ3JhYiBhIGxvY2FsIHJlZmVyZW5jZSBoZXJlIHRvIGhvbGQgdGhlIHVwZGF0ZXIgYWxp
dmUgdW50aWwgdGhlIHBhaW50IGNvbXBsZXRlcy4KICAgICBSZWZQdHI8TGF5ZXJUZXh0dXJlVXBk
YXRlcj4gcHJvdGVjdG9yKHRleHR1cmVVcGRhdGVyKCkpOwotICAgIHRleHR1cmVVcGRhdGVyKCkt
PnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgbV90aWxlci0+dGlsZVNpemUoKSwgbV90aWxl
ci0+aGFzQm9yZGVyVGV4ZWxzKCkpOworICAgIHRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1Vw
ZGF0ZShtX3BhaW50UmVjdCwgbV90aWxlci0+dGlsZVNpemUoKSwgbV90aWxlci0+aGFzQm9yZGVy
VGV4ZWxzKCksIGNvbnRlbnRzU2NhbGUoKSk7CiAKICAgICBtX3RpbGVyLT5jb250ZW50UmVjdFRv
VGlsZUluZGljZXMobV9yZXF1ZXN0ZWRVcGRhdGVSZWN0LCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0
b20pOwogICAgIGZvciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyArK2opIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJD
aHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGls
ZWRMYXllckNocm9taXVtLmgKaW5kZXggNWRhZjBmMDE5NDdhOTk0N2NkMjM1ZjU1ZmI3Mzk1OWU0
NDdiMWY1Ni4uZjBiNTQ5ZTExOWYwMjM5OWI3Y2MyMDYxNDI0MzI2M2UxMzgxZGFkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXll
ckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGlsZWRMYXllckNocm9taXVtLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKik7CiAKICAgICB2aXJ0dWFs
IGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIG5lZWRzQ29udGVu
dHNTY2FsZSgpIGNvbnN0OworCisgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRCb3VuZHMoKSBj
b25zdDsKIAogICAgIC8vIFJlc2VydmVzIGFsbCBleGlzdGluZyBhbmQgdmFsaWQgdGlsZSB0ZXh0
dXJlcyB0byBwcm90ZWN0IHRoZW0gZnJvbSBiZWluZwogICAgIC8vIHJlY3ljbGVkIGJ5IHRoZSB0
ZXh0dXJlIG1hbmFnZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Q
YWdlT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5j
cHAKaW5kZXggZjRhMjdmYjUyY2E3YzBhMmYzOTZhYTYxNTVhM2IzMzBmM2MyNjZiYS4uZjFiODk4
Yjk2MzRlOTEwZjVjODY1ZjAyZWI0ZWViNmQzNDNjYjA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1BhZ2VPdmVybGF5LmNwcApAQCAtNzAsNiArNzAsMTYgQEAgcHVibGljOgogICAg
ICAgICBtX3BhZ2VPdmVybGF5Q2xpZW50LT5wYWludFBhZ2VPdmVybGF5KGNvbnRleHQpOwogICAg
IH0KIAorICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1fd2ViVmlld0ltcGwtPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAg
fQorCisgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fd2ViVmlld0ltcGwtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIH0KKwog
ICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QKICAgICB7CiAgICAgICAg
IHJldHVybiBtX3dlYlZpZXdJbXBsLT5wYWdlKCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRl
cnMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBmMzI3ZGI4YzJmNWMzZDU1Mjk3ODM3ZmJiYjUyN2E3NzdjMmI0OWJmLi4w
YzE4NDYxNWI2YmM5ZDlkZjAwNGQ2ZjY2NjFmZTE2ZDUwY2E3Y2U0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMTEtMTEtMDMgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBbY2hyb21pdW1dIGNvbXBvc2l0ZWQgbGF5ZXJzIGFyZSBibHVycnkgd2l0aCBhIHpvb20t
aW4gcGFnZSBzY2FsZSBmYWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxMjI1CisKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNlcyB0aGF0IGhhcyBw
b3NpdGlvbjpmaXhlZCBhbmQgcGFnZSBzY2FsZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdl
LXNjYWxlLWRvd24uaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10
cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Ogor
CiAyMDExLTExLTE1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgTW92ZSBwbHVnaW5zL2ludmFsaWRhdGVfcmVjdC5odG1sIHRvIHRoZSBjb21wb3NpdGlu
ZyBkaXJlY3Rvcnkgc2luY2UgaXQgaXMgYSBjb21wb3NpdG9yIHRlc3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYzdkM2I4YWYzNjQ0OWQwY2M4YTBkNTBjNDg5MzQ2MTI4ZTRjYjNj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMiBAQAorVEVTVAorVEVTVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBv
c2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg4NjY2Y2EzNDVkMGY5ZjMy
MTVhMTZmYjg3MGU4OTczYzU4YTEzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorLmZpeGVkLW5vLXotaW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
IGxlZnQ6IDEwcHg7Cit9CisuZml4ZWQtd2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVk
OworICB6LWluZGV4OiAxOworICBsZWZ0OiAxMHB4OworfQorOjotd2Via2l0LXNjcm9sbGJhciB7
CisgIHdpZHRoOiAwcHg7CisgIGhlaWdodDogMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Cisg
IGZ1bmN0aW9uIHNjYWxlKCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2lu
ZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1l
bnQsIHRydWUpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICBldmVudFNlbmRl
ci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgIH0KKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7IiBzdHlsZT0id2lkdGg6MjAwMHB4O2hlaWdodDoyMDAw
cHg7Ij4KKzxkaXYgY2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2
IGNsYXNzPSJmaXhlZC13aXRoLXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjN2QzYjhhZjM2NDQ5ZDBjYzhhMGQ1MGM0ODkzNDYxMjhl
NGNiM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMiBAQAorVEVTVAorVEVTVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzU1ZGRhNjA4Mzg2NDhjYjg4MWYzYTMzMDM1
NmEzNzlkNjViODg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTAs
MCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZp
eGVkLW5vLXotaW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7Cit9
CisuZml4ZWQtd2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAx
OworICBsZWZ0OiAxMHB4OworfQorOjotd2Via2l0LXNjcm9sbGJhciB7CisgIHdpZHRoOiAwcHg7
CisgIGhlaWdodDogMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxl
KCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5z
ZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgy
LCAwLCAwKTsKKyAgICB9CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJz
Y2FsZSgpOyIgc3R5bGU9IndpZHRoOjIwMDBweDtoZWlnaHQ6MjAwMHB4OyI+Cis8ZGl2IGNsYXNz
PSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGRpdiBjbGFzcz0iZml4ZWQtd2l0
aC16LWluZGV4Ij5URVNUPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzc0NWRmNDgzODY2ZDllNzQyYjIwZDA1MWFm
OWM1Y2JhY2U0OWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3du
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1RFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hZGY2OWU2NjNkYThmMjNiOTg1M2JlNDBiNWUxOGIwNmM3YWZkMDBiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTAsMCArMSwz
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZpeGVkLW5v
LXotaW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7Cit9CisuZml4
ZWQtd2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAxOworICBs
ZWZ0OiAxMHB4OworfQorOjotd2Via2l0LXNjcm9sbGJhciB7CisgIHdpZHRoOiAwcHg7CisgIGhl
aWdodDogMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwg
MCk7CisgICAgfQorCisgICAgdmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWUn
KS5jb250ZW50RG9jdW1lbnQub3BlbigpOworICAgIGQud3JpdGUoIjxkaXYgc3R5bGU9J3Bvc2l0
aW9uOmZpeGVkOyB6LWluZGV4OiAxOyBsZWZ0OyAxMHB4Oyc+VEVTVDwvZGl2PiIpOworICAgIGQu
Y2xvc2UoKTsKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKTsi
IHN0eWxlPSJ3aWR0aDoyMDAwcHg7aGVpZ2h0OjIwMDBweDsiPgorPGRpdiBjbGFzcz0iZml4ZWQt
bm8tei1pbmRleCI+VEVTVDwvZGl2Pjxicj4KKzxpZnJhbWUgaWQ9ImZyYW1lIj48L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM3
NDVkZjQ4Mzg2NmQ5ZTc0MmIyMGQwNTFhZjljNWNiYWNlNDlkMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorVEVTVAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNj
YWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg1ZjYxZTljMDRkMjU5Mzk2NDg4NGM2ZTIwOTMyNDgwZGRl
NGE3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZml4
ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDogMTBweDsKK30K
Ky5maXhlZC13aXRoLXotaW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7CisgIHotaW5kZXg6IDE7
CisgIGxlZnQ6IDEwcHg7Cit9Cis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgd2lkdGg6IDBweDsK
KyAgaGVpZ2h0OiAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rpb24gdGVzdCgp
IHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwg
MCwgMCk7CisgICAgfQorCisgICAgdmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJh
bWUnKS5jb250ZW50RG9jdW1lbnQub3BlbigpOworICAgIGQud3JpdGUoIjxkaXYgc3R5bGU9J3Bv
c2l0aW9uOmZpeGVkOyB6LWluZGV4OiAxOyBsZWZ0OyAxMHB4Oyc+VEVTVDwvZGl2PiIpOworICAg
IGQuY2xvc2UoKTsKKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3Qo
KTsiIHN0eWxlPSJ3aWR0aDoyMDAwcHg7aGVpZ2h0OjIwMDBweDsiPgorPGRpdiBjbGFzcz0iZml4
ZWQtbm8tei1pbmRleCI+VEVTVDwvZGl2Pjxicj4KKzxpZnJhbWUgaWQ9ImZyYW1lIj48L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUt
ZG93bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFjN2QzYjhhZjM2NDQ5ZDBjYzhhMGQ1MGM0ODkzNDYxMjhlNGNiM2MK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMiBAQAorVEVTVAorVEVTVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1kb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZTlkOWNjMzMzYTFjODdlNzMxZWM1NDMwZDQ4OGNmNmRjNGQ4MTA2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTAsMCAr
MSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZpeGVk
LW5vLXotaW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7CisgIC13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpIHJvdGF0ZSgyMGRlZyk7Cit9CisuZml4
ZWQtd2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAxOworICBs
ZWZ0OiAxMHB4OworICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3RhdGUo
MjBkZWcpOworfQorOjotd2Via2l0LXNjcm9sbGJhciB7CisgIHdpZHRoOiAwcHg7CisgIGhlaWdo
dDogMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxlKCkgeworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVD
b21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQodHJ1ZSk7CisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDAp
OworICAgIH0KKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNjYWxlKCk7
IiBzdHlsZT0id2lkdGg6MjAwMHB4O2hlaWdodDoyMDAwcHg7Ij4KKzxkaXYgY2xhc3M9ImZpeGVk
LW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNsYXNzPSJmaXhlZC13aXRoLXotaW5k
ZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWM3ZDNiOGFmMzY0NDlkMGNjOGEwZDUwYzQ4OTM0NjEyOGU0Y2Iz
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMiBAQAorVEVTVAorVEVTVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFn
ZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3
ZmIzZGZhYmQzNzEyMWY4MzBmMzlmZmJjMDU3ZjA5MDZmNmMwZWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zv
cm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmZpeGVkLW5vLXotaW5kZXggeworICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEwcHg7CisgIC13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVYKDEwcHgpIHJvdGF0ZSgyMGRlZyk7Cit9CisuZml4ZWQtd2l0aC16LWluZGV4IHsK
KyAgcG9zaXRpb246IGZpeGVkOworICB6LWluZGV4OiAxOworICBsZWZ0OiAxMHB4OworICAtd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3RhdGUoMjBkZWcpOworfQorOjotd2Vi
a2l0LXNjcm9sbGJhciB7CisgIHdpZHRoOiAwcHg7CisgIGhlaWdodDogMHB4OworfQorPC9zdHls
ZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHNjYWxlKCkgeworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVk
UG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Cisg
ICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICB9CisgIH0KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzY2FsZSgpOyIgc3R5bGU9IndpZHRoOjIwMDBw
eDtoZWlnaHQ6MjAwMHB4OyI+Cis8ZGl2IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9k
aXY+PGJyPgorPGRpdiBjbGFzcz0iZml4ZWQtd2l0aC16LWluZGV4Ij5URVNUPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE5NDkyYTVkMDk3Y2NkMjNhY2M5
MTBhZWIxM2UxNDhiNWNmOTY0MwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjk5MQp6Y21lQVNA
Tj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVCFz
YGcKenF0cWxidiFwWnclVCRBOEdZZDtvT0d8Xn5HPmFyZFZAb3FiJU9zYkghSTJDTSs+Vnx1anYq
Q3Utcm1gR19FdigzCnpMIWVDSDBoU0tJaCg9ZHwkcm1takZiWX1ZZFlHZF9CeTclJDxFfnhPdUFT
I0o/SU5Gdj5hRX1Ld2U5PXd5JGxRcwp6S0VLVmtYSjl6Ky16fFpXO1J1VHVnTSR4QGspeVZ1T309
aWcrfS0hekZUWFZUX2EjK2BxMlohV0xheTJEbW9uMlcKemU0YWxuc0laJkFjYF5lLVBhNHpman08
PThHayoySUQlIWF3WTt8Vm93ZFgxZjQyUno9eHxzTip2VlBDSmNRWENRCnpAOCpAOyY5XyUpV1Fo
M2wlPkNXXj4pQzVvQnVaPyV7cX0zcy1eMmNfMz9LTXN8M0M1Zl52KVEpX1FWX1N6anElXgp6Kzhj
TDJafkoqcTFfcm1kND93clFJbXBEJiFLdVUwRnlqRF9hcXxmdWdUVXNLdko0N29sZFR5WCZadzBH
QzRBcDgKekZjezloIV5uXz9NRig4I0M8OGVsTT8rJllHJDJgT0ckbzl0Z3dkMlJuaFFwQSFEdWNS
SWt9KmdvJWUzWE9ecyhwClJ6e1dIS2dRdSZYJVF+bG9DSUlUaWl1TTJpCgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4
cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2UwMTBlMDQ1NDZjY2NiMzU1YmViOTliNGEwNjRkZWRl
NzY0MmQyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1MDg4CnpjbWVJMD1+TDYhOHBuXlVUN3xS
JkxNdkQ0bThxYmpwYHtvRjFocGQ5cUFZPyFpSTQhNyNZN1NXNmU1SE92flUzXwp6THk8Kmc1bjdE
d2FGSyoxQiV+TkVzfHFCNUFxZkhqKiRHPktFWmw9TF9kanMlKyF5M2NXLT5YP2RDdjJFem58eSkK
emVvNC1iX0ZBOXFgd1JlfWJAM25QdUs9TD5IMl45ZUo1fUg+ZHYqNjMhPl9+UGJ7XnE9TEg+VUR1
LW4xRiUqWDd6CnpsbTg2eF58MSk+dkdEdVd8QWdOdUFLI05HZTs+MGBDb1RNWkVpYEtDQ2pybjJ5
P0ZrdFRWKEYrNUdFKlZXJUhFOwp6S2htaistYkAmMXFwMjIjcDJnM2NROFVfa20+djdUI2NhVzMm
bGs5XzQmdD9+S1l0TiNWd3dJZ1pMNj07QyhyTE8KeiNubkNBZT19JEp0YyN+QW9pPWRzY30qUUBR
PTlPbUEwPUVFYnpAME53KkoqZGRZZSk/ZWI+O1lmaEg/R2xLRz1MCnowSD55dig+bmxBdmNCKkR6
KC17X2AxJXJkMmwjb0hEWSQxQXN9NFJ0UjFMdE5ZSUAqSVBLeWZJc3Etb1JHPU5ocgp6bzJ2OCg+
MyNxSGVUMHhpRWgoOCklSTIjb0Q9VyomcTloIUJUamtubE8tKVN8YXw2ZCNheil4O241TEdHdHc3
Vn4Kem54I1NtMUIwZXBxWmRsdFZFU1IwT3h5MTZaZnp+Q3taQEMlaG1JRnR4ZSo/fHl3Wj1zUjBs
SUJDbnhkIW1DZnRwCnprNWg7ZE84SSYpcE8kQSQzWUQkU3M7YTgkPTsoO1pRYkJpfm02ZklDMzhH
THc2IXk5ejx7WT9wXnsybX49KjE/PAp6dCUoU3ZQNWxATHZFVENoaD4pUDVwbHs1ZChgZWx5R2Mm
VWd4TkApRVRjTUROb2hZQ3YybUFWLXVmXj9rKzZrTj0Kem1pOTItSnYoI3REcCVaKlRAYno0cm1p
YCQ9JnpLcCszZk4wQGtSRS1oWXpRd3JvTiRmTmUyVDlYOENqPztSaWZeCnp4Kj0+THh1YHh5dkdJ
R0ZPKFMrYHAwJWxicTJxTVAoWHBGXzw+O3NZd30zanohSkJ3fClKKUIqWXhOe1BFZnt7cAp6RDtx
MSo/eEYzIT96YkFKJSpAVW5MKmo1YUp6YH41bTU0PjU7TlZIeCVVNV50ZGkxQDwqUFo/TzxOVzcw
ZFRscjUKenVEWUI9ITxmazdtUk9GI0AkMj1+UVBNZkljWGI/RTZfbWRAejR8QnQ5KkReWkFgKSQq
UiViQEVqdllHfDVwZlhRCnpgLUs7VFJWYnQpMmohRF9MNC0pYUFjZVc7V0BLYyopI1R8NGBYT1dF
M0Y1UGdpV1RTMnojNmdRWk9ne3tNOGhtPQp6O2hRJmFgdW5CSnkteGFlRT1Nd2psdWdDVW1vTG8m
eU4zaSZAUHZSYWI+OHl3XjY+Qyp4ey1Zcnp4d3R4UHBNUVEKell9U1NnNkF2Nm85K34ybiFUNXFZ
ZTFHT3FfcW1aQTA2SUslSHBpSGBqfC1Jajd8UU0yeDU+K0k/UTNnbT9PZmQ0CnotM0BKYCpWWkpY
MX1NVSUlZGl1JTc3e2hRR05zfF4pMkFDVThQcDdzYlMqZXxjQ3dlTXNpQmNpVUw3bmxRTmpiYwp6
UVhNVCZzTGhTKHMpJVNgYThGIzNXYkJiYkNxb1MpODRHezUyZz00V29QPzMxc1M9NSMkT05gZExz
UWMqWDYtJDkKenRKeHA3c05zfE89Zz8/MDF8dzJNU1VjLS0zQFAka0JRS0p5JT1KTV8xdVZ0Z3Yy
Xj5hWHF3eUFzfXxQUWpJcU9NCnp3I3Z4QnooQTVmQVJ1Y2RzKUc2d2krdnNfM0NzbTQ8c1BrS1Q9
Qmwybmt1TmMxJU9eN05+TWZTcjhZRClGcUhEOAp6KlYlbFVlQEU3MDV0RkdUKypiJEg1MkNTTW90
PlEoOVl8LTdvPlQrV3dNYUhoR2hQJEhUeiFXWnJAOythXjJMdGQKenRTQjNrKVdzMlRIcFd9PUdY
Ui13biFKX2l7X057V0dmUFdMZE9wVF9fb1lqaDd8VDVscW9ibyt4LSNuUj9TOyk+CnpwUVZmUlde
KGlMVzxQdXxOJW8hUVJvSkg7QGNJfkdtbkxzdkEqM08reXxKPEohaTVXWiNIS3M1QEF5UjRYPXgz
Vwp6OHB6SzAxSWohLUo+QUp4QHd+V0xKWUJeUyh1dFVMe1d5UTl6YT58dik3LSY5KHF2Q0BObDhn
a1FqJDw4XmxHfX0KeiNmWXFkNmQyKjhTWGZ3OzwkZXlIX19qJjBnMFpmZHJUTmVme2Qoa1Q3Zk5L
aylNK2picXNTJCU1KXUtS0VYOFVFCnprX0RDRGUwT0U0dWRncDJWS2RPenc+KHU9SDN1RWdueE01
NjI1VHwqU0lVSlFLJCRIdFU+I0hnXkAlJF9EYzdwRwp6OHJRZzlITiNJXlRVK05ET09DRnR5fDl4
UUZFMX41Y2otdDlHNnA4PT1qVnFadVc7aU9XdnU8NkMzdSVMK21sV1oKek05bnYmUE1vK2lgWkQj
KDdSdHQlTTx9cV5gfWdnJHlmZnBgO1BxcDEmeGEybVZDfFMjZWwrWXpmMkNLe1FXcntKCnpHJCZ0
UWYme1E0RXNtfHVAfVpheTlYaUM2JXtBcCZNY2ZHd3piUnlfSCUjUUN4QjY3fT9+Pz9BZ050cT0h
cTdXOQp6cSVGbkpHQ1hLKjc8JSVAZlN9O3VKZUNnQEl9QkdJTyloRn5DYlBSP2I4MVVVWmI7T1I9
RUwlVGNlUipRPU1yMDUKelRIMjl+dnxTJnwqc2F8eT92UmhoJEgjWWRiJjJFNiZDUik3dF4/dW1l
Qz14KzJyfCk3MCp9V0ZvOU56YWNUMkljCnpWc0EoZVhPRH1aPENCY0BiOD5UWURlUG9wSFNud3h3
fFJibSQ2Rm9uT1JFVDNxNlBFY3k/ZlVfNGZSK3hfNWRRaAp6Yjh+PnRNfDtDPW5oTExERmY3V1p2
VHNZWEtoNWZ0N2I2PXhta1FmeVVHeThoUGJ0Y0VzITF9IVI9Jl5AdEQxdGsKelVMV0VFUTkpOzUp
IykwKnFjQ2Q1TGhINWRXOzYqeEklYWlka1luS0s9e1l4ZDkpUjZqYmR0QHB2Z0t6KlA0bW5xCnoo
JGFYNTNGSEBDRSNza3ltbXpkVCZTPjs+cClPYnVkSHg9fCh1JU0oQnsyI00zIytRO0MjZU87bFop
SnJHO2I8cAp6c2l+PWYtTUl9LXkqdDJBPWNDPV9hTjBvMThgPU1BTzgwP2dRNzlDSyhGXlAhNVUx
VUFJb3ZYTDd7M1dscW9lTVgKekwhNTdTZlVMU2gkfk4qVGwmendRckcjQUJgMCNzTEt3d30+KFgr
fSoyKGtzcT1xblVxRENaSUVnYklGUzdmLUdxCnpjS1B6PDZ7IT96TXp+bEd0SlhfKExoUlhORXRg
UyhsZndnMTlySkptZilkV1lgTCExaW0xckhPWUNXUDFZUzI2Swp6e1Ykb1hTS0V2Vzc/UEk7KEIq
YjZlTyNgVnd6aUZZcHx6fnd6Z3pneVd3Yyp0RyNabzEpSTFSUiMzWHJaM2NwQ3cKemkzbTZqP3hF
NEo2bmAwfG5YY2F+REp7aUNNbjwtfDkpTTFTISp7VzxzWSN9LXRxRFMwQCF3WXlNcW48T3hpV1dl
CnpRWmVJOElJN1gzMEdOZ28pdmhAP0lmYUZWa3JlOV8xeFJ7dU43Z2ExOWhzflVlN1BINzUzamQ4
ZzNMZj9XMWR3MQp6MFNSOGQ1Q194TEw+ITJvdD9PPyRZLSh6dnRjJGIxaUJRNShCSVpFWEdkNmJa
MDdvKHE8eG5gdDI1KVM1Y3NTdVMKekReZjJmQ25ze1VJUSErUlM1UjIoX0RgdSk+Q0U1fk1BTlo+
USZ2e3x3e0tsXklsS3lWK0pWIUpBMHl+IW0lfVNhCnpzUTNYS0NhTCVEbitoU3c+Z2J9RnM1dzY7
cmBLYEQ3b3A2SmpFbzltSGZ9Z0xiaWtxME9jWEh9ayFsPz0lSm02cQp6e0B2MnIrTkdYaTJVa35E
YyVOdSlaaVhPaWpGazk3M1VFXk5AaV5TSVEtMjMlSUtSIWE4YH5aYVBLZC09JFBtb1QKelY8TTlA
e3hHbjgwQGdROE9HYEA+QmIme30jMD5LSlE3Y25pTkpVTTw9eFBXPHR+KjhtOWd2YDl1b2IyU0g8
WWZRCnpzc2lONUNSQnt3UDdzM2wtYCY/Zi1PWD0xKGtId3xaeD9nQm40antvWStGeTtkZkx8MEN3
PGVnWks/bFhPVVowQQpZWTNIVWooJkctcFM5YWl7byNYaytiSikyNTBQNk55ITJrZE4KCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJh
bWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZl
ZmM1ODlkZjQ0MDE4ZGQzMWJiZmQ3NmQ3ZTE4ODFiNzlmODU4ZjQKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDMxNzgKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhs
QSVAV3MkbEhgb2s8bX0/b1RuNXQ9CnpCViR1RGdBYExFdm1fJjxsO2wpbnFoeGI0QmE2Z1Q2Tj9u
ZiNGUyorJHpsdSkrPCFiPjk3OEpSeXVFQWFyeU1FYgp6NVAxQ29Mcyl7UG52ejJQTW5SVnxOXj1B
Zyk7R3lvQnRAJTtYKj43P3l2a3gqbE5QbTBtJUdPQUx1bCYkMmtxaE8KekVgOSYtPno1VFghLUNK
fTduKENMZTdNVkAhX1k5fTAyNHo4Q3llb3liSXJyJCtwak1eZSpFfj1FWXJITGN8cl5nCno3dn4q
XyhoPDlDQ0hLZis/ZSopfGNpK3U+dWZvOHYqdFlUT21vRngzN3IhKUxefGgrRHM+KGBzPyQ8KH5e
MkdPIQp6aXd9UXp7ck98bnVQNHUqSiR2LSUoWXRyPTlzX2wze3tNNSpANilHR00rNj09KDN5VnZZ
fSk3UDwqVz1KVEhuXjYKentDbjRHe2B2T0E5bExoVEktOGNCb19fbzdIO0BpeHt2UWtzTiNfbSVV
M204WEpzVFVGaWhKTCR7ezhYc0B1eUZwCnpGNj9HI1NwMDROMFZfKyhvcVBBJVVKM0tDdkEzNzY7
JHxwI1cyM31ePFIhU0BZSzA7V2B7JUVCQDkqemxlS3BKSwp6K1FZWGgzPG5IPHQ4NVZLS0R3blpl
Vl9tOXVWMjZCWk5Ge0okeHZ7e2omc2ZPPDt5Yz1lZkl+aHo1ZT8wPDt5U1UKem0pWkYtRn59XnB1
VmNeRlQ2SHlSPitRR2ktb0ptWCVnOWlaVFEzdSN1ZGtuKyV6Sm80akdwPUl2Kyp9WDg0aWVsCnpg
fDE3ZXtrNU1wYzA3bCNVY0gpUVdeSFlLSjghJFpJd00yaCV8R0Fje3JPcSQkTnNNcVZ0NnBhbEFX
N0RMMlUhagp6dnJNQjVxKEp6Ki1UZTlVPWpZRiNaQDxPR2FOeFZhb18raHxzYHdjZz9zdkpqRmZi
VDR2Tjh3PU1+cEg/MTdTMkoKc2pPSyNUVHJpcG9Nc3ZZdkUqT1RuO0ozSVU9Y0VKa0FCRnF9Ynst
ZiFVSHgzdklWQ2chMEY+TndpfnMtdAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVk
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zYzMzOGJkZDVhOTZjODFlOGVmN2MwYTI3NzE0Y2RiMmZmZjQ2ZjAw
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1MjgyCnpjbWVJMFg7aFBFN1JNaktIcjUmI2swPVB6
U25VV2RBY2AyMkxQam0zd1RPVFNpWDwhcFFBeVkoZ0A2JilEaFJETQp6Zk5XN0RNN0QlUUsqQVA5
S3ZASnRBJXNMZyVEeCNPS25UbFJQUVQ4RmBDI1lGSXBlM0NeUGFwPD8oK1p0P3RPQ1cKeiNCbUdr
TzNqckJBPyhwM0tpRDlveWImUUtoWlJjaldVYm0tOXIpTjlWRDFwJGNGeF8rKUJocUI/YitxKDti
UCN2CnpZYWlhLSYyNnVYYCN1bDFKeDJkQEhRd3YkZiMyaWQ7K21fJWV1anxSb30paDtJUWV0Smg9
Zz9Sb2VXbms5amlOawp6O1BtfWYjWWFqdC1kYTZzRzAxKUolZlRIbEhPe044aXFLVVlUQzZpTEd+
fTtIe0BWSzVGVGFpc0E3MSZ5VHVvVGMKenY/ZndjSjNJZCMtOS1yeFQxfS09bFI3SEhlMSltP0JS
elpqeF94RSlJd3NedlZ+WCl0Rz9OWm55S1BMISFZfGN3Cno1PDw0VUJUenlzKTtKKktxVnpTfF8+
PVE4Ym5VQWg9KDBpQjd3QihXdkpyWnxkPiM1bj4/aXFCbThPR1R3YC0kJAp6eUdUUn5reWk1Z3tC
VjgjVj9JQ2xlTSEpPyp1U0NPeUlqKUxCcHUrZVI3OFpTK0dRdnFUQS1iSXpCIWZKbWRrJGgKenNR
Ym1PSEVmJS1saVJRKmM5K15aSXY5VnZ7NEl0VW9GPitYcj1fTHlPJV4hcUNze1YkLWVYLUFIKDVj
d19hRFk2CnpLMzFyej56fHp3ZEdocDU9Y2NnUD8yTD98M3w8KnUtVyFqbjJ2NkFCYFlUMlhxZTJn
JiVlJlRWO3lHO0greGVjWQp6RHlHSzZId25AZ1ltX2xqOH17d0t5RlBqK2lDRlpJJjM1bXR5S2lv
dGN7PE9kQGlrIyM8YEl8YylzS2tgaFBSdjIKenclTlV7KG1pUXNIeEVCKVBZUlZpeFQtOS0yYGI2
WSZvMykwMyg0bTNjI3g9JiU2dn5CRGBqckNTRGBxUmd+JjB1CnprUH5XXk9eKztnbWR9a0poLWJ7
cFN7TFdYNyFyd3VpOENKalk4ZzZBJlNZJCZQJCh0aUhRT3pvMjZhOFplJl4xZQp6OUAqcVR2eFEl
Y0MwPXE7bz9CRUBSMSQwQyswc30pKGJxdUF6aEhNXkRXM0kxK0w+TDEkP3Y5Yjl4bHYhYjZ1U3sK
ekd1Xj5aSDx6fEpkWWd7Ris8WFdoR1RDSDdkbXEldHhZVmh1azN8THQkISVfJChSei1qaD4mMEp7
QiNHNz87YHpCCnoqPUAySzM3cWZrJHpHVHA7PD1QSjc2d2k5Iz5LQFk+Kyp8PndLTyU4TFp7a0JN
QE1WMHs9SWQrd2t1SnIxQU1nJQp6c19QUTkoOz9lPT8wc3BnNlYxdDVqY3MjJnMzanxXb3R+KGFL
MFJ8QmdNN0IjKTZXajMoO1hjaFRlQlEjeG1ZTmEKelZycnpsZlpFUUVBKVptSWUwYj1scmx3fUp6
RWcwZ0FrMjVlOHF9R3hySUp2QHMhT3c0b008NTZzaUcmTGltOFEjCnpnPUYzSWpFcSpVbGNIdWpG
TStXalBnXlJSaTtlaE1kV2VDJmx+cUdvc0E4U29uTW9HOHs9USpmSi0mbC17KE88Rgp6I1c2ZzJz
VWpwT2BSd2QwMypMKmNUN2BXND90TV5jWHs2IzliNWQ9WmMtTUZ2UjQ5P2R5MlFgUiVoU0NMeCN0
JVkKenlpUEt1NTNmLXw1emtZZVVOdzM8VWBCbklsajk0aXMqXiV8dDx9b3NyYGtiYyE1K096WHZR
MUxwPGdfbD5vVFRpCnpYSi1kRlYoQiRAX0Q9Yn0tQnNoa2VYa1NBS0V+Kj5aQ3B5JiNnJDg7eW40
P2NEXnR7ak1AQnxVSDhJRkpKOHlGfgp6UkN7bn1zQ0xNeUk1M2dZRS12en40Vk8+IU1PQX1rRF8m
dHZrd19mXnt2NWpRbDQkSmZkSlFMUlltPzcoTS1rPmUKelJga1N9Jl8/SUxPKmJUUj14Mj1qRy15
dyN2bTl3OGhCI31SMV91YWI4JUlWKWwhdDBRdFdVfHZAVHxQT0haZGBBCnpObmV7d09He356aT47
dV8tUkg7KiNeTWRFKjZybFNTeUBpeW0qKVJHIU4oYnJWUSVNOG5vfSpTQmVre29CT2tqZQp6OGNl
NmZnNCkjNylDMDc7UH1OOW5sY358LUZAMGptNDBNY0M8bVdFZXk1ZiNle2liOX08Y2FxWktWPld+
QnFiJHIKenghbTV+VWlQdD0oWThEZVNnSWsoR3whYDZ2LT11Q2tEXjBWVERCKEQ1cmRlRUEoc149
TlByRSFMYX5rNkdfYi1jCnoreGJ9eD41fX1GNHI+bntrSn0mY244V0cyZHJVdHFCY3BoNkwxQ1lE
Iz5sTklWJVBCJSRZMzQkant9Ym8+ZFZkUgp6YzckV2V0TiM8YVdlOyVaJnEwejZGRSR7YkRTcD10
RXBBYjcrXndXNU1fKnt+S3BPWTd5cTxSNS1wLUJmLXhfLXMKekFRX1J3Y1hhQFU5ek4+aXlQR3Bs
YUEyT3w1ZmtILShkKyV5UTgtcnI+ZXYrVnY7UGB2bSM4aUw4RlQ5MFE7bVM4CnpmYFM2alcpN0Qt
bmpFZzUmZ0NaSXoyOEh0Q1peaUdYI29LdHZqZCF+USZJRE5OVSthS1kxRyo9ZWxOOClUMkVWQgp6
VGp6TCFGN3JxNVpmRGtiRW0mPXtNUCRrM25gMXFKVGJWekNhLXomO2B5V3U1OzleeXIqPDc3ciE+
VXM4UDI4b1kKekszJmdTaUZFMyN5TU5jeSh7cGxpMHZmJnA8Q1ZCbit5RjV7PVIlazRiMjI/V15Y
Nnx0dSV7cWNIdSNQY1RBSDI/CnpAYiFYVyhELWNKd2I4KUpPI1grS2NacyN4akFFPnU8WGdHNiFZ
ZDxTVDArQWM4RFN+c3NNSnp2bEA+aVh4Q01DUwp6VUs/R0wyb1hXcDNRKmphcGBETCltVW9gQHBQ
UHx9JCQlJk8hfG9aaHtSRzFWZmFgUDMxUSo9QEZpWndrMCpFVEIKemV0JHdmLVY7TF85VD9icGAt
OGxYZz9vfmhuKDZeV1E5dFcqVTxzelZRa0JmQXM7Y2UwNjJFS2xGaXdPKnAjI3kxCnpXZnVBIU07
eT4+JD1uJHFBNzJ7fFF2b2FhcDBPfXptdk1Ae1dqV0gtOFdWX2UrJD02JGwmISF3QjwlQUNue1pA
dQp6UDs1e1NaZ15JcXMwfDFIbDc7aEZFVmxkbVo7P1Rkckw9bV80IyRHYjUobSZmPFYqO3RfKXI7
TVAxfVQ9MmplJHwKeiR5IU1hdG0xbEVlTFRNUD9PUWVUQ0t3WnFqVVJ7ZThVa3JGZCNfa1Nhd05r
VmdLfEBrSUVQTnU8MTQtKWZrRUR2Cnooc3srQntBQXI5Kj43NjE5TSQjQ0pmVG1JTil1SShhYmJj
aT58SnwxT2s9KjZnbnkzO3srMU1hY0wwSEZORG9Xewp6YGNFNz5SUGx5PU9tJX4/TDhPfSE+aWFj
c2NsSV9gdktnUXIlc3NEfFgxT2xIQVl1ZyVyZGBGVG5vU0FhYFZ3aEcKelljPX1SRmokYkBiek9Z
e3N3c2ByTThAX0IlckhDb3MlZGFMS3BTR3tDcDUkdmwzJk1ybSRraWw8MlJJNXhYeFRVCnpSPSF2
VVEkezl9NWY8a3IqMFZIX2FtPjx0PWNeKnRMK2JNbkZnKF9DcXQ+JCVaRGlKbkZ2bzNieFhzKnA0
cSNVKAp6MzNNY3JgfGM7S3t4ZDFOSykjalpJU05Id09kRzNJQyFKTlJeYWR5b1g3R35rN29wNGtP
PUAzZCo2SjVpZ2Q5RFgKeipaLWMkb2Z7MHptND8pbzs8O0NQdV9KVnZzU2JZVkhjfitiR1J1MHdn
JG96YmRBeXhHK0tBfDRFPilTWihHPmJGCnopJVk0Mjw5YFpxaDc3UW9tYG5TODk8UnxrOWBSQXgj
S2RIMnBlJEtxJkpVblpuNGZJVUhZbz4yamVoX25ZYnlYcgp6P3JVJWs3RSN9NTJidnpDKC1pYEs/
JDJLaTM9Vz5qYVd5QkMkIT4wTEAqfVg8SU1GMXMrTVZVQU02bXNvZ1BXM2QKekZMLSprQDxAYSFu
MFlsQGpJJWB8UTRRMCEwOUdjcT5QVzA0YU9QdUlVbFFHYCk3e3AjYEdMdk4oOWxwMkFzc3hWCnp6
TFBpeSZFY0liJUFMYkwlWjJfQz1fQzFDME9mSzkhXitDYS1ybkJkZSooSCs4Pko9NUJSN0RAcypK
eHlnM0lhNgp6XkooMjk/Uy1uRF9CXjYjcztCRG9NNGRhK0hxb3tINnxoO29RMCNZMUV7MVhrS0Qr
Vi11KD9Odjc0aytiNChWQHYKejIpI2UxVXo3cTZUMlBGXnA3SmhZejJWWkNlV341bVFMMzQ+Z3FM
NXNIfHU7OVpLbkw1bFRzJXIrSX1rMkE7LTF5Cnp1QHdlczZ4fnxIIUJWPlFATCMhfWUhNH5YXkdU
b1oqNl9LUXBOc2heWj1zKH5QcE1JfWJ3RkllN3NnXjRpcSQrRQp6Z3ZvJGFpXzZ0RlMmME8xNGRN
aGdfNlR1Jkx9Nj8kTGRVYnhQajBpRVRtXlVUK3Vvfnt7PD5AU3IlVWtqTnVSQ3YKaHppR1l5WilI
dn45RT5jdm82P01iZ0A1cVNRUzsrSmExVDBQYDQ+QHV4VXY4TQoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFn
ZS1zY2FsZS1kb3duLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUyZjYyNDQz
N2M3NGVmNjE2YzYxOGNhZmE2MmQ2ODY4OGZmZGVlMwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MzkzMAp6Y21lSH49fkkoZTd7I3hFWGNjNSEqaEluQjNQYXJqMFRLaDZ3IWBBVygkPEFWQShANnZm
aEdhamwwWn19TkdWY0wKejZlTkxLIyNxYXlFUVpBX05Icy0tS3ZES0IwdE4mXkxWJCNqclBzZnNu
UiNkS0pJe3lucDhLNWhgfHhJZT1rSF4+CnpZM0MqWWZhIV9qbzw5SSF4Q2ExKHBwNkRfViFwJU4w
VW5OKnlARDxpcTlYX34zNWp0NGcmK3taLTNVJCpzMGNKRgp6R1RoMTRqb153cjV7XlduQmcwV25Y
dCFKZSs2OTB1YjA8OCVJZ2BTZTl8XmNvdSlMRW1MeW9mUXpJVylUQGluPmgKengjeVIwbko+Mkd7
MnNFU3Buaz9vNkZtOUgqVmpvPW8/RmVnKX02ZmU8aTx3NypCMU1wSnV3LTRZbVo/NHcjVnFSCnpa
QyomJXtjanBLaXtjdihNb0t0MVBVbjw3KmZ1UHpxO19xUVN9SEdqa2Uhe3E0Z2pYTFpXYlFlRjwt
fGc+OG4lcwp6ZFg4PVlkfGhzV0o/SCYrT05OYkdZKX1KOVIxc1YmO2pUJktMYWZmQCpZeUNBWDZv
MEprKz9ZN1d7ciR8elRBNiQKempJUHVDYHx5OzV5fWZPXlFpTWVBMHtxSl5zZCMzNWAkMlo+YTA5
dDVmMW1LIStGVWhIK3d8a2hVa2RnSVZtYl9mCnp2YkBjMT5sV2gtNHByZ3I+dzYlJENMQ2MhKD03
TUZrRWphKiEmVnBENCt+MzxRWUZLVW49S0FCWGpYPUB2YSRsPwp6ZSopMGNkZ3QhJlNnTSUwIUh6
fmtTbmN2aUFAeDstPTIjck9VcyV7Nj97c0dxJEYlKX55aWlpaGRMbm1+PCZeQGkKem9WS1RYSGJl
PGFzRkZyO1M+Q2FieTZFbXFRPTZOJU4xSXs/WUFWbU94aHNQKTFPajJVNF9ae3NuKGZCYU1ZTFB3
CnpOQ0Mpamw7RHtqc3FzM2s9OTNIQUQ7eEd0QlRYZEgzcD1gK2pJZEo2MWFfen5uKjNTWihBYDYh
RHEpVXZAN30lVAp6PVBFSXBSenR3Wil2bWxqM1ZrV3ZVMHEjczFHVCgwTiVNcHRQcDRnNUNAVSkp
ZjtNP3stUXJhSDtwZnM5YVlONVcKemw3YHxrVEUtdGdEeHBBXj1QSDduVnRPbDU8c1g8VTFNNUtO
JDxyRWg1bXZuX0VfRnx1TCZzMTReT1BYKV9WenhlCnpTP1luWiNIclQ+UkR+cE1AfEk4MVR0RTR+
QHBAMnJOSVREME1HMD4xd2xPaD11QXViS21TR0soYEtONXRtYnpuSQp6ej9HU2NDd1g1Q0xtajEz
aU5vNGlUT1Q8YU5MYHM1c0VLSD1XUkxDKSpaPmZ3ZWx0Y2ZhTH1BSUFIdD1yNGlSfjIKei1DbVgq
TU0hYVZBMHk7QzR0Qz9CKWkhe342c2U3N3JKfmxwM2tlLWtzZyM/eGJ7N1ZrQjcxK2Z7MldJeU80
VSl5Cnp0ZFZjYzBVIVU+UmFYcCNHVn0wVylwQG89cVpxQEE4NDA1KTZTK2o1WDYwUVZqKXxwZjJr
VD9aY0EtaGVFRikwcAp6JjA0eDRnLXleWUMtU1BmcypmI3JsMWAmbzctQkVmdj56JSlNcz5ie1VX
QkRRO3V0cmtuJHReaDJZa29kNDFBaFcKemwkQVZeKmYle3J7a1JET3hBbWM7U24lcVZUaWpxQlcl
PVc2aGsjRjJoWTRXUSlrLWBmTUtPfCRpdFEmJmNSZkhsCnpwI2d2M1FvZHp3Qyh+Vz1zNUQqbXBf
ckhuaV5vN2VnO35JLUdQSFJtJVB1YC12Q1JQdiR4NWxuSEt1byVFWjhsRQp6P2I7c1RBeWRzKF5P
V3klUHtYOEZeU30jYTdTe2tPTSZ4Zz1AWEUyTSNQUU47SDEmZmxUYXtXYSNIQ0laajVIX0gKeldp
S3NAUU4mVFdjYko1MUxMaTJoYSZ+cmhhdzBFcTZlWT17c2deakp0aVFqJXNLXiRLQTg+aTd6PyZM
cDFsTEJ3Cno7ITV+ZTRGajs2QzVLWDRlMipXaDU+QkNodD8tIXBHS359K0p1TlAhaGpBIyZsOTZV
e0N6RmJhRzZ2eyFPJV5kOAp6T0gpY0FKX3J7VjdZYDNMLV9WU3FsS3hkKkhQfUYmTmJDIX09ZjRw
a0lARSNtMDtIOG1gcjE2WjJwSSlBbCo2YFQKekRORUNWeFVfbmg/SWtxcSZAfDdxZzVLWWxBWkdh
JGQ7OXB7VjY+QiZra0s8MUs+I3FFLXxiNVZmT1E8ZDQqWUZvCnowbHhPdHp2ITJzWi1TbHpKcTND
U15jM2hSJntPYX5yOWl1N29QQ0Y7eWo1PXdmMG5Ac0ZNclJmWn1IZHUxQztMMApBeldATEwKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9y
bS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJh
bnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjlj
NTExYjEzMWQwZWY2ZWZhNjRiYWY0YjU0YzA3YTZhNTgwYTBiYQpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgODg4MAp6Y21lSE5YSU45fHclK0l7OXQrJCM0clQtZVhVeGI1Tj03M3tsTUk3cEFfXlMz
NnV8LXIyI0U5PSlINkRRJFFUNHYKenM/c35zZHFmMTQ1LWIkeVNPQkdrLWE/WjVYM28kMTxEVDw4
X3NATnY7ZzdKKi1yeDdGd2NmSlUmUF9kP1cxSDRYCnp0fHRnJDZhQ2wyYFVKNmgyU0tiZFVBR0VY
QikqWjUjWHF+PGtDP2lqeUleejkoYXBuJkk3P053Kn13MHM/WVZPWQp6bD1kckE1QTM2PUNARyMl
UiNzQV5RZjwhZVMyNGE9ZHhJYyQ1Y0k+RWhUYnZieT8lY2Ymamw8XzZfOWQ1XjFrbj0KelRYU0E+
JEIpKjN2cCUhJHp9QEkwOCglbSp0KW15KzNWLSVybi1oflNYZVZrdVNLNk5XUDNaNVRCM0g1I2Mz
ZlNqCnpTKCM4RGR8Vnt0eVdrb2RSfXN6Y3pCMEE7VmxkUkgtMG5TamY2U2dVOWhoNmJyb3ZTcC1v
ez95OU98RDVzRnV5SAp6dFcqfnZjSVlnM1J1ZT9mT3o0d1UjSlhMMTFhYjltZHgjK0dSVTMjTV94
eyZRaXQ+NDxlRmhefGk7QmdKWEE7Q0IKekVuVnxVa3hQSHxMIy1RMUVgOXp6ckxLKXA2azZjUVZy
VFhETD1mJUJydUE3V1piUkVOezdhcEMlWDMtJDwtOVlzCnptb0h5VklkTU5ma2hmZUFVYFleK208
TkExd1h2fSZ1eHA3XmJacWFkXjRxWHNMeTEkakN3SUlnKlJyQSptdCludQp6O2BXYFpwQzlqVG5P
OXN6I01+KklvfU1sVSpoRldOOHpjOTJTTmhEZnJXPDdYMmhLRGZZYElVQnI4NWYpM210UkgKelko
RzReblJxblJwKjhKd1hYI05RaF5sWH0lOEAlaXpTcGNVJV4rMjBQK1ZKRStzKTA1IyshWGhyY2Fh
JiRMJSNRCnotZzdFSERKJCNaO15oMHl2TzMlTHBhMGQ/Y0laXzNYKEdyVldBX3lne1k+TCpOcDxm
X090U0UhZC1nUUZjJWtlKQp6SWUtbUpSNHcjOWRoe3NlV1ZCQVMocTRJYSRKeClYPmtFbVgyWjw/
N0hMQkBsWm8/QGApbDFEVHcmJX4yPjJERz0KenViRGZTNGZjQlZKOVFWMiN+dCEzX1pWJFEzXmxL
PDRjJHJ8U3tqYURzTVI3OGNCUGY9RyErJD56V0RsNDlmdSp7CnpsSWNucC1AVkU8RktPdTRuMH5S
LXRKa0FycVBLIyZlfUEhYVpgYjI8JiZsKSROPX5aSUoqNzd7JWcmRT0mV3U/Ywp6QWJ2aDZVRUAx
Ky0lajc3dDtuJU0mTGVfTVB0fVJOekRYKWx2UiFXWFpoQW5lN3BLcCUhWlRwcChQez5aNCghUCYK
enlKOXJ1ZStqe3A0S3oxM18yJGlXcSF5Y0duY25JOF85eUZ+SDhwRTtFR3M0fFhWXiZBckBfSEZQ
Q3RWa3FoZnFSCnpsO0ZvV2VCU3ZLUUUxT0xrQlcjJFBFOTNrKilzSSRsVlJ0PnEkS2oqejFnMVFV
Mzh9Vlh1SCRMYGNPSl48cFlWOAp6V153TWYtK3I0SllLfWhTSD1pMEc9cXA/LShFRmFgPj8mZSR5
N2tvKS0rP1FsIW98cSt3UE0+ITlvak0rPTJ6a2MKek9ZdH4yQCpFTD9HdiNEdVd5emBDamcwSmJZ
ZEl1WFglWTBHJG5kek4yT0Vpak1neSZtSX5tPkAlSnklUHM2QjRhCnplKmFwdy1IMXV2eF4/VEBS
OXl5dFh9RyhAQnt2NzlkaExPLXNBS0sqUDA8SGtiZUxvJDVGYyRESjdzMzMlSFhmRwp6ZGR9QGBN
fVVKPiU8MFVyJkh9cnhMVkx1bG5heEk3JiF6biVhU1A/TjF5eXYwMnkpWG94aUtxUEd5VHJhVnt6
XyEKejhCWnlVck4mbE9qKjUhUD5hYG93WStKNjBpaT5TbUp5NjcoWmxyalB5PnFSPHdlP3QtRz5e
Wik1K3VzLWUjRStPCnpsSVRAXzM7YnI2enxIUVBpNl81aCl+XyloKUp6Wk8yaj1CQiRscG14SFN3
WT5eZk1UcW99TnJ7eSNNc2VnVmpAXgp6RWl7NHUqdF5Ia049Xj9uMCt6RSZgaiRWMT50Yigzcj5s
SWNlQ0tAVStEeVg5cndWTE8pe1RlKmEoNSszcmtOKFcKejNKTUIzPzJDRk1vcCRqam9rJTItT0lQ
OFNYOH5KKTUwb1JCdUllPXJ2OzY2YnNQc0QpZ0tfanxlYmFyYVZfU3lOCnpWPl9WMElMRCRCMGw1
TXUqdC04eWFrcTJrXng0Q0puQm03Jm5QPkdKUnUtcSkjRSYxRVhgPGNgK2tUdSRyY2dOVgp6OS1x
VXhDaTwkbHh7VCR3dHk7QllkVD87Q1pQVUZ3UUJmdktYfDBiPWctUitxO1BlcmorY1FtRVAqY3h1
Wn0qJDMKekJSdm41QjYlRGBCdk5lR3Z9M2BASipTdm04c2pySFI7WngjKDNqenw2cFBabCgkWW8w
ZXJ7akJQMiopWng3X2xQCnpqTH0/SHdSd3Ala0dxaFlLaU82dHp8fEwyMzswfnd4Qn40YzEoZTRM
WlNDbHYmaXFuJEJlIXhvSVFoNnA1WT9uJAp6KSMlaTc4UW8zQ0o7dUF7OHN1fWNZK0YjeEQ2dzYx
Vz9ZO0dYcEt5bFJKeW9XIXIrIXJTUyE8X0dYQWc5NE5gflcKentHMiZgUmtGcnJid1RaNmZ3UEk+
YWJANWFEe2ZiWlMmNEoodlJpKzNmWXVFJHJAcVJpUXJDfT42c3c3VkheZFlCCnp3JT95VFExeCZD
cG12Ni0/KztqPlpJejlQR0VgMWFqcX1hTyVHeUlgPH0hR3IqPTl1PERAR3RLKGpMPkYmY0ZDVwp6
IUxyPUtxc189all9K0FVY1paTF5reG5tJDJeUGJgPDA+eWxIczdaWFByazIzP2c5WCM4LVJGdElN
dEAlPyVaZ0gKejtPaTFtIW91MyZ1PVVBa3JTVFZjYzd+OEJJI3M8WWJZYChydz12X19JVHlKVCVw
fjEtNE8hbFpUS3wkeFU1SG9VCno8VGFUcl5PQnFmRj1UREtxSnlEQjEmOSV9UWVmTk1ScEk0dz1G
RUhDPiYpV0tCUzUoUG1ZWENKV1JRTDt3XyYlTwp6b2JPMF8+SlU1RFR3aX4+JEYwUjxyMWVXdTFz
S3dnRi0ybkJBPThiR2phXitgdWRVc3IoPShoQj9ZdWt7Izt+eHQKekJ5VGc9NVljaGsmdU9HU2Bo
ZmooeV9BZGw9VHtHPk9TRzxVcSZyY31pIVh2RjVaQ08+KlB+c2tlTlo1RFc+UnZwCnpyQ1lQMmtn
S3Nua1Vqc2QtJiVzTDJBel8tXyU4MkUmREF2bC0xK1Nxeyk7I0oxMzc7RWV2OXZLZ3A9PEpeUjh6
cwp6MHFuY0hPPShWTjN2Pm11eC18WSZtX2hlPWNMQFZKcVB5fnNHYjNjN1Fza2YzdmJWUSljNkpe
cTMwfVpxQktNbDMKejBgLWxKbUhaYmNUZShTOHNeak1remtALS1CcWRFezVnRT9aJExDLVh7LX45
cDlOMTMzYVRBKXpuKHVOSHtJZWg7CnpEeXNpZD9Jd3hGM3htVk14dSooLUh1ZjZ8UypfLXBzNFY+
cml1ZFckcj8rbjEwIXklPzR8NGthSUQ2JmY5RHZISwp6UXc0STtgJlNYOTFqJjcocWJLZyh5fUw0
LU4qak5qY3F+ZjZRWkJeLVBtNiM1VVlFdm1BRWRvfl45RnBuKDNUc2gKekk1IU1vYWpxQ0lybTdu
YTR0X0xue1ExQ3pSfEFwZSZPUXNoVWZzbmA2JWZ+T3ZGam9QPjkqVWhKUDVQMl9yUjVzCnp7eUBM
RlYyUkRVUFcpUHhJTjVJUShwJjZndTZWNE1BPmJoZ09DTGZndyhPV3dnUEZeN3FlI2x3OCpSIS1v
e0QzOAp6UilvQXMtMjhxeWlqMC1iLXZkeDI2UXYoLSpNfnxpakNPRkVJMiNDTUtAOWF1Z2IrcztV
TGA7ZUMlVEc4VSZfWSEKejtNYyhAdEctKy03ST5BQCZ0Z3ItI1J0ckgtcklNcypybVNAe3xpfUlQ
TktkdEZUQypoezdZdT1aZXk/aGZDWVFYCnp6PHMrb2RUMmJMU19HSUlSZ2JyKHpYa0RVPn5VSThT
WF5LfmV2PEo9TTEmJH16YiheKkc1dTF1X0ola0UqKyp0SAp6UCNKKmtyVDAmTl5YbGBsMUk+aGxn
dmpgUWVuX1VIV34wcHhqMj1HWkpCIV9gPjM1SEk8bVAlZXYocFYoPlc1TUIKel85bTA3Mik1c0Y2
TTVsbjdnaUpRejlsfjEqVG1ofmM+KTI2UiY8O1BnJHhmNDdDSEFXbSN9IV9ibiV0aHg0UURpCnpe
fio+fDg+KypBTT49eGsydC1eI1VTMztRbSRHTTFtVTZ9fmJVTk00dFpTPUlxJHQ1UTg2SHtKZXBC
RFl3K3tAdgp6Zmx+Uj9uV3o4IUt8QXQqVj4/S31YSiFhUjFqYGskRyg5TUxEOUAlYlFiT0x8KHRv
UDFaR3xNIV8rMCRrcDlZP2wKekE3PmAlI0h4PDBDektnU15LX0R0V31MYDAmc3F9LSpZNyk7eX0z
NSs+e3MkJjx5dnVDKXt2bklPZFY8bCRXWmZnCno5eFR5Wk8mRUllWiZ9Qi1xTGd0aj97aWBwVCpZ
SW93WTBSdiFiIypmZGNnMmhgKjNqYkY8bDJkR2ArbGBwK1Ihcgp6Kj1KRSsmQlQrazMzViRzYnQ8
KDApQiFoVXxKSnMqKyhRYGF6KEQ+JCY5ITU8d3tebHFZKitKSzhNQ0FMZnZtOHkKemwyZ3x+KT41
O0JqP3VvVmZLTTsocSN5YTdBYXE3bjc+NztrMWJtSl9XQT5GK2l3MVdMJHskWHE+Kn1fJnc2TTRu
Cno2QHVrbExIVUVrPEojSmtzQFhUS3ZyOSZxIyskWSZQcXcoMTVsPlY7VSlfK2tVZD9sQ2s7aEBn
aGxqaHBLMD1FMQp6OTdkJUlNVlFXdmlIUU49V0BsJHNVZHNgYTRBKGY/X2dQMmxCcSFgMWVPTVk7
b2NoPSVMRmlSJkBjTEBCWH1qe0oKejFSVmNRSDlIVWNCOC1eTzwwYyVYZShVQk5NJm87RDxkbDFr
WFRWQ2wmQ20+NjdxKDYxR0RJKn5rPTlaVWlTWHB+CnoxdDRZYzlKJkQ/NnFTaTVfdFB8WW4hQHQz
Kj0lWH1XZ3dxRFVxcSVlUHlBMU1qJSQtZyYyM1Y9QVpDcDROeDQrTQp6aElCS1RPYzs8KmdiPWND
VmlocGdTKUclVm1pOEl5QGM9b2IoX2d8MmJ6dFIhZkZzMXVwfmVRUU10S1lVb2JEMTEKempeJEUw
Um98I2thZEJheUh3MD41ZGcpQjhzKXY0WjgqKSsqNWMoNDRhTFhSa1MweWd9P2B2PHdrMntKRzRt
dDRYCnpSNkJNTF9JWT09ZmRhSElTUjl9TUFLZFNmUj0jQU5RUnUpWD88SW81R2pfWT5MNFg7SHdL
QiRBUXs7YTlAbUQ4Kgp6LWwkYyl5M2NlJmduVTZrZiRXS1VkUm57ZU1UaSl+bFV3MThWT0pgYmhO
NTh5UTN9IU9LOV94YmQ7bH5TdWJiNXoKelBvcSgoWmE1JFVLSDZLYyZ7PSV+SmdldW4rN1RCfVFR
QSVuX3lnRG1selU7SmBgZVYwdzNZWWJSPSFgN01PTHJICnpaSGFJfGlnd0hgI0x4T30ocUc0PUEq
cGE3MjB7O2ZeeXBEQXJ8LWY5cUIjQ3MrSFZZPXNlRX1QbFQqUXx1QkB6dAp6NWZgY3tZU29VejZk
ezxPViVCQjNleWxnKlMwKkpUKn1xTmN1eTh3eDh9c3c/KktVJVd0PzFffCgzIypGVkprdGgKekBf
JFM+QmM1fmBYe3tjT1Z5ejR3bExAIz5yaF5kUyhfOVNzOEwodHV6SS11QUlmM0AmKDRqKmA9MWVr
N2lkRVRWCno4KSN5QE1nVmAjTn13biFKMWswRHRUQV9+bmoyPCQ2OWNQRXZ7cStNJih6M1MqXz1P
ckIyTHswJF9WKk9Pe0poPQp6blUwSUh4Y3BNY0hZaUoqPF9DKEtxP0JSfip5fCZ8IXQ8YXk3aEFs
U2gkbX5aY2o7V0YkamRqZioqYj83IUozdysKek4hX0FoS3dyTUV4KVApa0xhOG9vQFJ7ZkkpNyp4
ZDVTRUp8TUBWaWd5MDBrVEw0dSQrWj50ZHx3WElGVSNOcjwoCnpFcXxjcmdHTzhIIVBYaEFAWU9n
TiZPWmc0cWZoJjM/QTYyQ0Q3UHkzJjRnV1JqZ0toQkY4YiNNSkgoTlZGVG12Pwp6ZEpZe3FtT2w5
X29XTysmMWJ7V2VSdWxSKW5pWWszQkopRE1vMXx5dD5OPHJval9TKE0kVUJYIWlxbHFwcUJHSEIK
ei1RSzEkWkNEWDtfd0lRYzgoXlJxQSpDfmN4S0R7OzhmSW1lMlVuSjZxPzloMm53ZFJfakdSQm5t
XnB9Z2FZVnM8CnomTCMqXzhxOUJtUmhSKSF0QlNnezhsYGlsX0JzcmY2Zk13eXE9al9hYCNuXzJx
VDFnRmw4O1I7JndkR3lqPmEhdAp6XypnSHJgYHEpfTxFU0R0R3FZI15kZkxJNFJTbCFBSXp7SEZU
dTt3PUk4LUx0WFN9Rm1kUyp0UjtSaDBjVFc2dFcKeiY7dUJXSE1PKWJJOF9VdkE5biEmaVJaeV4o
MHBlPGdYO1R5aEdVbXpoN1VTKiYyc24/OUxRZkZjbzVHRXtNJiprCno1aEhNRC08QjBCYnVlV19Q
TmxjaFAqWVBnQldJKkZlSX1PVVotK0psYTwwdXA/Pll2NkJhVChQYEVIWmspMFRzMgp6UTN4RzYl
fHFePV4telJwSjBucnhXSUNjQjh4aGYjc3Y4Zm10YUxEVkNNQ3xqeUw5NiF7ZzxYR2dKTDI8OC1D
djgKemQpT08mPzN4VypsOFdWNyghKXR8YXBHdWl2bCM7Wm5sKT9DU0Ike1QmdmpWIVhCY0hkMnlA
SSFDZVhVKFVUJWQpCnokfWNEb20obDJmJlleb1o9MlB9bGd7P3JqYDxGTFl1VS18YFNSQS0xODwo
fj9RWD92KGUpLWMyMWU4KVNtVmVLRAp6NFooSTl2QD9lc287dVp1cXd+MmVLP09XKGRadDtXdz0x
cnRpfHRsVyRTTEpwMzY/dH47enszcFc4cFZtMWNOcD0KeihwRTg1RlF1en4yYCYqd3dyNyUwSn4t
Zm0maUEoVEEreTJiVV5HMnM1Zm8/NFM2NXVCMHlSa0ZzOyNqNHNLbGt5CnpZVFU0T0JuMW9hITNk
SytzM1dsMVNzbWNWQnFRNEZtWD0pRzZyWnxEQkxTWiRIMnVMWCQzaTlOVVRLTT1eSk50bAp6Jkwt
KTgzJTl4LVYqcGk7aytGVWpxY2gpenlUSGpeYWVefW0rcGdBKjs1MG5YdV8mN2NuPXN9fjd7WXQ7
VX10ISYKeiZkeUhRRU0tXmtqbF88QEcxMnhVZGJvN0o/Q1RKUEAqaihhZSktbzQoN0pfNUFNKHg2
KHdYRGQlK0FpRHtMeWtICno5U1Baej8pQW0rSEs2d08mWkI2PWc7RyNRdmEtbXR1MGJ1eVJTU21A
bT5YY1lBUXhZcGtZSjV8bVRLRnkqamBldAp6MnRSP19CfWsrYWhxalVPKEh3TWo1Z3ByQzV3ZmI+
RThzP2AzfldJcXc3VntaNnQ8T1dKS0NOZHJhdH1ST3xySWIKemAzJTxZXlpwcHhJKUFnKXUqamlK
SUNuX2peYGF4ZyRQdHRUM0tyckZ4UHt2eypWRFQrSVopR0RsQU41MyY2Uj4pCno0WmB+azteQUk8
VCVUYDtCWUR4KGxtKSRKbEVHaGVCI312MF5QMkdna3tzbT5oMDRxK0FLYE8zMyp9bkdqdnZrZQp6
aGp2Xl5LOHFjemhIeHglYHZya01LMShlT3t0Uy1haVpjN3F7cWNGMmpIPihSX2N2czgqMGg2PmNJ
bXtKNHNPSUEKejllUFRxZjwjdjlDPzM8bTZhc3VFKztecHE4QDQkZCYpYFNvYHYwS1ZEN1NPeCRO
V1p4UThXZEJpTjBFRFlBVT54CnpRMXRLTFhHfVQ8TUxVPThvfENFPDRqNUp6Nz1pYCh0OEJ9UGQy
cylQZH5XNHMkUEtuOyhrVmxmQ2JYNyU8bXJxUQp6dn1wTHZ6Q09tQzgobCFOUGgwKyttYDxPNy1q
PV89RjIoPHw2PTFBUEpyXyg8MWs+LSVnfCgjeyp1RDdVSjBVWGUKelEkQUokZ3k1U1c9KjtNN0Y4
Qy0ocnhjKSpNWX1JY1RZOEN7Vz8wcTBRZ2RSWlJfe2ZSKFRmKUJeWHRTZzg1JC1VCnpAZmVLNiNg
WSMyMyF8ITZydjNRP0IxamtaMXprbXMzKnYlRmFaI350cmF+d3RZZkM5UTlCfUY/MVMzI1MpJCpR
Zwp6d01HX0Rsez01I0A/UVJ1eC1peT5uej1fPzF8N2AmOGhZPVZoWiRIYm9vKiZISmFTZWU5bDVM
dnVPQzRMOWN+SzsKejQqRH5YJj5BY34rcEtIWVJDTjRoYjJBVTw8emY9SVl3ekIxVlFxcHs7WXtw
dktjUCkrdDkrQ1NWNHRoTV5eKG96CnpDciplRiR9S1RjU0IlYnBeVDAwMSVNd190M1cwITIraWo0
TncxcSpUUDt9PnZrI19oSlZMVn5+SUF8WUx5KGdgfgp6aEgmNkZZMSZQVmpZMXt8NXlMM1Bkdztr
bzkzSVpFVEVCazF7X3ZPQWlPKUA3VW1MNnhvcUhBJEZvMTdlZypoP00Kejw5PlVNQHAwVTx4MT1X
QFI0KzdDT2xeZlM3ISNvY2d2WU9aNV9ZZDNac1JQfGVVTF5KZ0ZSWSk7UkZ1N1hjO14qCnp0bSZU
KWZvO0dGPFlBTzJDYXRjRlF2Km1Wc001ZUwmOCopeGtXIVIld3BCTVlIS0JRKl8ye3I5Y3xebWJq
PksldAp6U3w0UTx4SjJXQnF6T2s5Q19mfnM8QiN2T2dmSX13cWlgTUl0ZVE5T2ZfNXI1QXp8UnZM
I0BIViFTc0hmKFZmYFgKemZJMTEyKShvUmpUbSpoam9TYW1SZlUyKy1LWkstQFooZn1WczxYOGNB
enFlQW5AWkAqK21FQnEwLThZSTRycVJ6CnpOX3lLXzM7YHlsKms1RXMxT15UY2tQPXlUQyNIazs3
QFo+NFI0U0ZoP2R+cnx0eyhgSiYoNjFEcF9VYnM4PEAhcQp6Xig7IWZ6Yl4mcCNaVzxmeVhzeEQ0
VFQ4XzNGdU50bWhQYHowJXhMeWlzc1QrMl48LVQzMXlLPHJmWHwrOChBeGoKekJmNilYWEZaOWFe
fjNlNXJpXkB5VEVhQXooPVpWZ2BxS3hCal99aX1jck0ldHUhdFdTT2tQMVE5aFAzYj11M2M4Cnoh
QnwxZFkxY1o1Uk1vYV83Z25zPD1aNjMjPzhsS28yfFc9KVBPYmxGVWQ5RFh0VDMtKWxJPnE1WHlW
TVVkWE00TQp6dGVfaEJZa0E8QkkwbzAxWGVedFdub3UhfVFTPChjbHBIMilUZVpGa0B2fGEoPUln
QUBkbzlifChKYUR0U0MzPzUKelJ3SiQkRHJ9T2BAQ1JVZCVYNjdsdFV5SzRwYG9GUGNhTHx7bkcq
OEdGfCNNJTtQbjg+IWE1bT5BYl9fLSgjSFRkCnpkfEsrajF3RWVSZ2x4NjZDXjJCam87bWk8KUhq
JFEhZzJtVSpGU3dhdSZkK2EtSDM/JGVQVHBSKiNgSG9NbU02fQp6aTs5ZSM9cVcyZVJpJkAjPT9+
PE4lV1d0e2tMRyZpd3NxYEgjMlJPbS0/e1ZMKVE3dENAKTFtNT1RaDY9QV52e0YKekM9fTI8Q2hj
PGAlU3l5IW1+c1k9M3VzcGZGPEM+amBWWVQ2SzRFcDg5PUB3O1d4QTFyQT90UnBvKyUrMih3VSRr
CnpZajhRLXBJVWQrVEI3eUJrYWNXMk1sOyNTRXd0b0drY2RSQ3w1YCUlJlhlVXRDdj05RyFyRjE9
RnooajI3OXFaKAp6aXZDK0s2YUt3ZDR1NV4+S1lLOzxTR0BqOypUMzs1QDJAaVh0NCNoWGxtRm49
X3h+d2lvRnZUWF8lP3goQFZmd2kKb1kyfDxQNkA+ck9KcDRiNXtrKHVrKVNsOSRKWUBMYkQ8fW0w
aHxifWhVI3plR0gqfUBGJHA4UVYKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBm
NDZjYzU4MzZiOWM2N2IxOTBmYzI5MWE5NWVkNmE2MjRjMmU3ZTllLi44MTJhODFiMmE0YTc1ZmMw
NTc2ZWZkZTZjMWIxMDA4Y2ZmZDgyNGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0zOTIyLDMgKzM5MjIsMTEgQEAg
QlVHV0s3MjI3OSA6IG1lZGlhL3RyYWNrL3RyYWNrLXdlYnZ0dC10YzAwNC1tYWdpYy1oZWFkZXIu
aHRtbCA9IFRJTUVPVVQgUEFTUwogQlVHV0s1OTc3MSBXSU4gOiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS10cmVlL3Jlc291cmNlLXRyZWUtZnJhbWUtYWRkLmh0bWwgPSBUSU1FT1VUIFBB
U1MKIAogQlVHV0s3MjM3NiBXSU4gOiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1sYWJlbC5o
dG1sID0gVEVYVCBQQVNTCisKKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgZG9uJ3QgaGF2ZSB0ZXN0
IGV4cGFjdGF0aW9ucyBiZWNhdXNlIHBhZ2Ugc2NhbGluZyB3aXRoIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aWVkIG1vZGUgaXMgYnJva2VuLgorQlVHV0s3MTIyNSBNQUMgV0lOIDogY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgPSBNSVNT
SU5HCitCVUdXSzcxMjI1IE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgPSBNSVNTSU5HCitCVUdXSzcx
MjI1IE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zv
cm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgPSBNSVNTSU5HCitCVUdXSzcxMjI1IE1BQyBX
SU4gOiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi5odG1sID0gTUlTU0lORworQlVHV0s3MTIyNSBNQUMgV0lOIDogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWwgPSBNSVNTSU5HCitCVUdXSzcxMjI1IE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbCA9IE1JU1NJTkcK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115821</attachid>
            <date>2011-11-18 08:57:32 -0800</date>
            <delta_ts>2011-11-18 19:05:27 -0800</delta_ts>
            <desc>Fixed merge conflicts</desc>
            <filename>bug-71225-20111118165730.patch</filename>
            <type>text/plain</type>
            <size>78896</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDc4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDExLTExLTE4ICBBbHBoYSBM
YW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGVk
IGxheWVycyBhcmUgYmx1cnJ5IHdpdGggYSB6b29tLWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgY29udGVudHMg
c2NhbGUgZmFjdG9yIHRvIHRoZSBjb21wb3NpdG9yIHN1Y2ggdGhhdCBpdCBjYW46CisgICAgICAg
IDEuIEFkanVzdCBjb250ZW50Qm91bmRzKCkgb2YgdGhlIGNvbXBvc2l0b2VyIGxheWVycyB3aXRo
IGNvbnRlbnQgc2NhbGUuCisgICAgICAgIDIuIEFwcGx5IHRoZSBjb250ZW50IHNjYWxlIGluIHRo
ZSBwYWludGVyIGZvciB0ZXh0dXJlIHVwZGF0ZSBpbiBiZXR0ZXIgcmVzb2x1dGlvbi4KKyAgICAg
ICAgMy4gQXBwbHkgdGhlIGNvbnRlbnQgc2NhbGUgdG8gdGhlIGRpcnR5IHJlY3QgaW4gQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlci4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlZCBibHVycnkg
cHJvYmxlbSBmb3IgYWxsIHRpbGVkIGxheWVyIHR5cGVzIGFuZCBpcyBub3QgbGltaXRlZCB0bwor
ICAgICAgICBwb3NpdGlvbjpmaXhlZCBsYXllcnMuCisKKyAgICAgICAgVGVzdHM6IGNvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0
bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRt
bAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZy
YW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxl
LWRvd24uaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRUcmFuc2Zvcm0pOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVMYXllclByZXNlcnZl
czNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29u
dGVudHNTY2FsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmNv
bnRlbnRzU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpk
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUxheWVyQ2hyb21pdW06Om5lZWRzQ29udGVudHNTY2FsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldENvbnRlbnRzU2NhbGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyQ2hyb21pdW06Om5lZWRzQ29udGVudHNTY2FsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXllckNocm9taXVtOjpjb250ZW50c1NjYWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXllclRleHR1cmVVcGRhdGVyQ2FudmFzOjpwYWludENvbnRlbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyVGV4dHVyZVVwZGF0ZXJCaXRtYXA6OnByZXBhcmVUb1VwZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclRleHR1cmVVcGRhdGVyU2tQaWN0dXJlOjpwcmVw
YXJlVG9VcGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
VGV4dHVyZVVwZGF0ZXJDYW52YXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXll
ckNocm9taXVtOjpuZWVkc0NvbnRlbnRzU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRM
YXllckNocm9taXVtOjpjb250ZW50Qm91bmRzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5
ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaDoKKwogMjAxMS0xMS0xOCAgSWdvciBPbGl2
ZWlyYSAgPGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbVGV4dHVyZU1h
cHBlcl0gY29tcHV0ZVBlcnNwZWN0aXZlVHJhbnNmb3JtSWZOZWVkZWQgaXMgY2FsbGVkIHR3aWNl
IGluIFRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQ29tcG9zaXRpbmdTdGF0ZQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAxMDA3NzcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEsNiArMTkxLDkgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ2hyb21pdW06OnNldFNpemUoY29ucwogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6
c2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCiB7Cisg
ICAgLy8gQ2FsbCB0aGlzIG1ldGhvZCBmaXJzdCB0byBhc3NpZ24gY29udGVudHMgc2NhbGUgdG8g
TGF5ZXJDaHJvbWl1bSBzbyB0aGUgcGFpbnRlciBjYW4gYXBwbHkgdGhlIHNjYWxlIHRyYW5zZm9y
bS4KKyAgICB1cGRhdGVDb250ZW50c1NjYWxlKCk7CisKICAgICBpZiAodHJhbnNmb3JtID09IG1f
dHJhbnNmb3JtKQogICAgICAgICByZXR1cm47CiAKQEAgLTU3MSw2ICs1NzQsOCBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJQCiAgICAgICAgIC8vIFNldCB0aGUgb2xk
IGxheWVyIHRvIG9wYWNpdHkgb2YgMS4gRnVydGhlciBkb3duIHdlIHdpbGwgc2V0IHRoZSBvcGFj
aXR5IG9uIHRoZSB0cmFuc2Zvcm0gbGF5ZXIuCiAgICAgICAgIG1fbGF5ZXItPnNldE9wYWNpdHko
MSk7CiAKKyAgICAgICAgbV9sYXllci0+c2V0Q29udGVudHNTY2FsZShjb250ZW50c1NjYWxlKCkp
OworCiAgICAgICAgIC8vIE1vdmUgdGhpcyBsYXllciB0byBiZSBhIGNoaWxkIG9mIHRoZSB0cmFu
c2Zvcm0gbGF5ZXIuCiAgICAgICAgIGlmIChtX2xheWVyLT5wYXJlbnQoKSkKICAgICAgICAgICAg
IG1fbGF5ZXItPnBhcmVudCgpLT5yZXBsYWNlQ2hpbGQobV9sYXllci5nZXQoKSwgbV90cmFuc2Zv
cm1MYXllci5nZXQoKSk7CkBAIC02MzQsNiArNjM5LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNo
cm9taXVtOjp1cGRhdGVDb250ZW4KICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldEJvdW5kcyhJbnRT
aXplKG1fY29udGVudHNSZWN0LndpZHRoKCksIG1fY29udGVudHNSZWN0LmhlaWdodCgpKSk7CiB9
CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50c1NjYWxlKCkKK3sK
KyAgICAvLyBJZiBwYWdlIHNjYWxlIGlzIGFscmVhZHkgYXBwbGllZCB0aGVuIHRoZXJlJ3Mgbm8g
bmVlZCB0byBhcHBseSBpdCBhZ2Fpbi4KKyAgICBpZiAoYXBwbGllc1BhZ2VTY2FsZSgpIHx8ICFt
X2xheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyLT5zZXRDb250ZW50c1NjYWxl
KGNvbnRlbnRzU2NhbGUoKSk7Cit9CisKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXR1
cENvbnRlbnRzTGF5ZXIoTGF5ZXJDaHJvbWl1bSogY29udGVudHNMYXllcikKIHsKICAgICBpZiAo
Y29udGVudHNMYXllciA9PSBtX2NvbnRlbnRzTGF5ZXIpCkBAIC02NjQsNiArNjc4LDEzIEBAIHZv
aWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXR1cENvbnRlbnQKICAgICB1cGRhdGVOYW1lcygp
OwogfQogCitmbG9hdCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmNvbnRlbnRzU2NhbGUoKSBjb25z
dAoreworICAgIGlmICghYXBwbGllc1BhZ2VTY2FsZSgpKQorICAgICAgICByZXR1cm4gcGFnZVNj
YWxlRmFjdG9yKCkgKiBkZXZpY2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiAxOworfQorCiAv
LyBUaGlzIGZ1bmN0aW9uIHNpbXBseSBtaW1pY3MgdGhlIG9wZXJhdGlvbiBvZiBHcmFwaGljc0xh
eWVyQ0EKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVPcGFjaXR5T25MYXllcigp
CiB7CkBAIC02NzIsNiArNjkzLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVwZGF0
ZU9wYWNpdAogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6ZGV2aWNlT3JQYWdlU2NhbGVG
YWN0b3JDaGFuZ2VkKCkKIHsKKyAgICB1cGRhdGVDb250ZW50c1NjYWxlKCk7CiAgICAgaWYgKG1f
bGF5ZXIpCiAgICAgICAgIG1fbGF5ZXItPnBhZ2VTY2FsZUNoYW5nZWQoKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCShyZXZpc2lvbiAxMDA3NzcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaAkod29ya2luZyBjb3B5KQpAQCAtOTQsMTMgKzk0LDEzIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAK
ICAgICAvLyBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBpbXBsZW1lbnQgdGhlIENDTGF5ZXJEZWxl
Z2F0ZSBpbnRlcmZhY2UuCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IElu
dFJlY3QmIGNsaXApOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVPcGFjaXR5T25MYXllcigpOwogCkBAIC0xMjUsOSArMTI1LDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c0ltYWdlKCk7CiAgICAgdm9pZCB1
cGRhdGVDb250ZW50c1ZpZGVvKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1JlY3QoKTsKKyAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRzU2NhbGUoKTsKIAogICAgIHZvaWQgc2V0dXBDb250ZW50c0xh
eWVyKExheWVyQ2hyb21pdW0qKTsKICAgICBMYXllckNocm9taXVtKiBjb250ZW50c0xheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyLmdldCgpOyB9CisgICAgZmxvYXQgY29udGVu
dHNTY2FsZSgpIGNvbnN0OwogCiAgICAgU3RyaW5nIG1fbmFtZUJhc2U7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAkocmV2aXNpb24gMTAwNzc3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAg
TGF5ZXJUZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0UkdCQSA6IExheWVyVGV4dHVy
ZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdEJHUkE7CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50
U2l6ZSYgdGlsZVNpemUsIGludCAvKiBib3JkZXJUZXhlbHMgKi8pCisgICAgdmlydHVhbCB2b2lk
IHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6
ZSYgdGlsZVNpemUsIGludCAvKiBib3JkZXJUZXhlbHMgKi8sIGZsb2F0IC8qIGNvbnRlbnRzU2Nh
bGUgKi8pCiAgICAgewogICAgICAgICBtX3RleFN1YkltYWdlLnNldFN1YkltYWdlU2l6ZSh0aWxl
U2l6ZSk7CiAgICAgfQpAQCAtMTg0LDUgKzE4NCwxMSBAQCB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1
bTo6Y3JlYXRlVGV4dHVyZVVwCiAgICAgbV90ZXh0dXJlVXBkYXRlciA9IEltYWdlTGF5ZXJUZXh0
dXJlVXBkYXRlcjo6Y3JlYXRlKGhvc3QtPmxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS51c2lu
Z01hcFN1Yik7CiB9CiAKK2Jvb2wgSW1hZ2VMYXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRzU2Nh
bGUoKSBjb25zdAoreworICAgIC8vIENvbnRlbnRzIHNjYWxlIGlzIG5vdCBuZWVkIGZvciBpbWFn
ZSBsYXllciBiZWNhdXNlIHRoaXMgY2FuIGJlIGRvbmUgaW4gY29tcG9zaXRvciBtb3JlIGVmZmlj
aWVudGx5LgorICAgIHJldHVybiBmYWxzZTsKK30KKwogfQogI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCShyZXZp
c2lvbiAxMDA3NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9JbWFnZUxheWVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KCk7CisgICAgdmlydHVhbCBib29sIG5lZWRz
Q29udGVudHNTY2FsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDb250ZW50cyhJbWFnZSogaW1h
Z2UpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAkocmV2aXNpb24gMTAwNzc3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDcgQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJD
aHJvbWl1bShDQ0xheWVyRGVsZQogICAgICwgbV9yZXBsaWNhTGF5ZXIoMCkKICAgICAsIG1fZHJh
d09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZSgwKQorICAgICwgbV9jb250
ZW50c1NjYWxlKDEuMCkKICAgICAsIG1fcGFnZVNjYWxlRGlydHkoZmFsc2UpCiB7CiB9CkBAIC0z
MjksNiArMzMwLDEzIEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0RGVidWdCb3JkZXJXaWR0aCgK
ICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIExheWVyQ2hyb21pdW06OnNldENvbnRl
bnRzU2NhbGUoZmxvYXQgY29udGVudHNTY2FsZSkKK3sKKyAgICBpZiAoIW5lZWRzQ29udGVudHNT
Y2FsZSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9jb250ZW50c1NjYWxlID0gY29udGVudHNT
Y2FsZTsKK30KKwogdm9pZCBMYXllckNocm9taXVtOjpjcmVhdGVSZW5kZXJTdXJmYWNlKCkKIHsK
ICAgICBBU1NFUlQoIW1fcmVuZGVyU3VyZmFjZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCShy
ZXZpc2lvbiAxMDA3NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2OCw2ICsxNjgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJpbmRDb250ZW50c1RleHR1cmUoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgcGFnZVNjYWxlQ2hhbmdlZCgpIHsgbV9wYWdlU2NhbGVEaXJ0eSA9IHRydWU7
IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKSB7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250ZW50c1NjYWxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIC8vIFRoZXNlIGV4aXN0IGp1c3QgZm9yIGRlYnVnZ2luZyAodmlhIGRyYXdEZWJ1
Z0JvcmRlcigpKS4KICAgICB2b2lkIHNldERlYnVnQm9yZGVyQ29sb3IoY29uc3QgQ29sb3ImKTsK
QEAgLTE5Niw2ICsxOTcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTY3JlZW5TcGFjZVRyYW5z
Zm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4KSB7IG1fc2NyZWVuU3BhY2VU
cmFuc2Zvcm0gPSBtYXRyaXg7IH0KICAgICBjb25zdCBJbnRSZWN0JiBkcmF3YWJsZUNvbnRlbnRS
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kcmF3YWJsZUNvbnRlbnRSZWN0OyB9CiAgICAgdm9pZCBz
ZXREcmF3YWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpIHsgbV9kcmF3YWJsZUNv
bnRlbnRSZWN0ID0gcmVjdDsgfQorICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRlbnRzU2NhbGU7IH0KKyAgICB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQp
OwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSBvZiB0aGUgbGF5ZXIncyBkZXNjZW5kYW50
cyBoYXMgY29udGVudCB0byBkcmF3LgogICAgIGJvb2wgZGVzY2VuZGFudERyYXdzQ29udGVudCgp
OwpAQCAtMjg0LDYgKzI4Nyw3IEBAIHByaXZhdGU6CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
bV9kcmF3VHJhbnNmb3JtOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fc2NyZWVuU3BhY2VU
cmFuc2Zvcm07CiAgICAgSW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CisgICAgZmxvYXQg
bV9jb250ZW50c1NjYWxlOwogCiAgICAgU3RyaW5nIG1fbmFtZTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyVGV4dHVyZVVwZGF0ZXIuaAkocmV2aXNpb24gMTAwNzc3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlVXBkYXRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGZvcm1hdCBzcGVj
aWZpZXMgdGhlIGNvbXBvbmVudCBvcmRlciBpbiB0aGUgc2FtcGxlZCB0ZXhlbC4KICAgICAvLyBJ
ZiB0aGUgZm9ybWF0IGlzIFRleGVsRm9ybWF0QkdSQSwgdmVjNC54IGlzIGJsdWUgYW5kIHZlYzQu
eiBpcyByZWQuCiAgICAgdmlydHVhbCBTYW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9y
bWF0KEdDM0RlbnVtIHRleHR1cmVGb3JtYXQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFy
ZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxl
U2l6ZSwgaW50IGJvcmRlclRleGVscykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9V
cGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXpl
LCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250ZW50c1NjYWxlKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZUFsbG9j
YXRvciosIE1hbmFnZWRUZXh0dXJlKiwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3Qg
SW50UmVjdCYgZGVzdFJlY3QpID0gMDsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
VGV4dHVyZVVwZGF0ZXJDYW52YXMuY3BwCShyZXZpc2lvbiAxMDA3NzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyQ2FudmFz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExLDEyICsxMTEsMjcgQEAgTGF5ZXJUZXh0dXJlVXBk
YXRlckNhbnZhczo6TGF5ZXJUZXh0dXJlVQogewogfQogCi12b2lkIExheWVyVGV4dHVyZVVwZGF0
ZXJDYW52YXM6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiBjb250ZW50UmVjdCkKK3ZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhczo6cGFp
bnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGNvbnRl
bnRSZWN0LCBmbG9hdCBjb250ZW50c1NjYWxlKQogewogICAgIGNvbnRleHQudHJhbnNsYXRlKC1j
b250ZW50UmVjdC54KCksIC1jb250ZW50UmVjdC55KCkpOwogICAgIHsKICAgICAgICAgVFJBQ0Vf
RVZFTlQoIkxheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXM6OnBhaW50IiwgdGhpcywgMCk7Ci0gICAg
ICAgIG1fcGFpbnRlci0+cGFpbnQoY29udGV4dCwgY29udGVudFJlY3QpOworCisgICAgICAgIElu
dFJlY3Qgc2NhbGVkQ29udGVudFJlY3QgPSBjb250ZW50UmVjdDsKKworICAgICAgICBpZiAoY29u
dGVudHNTY2FsZSAhPSAxLjApIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2F2ZSgpOworICAgICAg
ICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoY29udGVudHNTY2FsZSwgY29udGVudHNTY2Fs
ZSkpOworCisgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IGNvbnRlbnRSZWN0OworICAgICAg
ICAgICAgcmVjdC5zY2FsZSgxIC8gY29udGVudHNTY2FsZSk7CisgICAgICAgICAgICBzY2FsZWRD
b250ZW50UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocmVjdCk7CisgICAgICAgIH0KKworICAgICAg
ICBtX3BhaW50ZXItPnBhaW50KGNvbnRleHQsIHNjYWxlZENvbnRlbnRSZWN0KTsKKworICAgICAg
ICBpZiAoY29udGVudHNTY2FsZSAhPSAxLjApCisgICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUo
KTsKICAgICB9CiAgICAgbV9jb250ZW50UmVjdCA9IGNvbnRlbnRSZWN0OwogfQpAQCAtMTM5LDcg
KzE1NCw3IEBAIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdCAKICAgICAg
ICAgICAgIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJHQkEgOiBMYXll
clRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRCR1JBOwogfQogCi12b2lkIExheWVy
VGV4dHVyZVVwZGF0ZXJCaXRtYXA6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250
ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpCit2b2lk
IExheWVyVGV4dHVyZVVwZGF0ZXJCaXRtYXA6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0
JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMs
IGZsb2F0IGNvbnRlbnRzU2NhbGUpCiB7CiAgICAgbV90ZXhTdWJJbWFnZS5zZXRTdWJJbWFnZVNp
emUodGlsZVNpemUpOwogCkBAIC0xNTAsNyArMTY1LDcgQEAgdm9pZCBMYXllclRleHR1cmVVcGRh
dGVyQml0bWFwOjpwcmVwYXJlVAogICAgIFBsYXRmb3JtQ2FudmFzOjpQYWludGVyOjpUZXh0T3B0
aW9uIHRleHRPcHRpb24gPQogICAgICAgICBib3JkZXJUZXhlbHMgPyBQbGF0Zm9ybUNhbnZhczo6
UGFpbnRlcjo6R3JheXNjYWxlVGV4dCA6IFBsYXRmb3JtQ2FudmFzOjpQYWludGVyOjpTdWJwaXhl
bFRleHQ7CiAgICAgUGxhdGZvcm1DYW52YXM6OlBhaW50ZXIgY2FudmFzUGFpbnRlcigmbV9jYW52
YXMsIHRleHRPcHRpb24pOwotICAgIHBhaW50Q29udGVudHMoKmNhbnZhc1BhaW50ZXIuY29udGV4
dCgpLCBjb250ZW50UmVjdCk7CisgICAgcGFpbnRDb250ZW50cygqY2FudmFzUGFpbnRlci5jb250
ZXh0KCksIGNvbnRlbnRSZWN0LCBjb250ZW50c1NjYWxlKTsKIH0KIAogdm9pZCBMYXllclRleHR1
cmVVcGRhdGVyQml0bWFwOjp1cGRhdGVUZXh0dXJlUmVjdChHcmFwaGljc0NvbnRleHQzRCogY29u
dGV4dCwgVGV4dHVyZUFsbG9jYXRvciogYWxsb2NhdG9yLCBNYW5hZ2VkVGV4dHVyZSogdGV4dHVy
ZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCkBA
IC0xODIsMTIgKzE5NywxMiBAQCBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3Jt
YXQgCiAgICAgcmV0dXJuIExheWVyVGV4dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdFJH
QkE7CiB9CiAKLXZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlclNrUGljdHVyZTo6cHJlcGFyZVRvVXBk
YXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6ZSwg
aW50IGJvcmRlclRleGVscykKK3ZvaWQgTGF5ZXJUZXh0dXJlVXBkYXRlclNrUGljdHVyZTo6cHJl
cGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRTaXplJiB0
aWxlU2l6ZSwgaW50IGJvcmRlclRleGVscywgZmxvYXQgY29udGVudHNTY2FsZSkKIHsKICAgICBT
a0NhbnZhcyogY2FudmFzID0gbV9waWN0dXJlLmJlZ2luUmVjb3JkaW5nKGNvbnRlbnRSZWN0Lndp
ZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdodCgpKTsKICAgICBQbGF0Zm9ybUNvbnRleHRTa2lhIHBs
YXRmb3JtQ29udGV4dChjYW52YXMpOwogICAgIEdyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRl
eHQoJnBsYXRmb3JtQ29udGV4dCk7Ci0gICAgcGFpbnRDb250ZW50cyhncmFwaGljc0NvbnRleHQs
IGNvbnRlbnRSZWN0KTsKKyAgICBwYWludENvbnRlbnRzKGdyYXBoaWNzQ29udGV4dCwgY29udGVu
dFJlY3QsIGNvbnRlbnRzU2NhbGUpOwogICAgIG1fcGljdHVyZS5lbmRSZWNvcmRpbmcoKTsKIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJU
ZXh0dXJlVXBkYXRlckNhbnZhcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMuaAkocmV2aXNp
b24gMTAwNzc3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJUZXh0dXJlVXBkYXRlckNhbnZhcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3
IEBAIGNsYXNzIExheWVyVGV4dHVyZVVwZGF0ZXJDYW52YXMgOiBwdWJsaWMKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBMYXllclRleHR1cmVVcGRhdGVyQ2FudmFzKFBhc3NPd25QdHI8TGF5ZXJQ
YWludGVyQ2hyb21pdW0+KTsKIAotICAgIHZvaWQgcGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCk7CisgICAgdm9pZCBwYWludENvbnRlbnRz
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBmbG9hdCBjb250
ZW50c1NjYWxlKTsKICAgICBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGVudFJlY3Q7IH0KIAogcHJpdmF0ZToKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIHsgcmV0dXJuIExheWVy
VGV4dHVyZVVwZGF0ZXI6OkJvdHRvbVVwT3JpZW50YXRpb247IH0KICAgICB2aXJ0dWFsIFNhbXBs
ZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0gdGV4dHVyZUZvcm1hdCk7
Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50
UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJUZXhlbHMpOworICAgIHZp
cnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNv
bnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBmbG9hdCBjb250ZW50c1Nj
YWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3QoR3JhcGhpY3NDb250ZXh0
M0QqLCBUZXh0dXJlQWxsb2NhdG9yKiwgTWFuYWdlZFRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CiAKIHByaXZhdGU6CkBAIC04Nyw3
ICs4Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgT3JpZW50YXRpb24gb3JpZW50YXRpb24o
KSB7IHJldHVybiBMYXllclRleHR1cmVVcGRhdGVyOjpUb3BEb3duT3JpZW50YXRpb247IH0KICAg
ICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBzYW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0g
dGV4dHVyZUZvcm1hdCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJ
bnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsIGludCBib3JkZXJU
ZXhlbHMpOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYg
Y29udGVudFJlY3QsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLCBpbnQgYm9yZGVyVGV4ZWxzLCBm
bG9hdCBjb250ZW50c1NjYWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3Qo
R3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxsb2NhdG9yKiwgTWFuYWdlZFRleHR1cmUqLCBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCk7CiAKIHBy
aXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
aWxlZExheWVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDEw
MDc3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVk
TGF5ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1
bS5oIgogI2luY2x1ZGUgIk1hbmFnZWRUZXh0dXJlLmgiCisjaW5jbHVkZSAiTWF0aEV4dHJhcy5o
IgogI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKICNpbmNsdWRlICJjYy9DQ0xheWVySW1wbC5oIgog
I2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKQEAgLTEzNCw2ICsxMzUsMTYgQEAgYm9v
bCBUaWxlZExheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCgpIAogICAgIHJldHVybiAhbV9za2lw
c0RyYXc7CiB9CiAKK2Jvb2wgVGlsZWRMYXllckNocm9taXVtOjpuZWVkc0NvbnRlbnRzU2NhbGUo
KSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCitJbnRTaXplIFRpbGVkTGF5ZXJDaHJv
bWl1bTo6Y29udGVudEJvdW5kcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIEludFNpemUobHJvdW5k
Zihib3VuZHMoKS53aWR0aCgpICogY29udGVudHNTY2FsZSgpKSwgbHJvdW5kZihib3VuZHMoKS5o
ZWlnaHQoKSAqIGNvbnRlbnRzU2NhbGUoKSkpOworfQorCiB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1
bTo6c2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqIGhvc3QpCiB7CiAgICAgTGF5ZXJD
aHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChob3N0KTsKQEAgLTM3Myw3ICszODQsNyBAQCB2b2lk
IFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlCiAgICAgLy8gSG93ZXZlciwgd2Ug
Y2FuJ3QgZnJlZSB0aGUgbWVtb3J5IGJhY2tpbmcgdGhlIEdyYXBoaWNzQ29udGV4dCB1bnRpbCB0
aGUgcGFpbnQgZmluaXNoZXMsCiAgICAgLy8gc28gd2UgZ3JhYiBhIGxvY2FsIHJlZmVyZW5jZSBo
ZXJlIHRvIGhvbGQgdGhlIHVwZGF0ZXIgYWxpdmUgdW50aWwgdGhlIHBhaW50IGNvbXBsZXRlcy4K
ICAgICBSZWZQdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcj4gcHJvdGVjdG9yKHRleHR1cmVVcGRhdGVy
KCkpOwotICAgIHRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwg
bV90aWxlci0+dGlsZVNpemUoKSwgbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCkpOworICAgIHRl
eHR1cmVVcGRhdGVyKCktPnByZXBhcmVUb1VwZGF0ZShtX3BhaW50UmVjdCwgbV90aWxlci0+dGls
ZVNpemUoKSwgbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCksIGNvbnRlbnRzU2NhbGUoKSk7CiB9
CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCShyZXZpc2lvbiAxMDA3Nzcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVy
Q2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqKTsKIAogICAgIHZpcnR1
YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250
ZW50c1NjYWxlKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIEludFNpemUgY29udGVudEJvdW5kcygp
IGNvbnN0OwogCiAgICAgLy8gUmVzZXJ2ZXMgYWxsIGV4aXN0aW5nIGFuZCB2YWxpZCB0aWxlIHRl
eHR1cmVzIHRvIHByb3RlY3QgdGhlbSBmcm9tIGJlaW5nCiAgICAgLy8gcmVjeWNsZWQgYnkgdGhl
IHRleHR1cmUgbWFuYWdlci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lv
biAxMDA3ODEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTE4ICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGVkIGxheWVycyBhcmUgYmx1
cnJ5IHdpdGggYSB6b29tLWluIHBhZ2Ugc2NhbGUgZmFjdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudHMgR3JhcGhpY3NMYXllckNsaWVu
dCB0byByZXR1cm4gdmFsdWVzIGZvciBwYWdlU2NhbGVGYWN0b3IgYW5kIGRldmljZVNjYWxlRmFj
dG9yLiBUaGV5IGFyZSB1c2VkIHRvIGRldGVybWluZSBjb250ZW50cyBzY2FsZSBmYWN0b3IgY29t
cG9zaXRlciBsYXllcnMuCisKKyAgICAgICAgKiBzcmMvUGFnZU92ZXJsYXkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpPdmVybGF5R3JhcGhpY3NMYXllckNsaWVudEltcGw6OmRldmljZVNjYWxlRmFj
dG9yKToKKyAgICAgICAgKFdlYktpdDo6T3ZlcmxheUdyYXBoaWNzTGF5ZXJDbGllbnRJbXBsOjpw
YWdlU2NhbGVGYWN0b3IpOgorCiAyMDExLTExLTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Z29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBkaXNwYXRjaCBtZXNzYWdlcyBm
cm9tIHRoZSBmcm9udC1lbmQgdG8gdGhlIGJhY2tlbmQgYXN5bmNocm9ub3VzbHkuCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGFnZU92ZXJsYXkuY3BwCShyZXZpc2lvbiAxMDA3
NzcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QYWdlT3ZlcmxheS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTcwLDYgKzcwLDE2IEBAIHB1YmxpYzoKICAgICAgICAgbV9wYWdlT3Zlcmxh
eUNsaWVudC0+cGFpbnRQYWdlT3ZlcmxheShjb250ZXh0KTsKICAgICB9CiAKKyAgICB2aXJ0dWFs
IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
X3dlYlZpZXdJbXBsLT5kZXZpY2VTY2FsZUZhY3RvcigpOworICAgIH0KKworICAgIHZpcnR1YWwg
ZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3dl
YlZpZXdJbXBsLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICB9CisKICAgICB2aXJ0dWFsIGJvb2wg
c2hvd0RlYnVnQm9yZGVycygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV93ZWJWaWV3
SW1wbC0+cGFnZSgpLT5zZXR0aW5ncygpLT5zaG93RGVidWdCb3JkZXJzKCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxMDA3ODEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwzMiBAQAorMjAxMS0xMS0xOCAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gY29tcG9zaXRlZCBsYXllcnMgYXJlIGJsdXJyeSB3
aXRoIGEgem9vbS1pbiBwYWdlIHNjYWxlIGZhY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMjUKKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2Vz
IHRoYXQgaGFzIHBvc2l0aW9uOmZpeGVkIGFuZCBwYWdlIHNjYWxlLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFt
ZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBj
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdl
LXNjYWxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1l
eHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1l
eHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFu
c2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnBuZzog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
OgorCiAyMDExLTExLTE4ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbQ2hyb21pdW1dIGZhc3QvZmlsZXN5c3RlbS9maWxlLXdyaXRlci1hYm9ydC1kZXB0
aC5odG1sIGNyYXNoZXMgb2NjYXNpb25hbGx5IG9uIFdpbiBkYmcKSW5kZXg6IExheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS1kb3duLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAorVEVTVAorVEVTVAoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1kb3duLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5maXhlZC1uby16LWluZGV4IHsKKyAgcG9z
aXRpb246IGFic29sdXRlOworICBsZWZ0OiAxMHB4OworfQorLmZpeGVkLXdpdGgtei1pbmRleCB7
CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1pbmRleDogMTsKKyAgbGVmdDogMTBweDsKK30KKzo6
LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0aDogMHB4OworICBoZWlnaHQ6IDBweDsKK30KKzwv
c3R5bGU+Cis8c2NyaXB0PgorICBmdW5jdGlvbiBzY2FsZSgpIHsKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JG
aXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUp
OworICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICB9CisgIH0K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzY2FsZSgpOyIgc3R5bGU9IndpZHRo
OjIwMDBweDtoZWlnaHQ6MjAwMHB4OyI+Cis8ZGl2IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5U
RVNUPC9kaXY+PGJyPgorPGRpdiBjbGFzcz0iZml4ZWQtd2l0aC16LWluZGV4Ij5URVNUPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93
bi5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMiBAQAorVEVTVAorVEVTVAoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxl
CiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CisuZml4ZWQtbm8tei1pbmRleCB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgbGVmdDog
MTBweDsKK30KKy5maXhlZC13aXRoLXotaW5kZXggeworICBwb3NpdGlvbjogZml4ZWQ7CisgIHot
aW5kZXg6IDE7CisgIGxlZnQ6IDEwcHg7Cit9Cis6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgd2lk
dGg6IDBweDsKKyAgaGVpZ2h0OiAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgZnVuY3Rp
b24gc2NhbGUoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1
ZSk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxl
UGFnZUJ5KDIsIDAsIDApOworICAgIH0KKyAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InNjYWxlKCk7IiBzdHlsZT0id2lkdGg6MjAwMHB4O2hlaWdodDoyMDAwcHg7Ij4KKzxk
aXYgY2xhc3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8ZGl2IGNsYXNzPSJm
aXhlZC13aXRoLXotaW5kZXgiPlRFU1Q8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wt
c3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAorVEVTVAorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZy
YW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5maXhl
ZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAxMHB4OworfQor
LmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1pbmRleDogMTsK
KyAgbGVmdDogMTBweDsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0aDogMHB4Owor
ICBoZWlnaHQ6IDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBmdW5jdGlvbiB0ZXN0KCkg
eworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgd2luZG93LmludGVybmFscy5zZXRF
bmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUs
IDAsIDApOworICAgIH0KKworICAgIHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zy
YW1lJykuY29udGVudERvY3VtZW50Lm9wZW4oKTsKKyAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdw
b3NpdGlvbjpmaXhlZDsgei1pbmRleDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKKyAg
ICBkLmNsb3NlKCk7CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0
KCk7IiBzdHlsZT0id2lkdGg6MjAwMHB4O2hlaWdodDoyMDAwcHg7Ij4KKzxkaXYgY2xhc3M9ImZp
eGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8aWZyYW1lIGlkPSJmcmFtZSI+PC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdl
LXNjYWxlLWRvd24uaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYK
CkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1p
ZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK1RF
U1QKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC50
eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorLmZpeGVkLW5vLXotaW5kZXggeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGxlZnQ6IDEw
cHg7Cit9CisuZml4ZWQtd2l0aC16LWluZGV4IHsKKyAgcG9zaXRpb246IGZpeGVkOworICB6LWlu
ZGV4OiAxOworICBsZWZ0OiAxMHB4OworfQorOjotd2Via2l0LXNjcm9sbGJhciB7CisgIHdpZHRo
OiAwcHg7CisgIGhlaWdodDogMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9u
IHRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFn
ZUJ5KDIsIDAsIDApOworICAgIH0KKworICAgIHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2ZyYW1lJykuY29udGVudERvY3VtZW50Lm9wZW4oKTsKKyAgICBkLndyaXRlKCI8ZGl2IHN0
eWxlPSdwb3NpdGlvbjpmaXhlZDsgei1pbmRleDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4i
KTsKKyAgICBkLmNsb3NlKCk7CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJ0ZXN0KCk7IiBzdHlsZT0id2lkdGg6MjAwMHB4O2hlaWdodDoyMDAwcHg7Ij4KKzxkaXYgY2xh
c3M9ImZpeGVkLW5vLXotaW5kZXgiPlRFU1Q8L2Rpdj48YnI+Cis8aWZyYW1lIGlkPSJmcmFtZSI+
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExG
CgpJbmRleDogTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10
cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyIEBACitURVNUCitURVNUCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
dHlsZT4KKy5maXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0
OiAxMHB4OworICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3RhdGUoMjBk
ZWcpOworfQorLmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1p
bmRleDogMTsKKyAgbGVmdDogMTBweDsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgo
MTBweCkgcm90YXRlKDIwZGVnKTsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0aDog
MHB4OworICBoZWlnaHQ6IDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBmdW5jdGlvbiBz
Y2FsZSgpIHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdl
QnkoMC41LCAwLCAwKTsKKyAgICB9CisgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJzY2FsZSgpOyIgc3R5bGU9IndpZHRoOjIwMDBweDtoZWlnaHQ6MjAwMHB4OyI+Cis8ZGl2
IGNsYXNzPSJmaXhlZC1uby16LWluZGV4Ij5URVNUPC9kaXY+PGJyPgorPGRpdiBjbGFzcz0iZml4
ZWQtd2l0aC16LWluZGV4Ij5URVNUPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFk
ZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxl
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK1RFU1QKK1RFU1QKClByb3BlcnR5IGNo
YW5nZXMgb246IExheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5m
aXhlZC1uby16LWluZGV4IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBsZWZ0OiAxMHB4Owor
ICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KSByb3RhdGUoMjBkZWcpOworfQor
LmZpeGVkLXdpdGgtei1pbmRleCB7CisgIHBvc2l0aW9uOiBmaXhlZDsKKyAgei1pbmRleDogMTsK
KyAgbGVmdDogMTBweDsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCkgcm90
YXRlKDIwZGVnKTsKK30KKzo6LXdlYmtpdC1zY3JvbGxiYXIgeworICB3aWR0aDogMHB4OworICBo
ZWlnaHQ6IDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBmdW5jdGlvbiBzY2FsZSgpIHsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwgMCwg
MCk7CisgICAgfQorICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2NhbGUo
KTsiIHN0eWxlPSJ3aWR0aDoyMDAwcHg7aGVpZ2h0OjIwMDBweDsiPgorPGRpdiBjbGFzcz0iZml4
ZWQtbm8tei1pbmRleCI+VEVTVDwvZGl2Pjxicj4KKzxkaXYgY2xhc3M9ImZpeGVkLXdpdGgtei1p
bmRleCI+VEVTVDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3Jt
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5
bGUKICAgKyBMRgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlzaW9uIDEwMDc3NykKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMzk0MCwzICszOTQwLDEyIEBAIEJVR1dLNzI2NTEgTElOVVggREVCVUcgOiBpbnNwZWN0b3Iv
c3R5bGUKIAogQlVHV0s3MjcyOCBMRU9QQVJEIENQVS1DRyA6IGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQuaW1hZ2VEYXRhLnB1dC51bmNoYW5nZWQuaHRtbCA9IFRFWFQKIEJVR1dLNzI3MjggTEVPUEFS
RCBDUFUtQ0cgOiBmYXN0L2NhbnZhcy9jYW52YXMtYWxwaGFJbWFnZURhdGEtYmVoYXZpb3IuaHRt
bCA9IFRFWFQKKworLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBkb24ndCBoYXZlIHRlc3QgZXhwZWN0
YXRpb25zIGJlY2F1c2UgcGFnZSBzY2FsaW5nIHdpdGggYWNjZWxlcmF0ZWQgY29tcG9zaXRpZWQg
bW9kZSBpcyBicm9rZW4uCitCVUdXSzcxMjI1IE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCA9IE1JU1NJTkcKK0JV
R1dLNzEyMjUgTUFDIFdJTiA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlm
cmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCA9IE1JU1NJTkcKK0JVR1dLNzEyMjUgTUFD
IFdJTiA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCA9IE1JU1NJTkcKK0JVR1dLNzEyMjUgTUFDIFdJTiA6IGNv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWwgPSBNSVNTSU5HCitCVUdXSzcxMjI1IE1BQyBXSU4gOiBjb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRt
bCA9IE1JU1NJTkcKK0JVR1dLNzEyMjUgTUFDIFdJTiA6IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sID0g
TUlTU0lORworCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93
bi1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMg
YSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhwZWN0ZWQu
cG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCgppVkJP
UncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmph
M04xYlFCa05qSmxZalkyClltWXdPV1V3WXpZNE9UVTVPVEJqWmpoaU1UTTVOakU1WWtTUlUxa0FB
QXRCU1VSQlZIaWM3ZHl4emRwZ0ZFQlJIRkhBQklnUldJRkYKRUpQUTBjQXlWS3hGd3dpSUZGYWM2
TWRGaWh0RmljNHBQbG5tRlM2dnNQV0c5L3U5QUFDZzgrMXZQd0FBd1A5R1lBRUF4QVFXQUVCTQpZ
QUVBeEFRV0FFQnNKckNHSDM2OUh0M3Y5OVBwTlA3MFpSSUFnTkZNWUcwMm0ra2NsemhNNStGd2VE
NmZzNU1BQUl4bUF1dnhlRXpuCmFQcVA2bks1ckZhcmFYWFc1eVFBQU1Qc290RmgrSGwvdko3dUhJ
L0gzVzUzUHA4L0p3RUFXUHptUis2djEydXNxR0VZdHR2dDlYcjkKdzA4RkFQQVBtLy9JL2N1NVhD
NkhZZGp2OTR2RllyMWUzMjYzejBrQUFFWmU4QUVBeE96QkFnQ0lDU3dBZ0pqQUFnQ0kyZVFPQUJD
egp5UjBBSUdhVE93QkF6Q1ozQUlDWVRlNEFBREdiM0FFQVlsN3dBUURFN01FQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUMKQUlnSkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUMKQUlnSkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUMKQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUMKQUlnSkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUMKQUln
SkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUMK
QUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1NQUNB
SWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBCm1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFD
QW1NQUNBSWdKTEFDQW1NQUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUln
SkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNB
Cm1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdK
TEFDQW1NQUNBSWdKTEFDQW1NQUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFD
QUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pMQUNB
bU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pM
QUNBCm1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNB
SWdKTEFDQW1NQUNBSWdKTEFDQW1NQUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0Ft
TUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJZ0pM
QUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJ
Z0pMQUNBCm1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1N
QUNBSWdKTEFDQW1NQUNBSWdKTEFDQW1NQUMKQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxB
Q0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSkxBQ0FtTUFDQUlnSgpMQUNBbU1BQ0FJ
Z0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1BQ0FJZ0pMQUNBbU1B
Q0FJZ0pMQUNBCm1NQUNBSWg5QnczZGlOa281akpaQUFBQUFFbEZUa1N1UW1DQwoKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1leHBlY3RlZC5wbmcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUt
dHlwZSA9IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWlt
ZS10eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllD
QUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQXdZVEF5T0dSbQpZbUUxWm1FMVl6RmxO
bU01WVdJNE4yVmhNRGs0TldOaU5RYXh1T2tBQUJOeVNVUkJWSGljN2R4ZmFKYjEvOGZ4YStMTUEx
di9odGpKCnRnT2hja0ZyN0VBRUl3Z3B3WUdVVVREd0tBd1JhaGtpYXc0OEVNU0RLRHFSaUE0N0dR
WHBSQXdzYXJXb0hXeVk0RUZSV2dPM3R0aEoKdExHMWVmOE9iaGhqZjNUZWUybno5MzA4amo3M2RY
K3U2M29mUHJtMis2b3FsVW9GQUFBNTYvN3JBUUFBL3I4UldBQUFZUUlMQUNCTQpZQUVBaEFrc0FJ
QXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJB
bXNBQUF3Z1FXCkFFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1J
RUZnQkEyR29EcStxdVdIRFQ0ZUhoZDk1NXA2bXAKNmY3Nzc2K3VycTZycTN2eHhSYy8vdmpqc2JH
eHI3NzZhc0grMWQ4T0FPQzJCSjVnclZ1MzdyMzMzaHNiRzd0eDQwYXBWQ3FWU25OZgpsVC9PenM0
T0RRMGRPM2FzM0M2bFVtbDBkUFQxMTE5ZnNHMis2ZW5wYTlldXZmbm1tNHR2ZC83OCtXM2J0cDA4
ZVhMNzl1MERBd01UCkV4UGZmZmZkenAwN096bzZObS9lL054eno2MStRZ0NBVlZrY043ZWxLSXJE
aHc4dlByamt4UThkT2pSM2NHaG9hQ1V6dExhMnp0OHcKTURCdzMzMzNGVVhSM3Q2K1lPZWZmLzda
MU5TMCtJSVZUd2dBVUptcTByemFxRUJWVmRYbHk1ZWZmUExKQlFmbjhtWCs4Y0hCd2VibQo1dkxC
bVptWjZ1cnFKYmZOOTlsbm4rM2J0Mjl1UTJ0cjY3bHo1NHFpdUg3OStxT1BQcnBnOCsrLy8vN0VF
MDlNVGs3T3YyREZFd0lBClZHYTFmeUpzYTJ0NzdMSEhWcmg1MjdadGJXMXQ1Zlg2OWV0WGNzcU9I
VHZtZit6dDdTMHZhbXBxRm0rdXI2L2Z2MzkvYWtJQWdNcXMKOWduVzBoZGQ1dmxRWmR2bTI3UnAw
ei8vL0ZNVXhZY2Zmbmpnd0lIRkd5NWN1TEI3OSs1YlhyQ0NXd01Bck5BOTlwcUc1NTkvdnJ4bwpi
MjgvZS9iczRnMHRMUzEzZHlJQWdJWFdhR0Q5L2ZmZlMvNmc3OTEzMzkyOGVYTlJGSk9UazN2Mzdu
M3JyYmNtSnlmbmI2aXRyZlZRCkNnRDRiNjNSd1ByaGh4K1dQTjdRME5EWDEvZjAwMDhYUlZFcWxk
NS8vLzNHeHNZelo4N2MzZWtBQUc1bXpRWFc5UFQwNE9EZ2tTTkgKbHR1d2RldlcvdjcrRHo3NDRL
R0hIaXFLNHVyVnEzdjM3dDIxYTllVksxZnU0cGdBQU10YUUvL2t2cHlibi83WFgzOTFkWFY5OU5G
SApzN096UlZGVVYxY2ZQbno0K1BIakd6ZHVURTBJQUZDQk5mRUVhLzZMdWFhbXB2cjcreHNiRzI5
NVZtMXQ3ZW5UcHdjR0JwNTk5dG1pCktQNzk5OTlUcDA0MU56Zi8rdXV2ZDN4aUFJRGxyWWtuV0l1
M2ZmSEZGeSs4OE1MS1ovdmtrMC9lZU9PTjhmSHhvaWpxNnVvR0J3Y2YKZnZqaDFVOElBRkNCTmZF
RWE3SGJmZHRDVzF0YlgxL2ZBdzg4VUJURkgzLzhjZUxFaVRzekZ3REFyYTNSd0hya2tVZVdmTFpV
VlZVMQpQRHk4NUNtUFAvNTRaMmRuZWQzZDNYMEhod01BdUtrMUdsZzM4ZjMzM3kvMzFTdXZ2Rkpl
akkyTjNhMXhBQUFXdWpjQ3E2ZW5wN201CnVieisvUFBQbDl1MlpjdVc4cUsrdnY1dWpBVUFzSlI4
WU0zTXpNeXR5eTlRV05LTkd6ZFdlTUh4OGZHREJ3Kys5dHByNVkvZDNkMi8KL1BMTGtqdC8rdW1u
OHVMbGwxOWUvWVFBQUpYSkI5YjE2OWVYWEM4d09qbzZ0NTVmUEF0TVRFeTg5TkpMNCtQamJXMXQ1
U1BUMDlONwo5dXo1N2JmZkZ1eWNuWjN0Nk9nb2ltTHIxcTFIang1ZC9ZUUFBSlVKQjlidzhIQzVj
c3E2dXJwR1JrWVdiN3QyN2RyYmI3ODk5N0duCnAyZkJrNlNabVptUmtaRlBQLzIwcGFYbDY2Ky8z
cmR2WC9rWGdtVS8vL3p6VTA4OTFkblplZW5TcGFtcHFZbUppZDdlM2wyN2RsMjgKZUxHcHFlbml4
WXMxTlRXcm5CQUFvR0xKOTJEZDVNM3M4Kzl5eXhlNEwvYk5OOTg4ODh3ejVYTi8vUEhIaG9hR2I3
Lzk5c3N2dit6dAo3YjE2OWVyVTFOU0REejdZMU5UMDZxdXY3dCsvZjhPR0RhdWNFQUJnTmU3SWkw
WUJBUDZYM1J1L0lnUUF1SWNJTEFDQU1JRUZBQkFtCnNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFn
c0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUwKQUNCTVlB
RUFoQWtzQUlDdzFRWlcxVjJ4NEtiRHc4UHZ2UE5PVTFQVC9mZmZYMTFkWFZkWDkrS0xMMzc4OGNk
alkyTmZmZlhWZ3Yycgp2eDBBd0cwSlBNRmF0MjdkZSsrOU56WTJkdVBHalZLcFZDcVY1cjRxZjV5
ZG5SMGFHanAyN0ZpNVhVcWwwdWpvNk91dnY3NWcyM3pUCjA5UFhybDE3ODgwM0Y5L3UvUG56Mjda
dE8zbnk1UGJ0MndjR0JpWW1Kcjc3N3J1ZE8zZDJkSFJzM3J6NXVlZWVXLzJFQUFDcnNqaHUKYmt0
UkZJY1BIMTU4Y01tTEh6cDBhTzdnME5EUVNtWm9iVzJkdjJGZ1lPQysrKzRyaXFLOXZYM0J6ai8v
L0xPcHFXbnhCU3VlRUFDZwpNbFdsZWJWUmdhcXFxc3VYTHovNTVKTUxEczdseS96amc0T0R6YzNO
NVlNek16UFYxZFZMYnB2dnM4OCsyN2R2Mzl5RzF0YldjK2ZPCkZVVngvZnIxUng5OWRNSG0zMy8v
L1lrbm5waWNuSngvd1lvbkJBQ296R3IvUk5qVzF2YllZNCt0Y1BPMmJkdmEydHJLNi9YcjE2L2sK
bEIwN2Rzei8yTnZiVzE3VTFOUXMzbHhmWDc5Ly8vN1VoQUFBbFZudEU2eWxMN3JNODZIS3RzMjNh
ZE9tZi83NXB5aUtEei84OE1DQgpBNHMzWExod1lmZnUzYmU4WUFXM0JnQllvWHZzTlEzUFAvOThl
ZEhlM243MjdObkZHMXBhV3U3dVJBQUFDNjNSd1ByNzc3K1gvRUhmCnUrKyt1M256NXFJb0ppY245
KzdkKzlaYmIwMU9UczdmVUZ0YjY2RVVBUERmV3FPQjljTVBQeXg1dktHaG9hK3Y3K21ubnk2S29s
UXEKdmYvKys0Mk5qV2ZPbkxtNzB3RUEzTXlhQzZ6cDZlbkJ3Y0VqUjQ0c3QySHIxcTM5L2YwZmZQ
REJRdzg5VkJURjFhdFg5KzdkdTJ2WApyaXRYcnR6Rk1RRUFsclVtL3NsOU9UYy8vYSsvL3VycTZ2
cm9vNDltWjJlTG9xaXVyajU4K1BEeDQ4YzNidHlZbWhBQW9BSnI0Z25XCi9CZHpUVTFOOWZmM056
WTIzdktzMnRyYTA2ZFBEd3dNUFB2c3MwVlIvUHZ2djZkT25XcHVidjcxMTEvditNUUFBTXRiRTAr
d0ZtLzcKNG9zdlhuamhoWlhQOXNrbm43enh4aHZqNCtORlVkVFYxUTBPRGo3ODhNT3JueEFBb0FK
cjRnbldZcmY3dG9XMnRyYSt2cjRISG5pZwpLSW8vL3ZqanhJa1RkMll1QUlCYlc2T0I5Y2dqanl6
NWJLbXFxbXA0ZUhqSlV4NS8vUEhPenM3eXVydTcrdzRPQndCd1UyczBzRzdpCisrKy9YKzZyVjE1
NXBid1lHeHU3VytNQUFDeDBid1JXVDA5UGMzTnplZjM1NTU4dnQyM0xsaTNsUlgxOS9kMFlDd0Jn
S2ZuQW1wbVoKbVZ1WFg2Q3dwQnMzYnF6d2d1UGo0d2NQSG56dHRkZktIN3U3dTMvNTVaY2xkLzcw
MDAvbHhjc3Z2N3o2Q1FFQUtwTVByT3ZYcnkrNQpYbUIwZEhSdVBiOTRGcGlZbUhqcHBaZkd4OGZi
MnRyS1I2YW5wL2ZzMmZQYmI3OHQyRGs3Tzl2UjBWRVV4ZGF0VzQ4ZVBicjZDUUVBCktoTU9yT0ho
NFhMbGxIVjFkWTJNakN6ZWR1M2F0YmZmZm52dVkwOVB6NEluU1RNek15TWpJNTkrK21sTFM4dlhY
Mys5YjkrKzhpOEUKeTM3KytlZW5ubnFxczdQejBxVkxVMU5URXhNVHZiMjl1M2J0dW5qeFlsTlQw
OFdMRjJ0cWFsWTVJUUJBeFpMdndickptOW5uMytXVwpMM0JmN0p0dnZubm1tV2ZLNS83NDQ0OE5E
UTNmZnZ2dGwxOSsyZHZiZS9YcTFhbXBxUWNmZkxDcHFlblZWMS9kdjMvL2hnMGJWamtoCkFNQnEz
SkVYalFJQS9DKzdOMzVGQ0FCd0R4RllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFN
SUVGZ0JBbU1BQ0FBZ1QKV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFK
akFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRgpBQkFtc0FBQXdnUVdBRUNZd0FJQUNC
TllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBCllR
SUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdB
QkFJUUpMQUNBTUlFRkFCQW0Kc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3
QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTApBQ0JNWUFFQWhBa3NBSUF3Z1FV
QUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFB
CndnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JB
bU1BQ0FBZ1RXQUFBWVFJTEFDQk0KWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJ
RTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRVwpBRUNZd0FJQUNCTllBQUJo
QWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1Z
QUVBCmhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpM
QUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1kKd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JC
UUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrcwpBSUF3Z1FVQUVDYXdB
QURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FF
Q1l3QUlBCkNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FB
Z1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXcKZ1FVQUVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFH
RUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWQpBQUJoQWdzQUlF
eGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFr
c0FJQXdnUVVBCkVDYXdBQURDQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlF
RkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmgKQWdzQUlFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJB
QUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhdwpBQURDQkJZ
QVFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlB
Q0JOWUFBQmhBZ3NBCklFeGdBUUNFQ1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFB
WVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBREMKQkJZQVFKakFBZ0FJRTFnQUFHRUNDd0Fn
VEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4ZwpBUUNF
Q1N3QWdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdn
UVVBRUNhd0FBRENCQllBClFKakFBZ0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1z
QUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0UKQ1N3QWdEQ0JCUUFRSnJBQUFNSUVG
Z0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQQpB
Z0FJRTFnQUFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFB
QmhBZ3NBSUV4Z0FRQ0VDU3dBCmdEQ0JCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFD
Qk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUkKRTFnQUFHRUNDd0FnVEdBQkFJ
UUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RD
QgpCUUFRSnJBQUFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNh
d0FBRENCQllBUUpqQUFnQUlFMWdBCkFHRUNDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dR
V0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVEKSnJBQUFNSUVGZ0JBbU1B
Q0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdB
QUdFQwpDd0FnVEdBQkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NB
SUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBCkFNSUVGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVB
aEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWcKVEdBQkFJUUpMQUNB
TUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFK
ckFBQU1JRQpGZ0JBbU1BQ0FBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENC
QllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCCkFJUUpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3
QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkEKbU1BQ0FBZ1RX
QUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3
QWdUR0FCQUlRSgpMQUNBTUlFRkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FR
Q0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDCkFBZ1RXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJ
QXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0EKTUlFRkFC
QW1zQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1J
RUZnQkFtTUFDQUFnVApXQUFBWVFJTEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpq
QUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGCkFCQW1zQUFBd2dRV0FFQ1l3QUlBQ0JO
WUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUEKWVFJ
TEFDQk1ZQUVBaEFrc0FJQXdnUVVBRUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FC
QUlRSkxBQ0FNSUVGQUJBbQpzQUFBd2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dB
Z0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFqN1A1VzJRdXNHCmtZSXBBQUFBQUVsRlRrU3VRbUND
CgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3du
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24tZXhw
ZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcK
CgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hS
amFHVmphM04xYlFBMVpESXpOVFl3ClpEVXlObUl5TW1SalpUTXlZemMyTWpoaFpUUTRaRGxoWkdN
dGt4WUFBQXY4U1VSQlZIaWM3ZDB4VGlOWkZFQlIxK0FBVm1BNUppSWcKYjdFUlJNd2luQkZncjRJ
ZE9HSmJKQllyUUV4UTZtb0dyR1phdWkwTGZFN3dWV1cvNElkWHJ0TDM4UHI2T2dNQW9QUFBvVGNB
QVBEZApDQ3dBZ0pqQUFnQ0lDU3dBZ0pqQUFnQ0k3UW1zNGFlMzE2UEh4OGZWYWpWKzlXNFNBSURS
bnNCYUxCYlRPaDdpTUszWDE5ZTczVzd2CkpBQUFvejJCOWZUME5LMmo2VGVxOVhwOWVubzZIWjMx
Y1JJQWdHSHZRYVBEOE92ejhYcjY1T2JtNXVMaTR1N3U3dU1rQUFDei8vbVMKKzh2THkxaFJ3ekFz
bDh2Tlp2T1hkd1VBOElYdGY4bjkzVHFmejRkaHVMcTZtczFtWjJkbjIrMzI0eVFBQUNNUCtBQUFZ
czdCQWdDSQp6ZC9lUER3OGVONzMxZjM0OGVQeTh2TFF1d0NBby9hZndEbzVPYm05dlQzVVZrZzhQ
ejhmZWdzQWNPdzhJZ1FBaUFrc0FJQ1l3QUlBCmlBa3NBSUNZd0FJQWlIMFNXTU5QYjY5SGo0K1Bx
OVZxT3RiaDdTUUF3REg3SkxBV2k4VzBqbWUrVCt2MTlmVnV0OXM3Q1FCd3pENEoKcktlbnAya2RU
YjlScmRmcjA5UFQ2WjkyUGs0Q0FCeW5QMzRIYXlxcTFXcTEyKzN1NysvckxRRUFmRzEvSEZndkx5
OWpZdzNEc0Z3dQpONXZOWDlnVkFNQVg5dmxMN3UvVytYdytETVBWMWRWc05qczdPOXR1dHg4bkFR
Q08yZnozWDA4UEJOOWQvMzRTQU9DWU9RY0xBQ0FtCnNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNB
QUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNBQUEKWWdJTEFD
QW1zQUFBWWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFBWWdJ
TEFDQW1zQUFBWWdJTApBQ0Ftc0FBQVlnSUxBQ0Ftc0FBQVlnSUxBQ0Ftc0FBQVlnSUxBQ0Ftc0FB
QVlnSUxBQ0Ftc0FBQVlnSUxBQ0Ftc0FBQVlnSUxBQ0FtCnNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNB
bXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNBQUFZZ0lMQUNBbXNBQUEKWWdJ
TEFDQW1zQUFBWWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFBWWdJTEFDQW1zQUFB
WXZPM04rZm41OC9QejRmYQpDZ0RBOXpDOHZyNGVlZzhBQU4rS1I0UUFBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCCkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVEK
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCCkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCCkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCCkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCCkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCCkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCCkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
CkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCCkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCCkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJR
QVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFE
R0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFB
UUUxZ0FBREdCCkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURH
QkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFn
QUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdCQlFB
UUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdC
QlFBUUUxZ0FBREdCCkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdB
QURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JCUUFR
RTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpBREdC
QlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FB
REdCQlFBUUUxZ0FBREdCCkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVFF
MWdBQURHQkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVEKRTFnQUFER0JCUUFRRTFnQUFER0JC
UUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQUFER0JCUUFRRTFnQQpB
REdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUxZ0FBREdCQlFBUUUx
Z0FBREdCQlFBUUUxZ0FBREdCCkJRQVFFMWdBQURHQkJRQVFFMWdBQURHQkJRQVEreGNoQ1pMQW4r
SlUvd0FBQUFCSlJVNUVya0pnZ2c9PQoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6
IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcK
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKICAg
KyBpbWFnZS9wbmcKCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJV
bkFBQUFLWFJGV0hSamFHVmphM04xYlFBME1XSm1ZVEJsCk1UazNaV05qTm1GbE9XWmpORFZrWWpn
MlltWTNOR1poWXJJT3BjRUFBQlEwU1VSQlZIaWM3ZDFmYU5YMUg4Zng3OHhwUVZtWkRMdEkKdlJq
VVQ2UFdNTEtnaUVJc3lCaHBGQXlNS1B0RC84d3dNek82Q0tJTFVZU0lrTzdzUmdxMFJSVFl2NVZS
WG14WllHQ1VsdUZzaTNrUgpiVzF0bnQvRmdYSFlwczN0NVRibjQzSDFPZC96K1o3disvTEpkenZm
VTFVcWxRb0FBSEttVGZRQUFBQlRqY0FDQUFnVFdBQUFZUUlMCkFDQk1ZQUVBaEFrc0FJQXdnUVVB
RUNhd0FBRENCQllBUUpqQUFnQUlFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUEK
d2dRV0FFQ1l3QUlBQ0JOWUFBQmhBZ3NBSUV4Z0FRQ0VDU3dBZ0RDQkJRQVFKckFBQU1MR0dsaFY0
MkxRUmR2YTJsNTg4Y1c2dXJxTApMcnFvdXJwNjNyeDU5OXh6ejl0dnY5M1IwZkhwcDU4TzJqLzJ5
d0VBbkpiQUhheHAwNlp0MmJLbG82UGp4SWtUcFZLcFZDb052RlYrCjJkL2ZmK1RJa1pkZWVxbmNM
cVZTcWIyOS9kRkhIeDIwclZKdmIrL2h3NGVmZWVhWm9aZjc4TU1QRnk1YytOcHJyeTFac3FTbHBh
V3IKcSt1cnI3NjYrZWFiTjJ6WVVGTlRjL3Z0dDQ5OVFnQ0FNUmthTjZlbEtJcTFhOWNPUFRqc2h6
L3h4Qk1EQjQ4Y09US1NHWll2WDE2NQpvYVdsWmViTW1VVlJyRm16WnRET1AvNzRvNjZ1YnVnSGpu
cENBSURScVNwVjFNWW9WRlZWL2ZEREQxZGZmZldnZ3dQNVVubTh0YlcxCnZyNitmTEN2cjYrNnVu
clliWlhlZSsrOWxTdFhEbXhZdm56NUJ4OThVQlRGMGFOSEw3Lzg4a0diZi8zMTEvLzk3My9kM2Qy
Vkh6anEKQ1FFQVJtZXNmeUpzYkd5ODhzb3JSN2g1NGNLRmpZMk41ZlgwNmROSGNzcE5OOTFVK2JL
NXVibThtRFZyMXRETjgrZlBYN1ZxVldwQwpBSURSR2VzZHJPRS85Q1QzaDBhM3JkS0ZGMTc0OTk5
L0YwWHgxbHR2UGZMSUkwTTNmUFRSUjNmZWVlZC9mdUFvTGcwQU1FSm4yV01hCmxpMWJWbDZzV2JQ
bS9mZmZIN3BoOGVMRjR6c1JBTUJna3pTdy92cnJyMkcvMExkNTgrYWFtcHFpS0xxN3V4c2FHcDU5
OXRudTd1N0sKRFhQbXpIRlRDZ0NZV0pNMHNMNzU1cHRoank5WXNHRHYzcjNYWFhkZFVSU2xVbW5y
MXEyTEZpM2F2WHYzK0U0SEFIQXFreTZ3ZW50NwpXMXRiMTYxYmQ3SU50YlcxKy9idDI3WnQyNldY
WGxvVXhhRkRoeG9hR3BZdVhYcmd3SUZ4SEJNQTRLUW14VCs1bjh5cFQvL3p6ejgzCmJkcTBmZnYy
L3Y3K29paXFxNnZYcmwzN3lpdXZuSC8rK2FrSkFRQkdZVkxjd2FwOE1GZFBUOCsrZmZzV0xWcjBu
MmZObVRQbnpUZmYKYkdscHVmWFdXNHVpK1BmZmYxOS8vZlg2K3ZxZmYvNzVqRThNQUhCeWsrSU8x
dEJ0SDMvODhSMTMzREh5MmQ1NTU1Mm5uMzY2czdPegpLSXA1OCthMXRyYk9uajE3N0JNQ0FJekNw
TGlETmRUcFBtMmhzYkZ4Nzk2OUYxOThjVkVVdi8zMjI2dXZ2bnBtNWdJQStHK1ROTEF1CnUreXlZ
ZTh0VlZWVnRiVzFEWHZLVlZkZHRYSGp4dko2NTg2ZFozQTRBSUJUbXFTQmRRcGZmLzMxeWQ2Njc3
Nzd5b3VPam83eEdnY0EKWUxDekk3Q2FtcHJxNit2TDYxMjdkcDFzMjl5NWM4dUwrZlBuajhkWUFB
RER5UWRXWDEvZndMcjhBSVZoblRoeFlvUWYyTm5aK2Zqagpqei84OE1QbGx6dDM3dnpwcDUrRzNm
bjk5OStYRi9mZWUrL1lKd1FBR0oxOFlCMDllblRZOVNEdDdlMEQ2OHJpR2FTcnEydkZpaFdkCm5a
Mk5qWTNsSTcyOXZYZmRkZGN2di93eWFHZC9mLytHRFJ1S29xaXRyVjIvZnYzWUp3UUFHSjF3WUxX
MXRaVXJwMnpUcGszSGpoMGIKdXUzdzRjUFBQZmZjd011bXBxWkJkNUw2K3ZxT0hUdjI3cnZ2TGw2
OCtQUFBQMSs1Y21YNUc0SmxCdzhldlBiYWF6ZHUzTGgvLy82ZQpucDZ1cnE3bTV1YWxTNWZ1MmJP
bnJxNXV6NTQ5czJiTkd1T0VBQUNqbG53TzFpbWV6RjU1bGY5OGdQdFFYM3p4eFMyMzNGSSs5OXR2
CnYxMndZTUdYWDM3NXlTZWZORGMzSHpwMHFLZW41NUpMTHFtcnE3di8vdnRYclZvMVk4YU1NVTRJ
QURBV1orUkJvd0FBNTdLejQxdUUKQUFCbkVZRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJo
QWdzQUlFeGdBUUNFQ1N3QWdMRHBwM3ZDOXUzYno4UWNBSEQydXVHRwpHNjY1NXBxSm5vSkp4QjBz
QUJpVEcyNjQ0WW9ycnBqb0taaGNCQllBako2NllsZ0NDd0JHU1YxeE1xZjlQMWlWVnE5ZW5ab0RB
TTQ2Cng0OGZuK2dSbUtUY3dRSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFB
TUlFRmdCQW1NQUNBQWdUV0FBQVlRSUwKQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFR
SmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQQp3Z1FXQUVEWWVBZFcx
YmdZZE5HMnRyWVhYM3l4cnE3dW9vc3VxcTZ1bmpkdjNqMzMzUFAyMjI5M2RIUjgrdW1uZy9hUC9Y
SUF3RGx1CkF1NWdUWnMyYmN1V0xSMGRIU2RPbkNpVlNxVlNhZUN0OHN2Ky92NGpSNDY4OU5KTDVY
WXBsVXJ0N2UyUFB2cm9vRzJWZW50N0R4OCsKL013enp3eTkzSWNmZnJodzRjTFhYbnR0eVpJbExT
MHRYVjFkWDMzMTFjMDMzN3hodzRhYW1wcmJiNzk5N0JNQ0FGU3FxcXlIa2RpKwpmZnZBZXZYcTFh
ZDl2YXFxdFd2WGJ0NjhlZERCOG1MUU1FOCsrZVFiYjd4UlB2ajc3NzlmY2NVVncyNnJkUGZkZHpj
MU5RMXNhRzF0CnZmSEdHM3Q2ZXRhc1diTmx5NWJLbmUzdDdjdVdMZnZ1dSs4R2ZlQ29Kd1RnWEhQ
OCtQR0I5YVdYWGpxQmt6RFpUTUFkckFjZmZIQ0UKT3g5NjZLR0I5ZHk1YzBkeXlnTVBQRkQ1OHVX
WFgrN3A2U21LNHZubm54KzBzNmFtWnRldVhSZGNjRUZxUWdDQXN2RU9yTWJHeGl1dgp2SEtFbXhj
dVhOalkyRmhlVDU4K2ZTU24zSFRUVFpVdm01dWJ5NHRaczJZTjNUeC8vdnhWcTFhbEpnUUFLQnZ2
d05xeFkwZDFkZlVJCk44K2NPWFBIamgybjlmbVhYMzU1NVIvcyt2djd5NHQzM25sbjJQME5EUTNq
UENFQU1PVk44Y2MwTEZ1MnJMeFlzMmJOKysrL1AzVEQKNHNXTHgzY2lBR0RxbXlLQjlkZGZmdzM3
aGI3Tm16ZlgxTlFVUmRIZDNkM1EwUERzczg5MmQzZFhicGd6WjQ1L1VRY0FzcVpJWUgzegp6VGZE
SGwrd1lNSGV2WHV2dSs2Nm9paEtwZExXclZzWExWcTBlL2Z1OFowT0FEaTNuUFdCMWR2YjI5cmF1
bTdkdXBOdHFLMnQzYmR2CjM3WnQyOHBmb0QxMDZGQkRROFBTcFVzUEhEZ3dqbU1DQU9lUXN6S3dL
cCtpUG5QbXpQcjYrdjM3OTU5aS8vVHAwNTk2NnFtREJ3OCsKOXRoajU1MTNYbEVVZS9ic3FhdXJl
K0dGRi83NTU1L3htaG9BT0ZlY2xZRlYrUXozbnA2ZWZmdjJMVnEwNkQvUG1qTm56cHR2dnRuUwow
bkxycmJjV1JmSHZ2LysrL3ZycjlmWDFQLy84OHhtZkdBQTRsNXlWZ1ZWcHhvd1oxMTkvL2FBSHI1
L0NOZGRjODlsbm4rM1lzV1AyCjdObEZVZno0NDQrMzNYWmJaMmZubVp3UkFEaTNuUFdCVlhhNlQx
dG9iR3pjdTNmdnhSZGZYQlRGYjcvOTl1cXJyNTZadVFDQWM5RVUKQ2F6TExydHMyS2N0VkZWVnRi
VzFEWHZLVlZkZHRYSGp4dko2NTg2ZFozQTRBT0FjTTBVQzZ4UysvdnJyazcxMTMzMzNsUmNkSFIz
agpOUTRBTVBWTnpjQnFhbXFxcjY4dnIzZnQybld5YlFNL0lEMS8vdnp4R0FzQU9EZE1mR0QxOWZV
TnJBZCtPbkNvRXlkT2pQQURPenM3CkgzLzg4WWNmZnJqOGN1Zk9uVC85OU5Pd083Ly8vdnZ5NHQ1
Nzd4MzdoQUFBWlJNZldFZVBIaDEyUFVoN2UvdkF1cko0QnVucTZscXgKWWtWbloyZGpZMlA1U0c5
djcxMTMzZlhMTDc4TTJ0bmYzNzlodzRhaUtHcHJhOWV2WHovMkNRRUF5aVk0c05yYTJzcVZVN1pw
MDZaagp4NDROM1hiNDhPSG5ubnR1NEdWVFU5T2dPMGw5ZlgzSGpoMTc5OTEzRnk5ZS9Qbm5uNjlj
dWJMOERjR3lnd2NQWG52dHRSczNidHkvCmYzOVBUMDlYVjFkemMvUFNwVXZManh2ZHMyZlByRm16
eGpnaEFNQ0FxdFA5cWVQdDI3Y1ByRmV2WGoybWF3LzM4OHhsbFZPZFl0dkoKZlBIRkY3ZmNja3Y1
M0crLy9YYkJnZ1ZmZnZubEo1OTgwdHpjZk9qUW9aNmVua3N1dWFTdXJ1NysrKzlmdFdyVmpCa3p4
amdoQU9lbQo0OGVQRDZ6TFA4Z0daZE1uOE5vamJKU3hwTXpBdVN0V3JGaXhZc1dvVHdjQUdMbUov
eDhzQUlBcFJtQUJBSVFKTEFDQU1JRUZBQkFtCnNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJ
RXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUwKQUNCTVlBRUFo
QWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1J
RUZBQkFtc0FBQQp3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpy
QUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNCllBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JC
WUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVcKQUVDWXdB
SUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FB
QVlRSUxBQ0JNWUFFQQpoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dB
Z1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZCndBSUFDQk5ZQUFCaEFnc0FJRXhnQVFD
RUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3MKQUlB
d2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFt
c0FBQXdnUVdBRUNZd0FJQQpDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlF
RmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3CmdRVUFFQ2F3QUFEQ0JCWUFRSmpB
QWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTlkK
QUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxB
Q0JNWUFFQWhBa3NBSUF3Z1FVQQpFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJB
SVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoCkFnc0FJRXhnQVFDRUNTd0Fn
RENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVD
YXcKQUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdn
UVdBRUNZd0FJQUNCTllBQUJoQWdzQQpJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1N
QUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURDCkJCWUFRSmpBQWdBSUUx
Z0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdz
QUlFeGcKQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFF
QWhBa3NBSUF3Z1FVQUVDYXdBQURDQkJZQQpRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFD
QU1JRUZBQkFtc0FBQXdnUVdBRUNZd0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFCkNTd0FnRENCQlFB
UUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUxBQ0JNWUFFQWhBa3NBSUF3Z1FVQUVDYXdBQURD
QkJZQVFKakEKQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUZBQkFtc0FBQXdnUVdBRUNZ
d0FJQUNCTllBQUJoQWdzQUlFeGdBUUNFQ1N3QQpnRENCQlFBUUpyQUFBTUttai9yTTJ0cmE0OGVQ
QjBjQkFKZ2FSbmtIcTdhMnRxNnVManNLQU1EVU1KckFVbGNBQUtkdzJvR2xyZ0FBClRxMnFWQ3BO
OUF3QUFGT0tieEVDQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJ
RXhnQVFDRUNTd0EKZ0RDQkJRQVFKckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFo
QWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSQpFMWdBQUdFQ0N3QWdUR0FCQUlRSkxBQ0FN
SUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCCkJRQVFK
ckFBQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JC
WUFRSmpBQWdBSUUxZ0EKQUdFQ0N3QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdB
SUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUQpKckFBQU1JRUZnQkFtTUFDQUFnVFdB
QUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDCkN3
QWdUR0FCQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJRXhnQVFD
RUNTd0FnRENCQlFBUUpyQUEKQU1JRUZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlB
d2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZwpUR0FCQUlRSkxBQ0FNSUVGQUJB
bXNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlF
CkZnQkFtTUFDQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpB
QWdBSUUxZ0FBR0VDQ3dBZ1RHQUIKQUlRSkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5Z
QUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQQptTUFDQUFnVFdBQUFZUUlM
QUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJB
SVFKCkxBQ0FNSUVGQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0Fn
RENCQlFBUUpyQUFBTUlFRmdCQW1NQUMKQUFnVFdBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFF
Q2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQQpNSUVGQUJBbXNBQUF3
Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1N
QUNBQWdUCldBQUFZUUlMQUNCTVlBRUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUx
Z0FBR0VDQ3dBZ1RHQUJBSVFKTEFDQU1JRUYKQUJBbXNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFn
c0FJRXhnQVFDRUNTd0FnRENCQlFBUUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQQpZUUlMQUNCTVlB
RUFoQWtzQUlBd2dRVUFFQ2F3QUFEQ0JCWUFRSmpBQWdBSUUxZ0FBR0VDQ3dBZ1RHQUJBSVFKTEFD
QU1JRUZBQkFtCnNBQUF3Z1FXQUVDWXdBSUFDQk5ZQUFCaEFnc0FJRXhnQVFDRUNTd0FnRENCQlFB
UUpyQUFBTUlFRmdCQW1NQUNBQWdUV0FBQVlRSUwKQUNCTVlBRUFoQWtzQUlBd2dRVUFFUFovV0RW
TnJpS3BPSkFBQUFBQVNVVk9SSzVDWUlJPQoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9y
bS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5u
b3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9
IGltYWdlL3BuZwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3Jt
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5nCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FB
QXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTNNR05qWkRaagpNV1Uz
WlRnM1ptUXhOVFpqTlRNNVpETTNPR1prTnpFNE5vM0hPRFFBQUE3c1NVUkJWSGljN2QxUGlKWDFH
c0R4TTk2bXRGRW56YkpNCkRHb2hSQ1J0aHNJU2k2QmFGSlcxNlEvOVdlU2lRSVJ3WjBRUkZSRzBT
b0t3aUFoTnloWWx0ckFNMnRRbU1LYVFJQVFKRWtVek5Tdk0KdVF2aGNya3RadTY5WDczTzVmTlpI
bDVlbnJQNzhudWY4NTZoaVltSkFRQUFuUm4vNndFQUFQN2ZUQ213ZnZubGw5TTlCd0RBLzQxegpK
cjNpNE1HREd6WnNXTGh3NGF4WnMrNisrKzd6enovL0RJd0ZBREI5RFUyNmczWHk1TWtaTTJhODlk
WmIzMy8vL2RLbFN5Y21KaDUrCitPRXpNeHdBd0hRMGVXQ2Rjc3N0dDJ6Y3VISEpraVhQUHZ2c3I3
Lyt1bUxGaXBVclZ6ck5BZ0Q0cThrZkVRNEdnNzE3OTA1TVRDeFoKc21Rd0dIejk5ZGZQUC8vOGxW
ZGUrZkxMTDgrZVBYdnUzTGtMRml5NC9mYmJoNGVIVC9Pb0FBRFR3NVNXM045NTU1MEhIM3h3TUJn
YwpQSGh3MTY1ZGl4WXRtcGlZdVBQT083ZHYzLzdZWTQ5ZGNNRUZiNzc1cGtWNEFJQlRKbjlFdUdm
UG5udnV1ZWVqano1YXRHalJoZzBiCmpoNDl1bXpac3ExYnQ3NzIybXRqWTJQcjE2Ky8vdnJyRHgw
NnRHWExGb3Z3QUFDREtlNWduVHg1Y3YvKy9Rc1dMTGp4eGh1M2J0MjYKY09IQ0gzLzhjVEFZL1BI
SEh6ZmZmUE8yYmR1V0xsMzZ6NHZ3SXlNanExYXRPdjNEQXdDY2pmNzJ6RFBQVEhyUjBORFE3Tm16
di92dQp1K1BIai8vKysrK2pvNlBidDIvZnYzLy84dVhMTDd6d3dtM2J0dDEyMjIyRHdlQ3BwNTU2
N3JublZxeFlNV3ZXckhuejVwMzIyUUVBCnprcFQvUlhoUC96NTU1ODdkdXc0Y3VUSXNXUEhSa1pH
UHYzMDAvdnV1Mi9seXBWNzkrNTk1SkZIZHV6WWNab0dCUUNZTHY3dHdQcG4KeDQ0ZEd3d0dJeU1q
ZzhIZ2hSZGV1T1NTU3g1OTlORnNOQUNBNldsS3Z5TGNzV1BIK1BqNFh6OGZHUms1VlZkNzl1elpz
bVhMcmJmZQpHazhIQURBTlRla0VhOW15WmJ0MjdWcStmUG5iYjc5OTBVVVh6Wmt6NTYvWG5GcUVY
N2h3NFdrWUVnQmdPcG44Qk92dzRjUFhYSFBOCjhQRHd2bjM3bGl4WnNuang0bFdyVnIzMzNudi9l
cU1aTTlRVkFNQmdLb0UxT2pwNjZhV1hybHUzN3YzMzN6L25uSFBlZU9PTmI3LzkKOXRWWFg1MC9m
LzdhdFdzUEhEaHdCcVlFQUpoR3B2U0k4UExMTC8vNDQ0K3Z2dnJxd1dCdy8vMzM3OXUzNzdMTExw
c3paODdNbVRQbgp6NSsvYjkrK2E2Kzkxbm83QU1BcGs1eGdmZmpoaDNmZGRkZm82T2lwdWpweTVN
am16WnZIeHNZMmJkcTBldlhxa3lkUGZ2bmxsOXUzCmJ6OSsvUGhnTUhqMzNYYzNiTmh3Nk5DaE16
RTRBTURaYXBJWGpjNmRPL2VubjM3NjVwdHZob2VIVDV3NHNYbno1bm56NXExZHUvYUgKSDM1NDhz
a25UNXc0Y2ZqdzRUVnIxdHh4eHgzbm5udnVFMDg4OGZycnI3LzQ0b3MzM0hEREZWZGNjYWErQWdE
QTJXV1NFNnhGaXhhdApYNzkrZkh6OG9ZY2Urdnp6ejE5NTVaWGR1M2QvOGNVWG16ZHYzckpseS9q
NCtQSGp4K2ZNbVRNeU1qSXhNWEh2dmZlZWQ5NTVGMTk4CjhkalkySm1aSGdEZ0xEU2w5MkFOQm9O
WnMyYXRXN2Z1d0lFRFR6Lzk5Q2VmZkhMVFRUZXRXYk5tZkh6OHM4OCtPL1Y4Y0dobzZPZWYKZjE2
OWV2WHUzYnZuenAxN09tY0dBRGlyL1lkdmNqOTgrUEFISDN3d05EUTBQRHo4d0FNUG5QcndxcXV1
MnJoeDQzWFhYWmRPQ0FBdwp6ZnhYZjVVekdBeCsrKzIzbVRObjd0eTU4L0hISHo5NjlPaFhYMzIx
ZVBIaWFqZ0FnT25vdncyc2Y5aTVjK2VtVFp0R1IwZGZldW1sCjVJWUFBTk5VRmxnQUFKd3kxU1Yz
QUFDbVNHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUIK
QU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFU
R0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVG
Z0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBClRHQUJBTVFFRmdCQVRHQUJB
TVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRH
QUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZn
QkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFN
UUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBClRHQUJBTVFFRmdCQVRH
QUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdC
QVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1R
RUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdB
QkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBClRHQUJBTVFFRmdC
QVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFF
RmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FC
QU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JB
VEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBClRHQUJBTVFF
RmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJB
TVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFU
R0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVG
Z0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBClRHQUJB
TVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRH
QUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZn
QkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFN
UUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBClRH
QUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdC
QVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1R
RUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVGZ0JBVEdB
QkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JB
ClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFF
RmdCQVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FC
QU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVGZ0JB
VEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVG
Z0JBClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJB
TVFFRmdCQVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFU
R0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFNUUVG
Z0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFN
UUVGZ0JBClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRH
QUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZn
QkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdBQkFN
UUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdB
QkFNUUVGZ0JBClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdC
QVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1R
RUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JBVEdB
QkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JB
VEdBQkFNUUVGZ0JBClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFF
RmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FC
QU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpGZ0JB
VEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVG
Z0JBVEdBQkFNUUVGZ0JBClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJB
TVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZnQkFU
R0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRQpG
Z0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFN
UUVGZ0JBVEdBQkFNUUVGZ0JBClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRH
QUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1RRUZn
QkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1R
RQpGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdB
QkFNUUVGZ0JBVEdBQkFNUUVGZ0JBClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdC
QVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUIKQU1RRUZnQkFUR0FCQU1R
RUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FCQU1RRUZnQkFUR0FC
QU1RRQpGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JB
VEdBQkFNUUVGZ0JBVEdBQkFNUUVGZ0JBClRHQUJBTVFFRmdCQVRHQUJBTVFFRmdCQVRHQUJBTVFF
RmdCQVRHQUJBTVQrRHVDM2xIejRrYlVWQUFBQUFFbEZUa1N1UW1DQwoKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjpt
aW1lLXR5cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZXhwZWN0ZWQucG5nCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCgppVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFCaU16aGxNakZp
ClptTmpORFl5T0RNME1UTTVOalZoT0RnMk5UTXpaV0l5T1Zac3c0Y0FBQ0FBU1VSQlZIaWM3ZDE3
a0ZiMWZmanhzeGV1aTdBaTE4VUYKWkVFZ0tHQUpZR0V4TkpTYlJRekliY0xGU2JXTWs4UVFFNk9s
YUV1alFjYzJIYXNVallpTkFZR3RvQ0NDQ0VHOG9NYUtTZ0dMSVlyQgpaWEVCUVNFRVdHQjNmMzg4
TS92YkxMQ1E5R05ZNFBYNmd6bjdQT2NjenZudlBkL3pmYjRucmJ5OFBBRUFJRTc2MmI0QUFJRHpq
Y0FDCkFBZ21zQUFBZ2drc0FJQmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0FZQUlMQUNDWXdBSUFD
Q2F3QUFDQ0NTd0FnR0ExSzdCZWVlV1YKQXdjT25PMnJBQUQ0UDZsQmdiVnYzNzZoUTRjMmI5NTgz
TGh4eTVjdlAzNzgrTm0rSWdDQVAwVU5DcXc1YytZY1BueTRidDI2cjcvKworckJodzNKeWNxWk1t
YkorL2ZxemZWMEFBSCtjbWhKWVpXVmxzMmZQbmpWcjF0Njlld3NMQzdkdDIzYjc3YmV2WGJ1Mlo4
K2VuVHQzCm5qRmp4dmJ0MjgvMk5RSUFuSkcwOHZMeXMzME5TWklreTVZdDI3eDU4OVNwVTZ0OGZ2
UE5OOCtaTXlkSmtyUzB0R3V1dVdiaXhJbWoKUm8xcTFLalIyYmhHQUlBelVsTUNhL3YyN1MxYXRL
aFRwMDdsRDB0TFMzTnpjei85OU5Na1NlNjU1NTR0VzdZc1diS2tyS3hzK1BEaApFeWRPSERKa1NH
Wm01bG02WGdDQVU2b3BnWFZTcTFhdEdqeDRjSklrTFZ1MkxDd3N6TWpJT0hqdzRMeDU4KzY5OTk2
aW9xS21UWnRPCm16WXRLeXRyOU9qUnhyUUFnSnFqcHN6Qk9xbTVjK2VtTnI3NXpXOW1aR1FrU2RL
Z1FZTmJicm5sM1hmZmJkdTI3WjQ5ZTdwMTY5YWgKUTRkQmd3YU5HVFBtK2VlZjk4TkRBS0FtcUxr
aldBY1BIbXpSb3NYdmYvLzdKRWsyYk5qUXJWdTN5dDgrOHNnamQ5MTExKzdkdXpNeQpNclp1M2Rx
eFk4Y2tTWm8yYlRwdTNMaUpFeWYyN05uejdGdzBBRUJOSHNGNjVwbG5VblhWdFd2WEtuV1ZKRW1u
VHAyR0RSdVdHdFlxCktTbEpmYmgzNzk1ZHUzWjk3V3RmODhOREFPQXNxcm1CVmZGOGNPTEVpU2Qr
VzFoWWVQMzExNmUyVjZ4WWtkb1lNR0JBUVVIQnJsMjcKN3J6enpqVnIxdVRsNWZYdjMzL09uRGxX
aHdjQS9weHE2Q1BDb3FLaTFxMWJsNVdWcGFlbkZ4WVc1dVRrVk5taHBLUWtMUzJ0ZHUzYQpTWkow
NjladDQ4YU5TWkw4NGhlL3FGeGpoWVdGOCtiTm16MTc5cWVmZm5yOTlkZW5mbmlZR3ZRQ0FQankx
TkRBZXVDQkIrNjg4ODRrClNRWU9ITGhxMWFwcTl2eWYvL21mN3QyN0owbVNsWlcxYTlldXJLeXNL
anVVbHBiZWM4ODkvL3pQLzl5d1ljTTllL2FrbWd3QTRNdFQKUTllUnFuZytPR25TcERQY2M4U0lF
U2ZXVlpJa0dSa1owNmRQZi83NTU5dTNiNit1QUlBL2c1bzRCMnZEaGcyYk4yOU9raVFySzJ2RQpp
QkhWN0ZsYVdqcC8vdnpVZHZVcDFyRmp4NG81VzBtUzdObXpaOXEwYVYyN2RzM096bTdkdXZXb1Vh
TVdMMTVjTXdmekFJQnpUazBNCnJJcEJxWkVqUjU1MFVLckNMMy81eTlRNjd6azVPUU1HREtobXo0
TUhEdzRkT2pTMS9mTExMM2ZzMkhIR2pCbEhqeDc5L3ZlLy82TWYKL1NncksydlNwRW05ZS9mK3pX
OStFM1FUQU1DRnE4WUZWdVZCcVpQK2ZyQ3l5aXVScHFkWGR5LzMzMzkvZG5aMmtpU2ZmUExKTjc3
eApqYzgvLzN6czJMR2JObTJhUG4zNnJiZmUrdVNUVDI3ZHVyVmV2WHE5ZXZWNjlkVlhreVJaczJa
Tnhlb1BBQUIvbEJvWFdLdFhyeTR1CkxrN09iRkRxMldlZlRXMFhGeGR2MnJUcHhIMFdMVnEwZGV2
V0pFazZkKzZjK3VTQkJ4N1l2MzkvUmtiR3pKa3phOVdxVmJGbnExYXQKVnE1YzJiRmp4NEVEQnc0
Wk11UzIyMjZyOG1KRUFJQXpWT01DcTJKUWF2ejQ4ZFVQU2ozenpET0hEaDFLa2lRdkwrL1lzV085
ZS9mdQozcjM3VDMvNjA5UkR3eVJKaW9xS1pzeVlrWmVYVi9tbzFLSlpqUm8xYXRLa1NaVVQxcXRY
Yjg2Y09jZU9IWHZ4eFJmSGpSc1hkVWNBCndJV21aZ1hXZ1FNSGxpeFprdG8rN2ZQQlgvemlGNm1O
eVpNbkwxeTRzTGk0K0h2Zis5NnlaY3R5YzNPdnV1cXE2Nisvdmx1M2J2MzcKOTYreThOVytmZnRT
Lzc3Ly92c25uck5MbHk0OWUvWk1TMHViTUdGQ3hZZXZ2UEtLcFVvQmdETlhzd0xyOGNjZlR3MUtk
ZTNhOWNvcgpyNnhtejZLaW9yVnIxeVpKa3A2ZVBuNzgrQ1JKR2pacytMZC8rN2N2di96eUJ4OTgw
S2xUcCtlZWUyN3YzcjBuVmxyRmdOYVBmdlNqCms1NjVVNmRPWC92YTExcTNicDM2YzkrK2ZVT0hE
bTNldlBtNGNlT1dMMS91ZmRJQXdHblZpTUNhT25WcVFVSEJJNDg4TW4zNjlOUW4KbFpkVU9LbW5u
bnFxckt3c1NaS3ZmLzNyclZxMXF2eFYrL2J0Rnl4WU1HVElrQzVkdWx4MTFWVlZEaHc5ZW5ScTQ0
VVhYdmlQLy9pUAprNTY4Y3BiTm1UUG44T0hEZGV2V2ZmMzExNGNORzVhVGt6Tmx5cFQxNjlmL0Vi
Y0hBRnhnYWtSZ1RaczI3Y2lSSTRzWEwwNjkzVGxKCmtyWnQyMVovU1BWdktreVNwRStmUGlmOTZq
dmYrVTdGaTNkKzhJTWZyRnUzcnNvT2UvZnVIVFZxVkdxN3JLeHM5dXpaczJiTjJydDMKYjJGaDRi
WnQyMjYvL2ZhMWE5ZjI3Tm5UKzZRQmdGT3BXYS9LS1NvcWV1cXBwK2JPblZ0U1V2TGNjODkxNnRU
cHBMdTk5OTU3Zi9FWApmNUVrU1ZaV1ZuRnhjWU1HRFU3YzU2YWJidnJ4ajM5Y1pYQXJaZVhLbGRk
ZWUyM3F4cHMwYWZMR0cyOTA2TkNoOHJkRGhneEpiUzliCnRteno1czFUcDA2dGNvYWJiNzU1enB3
NVNaS2twYVZkYzgwMUV5ZE9IRFZxVktOR2pmNlVld1lBempzMUs3QXFiTml3WWNHQ0JYMzcKOWgw
K2ZQaUozMzd2ZTk5NytPR0hreVNaTUdGQ3hWQldGZHUzYjIvVHBzMnB6djlQLy9SUFAvN3hqMVBi
N2R1M2YvUE5OMC84VVdIcQpKQzFhdEtpeVhrTnBhV2x1Ym03cXQ0cjMzSFBQbGkxYmxpeFpVbFpX
Tm56NDhOVDdwRE16YStnTGlBQ0FQNDhhR2xnbjJydDM3L0hqCng1czNiLzdyWC8rNlI0OGVxWWVK
eTVjdnYvYmFhLytFczVXWGw5OXd3dzBWeTJqbDUrZXZXYlBtRE45VXVHclZxc0dEQnlkSjBySmwK
eThMQ3dveU1qSU1IRDg2Yk4rL2VlKzh0S2lwcTJyVHByRm16S2g0eUFnQVhvQm94Qit0TWxKU1Uv
UFNuUCszUm8wZVhMbDBxcG1ybAo1K2VmNGVGUFAvMTA1VC9UMHRMbXpadjMxYTkrTmZYbnVuWHJi
cnZ0dGpNOFZlWGw0MU5yUURSbzBPQ1dXMjU1OTkxMzI3WnR1MmZQCm5wTU9oZ0VBRjQ1ekpyQnlj
bkllZU9DQnQ5OStlOFdLRlJNbVRFaTlvL0RXVzIvZHRtMWJOVWZkZi8vOVc3WnMrZUtMTDJiT25G
bmwKcS9yMTZ5OWJ0dXpTU3k5Ti9UbHIxcXlWSzFlZTlqSXFMeDlmWlJKOXMyYk43cmpqanNhTkcv
ZnIxKy9NN3dzQU9QK2NNNEdWa3A2ZQpQbWpRb0xsejUrN2F0ZXZKSjUvY3VYUG41WmRmM3E5ZnY5
bXpaKy9mdjcveW5wOTk5dG1ZTVdPMmI5L2V1WFBucDU5KytxUXowRnUwCmFMRmt5WktLS1ZaMzMz
MzNhUy9nbVdlZVNZMmZkZTNhdFZ1M2JsVys3ZFNwMDdCaHc2b3NiUW9BWEdqT3NjQ3FrSldWTldu
U3BOV3IKVjMveXlTZkRodzkvK09HSG16ZHZQbXpZc0FjZmZIRGh3b1YzM25sbng0NGRpNHVMSDNy
b29TUko1czZkbTFvMDYwUTlldlM0NDQ0NwpVdHZyMTYrdmVNM09xVlMvUEVSaFllRnBWL0FDQU01
NzU4d2s5OVBhc0dIRDNMbHo1OCtmbjNwWGRHNXU3dnIxNjVzMWEvYnh4eC9uCjVlVzFidDM2dDcv
OTdVa1AvUFRUVHl0V3h2clZyMzdWdTNmdlUvMFhSVVZGclZ1M0xpc3JTMDlQTHl3c3JEaXFRa2xK
U1ZwYTJobE8KbGdjQXpsZm42Z2pXaVZKdmV0NnhZOGNMTDd3d1ljS0VKVXVXTkd2V0xFbVNlZlBt
bFplWGI5KytmZm55NVNjOXNHWExsaFVyYVYxOAo4Y1hWL0JjVnk4Y1BHRERneExwS2txUk9uVHJx
Q2dBNGYwYXdUcVZuejU0OWV2UllzR0JCdzRZTjMzcnJyUlBEcUdJRUt5OHY3OE1QClA2em1WRmRl
ZWVYbXpadVRKSms3ZDI3bHQwRURBRlIyL294Z25kVHg0OGRuejU3OTZLT1BidHk0c1dYTGx2bjUr
Yi82MWE4cTcxQlcKVmxieDF1ZUtwVWRQYXNPR0RhbTZ5c3JLR2pGaXhKZDN6UURBdWU0OFgzTThN
ek96ZS9mdVNaSzBhZE5tM2JwMWQ5NTVaMzUrL3VEQgpnMGVPSE5tdVhic2RPM2I4N0djL2UvMzEx
NU1rbVRadDJqZS8rYzFxVGxVeHZYM2t5SkdwUlNJQUFFN3EvSDlFV01YLy91Ly9QdlRRClE4OCsr
K3p1M2J1VEpFbFBUOC9QejcvNzdydi8rcS8vdXBxalNrdExMNzMwMHRUMCtWV3JWZzBjT1BEUGRM
a0F3RG5vZ2d1c0NqdDIKN1BqOTczK2ZrNU56MFVVWG5YYm5sU3RYRGgwNk5FbVNuSnljd3NMQzlQ
VHovTkVxQVBCL2NaNC9JcXhHeFJydVo2TGkrZUQ0OGVQVgpGUUJRdlF0M0JPdk1IVGh3b0dYTGxv
Y09IVXFTWk9QR2pWZGVlZVhadmlJQW9FWXpHSE42anovK2VLcXV1bmJ0cXE0QWdOT3FRWThJCmp4
dzVjdno0OFlvMVA4KzZxVk9uZHUvZWZkKytmZE9uVDA5OTRqVTRBTUNacUVFaldMTm56ODdPemg0
L2Z2eXlaY3ZPOXJVa1NaSk0KbXpidHlKRWppeGN2VHIzZE9VbVN0bTNibnRVckFnRE9EVFZvRGxa
K2Z2NGJiN3pScTFldmtwS1NYYnQyalIwN2R1ellzVmRmZmZYWgp2cTZrcUtqb3FhZWVtanQzYmts
SnlYUFBQZGVwVTZlemZVVUFRSTFXVXdMci9mZmY3OXUzNy9qeDQyKzg4Y2JMTHJ0czkrN2RpeFl0
CldyaHdZWjA2ZFZLbDFhNWR1N045amNtR0RSc1dMRmpRdDIvZjRjT0huKzFyQVFCcXJwb1NXRE5u
enR5eVpjdVVLVk11di96eWlnK0wKaTR0YnRteVoyaDQ0Y0dDcXRHck9KQzBBZ0pPcUtYT3djbk56
Zi9qREgxWVpwaW9vS0VodGZQM3JYNTg4ZWZMS2xTdXpzN01uVEpoUQpReVpwQVFDY1ZFMFp3VHFw
UG4zNnZQbm1tMG1TL094blA1czhlWEo1ZVhsaFllRy8vZHUvelo4L1B6TXpjK3pZc2VQR2pldmR1
L2ZaCnZrd0FnRDlRY3dOcjQ4YU4zYnAxUzIxLzhjVVhqUm8xU3BLa3RMUjAwNlpOUC96aEQxOTY2
YVVCQXdiczJMR2pidDI2TldlU0ZnQkEKVW5NZUVaNm80dm5nMkxGalUzV1ZKRWxHUmthWExsMTY5
KzVkdTNidHh4NTc3SzIzM3JyNjZxdnZ1Kysrdkx5OFFZTUd6Wmt6NStEQgpnMmZ2a2dFQWt1U2ND
S3h4NDhaVi9yeWtwS1JwMDZiWFhITk51M2J0c3JLeUJnMGE5THZmL1M1Smt0V3JWei85OU5NWFgz
eXhTVm9BCndObFZRd1BybDcvODVVY2ZmWlFrU2JObXpiN3hqVzlVL3FwZXZYcnA2ZWxUcGt4Smtp
UTlQVDIxVzVJay9mdjNYN2x5WlhGeGNaOCsKZmY3MVgvODFKeWZuQnovNHdWdHZ2ZlhudjNnQTRB
SlhRd09yOHZQQktsOWxaR1JNbmp4NTZOQ2hTWktrcDZjdldiS2s4cDZYWEhMSgp0Ny85N1ZkZWVX
WE5talVOR3phY05HbFM5KzdkNzd2dnZvOC8vdmpQZVBrQXdBV3RKazV5THlzcnk4N09UajM0Vzdk
dVhkKytmVSsxCjUrYk5teXZldnJ4djM3NkxMNzY0eW5uMjc5OC9jK2JNeHg1N2JNZU9IVk9uVHAw
eFk4YVhldVVBQUVuTkhNRXFLQ2hJMWRVVlYxeFIKVFYwbFNiSnc0Y0xVeHBneFk2clVWWklrNmVu
cEYxOTg4Ymh4NDFJL01PelFvY09YYzcwQUFIK2dKZ1pXUlRhZCtIeXdpbXFlSkZabwowcVJKdTNi
dGF0ZXVYWG15L085Kzk3djkrL2UvODg0N1c3ZHUvVDlmTHdEQUg4ZzgyeGRRVlhGeDhYUFBQWmZh
cmo2d1hucnBwUTgvCi9EQkprcVpObTQ0Y09mSlV1NVdVbEdSbFpZMGRPN1pldlhwSmtodzVjdVNq
ano1YXVYTGwvUG56R3pac1dGcGFtcGFXOWpkLzh6ZmoKeG8xcjNicDE2SzBBQUJlb0doZFlsVitQ
VS8xRHZUTVp2a3FTcEdIRGh2djI3UnMvZm56cXp4ZGVlT0hKSjU5Y3ZueDVibTV1dTNidAordlRw
azV1YnUzYnQybUhEaHQxd3d3MWp4NDd0MkxGaldscGF4SzBBQUJlb0dqZkp2Y3JyY1U2MVczbDVl
WFoyOW9FREI1SWtlZTIxCjEvTHo4eXQvZS96NDhmZmZmNzlwMDZZNU9UbFZEc3pQejMvdnZmY09I
VHAwLy8zMzMzREREZTNidHo5NjlPaXhZOGZlZWVlZCtmUG4KTjIzYTlPLys3dSsyYjk5KzVNaVJn
UU1IZmduM0J3Q2MvMnJXSEt5Tkd6ZW02aW81M2JoVVFVRkJxcTdxMUtuem5lOThaOGFNR2R1Mgpi
VXVTcEt5czdQang0MXUzYnIzOTl0dFhyMTVkNWFpWFhucnAzWGZmUFhUb1VMTm16VzY1NVphOHZM
d2tTV3JYcnAyVmxkV25UNThCCkF3YjgxMy85VjdkdTNTWlBucng4K2ZJdjVRNEJnQXRBRFhwRWVQ
VG8wUVVMRnFTMks3OGU1NlFxbmc5T216YXRmLy8rQlFVRnZYcjEKNnQ2OSsvWFhYOStxVmF1NWMr
ZXVXN2Z1K2VlZnIzTFVsaTFic3JPekR4OCszSzFidDUwN2QxYitMekl6TTRjT0hicDA2ZEtDZ29J
UApQdmpnaVNlZXFQanF3UWNmUEhMa3lOaXhZeSs3N0xLWVd3VUF6bS9sWjF0SlNVbFpXZG1CQXdm
Kys3Ly91MDJiTnFtcldyeDRjVmxaCjJha09LUzR1cnJqK1gvLzYxeFdmRnhRVVhIdnR0V2xwYWZY
cTFidnh4aHRQUEhEejVzMlhYbnBwa2lSTm1qUjU1cGxuamg0OVd1VksKRml4WVVMdDI3YTVkdTFi
K1BEWDV2VzdkdWhXdk8veS8zak1BY0Y0Nys0OElGeTVjZU9XVlY5NTY2NjFUcGt6WnZuMTdraVNO
R3pmTwp6OCt2WnFaNXhmQlYvLzc5TDcvODhvclBSNDBhOWRCREQvWHYzNyswdFBTa1R4aWJOR2t5
ZVBEZ09uWHE3TisvZjlteVpmdjM3Ni84CmJlM2F0WThkTzlhcVZhdkt4NjVjdWZMZ3dZTi85VmQv
OWRCREQ0MGJOMjdGaWhYWjJka1RKa3c0Y1hnTUFDRGw3QWZXcEVtVEhuMzAKMFlzdXVpaTE1a0tT
SkUyYU5IbjExVmVQSGoxNnFrTk85ZnZCOVBUMHBrMmJEaGt5cEVXTEZxbDM2VlRSdUhIakVTTkc1
T1hsSFR0Mgo3TVVYWDF5d1lNR3hZOGNxdmkwcksydlJvc1dlUFhzcW43YWdvR0RFaUJFelpzejQx
cmUrTldIQ2hFV0xGaFVYRjdkcTFlcTY2NjVyCjFhcVYxeDBDQUNjNis0R1ZKRWwrZnY3RER6Kzhl
L2Z1eFlzWGp4a3padXZXclk4ODhzalNwVXRQdXZPbVRadmVlT09OMVBhSncxUzEKYXRYYXNXUEhx
U2JJMTZwVmEralFvZE9tVFd2ZHVuVnhjZkc5OTk1YlVGQnc4T0RCMUxlbHBhVTdkdXk0K3VxclU1
UGZVNStVbEpUYwpjY2NkUFhyMHlNek1yRldyVnBJa2wxeHlTV2xwYVpJa08zZnVmT21sbDI2ODhj
YXJycnJxL3Z2djk3cERBQ0FsWS9yMDZXZjdHdjYvCnpwMDdqeDQ5K3Z2Zi8zNTVlZm5QZi83ekVT
TkcxSzFidCtMYjQ4ZVBIenAwNk9HSEgwNEYxcGd4WXlaT25GamxETFZxMVdyY3VQR0EKQVFOT05V
YytMUzJ0VTZkT3RXclYycng1YzNGeDhlZWZmLzZWcjN3bE5jc3FJeVBqc3NzdTY5dTNiN05telZJ
N3A2ZW5EeGd3b0dYTApscG1aZi9CcmdKdHV1aW4xRzhiLy9NLy8vUGQvLy9kT25UcXRYYnYydTkv
OTdpdXZ2SExzMkxIT25UdFgyUjhBdUtEVXVIV3dUdXF6Cnp6NTc5TkZIKy9YcjkvTExMei82NktP
cFNlNkxGaTI2NFlZYi9vU3psWmVYZi96eHgvL3lMLy95MkdPUDFhbFRaOGlRSVE4KytPQ1oKTCtP
K2ZQbnlZY09HSlVtU201djd5U2VmcEU2NGYvLytKNTk4OGljLytjbWVQWHVxWDhFTEFEanZuUnNE
TFVlUEh0MjFhOWZvMGFPUApIei8rK2VlZkowbVNuWjNkbzBlUE16eThxS2lvcUtpb1Y2OWVxVC9U
MHRMYXRXdjNELy93RHdjT0hGaTZkT25TcFVzYk5XbzBiZHEwCnZMeThNMW5EL2NRWllHbHBhZG5a
MlNOR2pIajY2YWYzN05relpzeVlQL29PQVlEelNJMllnM1ZhT1RrNXFVbGFqei8rZUNwZjZ0ZXYK
djJqUm9yS3lzbXFPK3VTVFQxTHpvbWJPblBuRUUwOVV6TFZLeWMzTi9mdS8vL3RycnJrbUxTM3R4
UmRmWEw1OGVVbEp5V212NVBEaAp3OVc4b3FkTm16Wmp4b3pKenM3K28rNE9BRGpQbkJ1QlZXSGt5
SkVGQlFXZmYvNzUzWGZmdlh6NThweWNuQ2xUcHFRV2Z5OHZMMC8xClZubDUrZUhEaHovNjZLUDc3
cnZ2cHB0dU9uandZRUZCUVc1dTdvay9TOHpMeXhzL2ZueDJkdmJ1M2J1ZmVPS0puVHQzbnZZQ0Nn
b0sKVXVmcDBhUEhWNy82MWNwZk5XN2MrT2pSb3hNbVRBaTdXd0RnM0hTT0JWWktkbmIyTGJmY3Nu
YnQybGRmZmZXU1N5NjUrZWFidTNidAorcE9mL09TOTk5NTc3NzMzVnF4WU1YUG16SnR1dW1udjNy
MTMzWFhYbTIrK3VXZlBuczgrKzZ4eDQ4WlZ6bE8vZnYyaFE0Y09Ianc0CkxTM3R3dzgvL1BuUGYz
N2FRYXlGQ3hlbU5rNGN2c3JNekJ3OWV2UjExMTBYZFpzQXdEbnFuQXlzQ3BkZmZ2ay8vdU0vdnYv
Kys3Tm0KemRxMWE5ZVFJVU51dlBIRzczNzN1M2ZkZGRleFk4ZSsvZTF2OSt2WHI2Q2c0TkNoUStY
bDVhbmYvVldSbloxOXhSVlgxS3BWNjlDaApRenQzN2t4TjhEcVY3ZHUzdi9qaWk2bnRFd09yYnQy
NlpsOEJBTW01SGxnVlVpdHA3ZG16Wi9yMDZiMTY5V3JUcHMxdHQ5M1d2My8vCnRMUzBoUXNYbHBX
VnJWcTFhdHUyYlNmTzJTb3BLV25VcU5IaHc0Y3pNek4vKzl2ZnRtalJvcHIvcFdMMjFkQ2hROC84
VjRjQXdJWG0KM1BnVjRaa2JPWExreUpFakR4MDZsRm9MdEtDZ29Ibno1aGRkZE5GdmZ2T2IrZlBu
TjIvZXZHWExsbFVPZWUyMTE1SWtTVXRMKzh1LwovTXZxVDE3TjlIWUFnQXJueGpwWWY3S2lvcUtQ
UHZxb2JkdTJiN3p4eHBvMWE3cDI3VHB5NU1qbXpadW5wNmVucDZjZlBIaHczYnAxCjExMTMzZkhq
eDl1M2IvL3NzODllY2NVVnB6clYyMisvblZyb29VNmRPbDk4OFVYbEZWQUJBQ283MzBhd3FtalZx
bFdyVnEyU0pHblEKb0VHOWV2VWVlK3l4MWF0WFgzdnR0YjE2OWZyZ2d3ODJiOTY4Wk1tU3pNek03
dDI3Zit0YjM2cW1ycEkvSEw1U1Z3QkFOYzd6RWF3VApMVjI2ZE9IQ2hhdFhyNzdxcXF1KytPS0xm
ZnYyRFI4K2ZNaVFJZjM2OWF0ZnYzNDFCK2JtNXU3WXNTTkpraFVyVnB6MFRkSUFBQ2tYClhHQ2w3
TisvLzYyMzNzck16T3pTcFV2OSt2VWJOR2hRL1JydUo3NGVCd0RnVk03elI0U24wcWhSbzBHREJp
VkpVbDVlZnRyWDQ1U1YKbFpuZURnQ2N1UXQwQk9zTWxaZVhsNWFXN3R5NXMwT0hEcWtGM045Kysr
MHFDN2dEQUZSeGdZNWduWWw1OCtiVnFsVXJJeU5qOGVMRgpxYnJxMXExYjlSUGhBUUFTZ1ZXTnNy
S3lSeDU1WlAzNjlSV2ZkT2pRWWRldVhXM2F0RG1MVndVQTFIem55VXJ1WDRaSmt5YTkvUExMCjc3
enp6aDEzM1BHVnIzd2xTWklQUHZoZzA2Wk54NDRkTzl1WEJnRFVhT1pnbmFuWFhudXRvS0Nnb0tC
Z3dJQUJGYTk4QmdBNGtjRDYKbzIzY3VMRnIxNjVuK3lvQWdKcExZQUVBQkRNSEN3QWdtTUFDQUFn
bXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlKTEFDQQpZQUlMQUNDWXdBSUFDQ2F3QUFD
Q0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakFBZ0FJSnJBQUFJSUpMQUNB
CllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2drc0FJQmdBZ3NB
SUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dBZ0dBQ0N3QWdtTUFD
QUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlKTEFDQQpZQUlMQUNDWXdBSUFDQ2F3
QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakFBZ0FJSnJBQUFJSUpM
QUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2drc0FJQmdB
Z3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dBZ0dBQ0N3QWdt
TUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlKTEFDQQpZQUlMQUNDWXdBSUFD
Q2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakFBZ0FJSnJBQUFJ
SUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2drc0FJ
QmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dBZ0dBQ0N3
QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlKTEFDQQpZQUlMQUNDWXdB
SUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakFBZ0FJSnJB
QUFJSUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2dr
c0FJQmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dBZ0dB
Q0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlKTEFDQQpZQUlMQUND
WXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakFBZ0FJ
SnJBQUFJSUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFB
Z2drc0FJQmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dB
Z0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlKTEFDQQpZQUlM
QUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakFB
Z0FJSnJBQUFJSUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21z
QUFBZ2drc0FJQmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0ND
U3dBZ0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlKTEFDQQpZ
QUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlK
akFBZ0FJSnJBQUFJSUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FB
Z21zQUFBZ2drc0FJQmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlBQ0Nhd0FB
Q0NDU3dBZ0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlKTEFD
QQpZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdz
QUlKakFBZ0FJSnJBQUFJSUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1B
Q0FBZ21zQUFBZ2drc0FJQmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlBQ0Nh
d0FBQ0NDU3dBZ0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFBSUlK
TEFDQQpZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJn
QWdzQUlKakFBZ0FJSnJBQUFJSUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0Fn
bU1BQ0FBZ21zQUFBZ2drc0FJQmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3QUlB
Q0Nhd0FBQ0NDU3dBZ0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpyQUFB
SUlKTEFDQQpZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NB
SUJnQWdzQUlKakFBZ0FJSnJBQUFJSUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUND
d0FnbU1BQ0FBZ21zQUFBZ2drc0FJQmdBZ3NBSUpqQUFnQUlKckFBQUlJSkxBQ0EKWUFJTEFDQ1l3
QUlBQ0Nhd0FBQ0NDU3dBZ0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBQWdBSUpy
QUFBSUlKTEFDQQpZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdn
a3NBSUJnQWdzQUlKakFBZ0FJSnJBQUFJSUpMQUNBCllBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdH
QUNiUlZhU1FBQUFqWkpSRUZVQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakEKQWdBSUpy
QUFBSUlKTEFDQVlBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2dr
c0FJQmdBZ3NBSUpqQQpBZ0FJSnJBQUFJSUpMQUNBWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dBZ0dB
Q0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBCkFnQUlKckFBQUlJSkxBQ0FZQUlMQUND
WXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakEKQWdB
SUpyQUFBSUlKTEFDQVlBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFB
Z2drc0FJQmdBZ3NBSUpqQQpBZ0FJSnJBQUFJSUpMQUNBWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dB
Z0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBCkFnQUlKckFBQUlJSkxBQ0FZQUlM
QUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakEK
QWdBSUpyQUFBSUlKTEFDQVlBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21z
QUFBZ2drc0FJQmdBZ3NBSUpqQQpBZ0FJSnJBQUFJSUpMQUNBWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0ND
U3dBZ0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBCkFnQUlKckFBQUlJSkxBQ0FZ
QUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlK
akEKQWdBSUpyQUFBSUlKTEFDQVlBSUxBQ0NZd0FJQUNQYi9BS05MOFVFdm9YOTVBQUFBQUVsRlRr
U3VRbUNDCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>