<?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>201123</bug_id>
          
          <creation_ts>2019-08-25 01:33:09 -0700</creation_ts>
          <short_desc>EXIF orientation should be respected when rendering images</short_desc>
          <delta_ts>2019-12-02 10:58:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201432</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=201425</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=201478</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=203355</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201059</dependson>
          <blocked>89052</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>rego</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1564863</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-25 01:33:09 -0700</bug_when>
    <thetext>The EXIF orientation should be respected when rendering images in the following cases:

1. The image is the src of an &lt;img&gt; element
2. The image is the css background image of an HTML element
3. The image is the src of an SVG &lt;image&gt; element
4. The image is the src of an SVG &lt;feImage&gt; element
5. Drawing the image on a canvas
6. The image is the css content of an HTML element
7. The image is an ImageDocument
8. The image is data of an &lt;object&gt; element

This should be the behavior on all ports till the css image-orientation specs is finalized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564864</commentid>
    <comment_count>1</comment_count>
      <attachid>377221</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-25 01:58:16 -0700</bug_when>
    <thetext>Created attachment 377221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565170</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-26 16:50:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/54728386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565370</commentid>
    <comment_count>3</comment_count>
      <attachid>377346</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-27 09:34:17 -0700</bug_when>
    <thetext>Created attachment 377346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565453</commentid>
    <comment_count>4</comment_count>
      <attachid>377362</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-27 12:25:04 -0700</bug_when>
    <thetext>Created attachment 377362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565651</commentid>
    <comment_count>5</comment_count>
      <attachid>377428</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-27 23:04:23 -0700</bug_when>
    <thetext>Created attachment 377428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565727</commentid>
    <comment_count>6</comment_count>
      <attachid>377444</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-28 08:38:37 -0700</bug_when>
    <thetext>Created attachment 377444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565759</commentid>
    <comment_count>7</comment_count>
      <attachid>377454</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-28 10:04:12 -0700</bug_when>
    <thetext>Created attachment 377454
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565908</commentid>
    <comment_count>8</comment_count>
      <attachid>377493</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-28 15:23:18 -0700</bug_when>
    <thetext>Created attachment 377493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565925</commentid>
    <comment_count>9</comment_count>
      <attachid>377502</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-28 16:01:15 -0700</bug_when>
    <thetext>Created attachment 377502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566018</commentid>
    <comment_count>10</comment_count>
      <attachid>377502</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-28 17:55:58 -0700</bug_when>
    <thetext>Comment on attachment 377502
Patch

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

&gt; LayoutTests/fast/images/exif-orientation-composited.html:-3
&gt; -&lt;html&gt;
&gt; -&lt;head&gt;
&gt; -&lt;script&gt;

This is an important test to keep. It tests the directly-composited image code path (see RenderLayerBacking::isDirectlyCompositedImage()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567003</commentid>
    <comment_count>11</comment_count>
      <attachid>377807</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-08-31 14:45:25 -0700</bug_when>
    <thetext>Created attachment 377807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567018</commentid>
    <comment_count>12</comment_count>
      <attachid>377807</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-31 17:47:46 -0700</bug_when>
    <thetext>Comment on attachment 377807
Patch

Clearing flags on attachment: 377807

Committed r249364: &lt;https://trac.webkit.org/changeset/249364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567019</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-31 17:47:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567089</commentid>
    <comment_count>14</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2019-09-01 17:09:35 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #10)
&gt; Comment on attachment 377502 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=377502&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/images/exif-orientation-composited.html:-3
&gt; &gt; -&lt;html&gt;
&gt; &gt; -&lt;head&gt;
&gt; &gt; -&lt;script&gt;
&gt; 
&gt; This is an important test to keep. It tests the directly-composited image
&gt; code path (see RenderLayerBacking::isDirectlyCompositedImage()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567090</commentid>
    <comment_count>15</comment_count>
      <attachid>377807</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2019-09-01 17:33:04 -0700</bug_when>
    <thetext>Comment on attachment 377807
Patch

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

Very nice set of tests, and thank you for adding them.  Couple of comments ...

&gt; LayoutTests/fast/images/exif-orientation-background-expected.html:11
&gt; +        width: 102;

Maybe 102px here?  Noticed px missing here and in other tests.

&gt; LayoutTests/fast/images/exif-orientation-composited.html:20
&gt; +        -webkit-transform: translateZ(0);
&gt; +        border: 1px solid black;

Last I looked at webkit code in detail (a few years back), having CSS border style on a image disallowed direct compositing of the image.  Maybe border style no longer does that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567441</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-09-03 11:12:50 -0700</bug_when>
    <thetext>(In reply to noel gordon from comment #15)
&gt; Comment on attachment 377807 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=377807&amp;action=review
&gt; 
&gt; Very nice set of tests, and thank you for adding them.  Couple of comments
&gt; ...
&gt; 
&gt; &gt; LayoutTests/fast/images/exif-orientation-background-expected.html:11
&gt; &gt; +        width: 102;
&gt; 
&gt; Maybe 102px here?  Noticed px missing here and in other tests.
&gt; 
&gt; &gt; LayoutTests/fast/images/exif-orientation-composited.html:20
&gt; &gt; +        -webkit-transform: translateZ(0);
&gt; &gt; +        border: 1px solid black;
&gt; 
&gt; Last I looked at webkit code in detail (a few years back), having CSS border
&gt; style on a image disallowed direct compositing of the image.  Maybe border
&gt; style no longer does that?

You&apos;re right; borders will kick you out of the directly composited image code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567460</commentid>
    <comment_count>17</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-03 12:00:46 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=201432 addresses the last review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567706</commentid>
    <comment_count>18</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2019-09-04 03:57:56 -0700</bug_when>
    <thetext>Thanks for checking, Said.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593973</commentid>
    <comment_count>19</comment_count>
      <attachid>377807</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2019-11-28 01:15:25 -0800</bug_when>
    <thetext>Comment on attachment 377807
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:-2063
&gt; -    if (settings().shouldRespectImageOrientation() &amp;&amp; is&lt;HTMLImageElement&gt;(element()))

If I&apos;m not wrong this was the only usage of shouldRespectImageOrientation().
After this change do we still need &quot;shouldRespectImageOrientation&quot; flag defined at WebCore/page/Settings.yaml?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594702</commentid>
    <comment_count>20</comment_count>
      <attachid>377807</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-12-02 10:58:22 -0800</bug_when>
    <thetext>Comment on attachment 377807
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:-2063
&gt;&gt; -    if (settings().shouldRespectImageOrientation() &amp;&amp; is&lt;HTMLImageElement&gt;(element()))
&gt; 
&gt; If I&apos;m not wrong this was the only usage of shouldRespectImageOrientation().
&gt; After this change do we still need &quot;shouldRespectImageOrientation&quot; flag defined at WebCore/page/Settings.yaml?

No. We do not really need it. I kept the shouldRespectImageOrientation setting because the preference key WebKitShouldRespectImageOrientation is still using it. But surely we need to clean up this area.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377221</attachid>
            <date>2019-08-25 01:58:16 -0700</date>
            <delta_ts>2019-08-27 09:34:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201123-20190825015815.patch</filename>
            <type>text/plain</type>
            <size>253077</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThjZTc4YWYzMGJiYWQ0
NWFiOTQyZjJmZThjZmM0YWYyNTkwN2NlZC4uMTY5YmNlNjczMDQ4ODY4M2Y1MWI5MmNlYTkxOGFi
YjE1MDhlMGJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1MSBAQAorMjAxOS0wOC0yNSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEVYSUYg
b3JpZW50YXRpb24gc2hvdWxkIGJlIHJlc3BlY3RlZCB3aGVuIHJlbmRlcmluZyBpbWFnZXMgCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDExMjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtLSBJbWFnZTo6
c2l6ZSgpIHdpbGwgcmV0dXJuIHRoZSByZW5kZXJlZCBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZQor
ICAgICAgICAgICBvcmllbnRhdGlvbi4gVGhlIGxvdyBsZXZlbCBBUElzIG1pZ2h0IHRyYW5zcG9z
ZSB0aGUgc2l6ZSBqdXN0IGJlZm9yZQorICAgICAgICAgICBjYWxsaW5nIHRoZSBzeXN0ZW0gQVBJ
IHRvIGRyYXcgdGhlIGltYWdlLgorCisgICAgICAgIC0tIFJlbmRlckVsZW1lbnQ6OmltYWdlT3Jp
ZW50YXRpb24oKSB3aWxsIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UKKyAgICAg
ICAgICAgZm9yIGFsbCBpbWFnZXMgYW5kIGZvciBhbGwgcG9ydHMgdGlsbCB0aGUgY3NzIGltYWdl
LW9yaWVudGF0aW9uIHNwZWNzCisgICAgICAgICAgIGlzIGZpbmFsaXplZC4KKworICAgICAgICAt
LSBUaGUgZGVmYXVsdCBvZiBJbWFnZU9yZWluZXRhdGlvbiBhcmd1bWVudCBvZiBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZSgpCisgICAgICAgICAgIHdpbGwgYmUgY2hhbmdlZCB0byB7IEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZSB9LgorCisgICAgICAgIC0tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoK
KyAgICAgICAgICAgRnJvbUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3
VGlsZWRJbWFnZSgpLgorCisgICAgICAgIC0tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmRyYXdJbWFnZSgpIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoKKyAgICAgICAgICAgRnJv
bUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KKworICAg
ICAgICBUZXN0czogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVu
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFn
ZS1vYmplY3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24taW1nLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24tc3ZnLWZlaW1hZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWwKKworICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmltYWdl
U2l6ZUZvclJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlRnJhbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWU6OnNpemVSZXNwZWN0
aW5nT3JpZW50YXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzaXplUmVzcGVjdGluZ09yaWVudGF0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFnZTo6c2l6ZSBjb25zdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFn
SW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxs
TGF5ZXJFeHRlbmRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6aW1hZ2VPcmllbnRhdGlvbiBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckltYWdlOjpwYWludEludG9SZWN0KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VGb3JDb250YWluZXI6OnNpemUgY29uc3QpOgor
ICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oOgorCisyMDE5LTA4
LTIzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWxsIGltYWdlIGRyYXdpbmcgZnVuY3Rpb25zIHNob3VsZCB0YWtlIGFuIGFyZ3VtZW50IG9m
IHR5cGUgSW1hZ2VQYWludGluZ09wdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMTA1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2g6CisgICAgICAgIC0tIEFsbCB0aGUgaW1h
Z2UgZHJhd2luZyBmdW5jdGlvbiB3aWxsIHRha2UgYW4gYXJndW1lbnQgb2YgdHlwZQorICAgICAg
ICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBpbnN0ZWFkIG9mIHBhc3NpbmcgaW5kaXZpZHVhbCBv
cHRpb25zLgorCisgICAgICAgIC0tIEltYWdlUGFpbnRpbmdPcHRpb25zIGlzIG1hZGUgbGlrZSBh
IHNldCBvZiBvcHRpb25zLiBJdCBjYW4gYmUKKyAgICAgICAgICAgaW5pdGlhbGl6ZWQgd2l0aCBh
bnkgbnVtYmVyIG9mIG9wdGlvbnMgYW5kIHRoZSBvcmRlciBkb2VzIG5vdCBtYXR0ZXIKKworICAg
ICAgICAtLSBJbWFnZTo6b3JpZ2luYWxTaXplKCkgaXMgZGVsZXRlZCBiZWNhdXNlIGl0IHJldHVy
bnMgc2l6ZSgpIGFuZCBub25lCisgICAgICAgICAgIG9mIHRoZSBJbWFnZSBjb25jcmV0ZSBjbGFz
c2VzIG92ZXJyaWRlcyB0aGlzIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogSGVhZGVycy5j
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJpdG1h
cDo6Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcDo6Y3JlYXRl
RnJvbUJ1ZmZlcik6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0ltYWdlVG9Db250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmZ1bGxDYW52
YXNDb21wb3NpdGVkRHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6CisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0Nyb3Nz
ZmFkZVN1YmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdl
OjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3
UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9DdXN0b21QYWludEltYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbVBhaW50SW1hZ2U6OmRyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6Q3VzdG9tUGFpbnRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdGVkSW1hZ2U6
OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYWRpZW50SW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGll
bnRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRp
ZW50SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3
Q29uc3VtaW5nSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09w
dGlvbnM6OkltYWdlUGFpbnRpbmdPcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlUGFpbnRpbmdPcHRpb25zOjp1c2VzRGVmYXVsdEludGVycG9sYXRpb24gY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd0ltYWdlSW1w
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFn
ZUltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmRyYXdU
aWxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lv
bnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmRyYXcp
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmRyYXdUaWxlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZTo6b3JpZ2luYWxTaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6
OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zOjpJbWFnZVBhaW50aW5nT3B0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9uczo6Y29tcG9zaXRlT3BlcmF0b3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OmJsZW5kTW9k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9uczo6ZGVjb2Rp
bmdNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zOjpv
cmllbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9u
czo6aW50ZXJwb2xhdGlvblF1YWxpdHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnM6OnNldE9wdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hbWVkSW1h
Z2VHZW5lcmF0ZWRJbWFnZTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpOYW1lZEltYWdlR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9O
YW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9O
YXRpdmVJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3Bl
cmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZHJhd1NoYWRvd0xheWVyQnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpkcmF3U2hhZG93SW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpD
YWlybzo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dEltcGxDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBs
Q2Fpcm86OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRJbXBsQ2Fpcm86OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyOjpkcmF3Q29uc3VtaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpk
cmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3UGF0dGVybik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcp
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9OYXRpdmVJbWFnZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdOYXRpdmVJbWFn
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpkcmF3KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3UGF0dGVybjo6RHJhd1Bh
dHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdQYXR0ZXJuOjphcHBs
eSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZl
SW1hZ2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdHRl
cm46OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm46
OkRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUJsZW5kOjpw
bGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb3NpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVDb21wb3NpdGU6OnBsYXRm
b3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIu
Y3BwOgorICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2
ZUltYWdlKToKKyAgICAgICAgKE5pY29zaWE6OkNhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdQ
YXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29z
aWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0RpcmVjdDJET3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3QyRDo6
ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdDJEOjpkcmF3UGF0dGVy
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0aW9ucy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRJbXBsRGly
ZWN0MkQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Z2V0SEJJVE1BUE9mU2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Z2V0SEJJVE1BUE9mU2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0aXZlSW1hZ2VEaXJlY3QyRC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9E
cmFnSW1hZ2VJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1h
Z2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRl
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFNuYXBzaG90SW1hZ2UpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFn
ZTo6cGFpbnRJbnRvUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVk
UGx1Z0luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpw
YWludFNuYXBzaG90KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92
ZXJsYXkpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdJbWFnZTo6ZHJhd0ZvckNvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpT
VkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkcmF3
UGF0dGVybkZvckNvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZHJhdyk6
CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6CisgICAgICAgICogc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdl
Rm9yQ29udGFpbmVyOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRm9yQ29udGFp
bmVyOjpkcmF3UGF0dGVybik6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29u
dGFpbmVyLmg6CisKIDIwMTktMDgtMjIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFt3YXRjaE9TXSBEaXNhYmxlIENvbnRlbnQgRmlsdGVyaW5nIGluIHRoZSBzaW11
bGF0b3IgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWRlMzUxZDJmNzc4N2EwZDljMTBlYmNiZDY2YzNkNTBh
ZjcwNTc2MC4uZjViYzhiYzkyNzE1Yzc5YzJiNmVlZTZmMDgxZThjOTg0YWRhN2UwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wOC0yMyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJv
dWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFsbCBpbWFnZSBkcmF3aW5nIGZ1bmN0aW9u
cyBzaG91bGQgdGFrZSBhbiBhcmd1bWVudCBvZiB0eXBlIEltYWdlUGFpbnRpbmdPcHRpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEwNTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZSgpIG5vdyB0YWtlcyBhbiBJbWFnZVBhaW50aW5nT3B0aW9ucy4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6aW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKToKKwogMjAxOS0wOC0yMiAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW3dhdGNoT1NdIERpc2FibGUgQ29u
dGVudCBGaWx0ZXJpbmcgaW4gdGhlIHNpbXVsYXRvciBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggN2I4MjgwZWJkMDI0ZjM0Y2M2NzExMmZmMDAxNzFlNjkxYWZlN2QyZS4uMjk1YjRmNDIzZWZh
MTQwZGE0NmU4ZTRmMTA0ZGU5YTdiZmZmZTY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMDY0
LDYgKzEwNjQsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VPYnNlcnZlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVR5cGVz
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAz
ODUyZDNkMzkzN2Q2NmU5ZGZmMTI5MGQzMWNjY2Q4NDZmOWNiNWRhLi4yN2E2MWNmNjllYjAxNzgz
MDQxNWYzYjQ1NjJjY2QxMzkwN2NiOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDg0LDYgKzIwODQsNyBAQAogCQk3MjE0
NDMzMjIyM0VDODVGMDBGMTJGRjcgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTcyMTQ0MzMzMjIzRUM4QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0
IC8qIFNWR1Byb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYw
MjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzIyODNGMEUyMzBCMjY4QzAwRjVEODI4
IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyogSW1hZ2VQYWludGlu
Z09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MjRFRDMzMjFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUQzMzAxQTNBOEIy
MzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCAqLzsgfTsKIAkJNzI0RUU1NTAxREM4MEQ3
RjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRFMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzI0RUU1NTExREM4MEQ4NDAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEYx
REM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05NDE3LDYgKzk0MTgs
NyBAQAogCQk3MjdBRkVEMTFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDIxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjdBRkVEMzFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUc1JHQi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZVBhaW50aW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MkU0MTc2MTFBMkU4RDJGMDA0QzU2MkEgLyogSlNFWFRzUkdCLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRVhUc1JHQi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYyMUEyRThEMkYwMDRDNTYyQSAvKiBKU0VY
VHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRzUkdCLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRjFBRDlGMUEzOTA0QzMwMDAxNEUxOCAvKiBF
WFRGcmFnRGVwdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRVhU
RnJhZ0RlcHRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NTUzLDYgKzI0
NTU1LDcgQEAKIAkJCQk1NTc2QTU2MzFEODhBNzA4MDBDQ0MwNEMgLyogSW1hZ2VGcmFtZS5oICov
LAogCQkJCUJDN0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmggKi8sCiAJ
CQkJQTg3NDhENjYxMkNDMzc2MzAwMUZCQTQxIC8qIEltYWdlT3JpZW50YXRpb24uaCAqLywKKwkJ
CQk3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCAqLywK
IAkJCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi8s
CiAJCQkJNTU0Njc1NzcxRkQxRkMxQTAwM0IxMEIwIC8qIEltYWdlU291cmNlLmNwcCAqLywKIAkJ
CQk1NTQ2NzU3ODFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuaCAqLywKQEAgLTI5NTY5
LDYgKzI5NTcyLDcgQEAKIAkJCQkwODk1ODI1NjBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0Y0NEE4MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFn
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDVBNTkzMTE1MjUyNUQwMDAzNkVFNTEg
LyogSW1hZ2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzIyODNGMEUyMzBCMjY4
QzAwRjVEODI4IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
NTFBMkYzRjE3RDdEM0FFMDA3MjUxN0EgLyogSW1hZ2VRdWFsaXR5Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDkyOTFFNEIxMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5n
TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QyN0FFNTAyMkE5ODY4NzAwOTQ3RkY5IC8qIElt
YWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdl
Qml0bWFwLmNwcAppbmRleCA2MzFmYWU3MmIxMDMxYTY1MjA0ZTc5ZmNiYTVjMzZjNmQ5YjA5MDUz
Li42YjBjN2EzZDY3Y2RjN2E1YmI1ZGUyOTg0Y2QyYmE1NWRmMzAyNzA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlQml0bWFwLmNwcApAQCAtMzIzLDEwICszMjMsNyBAQCB2b2lkIEltYWdlQml0bWFw
OjpjcmVhdGVQcm9taXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8SFRNTEltYWdl
RWxlbWVudAogICAgIH0KIAogICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIG91
dHB1dFNpemUpOwotICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIHBhaW50aW5nT3B0aW9uczsKLSAg
ICBwYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSA9IGludGVycG9sYXRpb25R
dWFsaXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpOwotCi0gICAgYml0
bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0LCBz
b3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHBhaW50aW5nT3B0aW9ucyk7Cisg
ICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIsIGRlc3RS
ZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHsgaW50ZXJwb2xhdGlv
blF1YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0eSkgfSk7CiAKICAg
ICAvLyA3LiBDcmVhdGUgYSBuZXcgSW1hZ2VCaXRtYXAgb2JqZWN0LgogICAgIGF1dG8gaW1hZ2VC
aXRtYXAgPSBjcmVhdGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7CkBAIC0zNzMsMTAgKzM3MCw3IEBA
IHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVuCiAgICAgfQogCiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0
KEZsb2F0UG9pbnQoKSwgb3V0cHV0U2l6ZSk7Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFp
bnRpbmdPcHRpb25zOwotICAgIHBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5
ID0gaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVh
bGl0eSk7Ci0KLSAgICBiaXRtYXBEYXRhLT5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZUZvclJl
bmRlciwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgcGFp
bnRpbmdPcHRpb25zKTsKKyAgICBiaXRtYXBEYXRhLT5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWFn
ZUZvclJlbmRlciwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5yZWxlYXNlUmV0dXJuVmFsdWUo
KSwgeyBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6ZVF1YWxpdHkob3B0aW9ucy5yZXNpemVR
dWFsaXR5KSB9KTsKIAogICAgIC8vIDMuIENyZWF0ZSBhIG5ldyBJbWFnZUJpdG1hcCBvYmplY3Qu
CiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IGNyZWF0ZShXVEZNb3ZlKGJpdG1hcERhdGEpKTsKQEAg
LTQ4NCwxMCArNDc4LDcgQEAgdm9pZCBJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPEltYWdlQml0bWFwPiYgZXgKICAgICBhdXRvIGltYWdl
Rm9yUmVuZGVyID0gZXhpc3RpbmdJbWFnZUJpdG1hcC0+YnVmZmVyKCktPmNvcHlJbWFnZSgpOwog
CiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0KEZsb2F0UG9pbnQoKSwgb3V0cHV0U2l6ZSk7Ci0gICAg
SW1hZ2VQYWludGluZ09wdGlvbnMgcGFpbnRpbmdPcHRpb25zOwotICAgIHBhaW50aW5nT3B0aW9u
cy5tX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVR
dWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0eSk7Ci0KLSAgICBiaXRtYXBEYXRhLT5jb250ZXh0
KCkuZHJhd0ltYWdlKCppbWFnZUZvclJlbmRlciwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSwgcGFpbnRpbmdPcHRpb25zKTsKKyAgICBiaXRtYXBEYXRhLT5j
b250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZUZvclJlbmRlciwgZGVzdFJlY3QsIHNvdXJjZVJlY3Rh
bmdsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgeyBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6
ZVF1YWxpdHkob3B0aW9ucy5yZXNpemVRdWFsaXR5KSB9KTsKIAogICAgIC8vIDMuIENyZWF0ZSBh
IG5ldyBJbWFnZUJpdG1hcCBvYmplY3QuCiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IGNyZWF0ZShX
VEZNb3ZlKGJpdG1hcERhdGEpKTsKQEAgLTY1MSwxMCArNjQyLDcgQEAgdm9pZCBJbWFnZUJpdG1h
cDo6Y3JlYXRlRnJvbUJ1ZmZlcigKICAgICB9CiAKICAgICBGbG9hdFJlY3QgZGVzdFJlY3QoRmxv
YXRQb2ludCgpLCBvdXRwdXRTaXplKTsKLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBwYWludGlu
Z09wdGlvbnM7Ci0gICAgcGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkgPSBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6ZVF1YWxpdHkob3B0aW9ucy5yZXNpemVRdWFsaXR5
KTsKLQotICAgIGJpdG1hcERhdGEtPmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltYWdlLCBkZXN0UmVj
dCwgc291cmNlUmVjdGFuZ2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBwYWludGluZ09wdGlvbnMp
OworICAgIGJpdG1hcERhdGEtPmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltYWdlLCBkZXN0UmVjdCwg
c291cmNlUmVjdGFuZ2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCB7IGludGVycG9sYXRpb25RdWFs
aXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpIH0pOwogCiAgICAgYXV0
byBpbWFnZUJpdG1hcCA9IGNyZWF0ZShXVEZNb3ZlKGJpdG1hcERhdGEpKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmNwcAppbmRleCA1M2M5YzU2NjA0MjdjNDg2ZTMyYWJjMGMyZDY1NGNjYzU2YzAyOGEz
Li4xOGM2Zjc2Yjg1ZWYwNzczNzU4YWQ2NTJjOWY5YmY5ZGEyYzY5Y2Y5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmNwcApAQCAtMTU3MywxOCArMTU3MywxOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoRG9jdW1lbnQmIGRvY3VtZW50LCBD
YQogICAgIGlmIChpbWFnZS0+aXNCaXRtYXBJbWFnZSgpKQogICAgICAgICBkb3duY2FzdDxCaXRt
YXBJbWFnZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3MoZG9jdW1lbnQuc2V0dGluZ3MoKSk7
CiAKKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0geyBvcCwgYmxlbmRNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfTsKICAgICBpZiAocmVjdENvbnRhaW5zQ2FudmFz
KG5vcm1hbGl6ZWREc3RSZWN0KSkgewotICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3Jt
YWxpemVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9w
LCBibGVuZE1vZGUpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERz
dFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhd0VudGly
ZUNhbnZhcygpOwogICAgIH0gZWxzZSBpZiAoaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShvcCkp
IHsKICAgICAgICAgZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxp
emVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIG9wKTsKICAgICAgICAgZGlkRHJhd0VudGly
ZUNhbnZhcygpOwogICAgIH0gZWxzZSBpZiAob3AgPT0gQ29tcG9zaXRlQ29weSkgewogICAgICAg
ICBjbGVhckNhbnZhcygpOwotICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVk
RHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wLCBibGVu
ZE1vZGUpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3Qs
IG5vcm1hbGl6ZWRTcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZh
cygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6
ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMob3AsIGJs
ZW5kTW9kZSkpOworICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVj
dCwgbm9ybWFsaXplZFNyY1JlY3QsIG9wdGlvbnMpOwogICAgICAgICBkaWREcmF3KG5vcm1hbGl6
ZWREc3RSZWN0KTsKICAgICB9CiAgICAgCkBAIC0xNjMyLDcgKzE2MzMsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoSFRNTENhbnZh
c0VsZW1lbnQmIHNvdQogI2VuZGlmCiAKICAgICBpZiAocmVjdENvbnRhaW5zQ2FudmFzKGRzdFJl
Y3QpKSB7Ci0gICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNS
ZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUo
KS5nbG9iYWxCbGVuZCkpOworICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0
UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxC
bGVuZCB9KTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxzZSBpZiAo
aXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkpIHsKICAg
ICAgICAgZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoKmJ1ZmZlciwgZHN0UmVjdCwgc3Jj
UmVjdCwgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUpOwpAQCAtMTY0MSwxNSArMTY0MiwxNSBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2Uo
SFRNTENhbnZhc0VsZW1lbnQmIHNvdQogICAgICAgICBpZiAoJnNvdXJjZUNhbnZhcyA9PSAmY2Fu
dmFzQmFzZSgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byBjb3B5ID0gYnVmZmVyLT5jb3B5UmVj
dFRvQnVmZmVyKHNyY1JlY3QsIENvbG9yU3BhY2VTUkdCLCAqYykpIHsKICAgICAgICAgICAgICAg
ICBjbGVhckNhbnZhcygpOwotICAgICAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqY29w
eSwgZHN0UmVjdCwgeyB7IH0sIHNyY1JlY3Quc2l6ZSgpIH0sIEltYWdlUGFpbnRpbmdPcHRpb25z
KHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAg
ICAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpjb3B5LCBkc3RSZWN0LCB7IHsgfSwgc3JjUmVj
dC5zaXplKCkgfSwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVu
ZCB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNsZWFy
Q2FudmFzKCk7Ci0gICAgICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVj
dCwgc3JjUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUs
IHN0YXRlKCkuZ2xvYmFsQmxlbmQpKTsKKyAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigq
YnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0
ZSgpLmdsb2JhbEJsZW5kIH0pOwogICAgICAgICB9CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52
YXMoKTsKICAgICB9IGVsc2UgewotICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwg
ZHN0UmVjdCwgc3JjUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMoc3RhdGUoKS5nbG9iYWxDb21w
b3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxlbmQpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVy
KCpidWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0
YXRlKCkuZ2xvYmFsQmxlbmQgfSk7CiAgICAgICAgIGRpZERyYXcoZHN0UmVjdCk7CiAgICAgfQog
CkBAIC0xNzMwLDE3ICsxNzMxLDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShJbWFnZUJpdG1hcCYgaW1hZ2VCaXRtCiAgICAgY2hl
Y2tPcmlnaW4oJmltYWdlQml0bWFwKTsKIAogICAgIGlmIChyZWN0Q29udGFpbnNDYW52YXMoZHN0
UmVjdCkpIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNy
Y1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0
ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBk
c3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2Jh
bEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlm
IChpc0Z1bGxDYW52YXNDb21wb3NpdGVNb2RlKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlKSkgewog
ICAgICAgICBmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWFnZSgqYnVmZmVyLCBkc3RSZWN0LCBz
cmNSZWN0LCBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVD
YW52YXMoKTsKICAgICB9IGVsc2UgaWYgKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBv
c2l0ZUNvcHkpIHsKICAgICAgICAgY2xlYXJDYW52YXMoKTsKLSAgICAgICAgYy0+ZHJhd0ltYWdl
QnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0
YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMt
PmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xv
YmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3RW50
aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpi
dWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xv
YmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMtPmRyYXdJbWFn
ZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9z
aXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3KGRzdFJlY3QpOwog
ICAgIH0KIApAQCAtMTgyOSwxNCArMTgzMCwxNCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2U6OmNvbXBvc2l0ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbgog
ICAgIGMtPnJlc3RvcmUoKTsKIH0KIAotc3RhdGljIHZvaWQgZHJhd0ltYWdlVG9Db250ZXh0KElt
YWdlJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK3N0YXRpYyB2
b2lkIGRyYXdJbWFnZVRvQ29udGV4dChJbWFnZSYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgY29udGV4dC5kcmF3SW1hZ2Uo
aW1hZ2UsIGRlc3QsIHNyYywgb3ApOworICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBkZXN0
LCBzcmMsIG9wdGlvbnMpOwogfQogCi1zdGF0aWMgdm9pZCBkcmF3SW1hZ2VUb0NvbnRleHQoSW1h
Z2VCdWZmZXImIGltYWdlQnVmZmVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
KQorc3RhdGljIHZvaWQgZHJhd0ltYWdlVG9Db250ZXh0KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZl
ciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsK
LSAgICBjb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgZGVzdCwgc3JjLCBvcCk7
CisgICAgY29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIGRlc3QsIHNyYywgb3B0
aW9ucyk7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoVCYgaW1hZ2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
KQpAQCAtMTg2NSw3ICsxODY2LDcgQEAgdGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWEKICAgICBidWZm
ZXItPmNvbnRleHQoKS50cmFuc2xhdGUoLXRyYW5zZm9ybWVkQWRqdXN0ZWRSZWN0LmxvY2F0aW9u
KCkpOwogICAgIGJ1ZmZlci0+Y29udGV4dCgpLnRyYW5zbGF0ZShjcm9wcGVkT2Zmc2V0KTsKICAg
ICBidWZmZXItPmNvbnRleHQoKS5jb25jYXRDVE0oZWZmZWN0aXZlVHJhbnNmb3JtKTsKLSAgICBk
cmF3SW1hZ2VUb0NvbnRleHQoaW1hZ2UsIGJ1ZmZlci0+Y29udGV4dCgpLCBhZGp1c3RlZERlc3Qs
IHNyYywgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgZHJhd0ltYWdlVG9Db250ZXh0KGltYWdl
LCBidWZmZXItPmNvbnRleHQoKSwgYWRqdXN0ZWREZXN0LCBzcmMsIHsgQ29tcG9zaXRlU291cmNl
T3ZlciB9KTsKIAogICAgIGNvbXBvc2l0ZUJ1ZmZlcigqYnVmZmVyLCBidWZmZXJSZWN0LCBvcCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRleCBl
ZjkzYjM1MWU3OTFkNTI3ZGFlODBmODdjNTI1YTdkYzE0ZTdlNDIwLi5jZWZiZTMyYjU2YTZkZWNh
NWM5MTEzNDhlYWIxMGIxMDY2YzllZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTI4MCwxMyArMjgwLDEwIEBAIEZsb2F0U2l6ZSBDYWNoZWRJ
bWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIs
IFNpemVUCiAgICAgaWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYg
KGlzPEJpdG1hcEltYWdlPigqbV9pbWFnZSkgJiYgcmVuZGVyZXIgJiYgcmVuZGVyZXItPmltYWdl
T3JpZW50YXRpb24oKSA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCi0gICAgICAgIHJl
dHVybiBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKm1faW1hZ2UpLnNpemVSZXNwZWN0aW5nT3JpZW50
YXRpb24oKTsKLQogICAgIGlmIChpczxTVkdJbWFnZT4oKm1faW1hZ2UpICYmIHNpemVUeXBlID09
IFVzZWRTaXplKQogICAgICAgICByZXR1cm4gbV9zdmdJbWFnZUNhY2hlLT5pbWFnZVNpemVGb3JS
ZW5kZXJlcihyZW5kZXJlcik7CiAKLSAgICByZXR1cm4gbV9pbWFnZS0+c2l6ZSgpOworICAgIHJl
dHVybiBtX2ltYWdlLT5zaXplKHJlbmRlcmVyID8gcmVuZGVyZXItPmltYWdlT3JpZW50YXRpb24o
KSA6IEltYWdlT3JpZW50YXRpb24oSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSk7CiB9CiAK
IExheW91dFNpemUgQ2FjaGVkSW1hZ2U6OmltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRl
ckVsZW1lbnQqIHJlbmRlcmVyLCBmbG9hdCBtdWx0aXBsaWVyLCBTaXplVHlwZSBzaXplVHlwZSkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAppbmRleCBiMmJkNDdjYjE2MTRjZGFlNWQ4OWVlYTE3YjQyYzQ3ODZiYzJkOWIxLi42MjY1
MDQwNzhiNzkwMzdjODhjMmU1ZDA3OGEwZTFhZjhiMTVmMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0xMTIsNyArMTEyLDcg
QEAgRW5jb2RlZERhdGFTdGF0dXMgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0
YVJlY2VpdmVkKQogICAgIG1fY3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0
YXR1czo6SW52YWxpZDsKICAgICByZXR1cm4gbV9zb3VyY2UtPmRhdGFDaGFuZ2VkKGRhdGEoKSwg
YWxsRGF0YVJlY2VpdmVkKTsKIH0KLSAgICAKKwogdm9pZCBCaXRtYXBJbWFnZTo6c2V0Q3VycmVu
dEZyYW1lRGVjb2RpbmdTdGF0dXNJZk5lY2Vzc2FyeShEZWNvZGluZ1N0YXR1cyBkZWNvZGluZ1N0
YXR1cykKIHsKICAgICAvLyBXaGVuIG5ldyBkYXRhIGlzIHJlY2VpdmVkLCBtX2N1cnJlbnRGcmFt
ZURlY29kaW5nU3RhdHVzIGlzIHNldCB0byBEZWNvZGluZ1N0YXR1czo6SW52YWxpZApAQCAtMTgz
LDcgKzE4Myw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6Om5vdFNvbGlkQ29sb3IoKQogfQogI2VuZGlm
CiAKLUltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBtb2RlLCBEZWNvZGluZ01vZGUgZGVj
b2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0
IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoZGVzdFJlY3QuaXNFbXB0eSgpIHx8IHNy
Y1JlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3Ro
aW5nOwpAQCAtMTk2LDcgKzE5Niw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJh
dyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgTE9H
KEltYWdlcywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbc3Vic2FtcGxpbmdMZXZl
bCA9ICVkIHNjYWxlRmFjdG9yRm9yRHJhd2luZyA9ICglLjRmLCAlLjRmKV0iLCBfX0ZVTkNUSU9O
X18sIHRoaXMsIHNvdXJjZVVSTCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0
PGludD4obV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCksIHNjYWxlRmFjdG9yRm9yRHJhd2luZy53
aWR0aCgpLCBzY2FsZUZhY3RvckZvckRyYXdpbmcuaGVpZ2h0KCkpOwogCiAgICAgTmF0aXZlSW1h
Z2VQdHIgaW1hZ2U7Ci0gICAgaWYgKGRlY29kaW5nTW9kZSA9PSBEZWNvZGluZ01vZGU6OkFzeW5j
aHJvbm91cykgeworICAgIGlmIChvcHRpb25zLmRlY29kaW5nTW9kZSgpID09IERlY29kaW5nTW9k
ZTo6QXN5bmNocm9ub3VzKSB7CiAgICAgICAgIEFTU0VSVCghY2FuQW5pbWF0ZSgpKTsKICAgICAg
ICAgQVNTRVJUKCFtX2N1cnJlbnRGcmFtZSB8fCBtX2FuaW1hdGlvbkZpbmlzaGVkKTsKIApAQCAt
MjE2LDcgKzIxNiw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAKICAgICAgICAgaWYgKCFm
cmFtZUhhc0RlY29kZWROYXRpdmVJbWFnZUNvbXBhdGlibGVXaXRoT3B0aW9uc0F0SW5kZXgobV9j
dXJyZW50RnJhbWUsIG1fY3VycmVudFN1YnNhbXBsaW5nTGV2ZWwsIERlY29kaW5nT3B0aW9ucyhE
ZWNvZGluZ01vZGU6OkFzeW5jaHJvbm91cykpKSB7CiAgICAgICAgICAgICBpZiAobV9zaG93RGVi
dWdCYWNrZ3JvdW5kKQotICAgICAgICAgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0
LCBkZXN0UmVjdCwgQ29sb3IoQ29sb3I6OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3Ap
OworICAgICAgICAgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwg
Q29sb3IoQ29sb3I6OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3B0aW9ucy5jb21wb3Np
dGVPcGVyYXRvcigpKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIApA
QCAtMjI3LDcgKzIyNyw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgICAgIEFTU0VS
VF9JTVBMSUVTKHN0YXR1cyA9PSBTdGFydEFuaW1hdGlvblN0YXR1czo6RGVjb2RpbmdBY3RpdmUs
ICghbV9jdXJyZW50RnJhbWUgJiYgIW1fcmVwZXRpdGlvbnNDb21wbGV0ZSkgfHwgZnJhbWVIYXNG
dWxsU2l6ZU5hdGl2ZUltYWdlQXRJbmRleChtX2N1cnJlbnRGcmFtZSwgbV9jdXJyZW50U3Vic2Ft
cGxpbmdMZXZlbCkpOwogCiAgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhcnRBbmltYXRpb25TdGF0
dXM6OkRlY29kaW5nQWN0aXZlICYmIG1fc2hvd0RlYnVnQmFja2dyb3VuZCkgewotICAgICAgICAg
ICAgZmlsbFdpdGhTb2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVs
bG93KS5jb2xvcldpdGhBbHBoYSgwLjUpLCBvcCk7CisgICAgICAgICAgICBmaWxsV2l0aFNvbGlk
Q29sb3IoY29udGV4dCwgZGVzdFJlY3QsIENvbG9yKENvbG9yOjp5ZWxsb3cpLmNvbG9yV2l0aEFs
cGhhKDAuNSksIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSk7CiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgICAgIApAQCAtMjQ1LDcgKzI0NSw3IEBAIEltYWdl
RHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgICAgIH0gZWxzZSBpZiAoZnJhbWVJc0JlaW5nRGVjb2Rl
ZCkgewogICAgICAgICAgICAgLy8gRklYTUU6IGluc3RlYWQgb2Ygc2hvd2luZyB0aGUgeWVsbG93
IHJlY3RhbmdsZSBhbmQgcmV0dXJuaW5nIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhpcyBmcmFtZSB0
byBmaW5pc2ggZGVjb2RpbmcuCiAgICAgICAgICAgICBpZiAobV9zaG93RGVidWdCYWNrZ3JvdW5k
KSB7Ci0gICAgICAgICAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0
LCBDb2xvcihDb2xvcjo6eWVsbG93KS5jb2xvcldpdGhBbHBoYSgwLjUpLCBvcCk7CisgICAgICAg
ICAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xv
cjo6eWVsbG93KS5jb2xvcldpdGhBbHBoYSgwLjUpLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9y
KCkpOwogICAgICAgICAgICAgICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAt
IHVybDogJXMgW3dhaXRpbmcgZm9yIGFzeW5jIGRlY29kaW5nIHRvIGZpbmlzaF0iLCBfX0ZVTkNU
SU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkUmVxdWVzdERl
Y29kaW5nOwpAQCAtMjY0LDE0ICsyNjQsMTUgQEAgSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdl
OjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXMKICAg
ICBBU1NFUlQoaW1hZ2UpOwogICAgIENvbG9yIGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9y
KCk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewotICAgICAgICBmaWxsV2l0aFNvbGlkQ29s
b3IoY29udGV4dCwgZGVzdFJlY3QsIGNvbG9yLCBvcCk7CisgICAgICAgIGZpbGxXaXRoU29saWRD
b2xvcihjb250ZXh0LCBkZXN0UmVjdCwgY29sb3IsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3Io
KSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgaWYgKG9yaWVudGF0aW9u
ID09IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkKLSAgICAgICAgb3JpZW50YXRpb24gPSBm
cmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CisgICAgaWYgKG9wdGlvbnMu
b3JpZW50YXRpb24oKSA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCisgICAgICAgIGRy
YXdOYXRpdmVJbWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNpemUo
c2l6ZSgpKSwgeyBvcHRpb25zLCBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFt
ZSkgfSk7CisgICAgZWxzZQorICAgICAgICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQs
IGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRTaXplKHNpemUoKSksIG9wdGlvbnMpOwogCi0gICAgZHJh
d05hdGl2ZUltYWdlKGltYWdlLCBjb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgSW50U2l6ZShz
aXplKCkpLCBvcCwgbW9kZSwgb3JpZW50YXRpb24pOwogICAgIG1fY3VycmVudEZyYW1lRGVjb2Rp
bmdTdGF0dXMgPSBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CiAK
ICAgICBpZiAoaW1hZ2VPYnNlcnZlcigpKQpAQCAtMjgwLDcgKzI4MSw3IEBAIEltYWdlRHJhd1Jl
c3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBCaXRtYXBJbWFnZTo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRy
YW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEJpdG1h
cEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBp
ZiAodGlsZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC0yOTAsNyArMjkxLDcg
QEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAgICAgICBpZiAobV9jdXJyZW50RnJhbWVEZWNv
ZGluZ1N0YXR1cyA9PSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCkKICAgICAgICAgICAgIG1fc291
cmNlLT5kZXN0cm95SW5jb21wbGV0ZURlY29kZWREYXRhKCk7CiAgICAgICAgIAotICAgICAgICBJ
bWFnZTo6ZHJhd1BhdHRlcm4oY3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBo
YXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKKyAgICAgICAgSW1hZ2U6OmRyYXdQYXR0ZXJu
KGN0eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0
aW9ucyk7CiAgICAgICAgIG1fY3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBmcmFtZURlY29k
aW5nU3RhdHVzQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC0zMDUsNyArMzA2LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhp
Y3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAgICAgICAvLyBU
ZW1wb3JhcmlseSByZXNldCBpbWFnZSBvYnNlcnZlciwgd2UgZG9uJ3Qgd2FudCB0byByZWNlaXZl
IGFueSBjaGFuZ2VJblJlY3QoKSBjYWxscyBkdWUgdG8gdGhpcyByZWxheW91dC4KICAgICAgICAg
c2V0SW1hZ2VPYnNlcnZlcihudWxscHRyKTsKIAotICAgICAgICBkcmF3KGJ1ZmZlci0+Y29udGV4
dCgpLCB0aWxlUmVjdCwgdGlsZVJlY3QsIG9wLCBibGVuZE1vZGUsIERlY29kaW5nTW9kZTo6U3lu
Y2hyb25vdXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUpOworICAgICAgICBkcmF3KGJ1ZmZlci0+
Y29udGV4dCgpLCB0aWxlUmVjdCwgdGlsZVJlY3QsIHsgb3B0aW9ucywgRGVjb2RpbmdNb2RlOjpT
eW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9KTsKIAogICAgICAgICBzZXRJbWFn
ZU9ic2VydmVyKG9ic2VydmVyKTsKICAgICAgICAgYnVmZmVyLT5jb252ZXJ0VG9MdW1pbmFuY2VN
YXNrKCk7CkBAIC0zMTYsNyArMzE3LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAgIH0K
IAogICAgIGN0eHQuc2V0RHJhd0x1bWluYW5jZU1hc2soZmFsc2UpOwotICAgIG1fY2FjaGVkSW1h
Z2UtPmRyYXdQYXR0ZXJuKGN0eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFz
ZSwgc3BhY2luZywgb3AsIGJsZW5kTW9kZSk7CisgICAgbV9jYWNoZWRJbWFnZS0+ZHJhd1BhdHRl
cm4oY3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKIH0KIAogYm9vbCBCaXRtYXBJbWFnZTo6c2hvdWxkQW5pbWF0ZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA1
YWVmNjFkN2U4OTliZGNmNWM0ZDQ0NWFhYmM4OGI2OGYxZjA0YWQ1Li4yYWQ3ZjFjNWNlMDdkNTEz
MzU0ODAzMTRiYmM3NDM3NzgwMWNkYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTgxLDggKzgxLDcgQEAgcHVibGljOgogICAgIE9w
dGlvbmFsPEludFBvaW50PiBob3RTcG90KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3Vy
Y2UtPmhvdFNwb3QoKTsgfQogCiAgICAgLy8gRmxvYXRTaXplIGR1ZSB0byBvdmVycmlkZS4KLSAg
ICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaXpl
KCk7IH0KLSAgICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZS0+c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpOyB9CisgICAgRmxvYXRT
aXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246
OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UtPnNpemUob3JpZW50
YXRpb24pOyB9CiAgICAgQ29sb3Igc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9zb3VyY2UtPnNpbmdsZVBpeGVsU29saWRDb2xvcigpOyB9CiAgICAgYm9v
bCBmcmFtZUlzQmVpbmdEZWNvZGVkQW5kSXNDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KHNp
emVfdCBpbmRleCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJiBkZWNvZGluZ09wdGlvbnMpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlLT5mcmFtZUlzQmVpbmdEZWNvZGVkQW5kSXNDb21wYXRpYmxlV2l0
aE9wdGlvbnNBdEluZGV4KGluZGV4LCBkZWNvZGluZ09wdGlvbnMpOyB9CiAgICAgRGVjb2RpbmdT
dGF0dXMgZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZS0+ZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgoaW5kZXgpOyB9CkBAIC0x
NjEsOCArMTYwLDggQEAgcHJvdGVjdGVkOgogICAgIC8vIHxkZXN0cm95QWxsfCBhbG9uZy4KICAg
ICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YUlmTmVjZXNzYXJ5KGJvb2wgZGVzdHJveUFsbCA9IHRy
dWUpOwogCi0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9k
ZTo6Tm9ybWFsKSBvdmVycmlkZTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKKyAgICB2b2lk
IGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogI2lmIFBM
QVRGT1JNKFdJTikKICAgICB2b2lkIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFNpemUmIHNyY1Np
emUsIENvbXBvc2l0ZU9wZXJhdG9yKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2UuY3BwCmluZGV4IGVhNjRiMWQ5NDg5YjEwMzU3MmQwYzY5Njg5YmRkYTM0MGFjNjczM2YuLmQ0
YmRiNWYyMGFhNGFkMmE1NzM2NWEzODZjMjYwMmNkMzkzYWU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5jcHAKQEAgLTUwLDIwICs1MCwyMSBAQCBzdGF0aWMgdm9pZCBkcmF3Q3Jvc3NmYWRlU3Vi
aW1hZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIENvbXBvcwogICAg
IGJvb2wgdXNlVHJhbnNwYXJlbmN5TGF5ZXIgPSBpbWFnZS5pc1NWR0ltYWdlKCk7CiAKICAgICBH
cmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgCi0gICAg
Q29tcG9zaXRlT3BlcmF0b3IgZHJhd0ltYWdlT3BlcmF0aW9uID0gb3BlcmF0aW9uOworCisgICAg
SW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9uczsKIAogICAgIGlmICh1c2VUcmFuc3BhcmVuY3lM
YXllcikgewogICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcGVyYXRpb24p
OwogICAgICAgICBjb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7Ci0gICAg
ICAgIGRyYXdJbWFnZU9wZXJhdGlvbiA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7Ci0gICAgfSBlbHNl
CisgICAgfSBlbHNlIHsKICAgICAgICAgY29udGV4dC5zZXRBbHBoYShvcGFjaXR5KTsKKyAgICAg
ICAgb3B0aW9ucyA9IHsgb3BlcmF0aW9uIH07CisgICAgfQogCiAgICAgaWYgKHRhcmdldFNpemUg
IT0gaW1hZ2VTaXplKQogICAgICAgICBjb250ZXh0LnNjYWxlKHRhcmdldFNpemUgLyBpbWFnZVNp
emUpOwogCi0gICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIEludFBvaW50KCksIEltYWdlUGFp
bnRpbmdPcHRpb25zKGRyYXdJbWFnZU9wZXJhdGlvbikpOworICAgIGNvbnRleHQuZHJhd0ltYWdl
KGltYWdlLCBJbnRQb2ludCgpLCBvcHRpb25zKTsKIAogICAgIGlmICh1c2VUcmFuc3BhcmVuY3lM
YXllcikKICAgICAgICAgY29udGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwpAQCAtODYsMTAg
Kzg3LDEwIEBAIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdDcm9zc2ZhZGUoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIGNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIo
KTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdS
ZXN1bHQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwotICAgIGNvbnRleHQuc2V0Q29tcG9z
aXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGNvbnRleHQuc2V0Q29t
cG9zaXRlT3BlcmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVu
ZE1vZGUoKSk7CiAgICAgY29udGV4dC5jbGlwKGRzdFJlY3QpOwogICAgIGNvbnRleHQudHJhbnNs
YXRlKGRzdFJlY3QubG9jYXRpb24oKSk7CiAgICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1Jl
Y3Quc2l6ZSgpKQpAQCAtMTAwLDcgKzEwMSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsCiAg
ICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKIH0KIAotdm9pZCBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwg
QmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
c2l6ZSgpLCBjb250ZXh0LnJlbmRlcmluZ01vZGUoKSk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikK
QEAgLTExMSw3ICsxMTIsNyBAQCB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UgogICAgIGRyYXdDcm9z
c2ZhZGUoZ3JhcGhpY3NDb250ZXh0KTsKIAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBp
bnRvIHRoZSBjb250ZXh0LgotICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBk
c3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9z
aXRlT3AsIGJsZW5kTW9kZSk7CisgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQs
IGRzdFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRp
b25zKTsKIH0KIAogdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHVtcChUZXh0U3RyZWFt
JiB0cykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCmluZGV4IDIxZTEzMjM1MTg1YTRlODUyZjRk
MDJkZjRjZDFmNDY5OGM3ZTFjYzAuLjQ1NzY1YzgzMTQ1MjFlNDhhY2IwZjlkYjM5ZWEwM2Q0ZWE2
ZWMzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaApAQCAtNDQsMTEgKzQ0LDExIEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2Nyb3NzZmFkZVNpemU7IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9u
ID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2Nyb3NzZmFkZVNpemU7IH0KIAogcHJvdGVjdGVkOgotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUs
IEltYWdlT3JpZW50YXRpb24pIG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0
b3IsIEJsZW5kTW9kZSkgb3ZlcnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogCiAg
ICAgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UoSW1hZ2UmIGZyb21JbWFnZSwgSW1hZ2UmIHRvSW1h
Z2UsIGZsb2F0IHBlcmNlbnRhZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgY3Jvc3NmYWRlU2l6ZSwgY29u
c3QgRmxvYXRTaXplJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0N1c3RvbVBhaW50SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKaW5kZXggZmFhMGJmMDYxNDA1OTgxMmI2NjQzNTE4
ZTU4NzM3OGQwM2VhNzlkMy4uMmZiNmZhNDRkODhiZTJjMmMzY2E3MzZkYzM4YWEyMjQ4ZjkyMGNm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFp
bnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9t
UGFpbnRJbWFnZS5jcHAKQEAgLTE3MCwxMCArMTcwLDEwIEBAIEltYWdlRHJhd1Jlc3VsdCBDdXN0
b21QYWludEltYWdlOjpkb0N1c3RvbVBhaW50KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQs
IGNvCiAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKIH0KIAotSW1hZ2VEcmF3
UmVzdWx0IEN1c3RvbVBhaW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgRGVjb2Rp
bmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0IEN1c3RvbVBhaW50SW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKIHsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2
ZXIoZGVzdENvbnRleHQpOwotICAgIGRlc3RDb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihj
b21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBkZXN0Q29udGV4dC5zZXRDb21wb3NpdGVPcGVy
YXRpb24ob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsK
ICAgICBkZXN0Q29udGV4dC5jbGlwKGRlc3RSZWN0KTsKICAgICBkZXN0Q29udGV4dC50cmFuc2xh
dGUoZGVzdFJlY3QubG9jYXRpb24oKSk7CiAgICAgaWYgKGRlc3RSZWN0LnNpemUoKSAhPSBzcmNS
ZWN0LnNpemUoKSkKQEAgLTE4Myw3ICsxODMsNyBAQCBJbWFnZURyYXdSZXN1bHQgQ3VzdG9tUGFp
bnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdAog
fQogCiB2b2lkIEN1c3RvbVBhaW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYg
ZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0
ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQorICAgIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIC8vIEFsbG93IHRoZSBnZW5lcmF0b3IgdG8g
cHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJzIGZvciBiZXR0ZXIg
cGVyZm9ybWFuY2UuCiAgICAgRmxvYXRTaXplIGFkanVzdGVkU2l6ZSA9IHNpemUoKTsKQEAgLTIw
NSw3ICsyMDUsNyBAQCB2b2lkIEN1c3RvbVBhaW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNz
Q29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdAogICAgIGlmIChkZXN0Q29udGV4
dC5kcmF3THVtaW5hbmNlTWFzaygpKQogICAgICAgICBidWZmZXItPmNvbnZlcnRUb0x1bWluYW5j
ZU1hc2soKTsKIAotICAgIGJ1ZmZlci0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0
LCBhZGp1c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIGNv
bXBvc2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGJ1ZmZlci0+ZHJhd1BhdHRlcm4oZGVzdENvbnRl
eHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2Us
IHNwYWNpbmcsIG9wdGlvbnMpOwogICAgIGRlc3RDb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNr
KGZhbHNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ3VzdG9tUGFpbnRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3VzdG9tUGFpbnRJbWFnZS5oCmluZGV4IDRlOGU1ODk3OTUxYTk1MTI1YjkxMzQ4MGFmOTMzMDNl
YjY3OGQ3MWUuLmU3NzA3OWI4ODI5NmVmMTIwZGYwYjYyNDQyZTg1ZTE3MjdlNmE1ZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50SW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DdXN0b21QYWludEltYWdl
LmgKQEAgLTUyLDggKzUyLDggQEAgcHJpdmF0ZToKIAogICAgIEltYWdlRHJhd1Jlc3VsdCBkb0N1
c3RvbVBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYpOwogCi0gICAgSW1h
Z2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1v
ZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgZmluYWw7Ci0gICAgdm9pZCBkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Q29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0
IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmlu
YWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5h
bDsKIAogICAgIFdlYWtQdHI8UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OlBhaW50RGVmaW5pdGlv
bj4gbV9wYWludERlZmluaXRpb247CiAgICAgVmVjdG9yPFN0cmluZz4gbV9pbnB1dFByb3BlcnRp
ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0
ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1h
Z2UuaAppbmRleCAzYTg1OWMzMWFjNGYwMmJiN2EyY2I0NjQzM2Q4ZDhhYmFlNjIxYTQxLi4zZTAx
NjE0YzE0ZGVkZmM0NTU5MjNmYTZkMjRiMTExYWIxNDRjM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKQEAgLTQwLDE1ICs0MCwx
NCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExl
bmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUm
IGludHJpbnNpY1JhdGlvKSBvdmVycmlkZTsKIAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmll
bnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9zaXplOyB9CiAKICAgICAvLyBBc3N1bWUgdGhhdCBnZW5lcmF0ZWQgY29udGVudCBo
YXMgbm8gZGVjb2RlZCBkYXRhIHdlIG5lZWQgdG8gd29ycnkgYWJvdXQKICAgICB2b2lkIGRlc3Ry
b3lEZWNvZGVkRGF0YShib29sIC8qZGVzdHJveUFsbCovID0gdHJ1ZSkgb3ZlcnJpZGUgeyB9CiAK
IHByb3RlY3RlZDoKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSBv
dmVycmlkZSA9IDA7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICAgICAgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJs
ZW5kTW9kZSkgb3ZlcnJpZGUgPSAwOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlID0gMDsKKyAg
ICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBw
YXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlID0g
MDsKIAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyB0byBiZSBsZXNzIGNvbnNlcnZhdGl2
ZS4KICAgICBib29sIGN1cnJlbnRGcmFtZUtub3duVG9CZU9wYXF1ZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50SW1hZ2UuY3BwCmluZGV4IDVkNGVlMjgxNjZiYjQ4OGE3OWRjYTI5NGZhYWNk
ZjY1YzJhNGY0MGIuLmYzZWMwYTFhZDQ2MDQxMjg3MmQ5MjBlN2UxZTAxMTY3NjZjYTYzZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2Uu
Y3BwCkBAIC0zOSwxMCArMzksMTAgQEAgR3JhZGllbnRJbWFnZTo6R3JhZGllbnRJbWFnZShHcmFk
aWVudCYgZ2VuZXJhdG9yLCBjb25zdCBGbG9hdFNpemUmIHNpemUpCiAKIEdyYWRpZW50SW1hZ2U6
On5HcmFkaWVudEltYWdlKCkgPSBkZWZhdWx0OwogCi1JbWFnZURyYXdSZXN1bHQgR3JhZGllbnRJ
bWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50
YXRpb24pCitJbWFnZURyYXdSZXN1bHQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRl
eHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihkZXN0Q29udGV4dCk7Ci0gICAg
ZGVzdENvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUp
OworICAgIGRlc3RDb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcHRpb25zLmNvbXBvc2l0
ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogICAgIGRlc3RDb250ZXh0LmNsaXAo
ZGVzdFJlY3QpOwogICAgIGRlc3RDb250ZXh0LnRyYW5zbGF0ZShkZXN0UmVjdC5sb2NhdGlvbigp
KTsKICAgICBpZiAoZGVzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQpAQCAtNTMsNyAr
NTMsNyBAQCBJbWFnZURyYXdSZXN1bHQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRl
eHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlYwogfQogCiB2b2lkIEdyYWRpZW50SW1hZ2U6
OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlKQorICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9h
dFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewog
ICAgIC8vIEFsbG93IHRoZSBnZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50
IHRpbGluZyBwYXJhbWV0ZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCiAgICAgRmxvYXRTaXpl
IGFkanVzdGVkU2l6ZSA9IHNpemUoKTsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBHcmFkaWVudElt
YWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGQKICAgICBkZXN0Q29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxzZSk7CiAK
ICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBtX2Nh
Y2hlZEltYWdlLT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVkU3Jj
UmVjdCwgYWRqdXN0ZWRQYXR0ZXJuQ1RNLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJs
ZW5kTW9kZSk7CisgICAgbV9jYWNoZWRJbWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRl
c3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNp
bmcsIG9wdGlvbnMpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYWRpZW50SW1hZ2UuaAppbmRleCAxZDlkZDkwOGJjMDc2MWU1NTI0ZDFhNDc4ZWE2YzVl
YWZiNzg4ZWZkLi4wY2MxODQzOWMxNDdmOTM0ZGRlMTkzMDc0OGRhNzBjM2ZiMTc1YTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oCkBA
IC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgR3JhZGllbnRJbWFnZShHcmFk
aWVudCYsIGNvbnN0IEZsb2F0U2l6ZSYpOwogCi0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1h
Z2VPcmllbnRhdGlvbikgZmluYWw7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJs
ZW5kTW9kZSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCBkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9y
bSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKICAgICBib29sIGlzR3JhZGll
bnRJbWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGR1bXAoV1RG
OjpUZXh0U3RyZWFtJikgY29uc3QgZmluYWw7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCA3YWY5ZWFlMDQ3
YTc5NjY1MjNlZjQ2OTUzNDU4ZGZkM2M5ZGY5MmU5Li4zMzUxM2RmNGY4MzdmYTY4NmQzZDRiYWY0
OThjMGVlODgxNTMxMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTcxNSw1NSArNzE1LDUwIEBAIEltYWdlRHJh
d1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZs
b2F0UG9pbnQmIGRlc3RpCiAKIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKIHsKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIEZsb2F0UmVjdCBzcmNSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2Uu
b3JpZ2luYWxTaXplKCkpOwotI2Vsc2UKICAgICBGbG9hdFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50
KCksIGltYWdlLnNpemUoKSk7Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgcmV0dXJuIGRyYXdJbWFn
ZShpbWFnZSwgZGVzdGluYXRpb24sIHNyY1JlY3QsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0K
IAotSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlJiBpbWFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2Us
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKK0ltYWdl
RHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxl
ZCgpKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCiAgICAg
aWYgKG1faW1wbCkKLSAgICAgICAgcmV0dXJuIG1faW1wbC0+ZHJhd0ltYWdlKGltYWdlLCBkZXN0
aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgICAgIHJldHVybiBt
X2ltcGwtPmRyYXdJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiAK
LSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlG
b3JUaGlzU2NvcGUoKnRoaXMsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1
YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNl
LCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5n
T3B0aW9ucy5tX2JsZW5kTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGluZ01vZGUs
IGltYWdlUGFpbnRpbmdPcHRpb25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9sYXRpb25R
dWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywg
b3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4gaW1hZ2UuZHJhdygq
dGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAKLUltYWdlRHJhd1Jlc3Vs
dCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9h
dFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUm
IHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAg
IHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKICAgICBpZiAobV9pbXBsKQot
ICAgICAgICByZXR1cm4gbV9pbXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24s
IHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKKyAgICAg
ICAgcmV0dXJuIG1faW1wbC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3Vy
Y2UsIHRpbGVTaXplLCBzcGFjaW5nLCBvcHRpb25zKTsKIAotICAgIEludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1h
Z2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgcmV0dXJuIGlt
YWdlLmRyYXdUaWxlZCgqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNp
bmcsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRp
bmdPcHRpb25zLm1fYmxlbmRNb2RlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9k
ZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9vcmllbnRhdGlvbik7CisgICAgSW50ZXJwb2xhdGlv
blF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlz
LCBvcHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOworICAgIHJldHVybiBpbWFnZS5kcmF3
VGlsZWQoKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBvcHRp
b25zKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9h
dFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsCi0gICAgSW1h
Z2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKKyAgICBJbWFnZTo6VGlsZVJ1bGUg
aFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
IEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAogICAgIGlmIChtX2ltcGwpCi0gICAgICAg
IHJldHVybiBtX2ltcGwtPmRyYXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNl
LCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwor
ICAgICAgICByZXR1cm4gbV9pbXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24s
IHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIG9wdGlvbnMpOwogCiAgICAg
aWYgKGhSdWxlID09IEltYWdlOjpTdHJldGNoVGlsZSAmJiB2UnVsZSA9PSBJbWFnZTo6U3RyZXRj
aFRpbGUpIHsKICAgICAgICAgLy8gSnVzdCBkbyBhIHNjYWxlLgotICAgICAgICByZXR1cm4gZHJh
d0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7
CisgICAgICAgIHJldHVybiBkcmF3SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9w
dGlvbnMpOwogICAgIH0KIAotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRl
cnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWludGluZ09wdGlvbnMu
bV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZCgqdGhp
cywgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGlt
YWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IpOworICAgIEludGVycG9sYXRp
b25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhp
cywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4gaW1hZ2UuZHJh
d1RpbGVkKCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxl
LCB2UnVsZSwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKIH0KIAogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0
UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWlu
dGluZ09wdGlvbnMpCkBAIC03NzYsMTMgKzc3MSwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
aQogICAgIGRyYXdJbWFnZUJ1ZmZlcihpbWFnZSwgZGVzdGluYXRpb24sIEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIEZsb2F0U2l6ZShpbWFnZS5sb2dpY2FsU2l6ZSgpKSksIGltYWdlUGFpbnRpbmdP
cHRpb25zKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09w
dGlvbnMpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVy
JiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBz
b3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChw
YWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEludGVycG9sYXRpb25R
dWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywg
aW1hZ2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgaW1hZ2Uu
ZHJhdygqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9j
b21wb3NpdGVPcGVyYXRvciwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9ibGVuZE1vZGUpOworICAg
IEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRo
aXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICBpbWFn
ZS5kcmF3KCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIH0KIAogdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IGltYWdlLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQpAQCAtODAxLDEzICs3
OTYsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWcKICAgICBkcmF3Q29uc3VtaW5nSW1hZ2VC
dWZmZXIoV1RGTW92ZShpbWFnZSksIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgp
LCBGbG9hdFNpemUoaW1hZ2VMb2dpY2FsU2l6ZSkpLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBp
bWFnZVBhaW50aW5nT3B0aW9ucykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5n
SW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkg
fHwgIWltYWdlKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgSW50ZXJwb2xhdGlvblF1YWxp
dHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBpbWFn
ZVBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICBJbWFnZUJ1ZmZl
cjo6ZHJhd0NvbnN1bWluZyhXVEZNb3ZlKGltYWdlKSwgKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3Vy
Y2UsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRp
bmdPcHRpb25zLm1fYmxlbmRNb2RlKTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWlu
ZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJw
b2xhdGlvblF1YWxpdHkoKSk7CisgICAgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoV1RGTW92
ZShpbWFnZSksICp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIH0KIAogdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0
JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaAppbmRleCA0NDdkN2UzZTM1NDc2MmU4MGI4ZjI3YTk1MjYyMzIyNzliNWY5MDk0
Li4xM2Y1YTJmNTVkYjY3ZmIzNjJkZDBjZThkZTZhMWYxMTliN2MxZmI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFnZS5o
IgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbWFnZVBhaW50aW5n
T3B0aW9ucy5oIgogI2luY2x1ZGUgIlBhdHRlcm4uaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTIxMCw0MyArMjExLDYgQEAgc3Ry
dWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlIHsKICNlbmRpZgogfTsKIAotc3RydWN0IEltYWdlUGFp
bnRpbmdPcHRpb25zIHsKLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSBibGVu
ZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSA9IERl
Y29kaW5nTW9kZTo6U3luY2hyb25vdXMsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBJ
bWFnZU9yaWVudGF0aW9uOjpOb25lLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9u
UXVhbGl0eSA9IEludGVycG9sYXRpb25EZWZhdWx0KQotICAgICAgICA6IG1fY29tcG9zaXRlT3Bl
cmF0b3IoY29tcG9zaXRlT3BlcmF0b3IpCi0gICAgICAgICwgbV9ibGVuZE1vZGUoYmxlbmRNb2Rl
KQotICAgICAgICAsIG1fZGVjb2RpbmdNb2RlKGRlY29kaW5nTW9kZSkKLSAgICAgICAgLCBtX29y
aWVudGF0aW9uKG9yaWVudGF0aW9uKQotICAgICAgICAsIG1faW50ZXJwb2xhdGlvblF1YWxpdHko
aW50ZXJwb2xhdGlvblF1YWxpdHkpCi0gICAgewotICAgIH0KLQotICAgIEltYWdlUGFpbnRpbmdP
cHRpb25zKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5
IGludGVycG9sYXRpb25RdWFsaXR5ID0gSW50ZXJwb2xhdGlvbkRlZmF1bHQsIENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2Rl
IGJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2Rl
ID0gRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cykKLSAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJh
dG9yKGNvbXBvc2l0ZU9wZXJhdG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkK
LSAgICAgICAgLCBtX2RlY29kaW5nTW9kZShkZWNvZGluZ01vZGUpCi0gICAgICAgICwgbV9vcmll
bnRhdGlvbihvcmllbnRhdGlvbikKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5KGlu
dGVycG9sYXRpb25RdWFsaXR5KQotICAgIHsKLSAgICB9Ci0KLSAgICBJbWFnZVBhaW50aW5nT3B0
aW9ucyhJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSwgSW1hZ2VPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246Ok5vbmUsIENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2Rl
IGJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2Rl
ID0gRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cykKLSAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJh
dG9yKGNvbXBvc2l0ZU9wZXJhdG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkK
LSAgICAgICAgLCBtX2RlY29kaW5nTW9kZShkZWNvZGluZ01vZGUpCi0gICAgICAgICwgbV9vcmll
bnRhdGlvbihvcmllbnRhdGlvbikKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5KGlu
dGVycG9sYXRpb25RdWFsaXR5KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCB1c2VzRGVm
YXVsdEludGVycG9sYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2ludGVycG9sYXRpb25RdWFsaXR5
ID09IEludGVycG9sYXRpb25EZWZhdWx0OyB9Ci0KLSAgICBDb21wb3NpdGVPcGVyYXRvciBtX2Nv
bXBvc2l0ZU9wZXJhdG9yOwotICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZTsKLSAgICBEZWNvZGlu
Z01vZGUgbV9kZWNvZGluZ01vZGU7Ci0gICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9u
OwotICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1faW50ZXJwb2xhdGlvblF1YWxpdHk7Ci19Owot
CiBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UgewogICAgIEdyYXBoaWNzQ29udGV4
dFN0YXRlQ2hhbmdlKCkgPSBkZWZhdWx0OwogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdl
KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6
OlN0YXRlQ2hhbmdlRmxhZ3MgZmxhZ3MpCkBAIC0zNDcsNyArMzExLDcgQEAgcHVibGljOgogICAg
IGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGU7IH0KIAogI2lmIFVTRShDRykgfHwgVVNFKERJUkVDVDJEKSB8fCBVU0UoQ0FJUk8pCi0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHIm
LCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291
cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlOjpOb3JtYWwsIEltYWdlT3JpZW50YXRpb24g
PSBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdO
YXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKICNlbmRpZgogCiAjaWYgVVNFKENH
KSB8fCBVU0UoRElSRUNUMkQpCkBAIC0zOTUsMjMgKzM1OSwyMiBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgbGlu
ZVdpZHRoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2Uo
SW1hZ2UmLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25z
KCkpOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UG9pbnQmIGRl
c3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRp
b246OkZyb21JbWFnZSB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJh
d0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CisgICAg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKIAotICAgIEltYWdlRHJhd1Jl
c3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFn
ZVBhaW50aW5nT3B0aW9ucygpKTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2Uo
SW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNv
dXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsCi0gICAgICAgIEltYWdlOjpU
aWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJ
bWFnZVBhaW50aW5nT3B0aW9ucygpKTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50
JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICBJbWFnZURyYXdS
ZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9u
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0
b3IsIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgPSB7IH0pOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3SW1hZ2VCdWZm
ZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7Ci0gICAgdm9pZCBk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9u
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsK
LSAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3Rp
bmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIHZvaWQgZHJh
d0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdJbWFnZUJ1
ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZs
b2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0g
ICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0
b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJu
KEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0p
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24s
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwot
ICAgIHZvaWQgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4sIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIHZvaWQgZHJhd0NvbnN1bWlu
Z0ltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+LCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIHZvaWQgZHJhd0NvbnN1bWluZ0lt
YWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgPSB7IH0pOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5KTsKICAgICBJbnRlcnBvbGF0aW9u
UXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCmluZGV4IDk2MzY0
OWY1NjlhZTM0NzcwMWQ1MWRhZGRmNDA3ZjVhZmZhNmMwYTIuLmNlOGUxNzJhMTYxYWU0NmFlYTI4
ODI3OWViYzkwODYxM2UyY2NlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCkBAIC0zNywyNyArMzcsMjcg
QEAgR3JhcGhpY3NDb250ZXh0SW1wbDo6fkdyYXBoaWNzQ29udGV4dEltcGwoKQogewogfQogCi1J
bWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd0ltYWdlSW1wbChHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBpbWFnZVBhaW50aW5nT3B0aW9ucykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJ
bXBsOjpkcmF3SW1hZ2VJbXBsKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgSW50ZXJwb2xhdGlv
blF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRl
eHQsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJl
dHVybiBpbWFnZS5kcmF3KGNvbnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRp
bmdPcHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxl
bmRNb2RlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9kZSwgaW1hZ2VQYWludGlu
Z09wdGlvbnMubV9vcmllbnRhdGlvbik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFp
bmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlvbnMuaW50
ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXcoY29udGV4dCwgZGVz
dGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGlj
c0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlv
bnMpCitJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJ
bXBsKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6
ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVy
IGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIGltYWdlUGFpbnRpbmdP
cHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3VGls
ZWQoY29udGV4dCwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIGltYWdl
UGFpbnRpbmdPcHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25z
Lm1fYmxlbmRNb2RlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9kZSwgaW1hZ2VQ
YWludGluZ09wdGlvbnMubV9vcmllbnRhdGlvbik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlN
YWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlv
bnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZChj
b250ZXh0LCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7
CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFn
ZUltcGwoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNp
emUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1
bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9u
cykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUlt
cGwoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUm
IHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUg
dlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmICho
UnVsZSA9PSBJbWFnZTo6U3RyZXRjaFRpbGUgJiYgdlJ1bGUgPT0gSW1hZ2U6OlN0cmV0Y2hUaWxl
KSB7CiAgICAgICAgIC8vIEp1c3QgZG8gYSBzY2FsZS4KLSAgICAgICAgcmV0dXJuIGRyYXdJbWFn
ZUltcGwoY29udGV4dCwgaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdP
cHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGRyYXdJbWFnZUltcGwoY29udGV4dCwgaW1hZ2UsIGRl
c3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogICAgIH0KIAotICAgIEludGVycG9sYXRpb25R
dWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0
LCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICByZXR1
cm4gaW1hZ2UuZHJhd1RpbGVkKGNvbnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2Fs
ZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9w
ZXJhdG9yKTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlv
blF1YWxpdHlGb3JUaGlzU2NvcGUoY29udGV4dCwgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0
eSgpKTsKKyAgICByZXR1cm4gaW1hZ2UuZHJhd1RpbGVkKGNvbnRleHQsIGRlc3RpbmF0aW9uLCBz
b3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBvcHRpb25zLmNvbXBvc2l0ZU9w
ZXJhdG9yKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKaW5kZXgg
Yjg3MzE5NGVlMjQ2MDFmZTRlMDcxNDdhYTcxZWEzMDU4N2E4NGE0NS4uOGZiYzVlNTZjZjE1NDg1
Mzc3OWM1NTQ0NTQ1ZTllNmExYzljODg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaApAQCAtNzMsOSArNzMsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1h
Z2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3Vy
Y2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCBJbWFnZURyYXdS
ZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9u
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0
b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwg
VVNFKERJUkVDVDJEKQotICAgIHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0
aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBC
bGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9p
ZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJs
ZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQ
YXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9h
dCBib3JkZXJUaGlja25lc3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xpbmUoY29uc3Qg
RmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKaW5kZXggMzk5OTY3MmI5ZjU4OTMyODZjZjMyZGIxY2M2
YjgwYTMzMTgyYWRjNC4uZWVlNGNmZTIzNmEzNTg1Yzc1NTZmYmJhMjU5NmMwMDg2NzZlYTFiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtMTM4LDMy
ICsxMzgsMjggQEAgdm9pZCBJbWFnZTo6ZmlsbFdpdGhTb2xpZENvbG9yKEdyYXBoaWNzQ29udGV4
dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LAogfQogCiB2b2lkIEltYWdlOjpkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAg
ICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoIW5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGN0eHQuZHJhd1BhdHRl
cm4oKnRoaXMsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNw
YWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIGN0eHQuZHJhd1BhdHRlcm4oKnRoaXMsIGRlc3RS
ZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMp
OwogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAgaW1hZ2VPYnNlcnZlcigpLT5k
aWREcmF3KCp0aGlzKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3Jh
cGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFBvaW50JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiBzY2FsZWRUaWxlU2l6ZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5k
TW9kZSwgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRh
dGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYg
Y3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc3JjUG9p
bnQsIGNvbnN0IEZsb2F0U2l6ZSYgc2NhbGVkVGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgQ29sb3Ig
Y29sb3IgPSBzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsKICAgICBpZiAoY29sb3IuaXNWYWxpZCgp
KSB7Ci0gICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjdHh0LCBkZXN0UmVjdCwgY29sb3IsIG9w
KTsKKyAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGN0eHQsIGRlc3RSZWN0LCBjb2xvciwgb3B0
aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3Vs
dDo6RGlkRHJhdzsKICAgICB9CiAKICAgICBBU1NFUlQoIWlzQml0bWFwSW1hZ2UoKSB8fCBub3RT
b2xpZENvbG9yKCkpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGbG9hdFNpemUg
aW50cmluc2ljVGlsZVNpemUgPSBvcmlnaW5hbFNpemUoKTsKLSNlbHNlCiAgICAgRmxvYXRTaXpl
IGludHJpbnNpY1RpbGVTaXplID0gc2l6ZSgpOwotI2VuZGlmCiAgICAgaWYgKGhhc1JlbGF0aXZl
V2lkdGgoKSkKICAgICAgICAgaW50cmluc2ljVGlsZVNpemUuc2V0V2lkdGgoc2NhbGVkVGlsZVNp
emUud2lkdGgoKSk7CiAgICAgaWYgKGhhc1JlbGF0aXZlSGVpZ2h0KCkpCkBAIC0xODQsNyArMTgw
LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWMKICAgICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0
WSgoZGVzdFJlY3QueSgpIC0gb25lVGlsZVJlY3QueSgpKSAvIHNjYWxlLmhlaWdodCgpKTsKICAg
ICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0V2lkdGgoZGVzdFJlY3Qud2lkdGgoKSAvIHNjYWxlLndp
ZHRoKCkpOwogICAgICAgICB2aXNpYmxlU3JjUmVjdC5zZXRIZWlnaHQoZGVzdFJlY3QuaGVpZ2h0
KCkgLyBzY2FsZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiBkcmF3KGN0eHQsIGRlc3RSZWN0
LCB2aXNpYmxlU3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgZGVjb2RpbmdNb2RlLCBvcmllbnRhdGlv
bik7CisgICAgICAgIHJldHVybiBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwg
b3B0aW9ucyk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5Niw3ICsx
OTIsNyBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQm
IGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlYwogICAgICAgICAgICAgdmlzaWJsZVNyY1Jl
Y3Quc2V0WSgoZGVzdFJlY3QueSgpIC0gb25lVGlsZVJlY3QueSgpKSAvIHNjYWxlLmhlaWdodCgp
KTsKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldFdpZHRoKDEpOwogICAgICAgICAgICAg
dmlzaWJsZVNyY1JlY3Quc2V0SGVpZ2h0KGRlc3RSZWN0LmhlaWdodCgpIC8gc2NhbGUuaGVpZ2h0
KCkpOwotICAgICAgICAgICAgcmV0dXJuIGRyYXcoY3R4dCwgZGVzdFJlY3QsIHZpc2libGVTcmNS
ZWN0LCBvcCwgQmxlbmRNb2RlOjpOb3JtYWwsIGRlY29kaW5nTW9kZSwgb3JpZW50YXRpb24pOwor
ICAgICAgICAgICAgcmV0dXJuIGRyYXcoY3R4dCwgZGVzdFJlY3QsIHZpc2libGVTcmNSZWN0LCB7
IG9wdGlvbnMsIEJsZW5kTW9kZTo6Tm9ybWFsIH0pOwogICAgICAgICB9CiAgICAgICAgIGlmIChz
aXplKCkuaGVpZ2h0KCkgPT0gMSAmJiBpbnRlcnNlY3Rpb24ob25lVGlsZVJlY3QsIGRlc3RSZWN0
KS53aWR0aCgpID09IGRlc3RSZWN0LndpZHRoKCkpIHsKICAgICAgICAgICAgIEZsb2F0UmVjdCB2
aXNpYmxlU3JjUmVjdDsKQEAgLTIwNCw3ICsyMDAsNyBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6
OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
YwogICAgICAgICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0WSgwKTsKICAgICAgICAgICAgIHZpc2li
bGVTcmNSZWN0LnNldFdpZHRoKGRlc3RSZWN0LndpZHRoKCkgLyBzY2FsZS53aWR0aCgpKTsKICAg
ICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldEhlaWdodCgxKTsKLSAgICAgICAgICAgIHJldHVy
biBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgb3AsIEJsZW5kTW9kZTo6Tm9y
bWFsLCBkZWNvZGluZ01vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBkcmF3
KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgeyBvcHRpb25zLCBCbGVuZE1vZGU6Ok5v
cm1hbCB9KTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMjM2LDcgKzIzMiw3IEBAIElt
YWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjCiAgICAgICAgICAgICAgICAgRmxvYXRSZWN0IGZyb21SZWN0
KHRvRmxvYXRQb2ludChjdXJyZW50VGlsZVJlY3QubG9jYXRpb24oKSAtIG9uZVRpbGVSZWN0Lmxv
Y2F0aW9uKCkpLCBjdXJyZW50VGlsZVJlY3Quc2l6ZSgpKTsKICAgICAgICAgICAgICAgICBmcm9t
UmVjdC5zY2FsZSgxIC8gc2NhbGUud2lkdGgoKSwgMSAvIHNjYWxlLmhlaWdodCgpKTsKIAotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IGRyYXcoY3R4dCwgdG9SZWN0LCBmcm9tUmVjdCwgb3AsIEJs
ZW5kTW9kZTo6Tm9ybWFsLCBkZWNvZGluZ01vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBkcmF3KGN0eHQsIHRvUmVjdCwgZnJvbVJlY3QsIHsgb3B0aW9ucywgQmxl
bmRNb2RlOjpOb3JtYWwgfSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBJbWFnZURy
YXdSZXN1bHQ6OkRpZFJlcXVlc3REZWNvZGluZykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgICAgICAgICB0b1ggKz0gY3VycmVudFRpbGVSZWN0LndpZHRoKCk7
CkBAIC0yNTAsMTcgKzI0NiwxNyBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxlZChH
cmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlYwogCiAgICAgQWZm
aW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm0gPSBBZmZpbmVUcmFuc2Zvcm0oKS5zY2FsZU5v
blVuaWZvcm0oc2NhbGUud2lkdGgoKSwgc2NhbGUuaGVpZ2h0KCkpOwogICAgIEZsb2F0UmVjdCB0
aWxlUmVjdChGbG9hdFBvaW50KCksIGludHJpbnNpY1RpbGVTaXplKTsKLSAgICBkcmF3UGF0dGVy
bihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIG9uZVRpbGVSZWN0
LmxvY2F0aW9uKCksIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIGRyYXdQYXR0ZXJuKGN0
eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgb25lVGlsZVJlY3QubG9j
YXRpb24oKSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgc3RhcnRBbmltYXRpb24oKTsKICAgICBy
ZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogfQogCiAvLyBGSVhNRTogTWVyZ2Ugd2l0
aCB0aGUgb3RoZXIgZHJhd1RpbGVkIGV2ZW50dWFsbHksIHNpbmNlIHdlIG5lZWQgYSBjb21iaW5h
dGlvbiBvZiBib3RoIGZvciBzb21lIHRoaW5ncy4KLUltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJh
d1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9y
LCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQor
SW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBj
b25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
RmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIFRpbGVSdWxlIGhSdWxlLCBUaWxlUnVsZSB2UnVs
ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7ICAgIAogICAgIENvbG9y
IGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQo
KSkgewotICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY3R4dCwgZHN0UmVjdCwgY29sb3IsIG9w
KTsKKyAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGN0eHQsIGRzdFJlY3QsIGNvbG9yLCBvcHRp
b25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0
OjpEaWREcmF3OwogICAgIH0KICAgICAKQEAgLTMzMCwxOCArMzI2LDE0IEBAIEltYWdlRHJhd1Jl
c3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0CiAgICAgICAgIHZQaGFzZSAtPSAoZHN0UmVjdC5oZWlnaHQoKSAtIHNjYWxl
ZFRpbGVIZWlnaHQpIC8gMjsKIAogICAgIEZsb2F0UG9pbnQgcGF0dGVyblBoYXNlKGRzdFJlY3Qu
eCgpIC0gaFBoYXNlLCBkc3RSZWN0LnkoKSAtIHZQaGFzZSk7Ci0gICAgZHJhd1BhdHRlcm4oY3R4
dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGF0dGVyblBoYXNlLCBzcGFj
aW5nLCBvcCk7CisgICAgZHJhd1BhdHRlcm4oY3R4dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGF0dGVyblBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICBzdGFydEFu
aW1hdGlvbigpOwogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7CiB9CiAKIHZv
aWQgSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lk
dGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKQog
ewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaW50cmluc2ljUmF0aW8gPSBvcmlnaW5h
bFNpemUoKTsKLSNlbHNlCiAgICAgaW50cmluc2ljUmF0aW8gPSBzaXplKCk7Ci0jZW5kaWYKICAg
ICBpbnRyaW5zaWNXaWR0aCA9IExlbmd0aChpbnRyaW5zaWNSYXRpby53aWR0aCgpLCBGaXhlZCk7
CiAgICAgaW50cmluc2ljSGVpZ2h0ID0gTGVuZ3RoKGludHJpbnNpY1JhdGlvLmhlaWdodCgpLCBG
aXhlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCAz
Njk5N2M4MzUyMWM0NmM1Y2Q0NzU1NmQ4MTQ0ZWU5MjU1MDlhNGE3Li4zNzIyYzIyNmUwMGViNTBm
ZmU0ZWU2ZGQ4NzIxZTVhM2IyMWY0OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0SW1wbDsKIGNsYXNzIFNoYXJlZEJ1
ZmZlcjsKK3N0cnVjdCBJbWFnZVBhaW50aW5nT3B0aW9uczsKIHN0cnVjdCBMZW5ndGg7CiAKIC8v
IFRoaXMgY2xhc3MgZ2V0cyBub3RpZmllZCB3aGVuIGFuIGltYWdlIGNyZWF0ZXMgb3IgZGVzdHJv
eXMgZGVjb2RlZCBmcmFtZXMgYW5kIHdoZW4gaXQgYWR2YW5jZXMgYW5pbWF0aW9uIGZyYW1lcy4K
QEAgLTExMCwxNiArMTExLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRp
dmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGlu
dHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbyk7CiAKLSAgICB2aXJ0dWFs
IEZsb2F0U2l6ZSBzaXplKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgRmxvYXRTaXplIHNpemUo
SW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3QgPSAw
OwogICAgIEZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gRmxvYXRSZWN0KEZsb2F0UG9p
bnQoKSwgc2l6ZSgpKTsgfQogICAgIGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gc2l6ZSgp
LndpZHRoKCk7IH0KICAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBzaXplKCkuaGVp
Z2h0KCk7IH0KICAgICB2aXJ0dWFsIE9wdGlvbmFsPEludFBvaW50PiBob3RTcG90KCkgY29uc3Qg
eyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IHZpcnR1YWwgRmxvYXRTaXplIG9yaWdpbmFsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKTsg
fQotI2VuZGlmCi0KICAgICBXRUJDT1JFX0VYUE9SVCBFbmNvZGVkRGF0YVN0YXR1cyBzZXREYXRh
KFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOwogICAg
IHZpcnR1YWwgRW5jb2RlZERhdGFTdGF0dXMgZGF0YUNoYW5nZWQoYm9vbCAvKmFsbERhdGFSZWNl
aXZlZCovKSB7IHJldHVybiBFbmNvZGVkRGF0YVN0YXR1czo6VW5rbm93bjsgfQogCkBAIC0xNzMs
OCArMTcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR2RrUGl4YnVmKiBnZXRHZGtQaXhidWYo
KSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9y
bSwKLSAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7
CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgdmlydHVhbCBib29sIG5vdFNvbGlkQ29sb3Io
KSB7IHJldHVybiB0cnVlOyB9CkBAIC0xOTAsOSArMTg2LDkgQEAgcHJvdGVjdGVkOgogI2lmIFBM
QVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXpl
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50U2l6
ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IpIHsgfQogI2VuZGlmCi0gICAgdmlydHVhbCBJ
bWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5k
TW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSA9IDA7Ci0gICAgSW1hZ2VEcmF3
UmVzdWx0IGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNyY1BvaW50LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXpl
LCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUs
IERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbik7Ci0gICAgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdUaWxlZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIFRp
bGVSdWxlIGhSdWxlLCBUaWxlUnVsZSB2UnVsZSwgQ29tcG9zaXRlT3BlcmF0b3IpOworICAgIHZp
cnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSkgPSAwOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFBvaW50
JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIEltYWdlRHJh
d1Jlc3VsdCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxl
RmFjdG9yLCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSk7CiAKICAgICAvLyBTdXBwb3J0aW5nIHRpbGVkIGRyYXdpbmcKICAg
ICB2aXJ0dWFsIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIENv
bG9yKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oCmluZGV4IDNjZDQ3NTA5MDFiZjAyNzAyOTM4MDlmYmM1NmYxNzI0Yjg2ZGZiNmIuLjdmMGMw
MTkyY2ZhZTQxNzQ3MWQyMDdjZjNmNWY2NWJjOGM0OTk1ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzM0QuaCIKICNp
bmNsdWRlICJJbWFnZUJ1ZmZlckRhdGEuaCIKKyNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9u
cy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhDbGFtcGVkQXJyYXkuaD4KQEAgLTUxLDcgKzUy
LDcgQEAgY2xhc3MgSW1hZ2VEYXRhOwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRSZWN0Owog
Y2xhc3MgSG9zdFdpbmRvdzsKLSAgICAKKwogZW51bSBCYWNraW5nU3RvcmVDb3B5IHsKICAgICBD
b3B5QmFja2luZ1N0b3JlLCAvLyBHdWFyYW50ZWUgc3Vic2VxdWVudCBkcmF3cyBkb24ndCBhZmZl
Y3QgdGhlIGNvcHkuCiAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3
cyBtYXkgYWZmZWN0IHRoZSBjb3B5LgpAQCAtMTUxLDEwICsxNTIsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGZsdXNoQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCiAgICAgCi0gICAgdm9pZCBkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLCBDb21wb3NpdGVPcGVyYXRv
ciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKTsK
LSAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRT
aXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlOjpO
b3JtYWwpOworICAgIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEs
IC0xKSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0gICAgc3RhdGljIHZvaWQgZHJh
d0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBG
bG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3Vy
Y2VPdmVyLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7CisgICAgc3RhdGljIHZvaWQg
ZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qg
PSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
eyB9KTsKIAogICAgIGlubGluZSB2b2lkIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJh
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaAppbmRl
eCAyZGZlZmFlYjVkMTkzMzZkZWQyMTI1OGVlMWZmZjYzODZmNThiOTJkLi4yY2M2YjAyYTdkMzUw
MTU3MWNmMjA5MzY0YjM2ZWQyNWMxZDgzOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2RlY29kaW5nU3RhdHVzID09IERlY29k
aW5nU3RhdHVzOjpDb21wbGV0ZTsgfQogCiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3Q7Ci0gICAg
SW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gIW1fb3Jp
ZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSA/IHNpemUoKSA6IHNpemUoKS50cmFuc3Bvc2Vk
U2l6ZSgpOyB9CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlcygpIGNvbnN0IHsgcmV0dXJuIGhhc05h
dGl2ZUltYWdlKCkgPyAoc2l6ZSgpLmFyZWEoKSAqIHNpemVvZih1aW50MzJfdCkpLnVuc2FmZUdl
dCgpIDogMDsgfQogICAgIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3Vic2FtcGxpbmdMZXZlbDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZjQ1YzNmZDZkMzM4NDFiYzAzNTU1ZjA3YzkwMmM5MWQ1MTFjZGEwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlv
bnMuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGVjb2RpbmdPcHRpb25zLmgi
CisjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgorI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgSW1hZ2VQYWludGluZ09wdGlvbnMg
eworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIE9wdGlvbnM+CisgICAgSW1hZ2VQYWludGluZ09w
dGlvbnMoT3B0aW9ucy4uLiBvcHRpb25zKQorICAgIHsKKyAgICAgICAgc2V0T3B0aW9uKG9wdGlv
bnMuLi4pOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIE92ZXJycmlkZXM+Cisg
ICAgSW1hZ2VQYWludGluZ09wdGlvbnMoY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG90aGVy
LCBPdmVycnJpZGVzLi4uIG92ZXJycmlkZXMpCisgICAgICAgIDogSW1hZ2VQYWludGluZ09wdGlv
bnMob3RoZXIpCisgICAgeworICAgICAgICBzZXRPcHRpb24ob3ZlcnJyaWRlcy4uLik7CisgICAg
fQorCisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgSW1hZ2VQYWlu
dGluZ09wdGlvbnMoY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IGRlZmF1bHQ7CisKKyAg
ICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29tcG9zaXRlT3BlcmF0b3I7IH0KKyAgICBCbGVuZE1vZGUgYmxlbmRNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9ibGVuZE1vZGU7IH0KKyAgICBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9kZWNvZGluZ01vZGU7IH0KKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVu
dGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQorICAgIEludGVycG9sYXRp
b25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnBv
bGF0aW9uUXVhbGl0eTsgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGaXJz
dCwgdHlwZW5hbWUuLi4gUmVzdD4KKyAgICB2b2lkIHNldE9wdGlvbihGaXJzdCBmaXJzdCwgUmVz
dC4uLiByZXN0KQorICAgIHsKKyAgICAgICAgc2V0T3B0aW9uKGZpcnN0KTsKKyAgICAgICAgc2V0
T3B0aW9uKHJlc3QuLi4pOworICAgIH0KKworICAgIHZvaWQgc2V0T3B0aW9uKENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yKSB7IG1fY29tcG9zaXRlT3BlcmF0b3IgPSBjb21wb3Np
dGVPcGVyYXRvcjsgfQorICAgIHZvaWQgc2V0T3B0aW9uKEJsZW5kTW9kZSBibGVuZE1vZGUpIHsg
bV9ibGVuZE1vZGUgPSBibGVuZE1vZGU7IH0KKyAgICB2b2lkIHNldE9wdGlvbihEZWNvZGluZ01v
ZGUgZGVjb2RpbmdNb2RlKSB7IG1fZGVjb2RpbmdNb2RlID0gZGVjb2RpbmdNb2RlOyB9CisgICAg
dm9pZCBzZXRPcHRpb24oSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0
aW9uID0gb3JpZW50YXRpb247IH0KKyAgICB2b2lkIHNldE9wdGlvbihJbWFnZU9yaWVudGF0aW9u
OjpPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0gb3JpZW50YXRpb247
IH0KKyAgICB2b2lkIHNldE9wdGlvbihJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9u
UXVhbGl0eSkgeyBtX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJwb2xhdGlvblF1YWxpdHk7
IH0KKworICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1fY29tcG9zaXRlT3BlcmF0b3IgeyBDb21wb3Np
dGVTb3VyY2VPdmVyIH07CisgICAgQmxlbmRNb2RlIG1fYmxlbmRNb2RlIHsgQmxlbmRNb2RlOjpO
b3JtYWwgfTsKKyAgICBEZWNvZGluZ01vZGUgbV9kZWNvZGluZ01vZGUgeyBEZWNvZGluZ01vZGU6
OlN5bmNocm9ub3VzIH07CisgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uIHsgSW1h
Z2VPcmllbnRhdGlvbjo6Tm9uZSB9OworICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1faW50ZXJw
b2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVmYXVsdCB9OworfTsKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IDE4
OTc2ZjkxOWViODFkYTM5NTY3ZjI2YTE4YmFlN2E5YWYxZDMyNDMuLjdiODc1YWU1NWNiMzYzNGRm
ODY4ODVjOWFlNTRmOWI3NGNiYTYxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAgLTYzLDEwICs2Myw3IEBAIEltYWdlU291cmNl
OjpJbWFnZVNvdXJjZShOYXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlKQogCiAgICAgbV9kZWNv
ZGVkU2l6ZSA9IG1fZnJhbWVzWzBdLmZyYW1lQnl0ZXMoKTsKIAotICAgIC8vIFRoZSBhc3N1bXB0
aW9uIGlzIHRoZSBtZW1vcnkgaW1hZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgd2l0aCB0aGUgZGVmYXVs
dAotICAgIC8vIG9yaWVudGF0aW9uLiBTbyBzZXQgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9u
IHRvIGJlIHRoZSBzYW1lIGFzIG1fc2l6ZS4KICAgICBtX3NpemUgPSBtX2ZyYW1lc1swXS5zaXpl
KCk7Ci0gICAgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gbV9zaXplOwogfQogCiBJbWFn
ZVNvdXJjZTo6fkltYWdlU291cmNlKCkKQEAgLTU1OSwyMCArNTU2LDIyIEBAIE9wdGlvbmFsPElu
dFBvaW50PiBJbWFnZVNvdXJjZTo6aG90U3BvdCgpCiAgICAgcmV0dXJuIG1ldGFkYXRhPE9wdGlv
bmFsPEludFBvaW50PiwgKCZJbWFnZURlY29kZXI6OmhvdFNwb3QpPihXVEY6Om51bGxvcHQsICZt
X2hvdFNwb3QpOwogfQogCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplKCkKK0ludFNpemUgSW1h
Z2VTb3VyY2U6OnNpemUoSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKKyAgICBJbnRT
aXplIHNpemU7CiAjaWYgIVVTRShDRykKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgd2UgaGF2
ZSBkZWNvZGVkIHRoZSBtZXRhZGF0YSwgYnV0IG5vdCBmcmFtZSBjb250ZW50cyB5ZXQuIEluIHRo
YXQgY2FzZSBJbWFnZURlY29kZXIgY2xhaW1zIHRvCiAgICAgLy8gaGF2ZSB0aGUgc2l6ZSBhdmFp
bGFibGUsIGJ1dCB0aGUgZnJhbWUgY2FjaGUgaXMgZW1wdHkuIFJldHVybiB0aGUgZGVjb2RlciBz
aXplIHdpdGhvdXQgY2FjaGluZyBpbiBzdWNoIGNhc2UuCiAgICAgaWYgKG1fZnJhbWVzLmlzRW1w
dHkoKSAmJiBpc0RlY29kZXJBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJuIG1fZGVjb2Rlci0+
c2l6ZSgpOworICAgICAgICBzaXplID0gbV9kZWNvZGVyLT5zaXplKCk7CisgICAgZWxzZQogI2Vu
ZGlmCi0gICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxJbnRTaXpl
PigwLCAoJkltYWdlRnJhbWU6OnNpemUpLCAmbV9zaXplLCBJbWFnZUZyYW1lOjpDYWNoaW5nOjpN
ZXRhZGF0YSwgU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCk7Ci19Ci0KLUludFNpemUgSW1hZ2VT
b3VyY2U6OnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKQotewotICAgIHJldHVybiBmcmFtZU1l
dGFkYXRhQXRJbmRleENhY2hlSWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZyYW1lOjpzaXpl
UmVzcGVjdGluZ09yaWVudGF0aW9uKSwgJm1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiwgSW1h
Z2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOwor
ICAgICAgICBzaXplID0gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPEludFNpemU+
KDAsICgmSW1hZ2VGcmFtZTo6c2l6ZSksICZtX3NpemUsIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1l
dGFkYXRhLCBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KTsKKyAgICAKKyAgICBpZiAob3JpZW50
YXRpb24gPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAgICBvcmllbnRhdGlv
biA9IGZyYW1lT3JpZW50YXRpb25BdEluZGV4KDApOworICAgIAorICAgIHJldHVybiAhb3JpZW50
YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSA/IHNpemUgOiBzaXplLnRyYW5zcG9zZWRTaXplKCk7
CiB9CiAKIENvbG9yIEltYWdlU291cmNlOjpzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5kZXggYmM3OTA5
OTMyNzhiY2I0MjUwMzg2NWZiNTEyYWI2ZjJlOTg4ZTgzZC4uYzFiY2U4ZTk2M2Y4YTY5YzJhZWJm
OWUwNGUxMTBiZWUxNjM2YmQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5oCkBAIC05NSw4ICs5NSw3IEBAIHB1YmxpYzoKICAgICBPcHRpb25h
bDxJbnRQb2ludD4gaG90U3BvdCgpOwogCiAgICAgLy8gSW1hZ2UgbWV0YWRhdGEgd2hpY2ggaXMg
Y2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBJbWFnZUZyYW1lLgotICAgIFdFQkNPUkVfRVhQT1JU
IEludFNpemUgc2l6ZSgpOwotICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigp
OworICAgIFdFQkNPUkVfRVhQT1JUIEludFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1h
Z2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKTsKICAgICBDb2xvciBzaW5nbGVQaXhlbFNvbGlkQ29s
b3IoKTsKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1TdWJzYW1wbGluZ0xldmVsKCk7CiAK
QEAgLTE5Niw3ICsxOTUsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gSW1hZ2UgbWV0YWRhdGEgd2hp
Y2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBJbWFnZUZyYW1lLgogICAgIE9wdGlvbmFs
PEludFNpemU+IG1fc2l6ZTsKLSAgICBPcHRpb25hbDxJbnRTaXplPiBtX3NpemVSZXNwZWN0aW5n
T3JpZW50YXRpb247CiAgICAgT3B0aW9uYWw8Q29sb3I+IG1fc2luZ2xlUGl4ZWxTb2xpZENvbG9y
OwogICAgIE9wdGlvbmFsPFN1YnNhbXBsaW5nTGV2ZWw+IG1fbWF4aW11bVN1YnNhbXBsaW5nTGV2
ZWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFt
ZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAKaW5kZXggOWE2YjAxOGQ0MmZhNzQ0ODdk
MTQ3YWE2Y2U2NDY2YTE5ZWVhZWIzZC4uZDNkM2ZhMzllMDZkODllYTYyYzE3OWQ5ODg3ZjQ1YmJm
NmM4ZGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFt
ZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwCkBAIC00MCwxMSArNDAsMTEgQEAg
TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UoU3RyaW5n
IG5hbWUsIGNvbnN0IEZsb2F0U2l6ZSYKICAgICBzZXRDb250YWluZXJTaXplKHNpemUpOwogfQog
Ci1JbWFnZURyYXdSZXN1bHQgTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxl
bmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1bHQg
TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogI2lmIFVTRShORVdfVEhFTUUpIHx8
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0
ZVNhdmVyKGNvbnRleHQpOwotICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBv
c2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKG9w
dGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUoKSk7CiAgICAgY29u
dGV4dC5jbGlwKGRzdFJlY3QpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKGRzdFJlY3QubG9jYXRp
b24oKSk7CiAgICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQpAQCAtNTcs
MTMgKzU3LDEyIEBAIEltYWdlRHJhd1Jlc3VsdCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGCiAgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHQpOwogICAgIFVOVVNFRF9QQVJBTShkc3RSZWN0KTsKICAgICBVTlVTRURfUEFSQU0oc3Jj
UmVjdCk7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbXBvc2l0ZU9wKTsKLSAgICBVTlVTRURfUEFSQU0o
YmxlbmRNb2RlKTsKKyAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CiAgICAgcmV0dXJuIEltYWdl
RHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKICNlbmRpZgogfQogCi12b2lkIE5hbWVkSW1hZ2VHZW5l
cmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxl
bmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5U
cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogI2lmIFVTRShORVdf
VEhFTUUpCiAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRp
YmxlQnVmZmVyKHNpemUoKSwgY29udGV4dCk7CkBAIC03NCwxNiArNzMsMTUgQEAgdm9pZCBOYW1l
ZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRmxvYXQKICAgICBUaGVtZTo6c2luZ2xldG9uKCkuZHJhd05hbWVkSW1hZ2UobV9u
YW1lLCBncmFwaGljc0NvbnRleHQsIEZsb2F0UmVjdCgwLCAwLCBzaXplKCkud2lkdGgoKSwgc2l6
ZSgpLmhlaWdodCgpKSk7CiAKICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUg
Y29udGV4dC4KLSAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgZHN0UmVjdCwg
c3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wLCBi
bGVuZE1vZGUpOworICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0
LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oZHN0UmVj
dCk7CiAgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOwogICAgIFVOVVNFRF9QQVJBTShwYXR0ZXJu
VHJhbnNmb3JtKTsKICAgICBVTlVTRURfUEFSQU0ocGhhc2UpOwogICAgIFVOVVNFRF9QQVJBTShz
cGFjaW5nKTsKLSAgICBVTlVTRURfUEFSQU0oZHN0UmVjdCk7Ci0gICAgVU5VU0VEX1BBUkFNKGNv
bXBvc2l0ZU9wKTsKLSAgICBVTlVTRURfUEFSQU0oYmxlbmRNb2RlKTsKKyAgICBVTlVTRURfUEFS
QU0ob3B0aW9ucyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAzZTdj
OTZkOTQ3MWYxM2Y0Njk2MzFmYjZlZjRkNTRmZjg1MjUxYjFjLi4wMjg1ZTFmOGI5YTJhNTE2MzJk
ZmM0ZjM3MGEyYTBjZDYxM2Q4MGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaApAQCAtMzksOCAr
MzksOCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgSW1hZ2VEcmF3UmVzdWx0
IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5n
TW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25z
dCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVP
cGVyYXRvciwgQmxlbmRNb2RlKSBvdmVycmlkZTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsK
KyAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7
CiAKICAgICBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UoU3RyaW5nIG5hbWUsIGNvbnN0IEZsb2F0
U2l6ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9O
YXRpdmVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1h
Z2UuaAppbmRleCBkMGZmNjdlZmUxYTZjMmZiOWQyY2VkYzc1ODc1ZmQ4ODBlNmI1NzMxLi5lMDk2
NTZlYWYzMWJjZTY5ODFjZWQ1ZDM0NmZhOWIxNzg5NTY1ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKQEAgLTI3LDggKzI3LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCi0jaW5jbHVkZSAiSW1h
Z2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlUGFpbnRpbmdPcHRpb25zLmgiCiAKICNp
ZiBVU0UoQ0cpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNjYsNyArNjUsNyBAQCBJ
bnRTaXplIG5hdGl2ZUltYWdlU2l6ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwogYm9vbCBuYXRp
dmVJbWFnZUhhc0FscGhhKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBDb2xvciBuYXRpdmVJbWFn
ZVNpbmdsZVBpeGVsU29saWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwogCi12b2lkIGRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEludFNpemUmLCBDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uKTsKK3ZvaWQgZHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJik7CiB2b2lkIGNsZWFyTmF0aXZlSW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0
aXZlSW1hZ2VQdHImKTsKICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCmluZGV4IDc0NjQwZjcw
NGVjZTQ5NmRhNDBhZjQxM2JhNmY0ZDliZGVhZjQxOWIuLmE4OTVkYWRkMDQyMWI3ZWQwOTExMjhk
MjNmNjVmNWRkOTQ0YTQ3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApAQCAtMTc5LDggKzE3OSw3
IEBAIHN0YXRpYyB2b2lkIGRyYXdTaGFkb3dMYXllckJ1ZmZlcihQbGF0Zm9ybUNvbnRleHRDYWly
byYgcGxhdGZvcm1Db250ZXh0LCBJbWFnZUJ1CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChh
dXRvIHN1cmZhY2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSkgewotICAg
ICAgICBkcmF3TmF0aXZlSW1hZ2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNlLmdldCgpLCBGbG9h
dFJlY3Qocm91bmRlZEludFBvaW50KGxheWVyT3JpZ2luKSwgbGF5ZXJTaXplKSwgRmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgbGF5ZXJTaXplKSwgc2hhZG93U3RhdGUuZ2xvYmFsQ29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZTo6Tm9ybWFsLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lLAotICAgICAg
ICAgICAgSW50ZXJwb2xhdGlvbkRlZmF1bHQsIHNoYWRvd1N0YXRlLmdsb2JhbEFscGhhLCBTaGFk
b3dTdGF0ZSgpKTsKKyAgICAgICAgZHJhd05hdGl2ZUltYWdlKHBsYXRmb3JtQ29udGV4dCwgc3Vy
ZmFjZS5nZXQoKSwgRmxvYXRSZWN0KHJvdW5kZWRJbnRQb2ludChsYXllck9yaWdpbiksIGxheWVy
U2l6ZSksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGxheWVyU2l6ZSksIHsgc2hhZG93U3RhdGUu
Z2xvYmFsQ29tcG9zaXRlT3BlcmF0b3IgfSwgc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNoYWRv
d1N0YXRlKCkpOwogICAgIH0KIH0KIApAQCAtMTkyLDggKzE5MSw3IEBAIHN0YXRpYyB2b2lkIGRy
YXdTaGFkb3dJbWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBJbWFn
ZUJ1ZmZlciYKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IGltYWdl
LT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKSB7Ci0gICAgICAgIGRyYXdOYXRpdmVJbWFn
ZShwbGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCBzaGFk
b3dTdGF0ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlOjpOb3JtYWwsIEltYWdl
T3JpZW50YXRpb246Ok5vbmUsCi0gICAgICAgICAgICBJbnRlcnBvbGF0aW9uRGVmYXVsdCwgc2hh
ZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNoYWRvd1N0YXRlKCkpOworICAgICAgICBkcmF3TmF0aXZl
SW1hZ2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwg
eyBzaGFkb3dTdGF0ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRvciB9LCBzaGFkb3dTdGF0ZS5nbG9i
YWxBbHBoYSwgU2hhZG93U3RhdGUoKSk7CiAgICAgfQogfQogCkBAIC04NzgsMzcgKzg3NiwzNyBA
QCB2b2lkIGRyYXdHbHlwaHMoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwg
Y29uc3QgRmlsbFNvdXJjZSYgZmlsbFNvdQogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCi12
b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0
LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0
b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24sIElu
dGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0IGdsb2Jh
bEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCit2b2lkIGRyYXdOYXRpdmVJ
bWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNl
X3QqIHN1cmZhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIGZsb2F0IGdsb2Jh
bEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCiB7CiAgICAgcGxhdGZvcm1D
b250ZXh0LnNhdmUoKTsKIAogICAgIC8vIFNldCB0aGUgY29tcG9zaXRpbmcgb3BlcmF0aW9uLgot
ICAgIGlmIChjb21wb3NpdGVPcGVyYXRvciA9PSBDb21wb3NpdGVTb3VyY2VPdmVyICYmIGJsZW5k
TW9kZSA9PSBCbGVuZE1vZGU6Ok5vcm1hbCAmJiAhY2Fpcm9TdXJmYWNlSGFzQWxwaGEoc3VyZmFj
ZSkpCisgICAgaWYgKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSA9PSBDb21wb3NpdGVTb3Vy
Y2VPdmVyICYmIG9wdGlvbnMuYmxlbmRNb2RlKCkgPT0gQmxlbmRNb2RlOjpOb3JtYWwgJiYgIWNh
aXJvU3VyZmFjZUhhc0FscGhhKHN1cmZhY2UpKQogICAgICAgICBDYWlybzo6U3RhdGU6OnNldENv
bXBvc2l0ZU9wZXJhdGlvbihwbGF0Zm9ybUNvbnRleHQsIENvbXBvc2l0ZUNvcHksIEJsZW5kTW9k
ZTo6Tm9ybWFsKTsKICAgICBlbHNlCi0gICAgICAgIENhaXJvOjpTdGF0ZTo6c2V0Q29tcG9zaXRl
T3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSk7
CisgICAgICAgIENhaXJvOjpTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29u
dGV4dCwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsK
IAogICAgIEZsb2F0UmVjdCBkc3QgPSBkZXN0UmVjdDsKLSAgICBpZiAob3JpZW50YXRpb24gIT0g
SW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgeworICAgIGlmIChvcHRpb25zLm9yaWVudGF0aW9uKCkg
IT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgewogICAgICAgICAvLyBJbWFnZU9yaWVudGF0aW9u
IGV4cGVjdHMgdGhlIG9yaWdpbiB0byBiZSBhdCAoMCwgMCkuCiAgICAgICAgIENhaXJvOjp0cmFu
c2xhdGUocGxhdGZvcm1Db250ZXh0LCBkc3QueCgpLCBkc3QueSgpKTsKICAgICAgICAgZHN0LnNl
dExvY2F0aW9uKEZsb2F0UG9pbnQoKSk7Ci0gICAgICAgIENhaXJvOjpjb25jYXRDVE0ocGxhdGZv
cm1Db250ZXh0LCBvcmllbnRhdGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChkc3Quc2l6ZSgpKSk7
Ci0gICAgICAgIGlmIChvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKSB7CisgICAgICAg
IENhaXJvOjpjb25jYXRDVE0ocGxhdGZvcm1Db250ZXh0LCBvcHRpb25zLm9yaWVudGF0aW9uKCku
dHJhbnNmb3JtRnJvbURlZmF1bHQoZHN0LnNpemUoKSkpOworICAgICAgICBpZiAob3B0aW9ucy5v
cmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpIHsKICAgICAgICAgICAgIC8vIFRoZSBk
ZXN0aW5hdGlvbiByZWN0YW5nbGUgd2lsbCBoYXZlIGl0cyB3aWR0aCBhbmQgaGVpZ2h0IGFscmVh
ZHkgcmV2ZXJzZWQgZm9yIHRoZSBvcmllbnRhdGlvbiBvZgogICAgICAgICAgICAgLy8gdGhlIGlt
YWdlLCBhcyBpdCB3YXMgbmVlZGVkIGZvciBwYWdlIGxheW91dCwgc28gd2UgbmVlZCB0byByZXZl
cnNlIGl0IGJhY2sgaGVyZS4KICAgICAgICAgICAgIGRzdCA9IEZsb2F0UmVjdChkc3QueCgpLCBk
c3QueSgpLCBkc3QuaGVpZ2h0KCksIGRzdC53aWR0aCgpKTsKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGRyYXdTdXJmYWNlKHBsYXRmb3JtQ29udGV4dCwgc3VyZmFjZSwgZHN0LCBzcmNSZWN0LCBp
bWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBnbG9iYWxBbHBoYSwgc2hhZG93U3RhdGUpOworICAg
IGRyYXdTdXJmYWNlKHBsYXRmb3JtQ29udGV4dCwgc3VyZmFjZSwgZHN0LCBzcmNSZWN0LCBvcHRp
b25zLmludGVycG9sYXRpb25RdWFsaXR5KCksIGdsb2JhbEFscGhhLCBzaGFkb3dTdGF0ZSk7CiAg
ICAgcGxhdGZvcm1Db250ZXh0LnJlc3RvcmUoKTsKIH0KIAotdm9pZCBkcmF3UGF0dGVybihQbGF0
Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZh
Y2UsIGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0
ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBkcmF3UGF0dGVybihQbGF0Zm9y
bUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2Us
IGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9y
bSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewogICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSB3aHkgdGhlIHNpemUgaGFzIHRv
IGJlIHBhc3NlZCBpbiBhcyBhbiBJbnRSZWN0LgotICAgIGRyYXdQYXR0ZXJuVG9DYWlyb0NvbnRl
eHQocGxhdGZvcm1Db250ZXh0LmNyKCksIHN1cmZhY2UsIHNpemUsIHRpbGVSZWN0LCBwYXR0ZXJu
VHJhbnNmb3JtLCBwaGFzZSwgdG9DYWlyb09wZXJhdG9yKGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVu
ZE1vZGUpLCBkZXN0UmVjdCk7CisgICAgZHJhd1BhdHRlcm5Ub0NhaXJvQ29udGV4dChwbGF0Zm9y
bUNvbnRleHQuY3IoKSwgc3VyZmFjZSwgc2l6ZSwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0s
IHBoYXNlLCB0b0NhaXJvT3BlcmF0b3Iob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRp
b25zLmJsZW5kTW9kZSgpKSwgZGVzdFJlY3QpOwogfQogCiB2b2lkIGRyYXdTdXJmYWNlKFBsYXRm
b3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFj
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBvcmlnaW5hbFNy
Y1JlY3QsIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIGZs
b2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlv
bnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0
aW9ucy5oCmluZGV4IDA4NWU2MWE1YjNjOWM3Yzk3MjE2YjNjN2JjZDZkNzY5MjU4Y2M4NGYuLjU4
MzRmNDMwZjA1ZGQxNTgzNzM4ZTMxZTQzM2QyNzE0MGE2Y2QyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5o
CkBAIC0xMzgsOCArMTM4LDggQEAgdm9pZCBjbGVhclJlY3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
LCBjb25zdCBGbG9hdFJlY3QmKTsKIAogdm9pZCBkcmF3R2x5cGhzKFBsYXRmb3JtQ29udGV4dENh
aXJvJiwgY29uc3QgRmlsbFNvdXJjZSYsIGNvbnN0IFN0cm9rZVNvdXJjZSYsIGNvbnN0IFNoYWRv
d1N0YXRlJiwgY29uc3QgRmxvYXRQb2ludCYsIGNhaXJvX3NjYWxlZF9mb250X3QqLCBkb3VibGUs
IGNvbnN0IFZlY3RvcjxjYWlyb19nbHlwaF90PiYsIGZsb2F0LCBUZXh0RHJhd2luZ01vZGVGbGFn
cywgZmxvYXQsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IENvbG9yJik7CiAKLXZvaWQgZHJhd05h
dGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9k
ZSwgSW1hZ2VPcmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0LCBjb25zdCBT
aGFkb3dTdGF0ZSYpOwotdm9pZCBkcmF3UGF0dGVybihQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNh
aXJvX3N1cmZhY2VfdCosIGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7Cit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9y
bUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgZmxvYXQsIGNvbnN0IFNo
YWRvd1N0YXRlJik7Cit2b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY2Fp
cm9fc3VyZmFjZV90KiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3U3VyZmFj
ZShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEZsb2F0UmVjdCYsIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCwgY29uc3Qg
U2hhZG93U3RhdGUmKTsKIAogdm9pZCBkcmF3UmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNv
bnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBjb25zdCBDb2xvciYsIFN0cm9rZVN0eWxlLCBjb25zdCBD
b2xvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDIzZjY1M2ViZTM3NTIx
ZmM3MjVhZDNiYTE5MmUzNTQwYmFjMTllZWQuLmQ1MDM5Yjk3MjExNjRkMjFkYmQyZDhhNWQ3OGQw
MzNlZDFiNWRmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTEyMCwxOSAr
MTIwLDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3Qm
IHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKICAgICBDYWlybzo6ZHJhd1JlY3QoKnBsYXRm
b3JtQ29udGV4dCgpLCByZWN0LCBib3JkZXJUaGlja25lc3MsIHN0YXRlLmZpbGxDb2xvciwgc3Rh
dGUuc3Ryb2tlU3R5bGUsIHN0YXRlLnN0cm9rZUNvbG9yKTsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBC
bGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1h
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1h
Z2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVu
ZE1vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1h
Z2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKICAgICBhdXRv
JiBzdGF0ZSA9IHRoaXMtPnN0YXRlKCk7Ci0gICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZSgqcGxh
dGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRl
T3BlcmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24sIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHksIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKKyAgICBD
YWlybzo6ZHJhd05hdGl2ZUltYWdlKCpwbGF0Zm9ybUNvbnRleHQoKSwgaW1hZ2UuZ2V0KCksIGRl
c3RSZWN0LCBzcmNSZWN0LCB7IG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHkgfSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOwogfQogCiAvLyBU
aGlzIGlzIG9ubHkgdXNlZCB0byBkcmF3IGJvcmRlcnMsIHNvIHdlIHNob3VsZCBub3QgZHJhdyBz
aGFkb3dzLgpAQCAtNjYwLDE5ICs2NjAsMTkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXQKICAg
ICBDYWlybzo6ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0
LCByb3VuZGVkSG9sZVJlY3QsIENhaXJvOjpGaWxsU291cmNlKHN0YXRlKSwgQ2Fpcm86OlNoYWRv
d1N0YXRlKHN0YXRlKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybihJ
bWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
dGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3Bl
cmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAg
IGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2lt
cGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3UGF0dGVybihpbWFnZSwgZGVzdFJlY3QsIHRpbGVS
ZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3BlcmF0b3Is
IGJsZW5kTW9kZSk7CisgICAgICAgIG1faW1wbC0+ZHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0
LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgp
KTsKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UubmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJh
bWUoKSkKLSAgICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKCpwbGF0Zm9ybUNvbnRleHQoKSwgc3Vy
ZmFjZS5nZXQoKSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlKTsKKyAg
ICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKCpwbGF0Zm9ybUNvbnRleHQoKSwgc3VyZmFjZS5nZXQo
KSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFu
c2Zvcm0sIHBoYXNlLCBvcHRpb25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hvdWxkQW50aWFsaWFzKGJvb2wgZW5hYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dEltcGxDYWlyby5jcHAKaW5kZXggMDRmMmE5ZmY1NDY5YWE1YmEyNGQxNDk1NjU0YjYwZjBiYzQz
ZDJhYi4uODUyYTI3NmY3ZmM2NjE2YTk5MDRhZmVlYjBlOTkwOTcwODA2MjMzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
SW1wbENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCkBAIC0yNzYsMTcgKzI3NiwxNyBAQCBJbWFn
ZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3VGlsZWRJbWFnZShJbWFn
ZSYgaW1hZ2UsIGNvbnN0IEZsbwogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3
VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCksIGltYWdlLCBkZXN0aW5hdGlvbiwgc291
cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMp
OwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKGNv
bnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6
ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRT
aXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGltYWdlU2l6ZSk7CiAgICAgYXV0byYgc3RhdGUgPSBncmFwaGljc0NvbnRl
eHQoKS5zdGF0ZSgpOwotICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UobV9wbGF0Zm9ybUNvbnRl
eHQsIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIGJs
ZW5kTW9kZSwgb3JpZW50YXRpb24sIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIHN0
YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKKyAgICBDYWlybzo6ZHJhd05h
dGl2ZUltYWdlKG1fcGxhdGZvcm1Db250ZXh0LCBpbWFnZS5nZXQoKSwgZGVzdFJlY3QsIHNyY1Jl
Y3QsIHsgb3B0aW9ucywgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB9LCBzdGF0ZS5h
bHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxl
bmRNb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdQYXR0ZXJuKEltYWdl
JiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxl
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IGltYWdlLm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCkpCi0gICAgICAgIENhaXJvOjpkcmF3UGF0dGVybihtX3BsYXRmb3Jt
Q29udGV4dCwgc3VyZmFjZS5nZXQoKSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBjb21wb3NpdGVPcGVyYXRvciwgYmxl
bmRNb2RlKTsKKyAgICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKG1fcGxhdGZvcm1Db250ZXh0LCBz
dXJmYWNlLmdldCgpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxlUmVjdCwg
cGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIG9wdGlvbnMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dEltcGxDYWlybzo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3Jk
ZXJUaGlja25lc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCmluZGV4IGYxYjAy
ZDM0YWIyZmYyOWFkY2ZiODc0M2M4OTRjMWU0NjA4YjY3M2IuLjJmNTE5ZDQ1NDc3ZDQzNzk4Yjc1
OWE4MTUzNDYyYzk4MzUzN2NkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5o
CkBAIC03NCw4ICs3NCw4IEBAIHB1YmxpYzoKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdl
KEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVk
SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3Qg
RmxvYXRTaXplJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNpemUmLCBJbWFn
ZTo6VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0
ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYs
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24pIG92ZXJyaWRl
OwotICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29u
c3QgRmxvYXRTaXplJiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6
Tm9ybWFsKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
cmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUm
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3
UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TGlu
ZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcAppbmRleCBlMDFlNjBiOWVlZTdiYTE4Mzk3YTYzZWY0YTE3NjY3ZmZkYzRh
NDVhLi4wZjcyNjU3MDI0ZWJhYzc0MGIwZTc4ZjczMmFjOTNmYjBkZGI3ZDFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcApAQCAtMzQ0LDI0ICszNDQsMjMgQEAgQmFja2luZ1N0b3JlQ29weSBJbWFn
ZUJ1ZmZlcjo6ZmFzdENvcHlJbWFnZU1vZGUoKQogICAgIHJldHVybiBEb250Q29weUJhY2tpbmdT
dG9yZTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyLCBHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBJbWFnZUJ1ZmZl
cjo6ZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVy
LCBHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewotICAgIGltYWdlQnVmZmVyLT5kcmF3KGRlc3RDb250ZXh0LCBkZXN0UmVjdCwg
c3JjUmVjdCwgb3AsIGJsZW5kTW9kZSk7CisgICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRl
eHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlcjo6
ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RpbmF0aW9uQ29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LAotICAgIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFw
aGljc0NvbnRleHQmIGRlc3RpbmF0aW9uQ29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCAgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMpCiB7CiAgICAgQmFja2luZ1N0b3JlQ29weSBjb3B5TW9kZSA9ICZkZXN0aW5hdGlv
bkNvbnRleHQgPT0gJmNvbnRleHQoKSA/IENvcHlCYWNraW5nU3RvcmUgOiBEb250Q29weUJhY2tp
bmdTdG9yZTsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gY29weUltYWdlKGNvcHlNb2RlKTsK
LSAgICBkZXN0aW5hdGlvbkNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNyY1Jl
Y3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wLCBibGVuZE1vZGUsIERlY29kaW5nTW9kZTo6U3lu
Y2hyb25vdXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUpKTsKKyAgICBkZXN0aW5hdGlvbkNvbnRl
eHQuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogfQogCiB2
b2lkIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBC
bGVuZE1vZGUpCisgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYg
KFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBjb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpKQot
ICAgICAgICBpbWFnZS0+ZHJhd1BhdHRlcm4oY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCk7CisgICAgICAgIGltYWdlLT5kcmF3
UGF0dGVybihjb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogfQogCiB2b2lkIEltYWdlQnVmZmVyOjpwbGF0Zm9ybVRy
YW5zZm9ybUNvbG9yU3BhY2UoY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCAyNTY+JiBsb29rVXBU
YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L05hdGl2ZUltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKaW5kZXggODIzZmYwYzdkNzZjODNlYWVkNjNlYzk4
ZmYxNGYwMmEzNDBiZjljMi4uZGUzMDRmMzVmNjUyOWNkNmZkMTU4ZTlhMDNjOWYxMGMzZDViZmMy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0
aXZlSW1hZ2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKQEAgLTU3LDkgKzU3LDkgQEAgQ29sb3IgbmF0aXZl
SW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQog
ICAgIHJldHVybiBjb2xvckZyb21QcmVtdWx0aXBsaWVkQVJHQigqcGl4ZWwpOwogfQogCi12b2lk
IGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBpbWFnZVNpemUsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKQordm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGlt
YWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYgaW1hZ2VTaXplLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3Bl
cmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24pOworICAgIGNvbnRleHQuZHJhd05hdGl2ZUlt
YWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKIH0KIAog
dm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dDNEQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0M0RDRy5jcHAKaW5kZXggODdjOTkwNzliYTBmYTE0NTMyZWYyNTM3NmJhMjUwMjY4
YWMwOTVmYi4uY2Q2YmI3MzBlNjE2MTkxOTNlY2U2MGE5N2VmODg4ZDc3ZWZiNjEwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
M0RDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0M0RDRy5jcHAKQEAgLTUzOSw3ICs1MzksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpwYWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25z
dCBJbgogICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAgICAgY29udGV4dC50
cmFuc2xhdGUoMCwgLWltYWdlU2l6ZS5oZWlnaHQoKSk7CiAgICAgY29udGV4dC5zZXRJbWFnZUlu
dGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Ob25lKTsKLSAgICBjb250ZXh0LmRyYXdO
YXRpdmVJbWFnZShjZ0ltYWdlLCBpbWFnZVNpemUsIGNhbnZhc1JlY3QsIEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIGltYWdlU2l6ZSksIENvbXBvc2l0ZUNvcHkpOworICAgIGNvbnRleHQuZHJhd05h
dGl2ZUltYWdlKGNnSW1hZ2UsIGltYWdlU2l6ZSwgY2FudmFzUmVjdCwgRmxvYXRSZWN0KEZsb2F0
UG9pbnQoKSwgaW1hZ2VTaXplKSwgeyBDb21wb3NpdGVDb3B5IH0pOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZTNmYjM4NGRiMzI3OTQ2Mjk1OThj
MjljYmE1MDczMTYzOTAxODhiOS4uZWUyNzM4ZjQyMTBjNjkyYzM1YjkyYThkZTg5YWZkYTI3MGJk
OGIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMjczLDEzICsyNzMsMTMgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBtX2RhdGEtPm1fdXNlclRv
RGV2aWNlVHJhbnNmb3JtS25vd25Ub0JlSWRlbnRpdHkgPSBmYWxzZTsKIH0KIAotdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4m
IGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxl
bmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+
JiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKG1faW1wbCkgewotICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFn
ZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgb3Jp
ZW50YXRpb24pOworICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VT
aXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUlt
YWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0CiAjZW5kaWYKICAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3ViSW1hZ2UoaW1hZ2UpOwogCi0gICAgZmxvYXQgY3Vy
ckhlaWdodCA9IG9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkgPyBDR0ltYWdlR2V0V2lk
dGgoc3ViSW1hZ2UuZ2V0KCkpIDogQ0dJbWFnZUdldEhlaWdodChzdWJJbWFnZS5nZXQoKSk7Cisg
ICAgZmxvYXQgY3VyckhlaWdodCA9IG9wdGlvbnMub3JpZW50YXRpb24oKS51c2VzV2lkdGhBc0hl
aWdodCgpID8gQ0dJbWFnZUdldFdpZHRoKHN1YkltYWdlLmdldCgpKSA6IENHSW1hZ2VHZXRIZWln
aHQoc3ViSW1hZ2UuZ2V0KCkpOwogICAgIGlmIChjdXJySGVpZ2h0IDw9IHNyY1JlY3QueSgpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTM1OCwxNSArMzU4LDE1IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwg
Y29uc3QKICAgICBhZGp1c3RlZERlc3RSZWN0ID0gcm91bmRUb0RldmljZVBpeGVscyhhZGp1c3Rl
ZERlc3RSZWN0KTsKICNlbmRpZgogCi0gICAgc2V0UGxhdGZvcm1Db21wb3NpdGVPcGVyYXRpb24o
b3AsIGJsZW5kTW9kZSk7CisgICAgc2V0UGxhdGZvcm1Db21wb3NpdGVPcGVyYXRpb24ob3B0aW9u
cy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKIAogICAgIC8vIElt
YWdlT3JpZW50YXRpb24gZXhwZWN0cyB0aGUgb3JpZ2luIHRvIGJlIGF0ICgwLCAwKQogICAgIENH
Q29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCBhZGp1c3RlZERlc3RSZWN0LngoKSwgYWRqdXN0
ZWREZXN0UmVjdC55KCkpOwogICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0TG9jYXRpb24oRmxvYXRQ
b2ludCgpKTsKIAotICAgIGlmIChvcmllbnRhdGlvbiAhPSBJbWFnZU9yaWVudGF0aW9uOjpOb25l
KSB7Ci0gICAgICAgIENHQ29udGV4dENvbmNhdENUTShjb250ZXh0LCBvcmllbnRhdGlvbi50cmFu
c2Zvcm1Gcm9tRGVmYXVsdChhZGp1c3RlZERlc3RSZWN0LnNpemUoKSkpOwotICAgICAgICBpZiAo
b3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSkgeworICAgIGlmIChvcHRpb25zLm9yaWVu
dGF0aW9uKCkgIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgeworICAgICAgICBDR0NvbnRleHRD
b25jYXRDVE0oY29udGV4dCwgb3B0aW9ucy5vcmllbnRhdGlvbigpLnRyYW5zZm9ybUZyb21EZWZh
dWx0KGFkanVzdGVkRGVzdFJlY3Quc2l6ZSgpKSk7CisgICAgICAgIGlmIChvcHRpb25zLm9yaWVu
dGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkgewogICAgICAgICAgICAgLy8gVGhlIGRlc3Rp
bmF0aW9uIHJlY3Qgd2lsbCBoYXZlIGl0J3Mgd2lkdGggYW5kIGhlaWdodCBhbHJlYWR5IHJldmVy
c2VkIGZvciB0aGUgb3JpZW50YXRpb24gb2YKICAgICAgICAgICAgIC8vIHRoZSBpbWFnZSwgYXMg
aXQgd2FzIG5lZWRlZCBmb3IgcGFnZSBsYXlvdXQsIHNvIHdlIG5lZWQgdG8gcmV2ZXJzZSBpdCBi
YWNrIGhlcmUuCiAgICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0ID0gRmxvYXRSZWN0KGFkanVz
dGVkRGVzdFJlY3QueCgpLCBhZGp1c3RlZERlc3RSZWN0LnkoKSwgYWRqdXN0ZWREZXN0UmVjdC5o
ZWlnaHQoKSwgYWRqdXN0ZWREZXN0UmVjdC53aWR0aCgpKTsKQEAgLTQwOCwxMyArNDA4LDEzIEBA
IHN0YXRpYyB2b2lkIHBhdHRlcm5SZWxlYXNlQ2FsbGJhY2sodm9pZCogaW5mbykKICAgICB9KTsK
IH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRN
b2RlIGJsZW5kTW9kZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybihJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQ
b2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhcGF0
dGVyblRyYW5zZm9ybS5pc0ludmVydGlibGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KG1faW1wbCkgewotICAgICAgICBtX2ltcGwtPmRyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2Rl
KTsKKyAgICAgICAgbV9pbXBsLT5kcmF3UGF0dGVybihpbWFnZSwgZGVzdFJlY3QsIHRpbGVSZWN0
LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dAogICAgIENHQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKICAgICBDR0Nv
bnRleHRDbGlwVG9SZWN0KGNvbnRleHQsIGRlc3RSZWN0KTsKIAotICAgIHNldFBsYXRmb3JtQ29t
cG9zaXRlT3BlcmF0aW9uKG9wLCBibGVuZE1vZGUpOworICAgIHNldFBsYXRmb3JtQ29tcG9zaXRl
T3BlcmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUo
KSk7CiAKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgZGVzdFJlY3QueCgpLCBk
ZXN0UmVjdC55KCkgKyBkZXN0UmVjdC5oZWlnaHQoKSk7CiAgICAgQ0dDb250ZXh0U2NhbGVDVE0o
Y29udGV4dCwgMSwgLTEpOwpAQCAtNDM5LDExICs0MzksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdAogICAgIGZsb2F0IGggPSBDR0ltYWdlR2V0SGVpZ2h0KHRpbGVJbWFnZS5nZXQoKSk7CiAK
ICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3ViSW1hZ2U7Ci0jaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBGbG9hdFNpemUgaW1hZ2VTaXplID0gaW1hZ2Uub3JpZ2luYWxTaXplKCk7Ci0j
ZWxzZQogICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUgPSBpbWFnZS5zaXplKCk7Ci0jZW5kaWYKICAg
ICBpZiAodGlsZVJlY3Quc2l6ZSgpID09IGltYWdlU2l6ZSkKICAgICAgICAgc3ViSW1hZ2UgPSB0
aWxlSW1hZ2U7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IGQzNWZmMGVmZjk3MTk1MGVlZDFl
M2ZkMDI2YmNkYTllYWZhMzRlNDYuLjgzN2I4NzczZjZlMzljMjc5NTQzMzY2MjcyMDk4MDRiNjNj
ZWZlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0zMzQsMTEgKzMzNCwxMSBAQCBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gSW1hZ2VCdWZmZXI6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNvcHlC
ZWhhdmlvcgogICAgIHJldHVybiBpbWFnZTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd0Nv
bnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyLCBHcmFwaGlj
c0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRN
b2RlKQordm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+IGltYWdlQnVmZmVyLCBHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFT
X0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKCFpbWFnZUJ1ZmZlci0+bV9kYXRhLnN1cmZhY2UpIHsK
LSAgICAgICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0
LCBvcCwgYmxlbmRNb2RlKTsKKyAgICAgICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRleHQs
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKQEAgLTM1MSwxMyArMzUxLDEzIEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmco
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciwgR3JhcGhpCiAgICAgCiAg
ICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CiAgICAgYWRqdXN0ZWRTcmNS
ZWN0LnNjYWxlKHJlc29sdXRpb25TY2FsZSk7Ci0gICAgZGVzdENvbnRleHQuZHJhd05hdGl2ZUlt
YWdlKGltYWdlLmdldCgpLCBiYWNraW5nU3RvcmVTaXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNS
ZWN0LCBvcCwgYmxlbmRNb2RlKTsKKyAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1h
Z2UuZ2V0KCksIGJhY2tpbmdTdG9yZVNpemUsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIG9w
dGlvbnMpOwogI2Vsc2UKLSAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwgZGVzdFJl
Y3QsIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUpOworICAgIGltYWdlQnVmZmVyLT5kcmF3KGRlc3RD
b250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiAjZW5kaWYKIH0KIAotdm9pZCBJ
bWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFw
aGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQogewogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZTsKICAgICBpZiAoJmRlc3RDb250
ZXh0ID09ICZjb250ZXh0KCkgfHwgZGVzdENvbnRleHQuaXNBY2NlbGVyYXRlZENvbnRleHQoKSkK
QEAgLTM2NywxMCArMzY3LDEwIEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250
ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKIAogICAgIEZsb2F0
UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OwogICAgIGFkanVzdGVkU3JjUmVjdC5zY2Fs
ZShtX3Jlc29sdXRpb25TY2FsZSk7Ci0gICAgZGVzdENvbnRleHQuZHJhd05hdGl2ZUltYWdlKGlt
YWdlLmdldCgpLCBtX2RhdGEuYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3Jj
UmVjdCwgb3AsIGJsZW5kTW9kZSk7CisgICAgZGVzdENvbnRleHQuZHJhd05hdGl2ZUltYWdlKGlt
YWdlLmdldCgpLCBtX2RhdGEuYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3Jj
UmVjdCwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBD
b21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgSW1hZ2VCdWZm
ZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKICAgICBhZGp1c3Rl
ZFNyY1JlY3Quc2NhbGUobV9yZXNvbHV0aW9uU2NhbGUpOwpAQCAtMzc4LDE0ICszNzgsMTQgQEAg
dm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkZXMKICAgICBpZiAoIWNvbnRleHQoKS5pc0FjY2VsZXJhdGVk
Q29udGV4dCgpKSB7CiAgICAgICAgIGlmICgmZGVzdENvbnRleHQgPT0gJmNvbnRleHQoKSB8fCBk
ZXN0Q29udGV4dC5pc0FjY2VsZXJhdGVkQ29udGV4dCgpKSB7CiAgICAgICAgICAgICBpZiAoUmVm
UHRyPEltYWdlPiBjb3B5ID0gY29weUltYWdlKENvcHlCYWNraW5nU3RvcmUpKSAvLyBEcmF3aW5n
IGludG8gb3VyIG93biBidWZmZXIsIG5lZWQgdG8gZGVlcCBjb3B5LgotICAgICAgICAgICAgICAg
IGNvcHktPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0
LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJsZW5kTW9kZSk7CisgICAg
ICAgICAgICAgICAgY29weS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1
c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8SW1hZ2U+IGltYWdlRm9y
UmVuZGVyaW5nID0gY29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKSkKLSAgICAgICAgICAg
ICAgICBpbWFnZUZvclJlbmRlcmluZy0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0
LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwg
YmxlbmRNb2RlKTsKKyAgICAgICAgICAgICAgICBpbWFnZUZvclJlbmRlcmluZy0+ZHJhd1BhdHRl
cm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zv
cm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGlmIChSZWZQdHI8SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9y
ZSkpCi0gICAgICAgICAgICBjb3B5LT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3Qs
IGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBi
bGVuZE1vZGUpOworICAgICAgICAgICAgY29weS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRl
c3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5n
LCBvcHRpb25zKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAKaW5kZXggZjAyZDVkNTY2MGE2YzhhMTEx
ZDViYzgyMTBmNmQ1ZDlmZWFkM2JkOC4uODI5NDExNjYxZTk4NzA2MGUwM2IzZjAzZTBlNmRiYzFl
N2QyMDQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
TmF0aXZlSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvTmF0aXZlSW1hZ2VDRy5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgQ29sb3IgbmF0aXZlSW1hZ2VT
aW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogICAgIHJl
dHVybiBDb2xvcihwaXhlbFswXSAqIDI1NSAvIHBpeGVsWzNdLCBwaXhlbFsxXSAqIDI1NSAvIHBp
eGVsWzNdLCBwaXhlbFsyXSAqIDI1NSAvIHBpeGVsWzNdLCBwaXhlbFszXSk7CiB9CiAKLXZvaWQg
ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBC
bGVuZE1vZGUgbW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewogICAgIC8vIFN1YnNhbXBsaW5nIG1heSBoYXZlIGdpdmVuIHVzIGFuIGltYWdl
IHRoYXQgaXMgc21hbGxlciB0aGFuIHNpemUoKS4KICAgICBJbnRTaXplIHN1YnNhbXBsZWRJbWFn
ZVNpemUgPSBuYXRpdmVJbWFnZVNpemUoaW1hZ2UpOwpAQCAtNzksNyArNzksNyBAQCB2b2lkIGRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29ucwogICAgIGlmIChzdWJzYW1wbGVkSW1hZ2VTaXplICE9IHNyY1NpemUp
CiAgICAgICAgIGFkanVzdGVkU3JjUmVjdCA9IG1hcFJlY3Qoc3JjUmVjdCwgRmxvYXRSZWN0KHsg
fSwgc3JjU2l6ZSksIEZsb2F0UmVjdCh7IH0sIHN1YnNhbXBsZWRJbWFnZVNpemUpKTsKIAotICAg
IGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKGltYWdlLCBzdWJzYW1wbGVkSW1hZ2VTaXplLCBkZXN0
UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBvcCwgbW9kZSwgb3JpZW50YXRpb24pOworICAgIGNvbnRl
eHQuZHJhd05hdGl2ZUltYWdlKGltYWdlLCBzdWJzYW1wbGVkSW1hZ2VTaXplLCBkZXN0UmVjdCwg
YWRqdXN0ZWRTcmNSZWN0LCBvcHRpb25zKTsKIH0KIAogdm9pZCBjbGVhck5hdGl2ZUltYWdlU3Vi
aW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKaW5kZXgg
M2Q0M2NmYjQxMTFlN2I4YmYxZGZiMWIwZTc4MzMyZjY2YTJiMTQ5Ni4uODBmNmIxODcyNTIyOTY4
ZWE3ZDk1NzZiN2UwMDU2MzMzMjU4ODIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKQEAgLTY2LDcgKzY2
LDcgQEAgU3RyaW5nIFBERkRvY3VtZW50SW1hZ2U6OmZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QK
ICAgICByZXR1cm4gInBkZiI7CiB9CiAKLUZsb2F0U2l6ZSBQREZEb2N1bWVudEltYWdlOjpzaXpl
KCkgY29uc3QKK0Zsb2F0U2l6ZSBQREZEb2N1bWVudEltYWdlOjpzaXplKEltYWdlT3JpZW50YXRp
b24pIGNvbnN0CiB7CiAgICAgRmxvYXRTaXplIGV4cGFuZGVkQ3JvcEJveFNpemUgPSBGbG9hdFNp
emUoZXhwYW5kZWRJbnRTaXplKG1fY3JvcEJveC5zaXplKCkpKTsKIApAQCAtMjU3LDcgKzI1Nyw3
IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5lZWRlZChHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAgICAgZGVjb2RlZFNpemVDaGFuZ2VkKGludGVy
bmFsU2l6ZS51bmNsYW1wZWRBcmVhKCkgKiA0KTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IFBERkRv
Y3VtZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKQorSW1hZ2VEcmF3
UmVzdWx0IFBERkRvY3VtZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKCFtX2RvY3VtZW50IHx8
ICFtX2hhc1BhZ2UpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7
CkBAIC0yNjYsNyArMjY2LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IFBERkRvY3VtZW50SW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QKIAogICAgIHsKICAg
ICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwotICAg
ICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcCk7CisgICAgICAgIGNvbnRleHQu
c2V0Q29tcG9zaXRlT3BlcmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSk7CiAKICAg
ICAgICAgaWYgKG1fY2FjaGVkSW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAgIC8vIERyYXcgdGhl
IEltYWdlQnVmZmVyICdtX2NhY2hlZEltYWdlQnVmZmVyJyB0byB0aGUgcmVjdGFuZ2xlICdtX2Nh
Y2hlZEltYWdlUmVjdCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAppbmRleCA5YmYxNjdjNDU1NDIwMTYwYjhiMGY4OTcz
YTdkMTc5NTRmNjYxNzU1Li5lZDlkMTZkMjg1YTEzMmY2NzBmZjA4NGNlMTMwMDdmM2Q0NTRmNTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1
bWVudEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERG
RG9jdW1lbnRJbWFnZS5oCkBAIC03Niw5ICs3Niw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXN0
cm95RGVjb2RlZERhdGEoYm9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRydWUpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRo
LCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgb3Zl
cnJpZGU7Ci0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBGbG9hdFNp
emUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRp
b24pIG92ZXJyaWRlOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogCiAgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0aGlzIHRvIGJlIGxlc3MgY29uc2VydmF0aXZlLgogICAgIGJvb2wgY3VycmVu
dEZyYW1lS25vd25Ub0JlT3BhcXVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCBiNzEzZTg1ZWZjNDg2YWUx
YWUxZTBkNzMwMzYxZDlhNTRiMjhjODg3Li5kMzliNjYyYTRhYThhYjY0NmIzMzE3MDEwMmRiNmZj
OGNkODJhMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC00ODcs
NyArNDg3LDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IERyYXdUaWxlZFNjYWxlZEltYWdlJiBpdGVtKQogfQogCiAjaWYgVVNFKENHKSB8fCBV
U0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKLURyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUlt
YWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRp
b24gb3JpZW50YXRpb24pCitEcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRy
YXdOYXRpdmVJbWFnZSkKICNpZiBVU0UoQ0cpCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gc3RvcmUg
YW4gaW1hZ2UgZm9yIENhaXJvLgpAQCAtNDk2LDIzICs0OTYsMTcgQEAgRHJhd05hdGl2ZUltYWdl
OjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9h
dFNpemUmIGkKICAgICAsIG1faW1hZ2VTaXplKGltYWdlU2l6ZSkKICAgICAsIG1fZGVzdGluYXRp
b24oZGVzdFJlY3QpCiAgICAgLCBtX3NyY1JlY3Qoc3JjUmVjdCkKLSNpZiBVU0UoQ0cpCi0gICAg
LCBtX29wKG9wKQotICAgICwgbV9ibGVuZE1vZGUoYmxlbmRNb2RlKQotI2VuZGlmCi0gICAgLCBt
X29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQorICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiB7CiAj
aWYgIVVTRShDRykKICAgICBVTlVTRURfUEFSQU0oaW1hZ2UpOwotICAgIFVOVVNFRF9QQVJBTShv
cCk7Ci0gICAgVU5VU0VEX1BBUkFNKGJsZW5kTW9kZSk7CiAjZW5kaWYKIH0KIAogdm9pZCBEcmF3
TmF0aXZlSW1hZ2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKICNp
ZiBVU0UoQ0cpCi0gICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobV9pbWFnZSwgbV9pbWFnZVNp
emUsIG1fZGVzdGluYXRpb24sIG1fc3JjUmVjdCwgbV9vcCwgbV9ibGVuZE1vZGUsIG1fb3JpZW50
YXRpb24pOworICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG1faW1hZ2UsIG1faW1hZ2VTaXpl
LCBtX2Rlc3RpbmF0aW9uLCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0KTsKICNlbmRpZgpAQCAtNTI4LDcgKzUyMiw3IEBAIHN0YXRpYyBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3TmF0aXZlSW1hZ2Um
IGl0ZW0pCiB9CiAjZW5kaWYKIAotRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKEltYWdlJiBpbWFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwg
QmxlbmRNb2RlIGJsZW5kTW9kZSkKK0RyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihJbWFnZSYgaW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmIG9wdGlvbnMpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd1BhdHRlcm4p
CiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9wYXR0ZXJuVHJhbnNmb3JtKHBhdHRlcm5U
cmFuc2Zvcm0pCkBAIC01MzYsMTQgKzUzMCwxMyBAQCBEcmF3UGF0dGVybjo6RHJhd1BhdHRlcm4o
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlYwog
ICAgICwgbV9kZXN0aW5hdGlvbihkZXN0UmVjdCkKICAgICAsIG1fcGhhc2UocGhhc2UpCiAgICAg
LCBtX3NwYWNpbmcoc3BhY2luZykKLSAgICAsIG1fb3Aob3ApCi0gICAgLCBtX2JsZW5kTW9kZShi
bGVuZE1vZGUpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKIHsKIH0KIAogdm9pZCBEcmF3UGF0
dGVybjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAgIGNvbnRl
eHQuZHJhd1BhdHRlcm4obV9pbWFnZS5nZXQoKSwgbV9kZXN0aW5hdGlvbiwgbV90aWxlUmVjdCwg
bV9wYXR0ZXJuVHJhbnNmb3JtLCBtX3BoYXNlLCBtX3NwYWNpbmcsIG1fb3AsIG1fYmxlbmRNb2Rl
KTsKKyAgICBjb250ZXh0LmRyYXdQYXR0ZXJuKG1faW1hZ2UuZ2V0KCksIG1fZGVzdGluYXRpb24s
IG1fdGlsZVJlY3QsIG1fcGF0dGVyblRyYW5zZm9ybSwgbV9waGFzZSwgbV9zcGFjaW5nLCBtX29w
dGlvbnMpOwogfQogCiBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0
cywgY29uc3QgRHJhd1BhdHRlcm4mIGl0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
aAppbmRleCA4YmNjZTE5YjI0ZTFmZjVmNjViNmJmNDhjOTQxNzBjOWI3ZTAxZmI4Li5jZjNjZjky
OTMwYzQ2ZGJlNmM3Mjk3YTVhOTFjZTI1MTI1Y2JhNzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmgKQEAgLTY0MSwxNiArNjQxLDE2IEBAIHByaXZhdGU6CiAjaWYgVVNFKENHKSB8
fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKIGNsYXNzIERyYXdOYXRpdmVJbWFnZSA6IHB1
YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEcmF3TmF0aXZlSW1h
Z2U+IGNyZWF0ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYg
aW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKQorICAgIHN0YXRpYyBSZWY8RHJhd05hdGl2ZUltYWdlPiBj
cmVhdGUoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdl
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IERyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0
UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24pKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RS
ZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7CiAgICAgfQogCiAgICAgRmxvYXRSZWN0IHNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQogICAgIEZsb2F0UmVjdCBkZXN0aW5hdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KIAogcHJpdmF0ZToKLSAgICBEcmF3TmF0
aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24pOworICAgIERyYXdO
YXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTY2MiwxOSArNjYyLDE1IEBAIHByaXZhdGU6
CiAgICAgRmxvYXRTaXplIG1faW1hZ2VTaXplOwogICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9u
OwogICAgIEZsb2F0UmVjdCBtX3NyY1JlY3Q7Ci0jaWYgVVNFKENHKQotICAgIENvbXBvc2l0ZU9w
ZXJhdG9yIG1fb3A7Ci0gICAgQmxlbmRNb2RlIG1fYmxlbmRNb2RlOwotI2VuZGlmCi0gICAgSW1h
Z2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uOworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1f
b3B0aW9uczsKIH07CiAjZW5kaWYKIAogY2xhc3MgRHJhd1BhdHRlcm4gOiBwdWJsaWMgRHJhd2lu
Z0l0ZW0gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RHJhd1BhdHRlcm4+IGNyZWF0ZShJbWFn
ZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGls
ZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0
b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgc3RhdGljIFJlZjxEcmF3UGF0dGVybj4g
Y3JlYXRlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRl
cm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IERyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKSk7CiAgICAgfQogCiAg
ICAgY29uc3QgSW1hZ2UmIGltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQpA
QCAtNjg1LDcgKzY4MSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFNpemUgc3BhY2luZygpIGNvbnN0
IHsgcmV0dXJuIG1fc3BhY2luZzsgfQogCiBwcml2YXRlOgotICAgIERyYXdQYXR0ZXJuKEltYWdl
JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxv
YXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2Rl
OjpOb3JtYWwpOworICAgIERyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0Nv
bnRleHQmKSBjb25zdCBvdmVycmlkZTsKIApAQCAtNjk3LDggKzY5Myw3IEBAIHByaXZhdGU6CiAg
ICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb247CiAgICAgRmxvYXRQb2ludCBtX3BoYXNlOwogICAg
IEZsb2F0U2l6ZSBtX3NwYWNpbmc7Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3IgbV9vcDsKLSAgICBC
bGVuZE1vZGUgbV9ibGVuZE1vZGU7CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRpb25z
OwogfTsKIAogLy8gSXMgRHJhd2luZ0l0ZW0gYmVjYXVzZSB0aGUgc2l6ZSBvZiB0aGUgdHJhbnNw
YXJlbmN5IGxheWVyIGlzIGltcGxpY2l0bHkgdGhlIGNsaXAgYm91bmRzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGU3OTdhN2ZkNDI4NzE4ZDM5NzA4MDI1
NGEyZmZkNjE2MjNjYTY1NGUuLmUyMGYzZWQxM2NiNmU1NWY3ODJlOGM5YWRjMTMwODcyZGU2ZWYx
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTEyNywx
NiArMTI3LDE2IEBAIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd1RpbGVkSW1hZ2UoSW1h
Z2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0CiB9CiAKICNpZiBVU0UoQ0cpIHx8
IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotdm9pZCBSZWNvcmRlcjo6ZHJhd05hdGl2ZUlt
YWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRp
b24gb3JpZW50YXRpb24pCit2b2lkIFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0
aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRv
d25jYXN0PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKERyYXdOYXRpdmVJbWFnZTo6Y3JlYXRlKGlt
YWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBvcmllbnRh
dGlvbikpKTsKKyAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJdGVt
PihhcHBlbmRJdGVtKERyYXdOYXRpdmVJbWFnZTo6Y3JlYXRlKGltYWdlLCBpbWFnZVNpemUsIGRl
c3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSkpOwogICAgIHVwZGF0ZUl0ZW1FeHRlbnQobmV3SXRl
bSk7CiB9CiAjZW5kaWYKIAotdm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBC
bGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGlt
YWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zKQogewotICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8
RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0oRHJhd1BhdHRlcm46OmNyZWF0ZShpbWFnZSwgZGVzdFJl
Y3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJsZW5k
TW9kZSkpKTsKKyAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJdGVt
PihhcHBlbmRJdGVtKERyYXdQYXR0ZXJuOjpjcmVhdGUoaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVj
dCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpKSk7CiAgICAgdXBk
YXRlSXRlbUV4dGVudChuZXdJdGVtKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmgKaW5kZXggMzE3OThjMWIyZDQ3NDM3NDk4ZmMzMTVhYzE2M2QzNWU0Njc1MzdmMC4u
NTE2ZDRkZjhjN2ZkOWViNWYyOTk3NTY1OGRkNzYzZDE4MDBjM2NkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVj
b3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC05Miw5ICs5Miw5IEBAIHByaXZhdGU6CiAgICAg
SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRp
bGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdl
JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2Us
IGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUs
IEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVy
cmlkZTsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotICAgIHZv
aWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXpl
JiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYs
IGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVy
cmlkZTsKICNlbmRpZgotICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3Qg
RmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKSBvdmVycmlkZTsKICAgICB2b2lkIGRy
YXdMaW5lKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxl
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5k
LmNwcAppbmRleCBiZWYzYWQ5MDcxZWU4YzQ1MGQ5MWY5YmY5ODI0ODU1NTgwZTFmNDE3Li5lNGQ3
Mjk1N2IwY2RlODdmMTdmZjk3MmZjYjcxOTdjOTU5ZjMzMGUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKQEAgLTcwLDcg
KzcwLDcgQEAgdm9pZCBGRUJsZW5kOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIy
LCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwot
ICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1Jl
Z2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9p
bnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhD
b21wb3NpdGVTb3VyY2VPdmVyLCBtX21vZGUpKTsKKyAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFn
ZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29s
dXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2Fs
U2l6ZSgpKSwgeyBDb21wb3NpdGVTb3VyY2VPdmVyLCBtX21vZGUgfSk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNv
bXBvc2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmNwcAppbmRleCA1MzIzYmVkYWE1NzBhNGIyMTI0MTY4YzQ2NWI0OTUxYzA0MWY0
MzlhLi5kNTZkYjQwYzA0OTRkYjE3M2YwMDE3NDRiNWMxYmM0ZDJjMWE1YTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9z
aXRlLmNwcApAQCAtMjcwLDggKzI3MCw4IEBAIHZvaWQgRkVDb21wb3NpdGU6OnBsYXRmb3JtQXBw
bHlTb2Z0d2FyZSgpCiAgICAgICAgIEludFJlY3QgYWRqdXN0ZWREZXN0aW5hdGlvblJlY3QgPSBk
ZXN0aW5hdGlvblJlY3QgLSBhYnNvbHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9uKCk7CiAgICAgICAg
IEludFJlY3Qgc291cmNlUmVjdCA9IGRlc3RpbmF0aW9uUmVjdCAtIGluLT5hYnNvbHV0ZVBhaW50
UmVjdCgpLmxvY2F0aW9uKCk7CiAgICAgICAgIEludFJlY3Qgc291cmNlMlJlY3QgPSBkZXN0aW5h
dGlvblJlY3QgLSBpbjItPmFic29sdXRlUGFpbnRSZWN0KCkubG9jYXRpb24oKTsKLSAgICAgICAg
ZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyMiwgYWRqdXN0ZWREZXN0
aW5hdGlvblJlY3QsIHNvdXJjZTJSZWN0KTsKLSAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1h
Z2VCdWZmZXIoKmltYWdlQnVmZmVyLCBhZGp1c3RlZERlc3RpbmF0aW9uUmVjdCwgc291cmNlUmVj
dCwgQ29tcG9zaXRlU291cmNlSW4pOworICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1
ZmZlcigqaW1hZ2VCdWZmZXIyLCBGbG9hdFJlY3QoYWRqdXN0ZWREZXN0aW5hdGlvblJlY3QpLCBG
bG9hdFJlY3Qoc291cmNlMlJlY3QpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VC
dWZmZXIoKmltYWdlQnVmZmVyLCBGbG9hdFJlY3QoYWRqdXN0ZWREZXN0aW5hdGlvblJlY3QpLCBG
bG9hdFJlY3Qoc291cmNlUmVjdCksIHsgQ29tcG9zaXRlU291cmNlSW4gfSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX09VVDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCBi
MDJlMjhlZGNkNDA3ZmRmZjhjYmVhNzhhZDFhNmU3YjBjN2I1OGE5Li4wODJmMTk0NGU5NDU5NmVj
NGQ2OTEyMDZiZDQ1YjQxMjI1MTE5NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC04ODUsMTUgKzg4NSwxMSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYQogICAgIGlmICghR1NUX0lTX1NBTVBMRShtX3NhbXBsZS5nZXQo
KSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIHBhaW50aW5n
T3B0aW9ucyhDb21wb3NpdGVDb3B5KTsKLSAgICBpZiAobV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJh
dGVkKQotICAgICAgICBwYWludGluZ09wdGlvbnMubV9vcmllbnRhdGlvbiA9IG1fdmlkZW9Tb3Vy
Y2VPcmllbnRhdGlvbjsKLQogICAgIGF1dG8gZ3N0SW1hZ2UgPSBJbWFnZUdTdHJlYW1lcjo6Y3Jl
YXRlSW1hZ2UobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmICghZ3N0SW1hZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNvbnRleHQuZHJhd0ltYWdlKGdzdEltYWdlLT5pbWFnZSgpLCByZWN0LCBn
c3RJbWFnZS0+cmVjdCgpLCBwYWludGluZ09wdGlvbnMpOworICAgIGNvbnRleHQuZHJhd0ltYWdl
KGdzdEltYWdlLT5pbWFnZSgpLCByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCB7IENvbXBvc2l0ZUNv
cHksIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCA/IG1fdmlkZW9Tb3VyY2VPcmllbnRhdGlv
biA6IEltYWdlT3JpZW50YXRpb24oKSB9KTsKIH0KIAogI2lmIFVTRShHU1RSRUFNRVJfR0wpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJv
L05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIu
Y3BwCmluZGV4IDUwZTBjM2M3ZDk3NjgyNmJhN2JiODE4NWQxZWUxNDIxMjlhZGEwMmMuLjFkMmFm
NjlmZDZmYTc4M2YwZmMxNjYxYTg2ODBjMmIxMDY4YzE2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0
aW9uUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCkBAIC01NDksMTQg
KzU0OSwxNCBAQCBJbWFnZURyYXdSZXN1bHQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1Rp
bGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdAogICAgIHJldHVybiBHcmFwaGljc0Nv
bnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCksIGltYWdlLCBk
ZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQ
YWludGluZ09wdGlvbnMpOwogfQogCi12b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdO
YXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYg
aW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxl
bmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQordm9pZCBDYWlyb09wZXJhdGlv
blJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBj
b25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKLSAgICBzdHJ1Y3QgRHJhd05hdGl2ZUltYWdlIGZpbmFsIDogUGFpbnRpbmdPcGVyYXRp
b24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4sIEZsb2F0UmVjdCwgRmxv
YXRSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uLCBJ
bnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQsIENhaXJvOjpTaGFkb3dTdGF0ZT4geworICAgIHN0
cnVjdCBEcmF3TmF0aXZlSW1hZ2UgZmluYWwgOiBQYWludGluZ09wZXJhdGlvbiwgT3BlcmF0aW9u
RGF0YTxSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiwgRmxvYXRSZWN0LCBGbG9hdFJlY3QsIEltYWdl
UGFpbnRpbmdPcHRpb25zLCBmbG9hdCwgQ2Fpcm86OlNoYWRvd1N0YXRlPiB7CiAgICAgICAgIHZp
cnR1YWwgfkRyYXdOYXRpdmVJbWFnZSgpID0gZGVmYXVsdDsKIAogICAgICAgICB2b2lkIGV4ZWN1
dGUoUGFpbnRpbmdPcGVyYXRpb25SZXBsYXkmIHJlcGxheWVyKSBvdmVycmlkZQogICAgICAgICB7
Ci0gICAgICAgICAgICBDYWlybzo6ZHJhd05hdGl2ZUltYWdlKGNvbnRleHRGb3JSZXBsYXkocmVw
bGF5ZXIpLCBhcmc8MD4oKS5nZXQoKSwgYXJnPDE+KCksIGFyZzwyPigpLCBhcmc8Mz4oKSwgYXJn
PDQ+KCksIGFyZzw1PigpLCBhcmc8Nj4oKSwgYXJnPDc+KCksIGFyZzw4PigpKTsKKyAgICAgICAg
ICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29udGV4dEZvclJlcGxheShyZXBsYXllciksIGFy
ZzwwPigpLmdldCgpLCBhcmc8MT4oKSwgYXJnPDI+KCksIGFyZzwzPigpLCBhcmc8ND4oKSwgYXJn
PDU+KCkpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBkdW1wKFRleHRTdHJlYW0mIHRzKSBv
dmVycmlkZQpAQCAtNTY3LDE3ICs1NjcsMTcgQEAgdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVy
OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdAogCiAg
ICAgVU5VU0VEX1BBUkFNKGltYWdlU2l6ZSk7CiAgICAgYXV0byYgc3RhdGUgPSBncmFwaGljc0Nv
bnRleHQoKS5zdGF0ZSgpOwotICAgIGFwcGVuZChjcmVhdGVDb21tYW5kPERyYXdOYXRpdmVJbWFn
ZT4oUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4oaW1hZ2UuZ2V0KCkpLCBkZXN0UmVjdCwgc3JjUmVj
dCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24sIHN0YXRlLmltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHksIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3Rh
dGUpKSk7CisgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd05hdGl2ZUltYWdlPihSZWZQdHI8
Y2Fpcm9fc3VyZmFjZV90PihpbWFnZS5nZXQoKSksIGRlc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBh
aW50aW5nT3B0aW9ucyhvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KSwg
c3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpKTsKIH0KIAotdm9pZCBDYWly
b09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0
IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdQ
YXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBzdHJ1Y3QgRHJhd1BhdHRl
cm4gZmluYWwgOiBQYWludGluZ09wZXJhdGlvbiwgT3BlcmF0aW9uRGF0YTxSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiwgSW50U2l6ZSwgRmxvYXRSZWN0LCBGbG9hdFJlY3QsIEFmZmluZVRyYW5zZm9y
bSwgRmxvYXRQb2ludCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZT4geworICAgIHN0cnVj
dCBEcmF3UGF0dGVybiBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+LCBJbnRTaXplLCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgQWZm
aW5lVHJhbnNmb3JtLCBGbG9hdFBvaW50LCBJbWFnZVBhaW50aW5nT3B0aW9ucz4gewogICAgICAg
ICB2aXJ0dWFsIH5EcmF3UGF0dGVybigpID0gZGVmYXVsdDsKIAogICAgICAgICB2b2lkIGV4ZWN1
dGUoUGFpbnRpbmdPcGVyYXRpb25SZXBsYXkmIHJlcGxheWVyKSBvdmVycmlkZQogICAgICAgICB7
Ci0gICAgICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4oY29udGV4dEZvclJlcGxheShyZXBsYXll
ciksIGFyZzwwPigpLmdldCgpLCBhcmc8MT4oKSwgYXJnPDI+KCksIGFyZzwzPigpLCBhcmc8ND4o
KSwgYXJnPDU+KCksIGFyZzw2PigpLCBhcmc8Nz4oKSk7CisgICAgICAgICAgICBDYWlybzo6ZHJh
d1BhdHRlcm4oY29udGV4dEZvclJlcGxheShyZXBsYXllciksIGFyZzwwPigpLmdldCgpLCBhcmc8
MT4oKSwgYXJnPDI+KCksIGFyZzwzPigpLCBhcmc8ND4oKSwgYXJnPDU+KCksIGFyZzw2PigpKTsK
ICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cykgb3ZlcnJpZGUK
QEAgLTU4OCw3ICs1ODgsNyBAQCB2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdQYXR0
ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdAogCiAgICAgVU5VU0VE
X1BBUkFNKHNwYWNpbmcpOwogICAgIGlmIChhdXRvIHN1cmZhY2UgPSBpbWFnZS5uYXRpdmVJbWFn
ZUZvckN1cnJlbnRGcmFtZSgpKQotICAgICAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3UGF0
dGVybj4oV1RGTW92ZShzdXJmYWNlKSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBjb21wb3NpdGVPcGVyYXRvciwgYmxl
bmRNb2RlKSk7CisgICAgICAgIGFwcGVuZChjcmVhdGVDb21tYW5kPERyYXdQYXR0ZXJuPihXVEZN
b3ZlKHN1cmZhY2UpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxlUmVjdCwg
cGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIG9wdGlvbnMpKTsKIH0KIAogdm9pZCBDYWlyb09wZXJh
dGlvblJlY29yZGVyOjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRl
clRoaWNrbmVzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0
aW9uUmVjb3JkZXIuaAppbmRleCBkYmQ2NzIzMTQ4NGY5MTg3MjFjYzBiZmRkODYzODVlN2ZlNWI4
OWY5Li44MjYwYzQ4YWQ3OTg2ODRjNmU1N2MxZDY2ZGZiZTZkMDEwMWMxZjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFD
YWlyb09wZXJhdGlvblJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCkBAIC02
Nyw4ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdJ
bWFnZShXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdl
YkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7
CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdlYkNvcmU6Oklt
YWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6SW1hZ2U6OlRpbGVSdWxlLCBX
ZWJDb3JlOjpJbWFnZTo6VGlsZVJ1bGUsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRp
b25zJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6
TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBXZWJDb3JlOjpDb21wb3Np
dGVPcGVyYXRvciwgV2ViQ29yZTo6QmxlbmRNb2RlLCBXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9u
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6OkltYWdlJiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yLCBXZWJDb3Jl
OjpCbGVuZE1vZGUgPSBXZWJDb3JlOjpCbGVuZE1vZGU6Ok5vcm1hbCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJD
b3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiwgZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRE9wZXJhdGlv
bnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3Bl
cmF0aW9ucy5jcHAKaW5kZXggZDdhMGU5ODM5NzE4YzMxMGVhMWYyNTlhNWFmNGU0MWFlZTgyYzUx
Yy4uOWFlMmE3MmU5MGY5NWI5YWFhNDY0ODc4OGM2ZjI3YTE3N2M4ZmRlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3Bl
cmF0aW9ucy5jcHAKQEAgLTc2NSw3ICs3NjUsNyBAQCB2b2lkIGRyYXdHbHlwaHMoUGxhdGZvcm1D
b250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbAog
fQogCiAKLXZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0
Zm9ybUNvbnRleHQsIElXSUNCaXRtYXAqIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIG9yaWdpbmFs
SW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxl
bmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVhbGl0
eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxBbHBoYSwgY29uc3QgU2hh
ZG93U3RhdGUmIHNoYWRvd1N0YXRlKQordm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250
ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgSVdJQ0JpdG1hcCogaW1hZ2UsIGNvbnN0IEZs
b2F0U2l6ZSYgb3JpZ2luYWxJbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMsIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCiB7
CiAgICAgYXV0byBuYXRpdmVJbWFnZVNpemUgPSBiaXRtYXBTaXplKGltYWdlKTsKICAgICBDT01Q
dHI8SUQyRDFCaXRtYXA+IGRldmljZUJpdG1hcDsKQEAgLTc3NCwxMCArNzc0LDEwIEBAIHZvaWQg
ZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9ybUNvbnRleHQs
IElXSUNCaXRtYXAqIGltYWdlCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gaW1hZ2VTaXpl
ID0gYml0bWFwU2l6ZShkZXZpY2VCaXRtYXAuZ2V0KCkpOwotICAgIGRyYXdOYXRpdmVJbWFnZShw
bGF0Zm9ybUNvbnRleHQsIGRldmljZUJpdG1hcC5nZXQoKSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwg
c3JjUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24sIGltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHksIGdsb2JhbEFscGhhLCBzaGFkb3dTdGF0ZSk7CisgICAgZHJh
d05hdGl2ZUltYWdlKHBsYXRmb3JtQ29udGV4dCwgZGV2aWNlQml0bWFwLmdldCgpLCBpbWFnZVNp
emUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBnbG9iYWxBbHBoYSwgc2hhZG93U3RhdGUp
OwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHREaXJlY3QyRCYgcGxh
dGZvcm1Db250ZXh0LCBJRDJEMUJpdG1hcCogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxBbHBoYSwgY29uc3QgU2hhZG93U3Rh
dGUmIHNoYWRvd1N0YXRlKQordm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0RGly
ZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgSUQyRDFCaXRtYXAqIGltYWdlLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgZmxvYXQgZ2xv
YmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKICAgICBhdXRvIGJp
dG1hcFNpemUgPSBpbWFnZS0+R2V0U2l6ZSgpOwogCkBAIC04MDksMTYgKzgwOSwxNiBAQCB2b2lk
IGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHREaXJlY3QyRCYgcGxhdGZvcm1Db250ZXh0
LCBJRDJEMUJpdG1hcCogaW1hZwogICAgIGlmICghc2hvdWxkVXNlU3ViaW1hZ2UgJiYgY3Vyckhl
aWdodCA8IGltYWdlU2l6ZS5oZWlnaHQoKSkKICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5zZXRI
ZWlnaHQoYWRqdXN0ZWREZXN0UmVjdC5oZWlnaHQoKSAqIGN1cnJIZWlnaHQgLyBpbWFnZVNpemUu
aGVpZ2h0KCkpOwogCi0gICAgU3RhdGU6OnNldENvbXBvc2l0ZU9wZXJhdGlvbihwbGF0Zm9ybUNv
bnRleHQsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUpOworICAgIFN0YXRlOjpzZXRDb21w
b3NpdGVPcGVyYXRpb24ocGxhdGZvcm1Db250ZXh0LCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9y
KCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogCiAgICAgLy8gSW1hZ2VPcmllbnRhdGlvbiBleHBl
Y3RzIHRoZSBvcmlnaW4gdG8gYmUgYXQgKDAsIDApLgogICAgIHRyYW5zZm9ybS50cmFuc2xhdGUo
YWRqdXN0ZWREZXN0UmVjdC54KCksIGFkanVzdGVkRGVzdFJlY3QueSgpKTsKICAgICBjb250ZXh0
LT5TZXRUcmFuc2Zvcm0odHJhbnNmb3JtKTsKICAgICBhZGp1c3RlZERlc3RSZWN0LnNldExvY2F0
aW9uKEZsb2F0UG9pbnQoKSk7CiAKLSAgICBpZiAob3JpZW50YXRpb24gIT0gSW1hZ2VPcmllbnRh
dGlvbjo6Tm9uZSkgewotICAgICAgICBjb25jYXRDVE0ocGxhdGZvcm1Db250ZXh0LCBvcmllbnRh
dGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChhZGp1c3RlZERlc3RSZWN0LnNpemUoKSkpOwotICAg
ICAgICBpZiAob3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSkgeworICAgIGlmIChvcHRp
b25zLm9yaWVudGF0aW9uKCkgIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgeworICAgICAgICBj
b25jYXRDVE0ocGxhdGZvcm1Db250ZXh0LCBvcHRpb25zLm9yaWVudGF0aW9uKCkudHJhbnNmb3Jt
RnJvbURlZmF1bHQoYWRqdXN0ZWREZXN0UmVjdC5zaXplKCkpKTsKKyAgICAgICAgaWYgKG9wdGlv
bnMub3JpZW50YXRpb24oKS51c2VzV2lkdGhBc0hlaWdodCgpKSB7CiAgICAgICAgICAgICAvLyBU
aGUgZGVzdGluYXRpb24gcmVjdCB3aWxsIGhhdmUgaXQncyB3aWR0aCBhbmQgaGVpZ2h0IGFscmVh
ZHkgcmV2ZXJzZWQgZm9yIHRoZSBvcmllbnRhdGlvbiBvZgogICAgICAgICAgICAgLy8gdGhlIGlt
YWdlLCBhcyBpdCB3YXMgbmVlZGVkIGZvciBwYWdlIGxheW91dCwgc28gd2UgbmVlZCB0byByZXZl
cnNlIGl0IGJhY2sgaGVyZS4KICAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3QgPSBGbG9hdFJl
Y3QoYWRqdXN0ZWREZXN0UmVjdC54KCksIGFkanVzdGVkRGVzdFJlY3QueSgpLCBhZGp1c3RlZERl
c3RSZWN0LmhlaWdodCgpLCBhZGp1c3RlZERlc3RSZWN0LndpZHRoKCkpOwpAQCAtODQyLDE0ICs4
NDIsMTQgQEAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmIHBs
YXRmb3JtQ29udGV4dCwgSUQyRDFCaXRtYXAqIGltYWcKICAgICAgICAgY29udGV4dC0+U2V0VHJh
bnNmb3JtKGN0bSk7CiB9CiAKLXZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1Db250ZXh0RGlyZWN0
MkQmIHBsYXRmb3JtQ29udGV4dCwgSVdJQ0JpdG1hcCogdGlsZUltYWdlLCBjb25zdCBJbnRTaXpl
JiBzaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRN
b2RlIGJsZW5kTW9kZSkKK3ZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQm
IHBsYXRmb3JtQ29udGV4dCwgSVdJQ0JpdG1hcCogdGlsZUltYWdlLCBjb25zdCBJbnRTaXplJiBz
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBh
dXRvIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQucmVuZGVyVGFyZ2V0KCk7CiAgICAgUGxhdGZv
cm1Db250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKHBsYXRmb3JtQ29udGV4dCk7CiAKICAgICBj
bGlwKHBsYXRmb3JtQ29udGV4dCwgZGVzdFJlY3QpOwogCi0gICAgU3RhdGU6OnNldENvbXBvc2l0
ZU9wZXJhdGlvbihwbGF0Zm9ybUNvbnRleHQsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUp
OworICAgIFN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRpb24ocGxhdGZvcm1Db250ZXh0LCBvcHRp
b25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogCiAgICAgYXV0
byBiaXRtYXBCcnVzaFByb3BlcnRpZXMgPSBEMkQxOjpCaXRtYXBCcnVzaFByb3BlcnRpZXMoKTsK
ICAgICBiaXRtYXBCcnVzaFByb3BlcnRpZXMuZXh0ZW5kTW9kZVggPSBEMkQxX0VYVEVORF9NT0RF
X1dSQVA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
RGlyZWN0MkRPcGVyYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRGlyZWN0MkRPcGVyYXRpb25zLmgKaW5kZXggMDZmNjU2MThlYjI5MDdjODVlMTRmNjBmY2E2
MzNiMDg4NjliMmU4YS4uYmNjZjY1NjlkODhjNTRhMTNmY2FmMDcyMmE5MGIzODgzMWI4ZDk0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJE
T3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9E
aXJlY3QyRE9wZXJhdGlvbnMuaApAQCAtMTI3LDEwICsxMjcsMTAgQEAgdm9pZCBjbGVhclJlY3Qo
UGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmLCBjb25zdCBGbG9hdFJlY3QmKTsKIAogdm9pZCBkcmF3
R2x5cGhzKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiwgY29uc3QgRmlsbFNvdXJjZSYsIGNvbnN0
IFN0cm9rZVNvdXJjZSYsIGNvbnN0IFNoYWRvd1N0YXRlJiwgY29uc3QgRmxvYXRQb2ludCYsIGNv
bnN0IEZvbnQmLCBkb3VibGUsIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZCBzaG9ydD4mIGdseXBocywg
Y29uc3QgVmVjdG9yPGZsb2F0PiYgaG9yaXpvbnRhbEFkdmFuY2VzLCBjb25zdCBWZWN0b3I8RFdS
SVRFX0dMWVBIX09GRlNFVD4mLCBmbG9hdCwgVGV4dERyYXdpbmdNb2RlRmxhZ3MsIGZsb2F0LCBj
b25zdCBGbG9hdFNpemUmLCBjb25zdCBDb2xvciYpOwogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShQ
bGF0Zm9ybUNvbnRleHREaXJlY3QyRCYsIElXSUNCaXRtYXAqLCBjb25zdCBGbG9hdFNpemUmIGlt
YWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHks
IGZsb2F0LCBjb25zdCBTaGFkb3dTdGF0ZSYpOwotdm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZv
cm1Db250ZXh0RGlyZWN0MkQmLCBJRDJEMUJpdG1hcCosIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxv
YXQsIGNvbnN0IFNoYWRvd1N0YXRlJik7Cit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNv
bnRleHREaXJlY3QyRCYsIElXSUNCaXRtYXAqLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmLCBmbG9hdCwgY29uc3QgU2hhZG93U3RhdGUmKTsKK3ZvaWQgZHJhd05hdGl2ZUltYWdl
KFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiwgSUQyRDFCaXRtYXAqLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmLCBmbG9hdCwgY29uc3QgU2hhZG93U3RhdGUmKTsKIHZvaWQgZHJh
d1BhdGgoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmLCBjb25zdCBQYXRoJiwgY29uc3QgU3Ryb2tl
U291cmNlJiwgY29uc3QgU2hhZG93U3RhdGUmKTsKLXZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1D
b250ZXh0RGlyZWN0MkQmLCBJV0lDQml0bWFwKiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZs
b2F0UG9pbnQmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKTsKK3ZvaWQgZHJhd1BhdHRl
cm4oUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmLCBJV0lDQml0bWFwKiwgY29uc3QgSW50U2l6ZSYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogCiB2
b2lkIGRyYXdXaXRob3V0U2hhZG93KFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiwgY29uc3QgRmxv
YXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChJRDJEMVJlbmRl
clRhcmdldCopPiYgZHJhd0NvbW1hbmRzKTsKIHZvaWQgZHJhd1dpdGhTaGFkb3coUGxhdGZvcm1D
b250ZXh0RGlyZWN0MkQmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3QgU2hh
ZG93U3RhdGUmLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoSUQyRDFSZW5kZXJUYXJnZXQqKT4m
IGRyYXdDb21tYW5kcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJELmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJELmgKaW5kZXgg
NmJiNjQ0YTJiNjVlMjM0YzE1ZmUzY2ZmZjllYjczOTE5NDRkNDFjMS4uNDQyNWZkMjZhYmU4NTQ1
MWQyYzAzMmYzNmEyNmE1N2VlMzFlMmIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dEltcGxEaXJlY3QyRC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRJbXBsRGly
ZWN0MkQuaApAQCAtNzEsOCArNzEsOCBAQCBwdWJsaWM6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRQb2ludCYs
IGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRTaXpl
JiwgSW1hZ2U6OlRpbGVSdWxlLCBJbWFnZTo6VGlsZVJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZl
SW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9h
dFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2lu
dCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVu
ZE1vZGU6Ok5vcm1hbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAg
IHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxv
YXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNH
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNHV2lu
LmNwcAppbmRleCAxNDExOWViZjVhMjlhZjY4Y2Q1NmQ5ZmIwNzM5ZDY5Yzk2NjU0MjIyLi45MzIz
ZGE3MjQ4ZjZmNDk5ODFlNDU5MzgzNjgzMjg3OWRkMWRlMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ0dXaW4uY3BwCkBAIC03OSw3ICs3
OSw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNpemUoSEJJVE1BUCBibXAsIGNv
bnN0IEludFNpemUqIHNpemUpCiAgICAgaWYgKHNpemUpCiAgICAgICAgIGRyYXdGcmFtZU1hdGNo
aW5nU291cmNlU2l6ZShnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwg
Ym1wSW5mby5ibUhlaWdodCksICpzaXplLCBDb21wb3NpdGVDb3B5KTsKICAgICBlbHNlCi0gICAg
ICAgIGRyYXcoZ2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcElu
Zm8uYm1IZWlnaHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGlt
YWdlU2l6ZS5oZWlnaHQoKSksIENvbXBvc2l0ZUNvcHksIEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNv
ZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICAgICAg
ZHJhdyhnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5i
bUhlaWdodCksIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VT
aXplLmhlaWdodCgpKSwgeyBDb21wb3NpdGVDb3B5IH0pOwogCiAgICAgLy8gRG8gY2xlYW51cAog
ICAgIENHQ29udGV4dFJlbGVhc2UoY2dDb250ZXh0KTsKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBC
aXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29udGV4dCYg
Y3R4dCwgY29uc3QgRmxvYXQKICAgICAgICAgaWYgKGltYWdlICYmIENHSW1hZ2VHZXRIZWlnaHQo
aW1hZ2UpID09IHN0YXRpY19jYXN0PHNpemVfdD4oc3JjU2l6ZS5oZWlnaHQoKSkgJiYgQ0dJbWFn
ZUdldFdpZHRoKGltYWdlKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KHNyY1NpemUud2lkdGgoKSkp
IHsKICAgICAgICAgICAgIHNpemVfdCBjdXJyZW50RnJhbWUgPSBtX2N1cnJlbnRGcmFtZTsKICAg
ICAgICAgICAgIG1fY3VycmVudEZyYW1lID0gaTsKLSAgICAgICAgICAgIGRyYXcoY3R4dCwgZHN0
UmVjdCwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIHNyY1NpemUud2lkdGgoKSwgc3JjU2l6ZS5oZWln
aHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5j
aHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgICAgICAgICBkcmF3KGN0eHQs
IGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBzcmNTaXplLndpZHRoKCksIHNyY1NpemUu
aGVpZ2h0KCkpLCB7IGNvbXBvc2l0ZU9wIH0pOwogICAgICAgICAgICAgbV9jdXJyZW50RnJhbWUg
PSBjdXJyZW50RnJhbWU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwMyw3
ICsxMDMsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUo
R3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdAogCiAgICAgLy8gTm8gaW1hZ2Ugb2Yg
dGhlIGNvcnJlY3Qgc2l6ZSB3YXMgZm91bmQsIGZhbGxiYWNrIHRvIGRyYXdpbmcgdGhlIGN1cnJl
bnQgZnJhbWUKICAgICBGbG9hdFNpemUgaW1hZ2VTaXplID0gQml0bWFwSW1hZ2U6OnNpemUoKTsK
LSAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUu
d2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgY29tcG9zaXRlT3AsIEJsZW5kTW9kZTo6Tm9y
bWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsK
KyAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUu
d2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBjb21wb3NpdGVPcCB9KTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwCmluZGV4IDI0ZWM1YmMxZDhjMmJiOTI4ZmEw
NTg1NmUzMzM0MjJhYzZmNWM4YjIuLjY4YmYzOTdkZWZiMThlZDA3NzhlODNmNjQyY2Q5ZjJhNWRm
NmRiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9J
bWFnZUNhaXJvV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vSW1hZ2VDYWlyb1dpbi5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBCaXRtYXBJbWFnZTo6
Z2V0SEJJVE1BUE9mU2l6ZShIQklUTUFQIGJtcCwgY29uc3QgSW50U2l6ZSogc2l6ZSkKICAgICBp
ZiAoc2l6ZSkKICAgICAgICAgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKGdjLCBGbG9hdFJl
Y3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0KSwgKnNpemUs
IENvbXBvc2l0ZUNvcHkpOwogICAgIGVsc2UKLSAgICAgICAgZHJhdyhnYywgRmxvYXRSZWN0KDAu
MGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0UmVjdCgw
LjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgQ29tcG9z
aXRlQ29weSwgQmxlbmRNb2RlOjpOb3JtYWwsIERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsIElt
YWdlT3JpZW50YXRpb246Ok5vbmUpOworICAgICAgICBkcmF3KGdjLCBGbG9hdFJlY3QoMC4wZiwg
MC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0KSwgRmxvYXRSZWN0KDAuMGYs
IDAuMGYsIGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpLCB7IENvbXBvc2l0
ZUNvcHkgfSk7CiAKICAgICAvLyBEbyBjbGVhbnVwCiAgICAgY2Fpcm9fZGVzdHJveSh0YXJnZXRS
ZWYpOwpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdGcmFtZU1hdGNo
aW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0CiAgICAgICAg
IGlmIChjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoc3VyZmFjZS5nZXQoKSkgPT0gc3Rh
dGljX2Nhc3Q8c2l6ZV90PihzcmNTaXplLmhlaWdodCgpKSAmJiBjYWlyb19pbWFnZV9zdXJmYWNl
X2dldF93aWR0aChzdXJmYWNlLmdldCgpKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KHNyY1NpemUu
d2lkdGgoKSkpIHsKICAgICAgICAgICAgIHNpemVfdCBjdXJyZW50RnJhbWUgPSBtX2N1cnJlbnRG
cmFtZTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lID0gaTsKLSAgICAgICAgICAgIGRyYXco
Y3R4dCwgZHN0UmVjdCwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIHNyY1NpemUud2lkdGgoKSwgc3Jj
U2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdN
b2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgICAgICAgICBk
cmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBzcmNTaXplLndpZHRoKCks
IHNyY1NpemUuaGVpZ2h0KCkpLCB7IGNvbXBvc2l0ZU9wIH0pOwogICAgICAgICAgICAgbV9jdXJy
ZW50RnJhbWUgPSBjdXJyZW50RnJhbWU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
QEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRjaGluZ1Nv
dXJjZVNpemUoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdAogCiAgICAgLy8gTm8g
aW1hZ2Ugb2YgdGhlIGNvcnJlY3Qgc2l6ZSB3YXMgZm91bmQsIGZhbGxiYWNrIHRvIGRyYXdpbmcg
dGhlIGN1cnJlbnQgZnJhbWUKICAgICBGbG9hdFNpemUgaW1hZ2VTaXplID0gQml0bWFwSW1hZ2U6
OnNpemUoKTsKLSAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBp
bWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgY29tcG9zaXRlT3AsIEJsZW5k
TW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9u
OjpOb25lKTsKKyAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBp
bWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBjb21wb3NpdGVPcCB9KTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdlRGlyZWN0MkQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdlRGlyZWN0MkQuY3BwCmluZGV4
IDRlNGQ4OGRlNDQ0MWZlM2Q2NTY3YzZlOGE4ZjI4YTU1ZTgzMDY4N2IuLmM2MDM4NTFjZDUzNTA2
NDU2ZWNiN2YwYzkyYTA0MzgwOTJjODFhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0aXZlSW1hZ2VEaXJlY3QyRC5jcHAKQEAg
LTEwMiw3ICsxMDIsNyBAQCBDb2xvciBuYXRpdmVJbWFnZVNpbmdsZVBpeGVsU29saWRDb2xvcihj
b25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiAgICAgcmV0dXJuIENvbG9yKCk7CiB9CiAKLXZv
aWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0
aW9uKQordm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKQogewogICAgIGF1dG8gcGxhdGZvcm1Db250ZXh0ID0gY29udGV4dC5w
bGF0Zm9ybUNvbnRleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0RyYWdJbWFnZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1h
Z2VJT1MubW0KaW5kZXggMTQ3YzJkMGI1YjNmZTk4MTEwYjBmYzNhYzgxZjZiYmQ3NmZhOGFkZC4u
NTAyNzk5MGNlNTVlNDYxYjJkZDgyYjljMzI5ZTlkOWEzMmY4MGU5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCkBAIC05Niw3ICs5Niw3IEBAIERyYWdJ
bWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KHJlbmRl
cmVyQ29udGV4dC5DR0NvbnRleHQpOwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBpbWFn
ZVNpemUuaGVpZ2h0KTsKICAgICAgICAgY29udGV4dC5zY2FsZSh7IGFkanVzdGVkSW1hZ2VTY2Fs
ZSwgLWFkanVzdGVkSW1hZ2VTY2FsZSB9KTsKLSAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoKmlt
YWdlLCBGbG9hdFBvaW50KCksIEltYWdlUGFpbnRpbmdPcHRpb25zKG9yaWVudGF0aW9uKSk7Cisg
ICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRQb2ludCgpLCB7IG9yaWVudGF0
aW9uIH0pOwogICAgIH1dOwogICAgIHJldHVybiBpbWFnZUNvcHkuQ0dJbWFnZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmluZGV4IDhlYmUwMDc2YThj
YzY2ZWFiZmUwNDI5MWZhZWZmNTk0ZmYwOTE4MGUuLjEyNWFlYmViMTJjMjUyNzUxYTE0MzAxZTUz
MmFmNGQ4NzkyMzFhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
cmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFn
ZU1hYy5tbQpAQCAtOTQsMzkgKzk0LDM2IEBAIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZURy
YWdJbWFnZVRvRnJhY3Rpb24oUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBmbG9hdCBkCiAgICAg
ICAgIAogUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSog
aW1hZ2UsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgRmxvYXRTaXplIHNp
emUgPSBpbWFnZS0+c2l6ZSgpOwotCiAgICAgaWYgKGlzPEJpdG1hcEltYWdlPigqaW1hZ2UpKSB7
CiAgICAgICAgIEJpdG1hcEltYWdlJiBiaXRtYXBJbWFnZSA9IGRvd25jYXN0PEJpdG1hcEltYWdl
PigqaW1hZ2UpOwotICAgICAgICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24gPSBi
aXRtYXBJbWFnZS5zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CiAKICAgICAgICAgaWYgKG9y
aWVudGF0aW9uID09IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkKICAgICAgICAgICAgIG9y
aWVudGF0aW9uID0gYml0bWFwSW1hZ2Uub3JpZW50YXRpb25Gb3JDdXJyZW50RnJhbWUoKTsKIAog
ICAgICAgICBpZiAob3JpZW50YXRpb24gIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgewotICAg
ICAgICAgICAgLy8gQ29uc3RydWN0IGEgY29ycmVjdGx5LXJvdGF0ZWQgY29weSBvZiB0aGUgaW1h
Z2UgdG8gdXNlIGFzIHRoZSBkcmFnIGltYWdlLgotICAgICAgICAgICAgRmxvYXRSZWN0IGRlc3RS
ZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbik7CisgICAgICAgICAg
ICBGbG9hdFNpemUgaW1hZ2VTaXplID0gaW1hZ2UtPnNpemUob3JpZW50YXRpb24pOworICAgICAg
ICAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IHJvdGF0ZWREcmFnSW1hZ2UgPSBhZG9wdE5TKFtbTlNJ
bWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOihOU1NpemUpKGltYWdlU2l6ZSldKTsKIAotICAgICAg
ICAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IHJvdGF0ZWREcmFnSW1hZ2UgPSBhZG9wdE5TKFtbTlNJ
bWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOihOU1NpemUpKHNpemVSZXNwZWN0aW5nT3JpZW50YXRp
b24pXSk7CiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZSBsb2NrRm9jdXNdOwogCiAgICAg
ICAgICAgICAvLyBJbWFnZU9yaWVudGF0aW9uIHVzZXMgdG9wLWxlZnQgY29vcmRpbmF0ZXMsIG5l
ZWQgdG8gZmxpcCB0byBib3R0b20tbGVmdCwgYXBwbHkuLi4KLSAgICAgICAgICAgIENHQWZmaW5l
VHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVRyYW5zbGF0aW9uKDAs
IGRlc3RSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5z
Zm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVRyYW5zbGF0aW9uKDAsIGltYWdlU2l6ZS5oZWln
aHQoKSk7CiAgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxlKHRy
YW5zZm9ybSwgMSwgLTEpOwotICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zv
cm1Db25jYXQob3JpZW50YXRpb24udHJhbnNmb3JtRnJvbURlZmF1bHQoc2l6ZVJlc3BlY3RpbmdP
cmllbnRhdGlvbiksIHRyYW5zZm9ybSk7CisgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmlu
ZVRyYW5zZm9ybUNvbmNhdChvcmllbnRhdGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChpbWFnZVNp
emUpLCB0cmFuc2Zvcm0pOwogCiAgICAgICAgICAgICBpZiAob3JpZW50YXRpb24udXNlc1dpZHRo
QXNIZWlnaHQoKSkKLSAgICAgICAgICAgICAgICBkZXN0UmVjdCA9IEZsb2F0UmVjdChkZXN0UmVj
dC54KCksIGRlc3RSZWN0LnkoKSwgZGVzdFJlY3QuaGVpZ2h0KCksIGRlc3RSZWN0LndpZHRoKCkp
OworICAgICAgICAgICAgICAgIGltYWdlU2l6ZSA9IGltYWdlU2l6ZS50cmFuc3Bvc2VkU2l6ZSgp
OwogCiAgICAgICAgICAgICAvLyAuLi5hbmQgZmxpcCBiYWNrLgotICAgICAgICAgICAgdHJhbnNm
b3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1UcmFuc2xhdGUodHJhbnNmb3JtLCAwLCBkZXN0UmVjdC5o
ZWlnaHQoKSk7CisgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVRyYW5z
bGF0ZSh0cmFuc2Zvcm0sIDAsIGltYWdlU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgICAgICB0cmFu
c2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxlKHRyYW5zZm9ybSwgMSwgLTEpOwogCiAgICAg
ICAgICAgICBSZXRhaW5QdHI8TlNBZmZpbmVUcmFuc2Zvcm0+IGNvY29hVHJhbnNmb3JtID0gYWRv
cHROUyhbW05TQWZmaW5lVHJhbnNmb3JtIGFsbG9jXSBpbml0XSk7CiAgICAgICAgICAgICBbY29j
b2FUcmFuc2Zvcm0gc2V0VHJhbnNmb3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3Qq
KSZ0cmFuc2Zvcm1dOwogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtIGNvbmNhdF07CiAKLSAg
ICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpkZXN0UmVjdCBm
cm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgb3Bl
cmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07Cisg
ICAgICAgICAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2VTaXplKTsK
KyAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDppbWFnZVJl
Y3QgZnJvbVJlY3Q6aW1hZ2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291
cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwogCiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZSB1
bmxvY2tGb2N1c107CiAKQEAgLTEzNCw4ICsxMzEsOSBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gY3Jl
YXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmll
bgogICAgICAgICB9CiAgICAgfQogCisgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLT5z
aXplKCk7CiAgICAgYXV0byBkcmFnSW1hZ2UgPSBpbWFnZS0+c25hcHNob3ROU0ltYWdlKCk7Ci0g
ICAgW2RyYWdJbWFnZSBzZXRTaXplOihOU1NpemUpc2l6ZV07CisgICAgW2RyYWdJbWFnZSBzZXRT
aXplOihOU1NpemUpaW1hZ2VTaXplXTsKICAgICByZXR1cm4gZHJhZ0ltYWdlOwogfQogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAK
aW5kZXggOTAxYzQxMTBlMWM1NmJhNjBhNGRkM2JhN2I5M2ZhYWY2MDQxY2IzMy4uMjIwYWZkNzM1
MTg2MzkwZWI0YzQwMWJhMDQ5NDA3ODNiMTY3Mjc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC05NDcsMTUgKzk0NywyMCBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0
IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjbwogICAgICAgICBnZW9tZXRyeS5jbGlwKExheW91dFJl
Y3QocGl4ZWxTbmFwcGVkUmVjdCkpOwogICAgICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlOwogICAg
ICAgICBpZiAoIWdlb21ldHJ5LmRlc3RSZWN0KCkuaXNFbXB0eSgpICYmIChpbWFnZSA9IGJnSW1h
Z2UtPmltYWdlKGJhY2tncm91bmRPYmplY3QgPyBiYWNrZ3JvdW5kT2JqZWN0IDogdGhpcywgZ2Vv
bWV0cnkudGlsZVNpemUoKSkpKSB7Ci0gICAgICAgICAgICBhdXRvIGNvbXBvc2l0ZU9wID0gb3Ag
PT0gQ29tcG9zaXRlU291cmNlT3ZlciA/IGJnTGF5ZXIuY29tcG9zaXRlKCkgOiBvcDsKICAgICAg
ICAgICAgIGNvbnRleHQuc2V0RHJhd0x1bWluYW5jZU1hc2soYmdMYXllci5tYXNrU291cmNlVHlw
ZSgpID09IE1hc2tTb3VyY2VUeXBlOjpMdW1pbmFuY2UpOwogCiAgICAgICAgICAgICBpZiAoaXM8
Qml0bWFwSW1hZ2U+KGltYWdlKSkKICAgICAgICAgICAgICAgICBkb3duY2FzdDxCaXRtYXBJbWFn
ZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3Moc2V0dGluZ3MoKSk7CiAKLSAgICAgICAgICAg
IGF1dG8gaW50ZXJwb2xhdGlvbiA9IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KGNvbnRleHQs
ICppbWFnZSwgJmJnTGF5ZXIsIGdlb21ldHJ5LnRpbGVTaXplKCkpOwotICAgICAgICAgICAgYXV0
byBkZWNvZGluZ01vZGUgPSBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXcoKmltYWdlLCBwYWludElu
Zm8pOwotICAgICAgICAgICAgYXV0byBkcmF3UmVzdWx0ID0gY29udGV4dC5kcmF3VGlsZWRJbWFn
ZSgqaW1hZ2UsIGdlb21ldHJ5LmRlc3RSZWN0KCksIHRvTGF5b3V0UG9pbnQoZ2VvbWV0cnkucmVs
YXRpdmVQaGFzZSgpKSwgZ2VvbWV0cnkudGlsZVNpemUoKSwgZ2VvbWV0cnkuc3BhY2VTaXplKCks
IEltYWdlUGFpbnRpbmdPcHRpb25zKGNvbXBvc2l0ZU9wLCBiZ0xheWVyLmJsZW5kTW9kZSgpLCBk
ZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb246Ok5vbmUsIGludGVycG9sYXRpb24pKTsKKyAg
ICAgICAgICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMgPSB7CisgICAgICAgICAgICAg
ICAgb3AgPT0gQ29tcG9zaXRlU291cmNlT3ZlciA/IGJnTGF5ZXIuY29tcG9zaXRlKCkgOiBvcCwK
KyAgICAgICAgICAgICAgICBiZ0xheWVyLmJsZW5kTW9kZSgpLAorICAgICAgICAgICAgICAgIGRl
Y29kaW5nTW9kZUZvckltYWdlRHJhdygqaW1hZ2UsIHBhaW50SW5mbyksCisgICAgICAgICAgICAg
ICAgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlLAorICAgICAgICAgICAgICAgIGNob29zZUlu
dGVycG9sYXRpb25RdWFsaXR5KGNvbnRleHQsICppbWFnZSwgJmJnTGF5ZXIsIGdlb21ldHJ5LnRp
bGVTaXplKCkpCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBhdXRvIGRyYXdSZXN1bHQg
PSBjb250ZXh0LmRyYXdUaWxlZEltYWdlKCppbWFnZSwgZ2VvbWV0cnkuZGVzdFJlY3QoKSwgdG9M
YXlvdXRQb2ludChnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkpLCBnZW9tZXRyeS50aWxlU2l6ZSgp
LCBnZW9tZXRyeS5zcGFjZVNpemUoKSwgb3B0aW9ucyk7CiAgICAgICAgICAgICBpZiAoZHJhd1Jl
c3VsdCA9PSBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlcXVlc3REZWNvZGluZykgewogICAgICAgICAg
ICAgICAgIEFTU0VSVChiZ0ltYWdlLT5pc0NhY2hlZEltYWdlKCkpOwogICAgICAgICAgICAgICAg
IGJnSW1hZ2UtPmNhY2hlZEltYWdlKCktPmFkZENsaWVudFdhaXRpbmdGb3JBc3luY0RlY29kaW5n
KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRl
eCAxYjExZTJlM2YxY2QxZWE0N2Y4NjdhMGVkMGRkMDgwYmE4Yzk3MmNhLi4yMjBiMWE2NzM1OTBl
NmJhN2MyOGZmYmIxOTBjMTA4NTBlYTQ2ZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuY3BwCkBAIC0yMDM5LDE2ICsyMDM5LDcgQEAgYm9vbCBSZW5kZXJFbGVt
ZW50OjpjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKSBjb25zdAogCiBJbWFnZU9yaWVudGF0
aW9uIFJlbmRlckVsZW1lbnQ6OmltYWdlT3JpZW50YXRpb24oKSBjb25zdAogewotI2lmIFVTRShD
RykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi0gICAgLy8gVGhpcyBjYW4gb25seSBi
ZSBlbmFibGVkIGZvciBwb3J0cyB3aGljaCBob25vciB0aGUgb3JpZW50YXRpb24gZmxhZyBpbiB0
aGVpciBkcmF3aW5nIGNvZGUuCi0gICAgaWYgKGRvY3VtZW50KCkuaXNJbWFnZURvY3VtZW50KCkp
Ci0gICAgICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2U7Ci0jZW5kaWYKLSAg
ICAvLyBSZXNwZWN0IHRoZSBpbWFnZSdzIG9yaWVudGF0aW9uIGlmIGl0J3MgYmVpbmcgdXNlZCBh
cyBhIGZ1bGwtcGFnZSBpbWFnZSBvciBpdCdzCi0gICAgLy8gYW4gPGltZz4gYW5kIHRoZSBzZXR0
aW5nIHRvIHJlc3BlY3QgaXQgZXZlcnl3aGVyZSBpcyBzZXQuCi0gICAgaWYgKHNldHRpbmdzKCku
c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSAmJiBpczxIVE1MSW1hZ2VFbGVtZW50Pihl
bGVtZW50KCkpKQotICAgICAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOwot
ICAgIHJldHVybiBzdHlsZSgpLmltYWdlT3JpZW50YXRpb24oKTsKKyAgICByZXR1cm4gSW1hZ2VP
cmllbnRhdGlvbjo6RnJvbUltYWdlOwogfQogCiB2b2lkIFJlbmRlckVsZW1lbnQ6OmFkanVzdEZy
YWdtZW50ZWRGbG93U3RhdGVPbkNvbnRhaW5pbmdCbG9ja0NoYW5nZUlmTmVlZGVkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4
IDkxM2JiNDEzYjk0MmYxZTA2MjZjZjU4YzE0NWFiMzI2YjcxY2MyOTYuLjdhYzA0YjhiYTRmNDE1
MTNiM2ZjYmFmMTkzMWJjZjQ0ODA1Yzk0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIHZvaWQg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50U25hcHNob3RJbWFnZShQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0CiAgICAgICAgIHJldHVybjsKIAogICAgIEludGVycG9sYXRpb25R
dWFsaXR5IGludGVycG9sYXRpb24gPSBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0
LCBpbWFnZSwgJmltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQuZHJhd0lt
YWdlKGltYWdlLCBhbGlnbmVkUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMoaW1hZ2VPcmllbnRh
dGlvbigpLCBpbnRlcnBvbGF0aW9uKSk7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIGFs
aWduZWRSZWN0LCB7IGltYWdlT3JpZW50YXRpb24oKSwgaW50ZXJwb2xhdGlvbiB9KTsKIH0KIAog
dm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggZjUxZTJmZWIzN2UxZmNmMGZkMGU3OTFhZTY0ZjAz
ZWU4OGEyYTdjOC4uMDhkNWNmOGM4MGVhYTY3NmRiODdiZjJjNDRlYzAxMzc3MjQxMDJmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC00NjksNyArNDY5LDcg
QEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICAgICAgICAgICAgICAgICAgY2VudGVyWSA9
IDA7CiAgICAgICAgICAgICAgICAgaW1hZ2VPZmZzZXQgPSBMYXlvdXRTaXplKGxlZnRCb3JkZXIg
KyBsZWZ0UGFkICsgY2VudGVyWCArIG1pc3NpbmdJbWFnZUJvcmRlcldpZHRoLCB0b3BCb3JkZXIg
KyB0b3BQYWQgKyBjZW50ZXJZICsgbWlzc2luZ0ltYWdlQm9yZGVyV2lkdGgpOwogCi0gICAgICAg
ICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoKmltYWdlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxz
KExheW91dFJlY3QocGFpbnRPZmZzZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VTaXplKSwgZGV2aWNl
U2NhbGVGYWN0b3IpLCBpbWFnZU9yaWVudGF0aW9uKCkpOworICAgICAgICAgICAgICAgIGNvbnRl
eHQuZHJhd0ltYWdlKCppbWFnZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyhMYXlvdXRSZWN0KHBh
aW50T2Zmc2V0ICsgaW1hZ2VPZmZzZXQsIGltYWdlU2l6ZSksIGRldmljZVNjYWxlRmFjdG9yKSwg
eyBpbWFnZU9yaWVudGF0aW9uKCkgfSk7CiAgICAgICAgICAgICAgICAgZXJyb3JQaWN0dXJlRHJh
d24gPSB0cnVlOwogICAgICAgICAgICAgfQogCkBAIC02MTcsMTEgKzYxNyw4IEBAIEltYWdlRHJh
d1Jlc3VsdCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgRmxvYXRSZWN0CiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhp
bmc7CiAKICAgICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZUVsZW1lbnQgPSBpczxIVE1MSW1hZ2VF
bGVtZW50PihlbGVtZW50KCkpID8gZG93bmNhc3Q8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCgp
KSA6IG51bGxwdHI7Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBp
bWFnZUVsZW1lbnQgPyBpbWFnZUVsZW1lbnQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3Np
dGVTb3VyY2VPdmVyOwotCiAgICAgLy8gRklYTUU6IERvY3VtZW50IHdoZW4gaW1hZ2UgIT0gaW1n
LmdldCgpLgogICAgIEltYWdlKiBpbWFnZSA9IGltYWdlUmVzb3VyY2UoKS5pbWFnZSgpLmdldCgp
OwotICAgIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb24gPSBpbWFnZSA/IGNob29z
ZUludGVycG9sYXRpb25RdWFsaXR5KHBhaW50SW5mby5jb250ZXh0KCksICppbWFnZSwgaW1hZ2Us
IExheW91dFNpemUocmVjdC5zaXplKCkpKSA6IEludGVycG9sYXRpb25EZWZhdWx0OwogCiAjaWYg
VVNFKENHKQogICAgIGlmIChpczxQREZEb2N1bWVudEltYWdlPihpbWFnZSkpCkBAIC02MzEsOCAr
NjI4LDE0IEBAIEltYWdlRHJhd1Jlc3VsdCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0CiAgICAgaWYgKGlzPEJpdG1hcEltYWdl
PihpbWFnZSkpCiAgICAgICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpLnVwZGF0ZUZy
b21TZXR0aW5ncyhzZXR0aW5ncygpKTsKIAotICAgIGF1dG8gZGVjb2RpbmdNb2RlID0gZGVjb2Rp
bmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKTsKLSAgICBhdXRvIGRyYXdSZXN1
bHQgPSBwYWludEluZm8uY29udGV4dCgpLmRyYXdJbWFnZSgqaW1nLCByZWN0LCBJbWFnZVBhaW50
aW5nT3B0aW9ucyhjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlOjpOb3JtYWwsIGRlY29kaW5n
TW9kZSwgaW1hZ2VPcmllbnRhdGlvbigpLCBpbnRlcnBvbGF0aW9uKSk7CisgICAgSW1hZ2VQYWlu
dGluZ09wdGlvbnMgb3B0aW9ucyA9IHsKKyAgICAgICAgaW1hZ2VFbGVtZW50ID8gaW1hZ2VFbGVt
ZW50LT5jb21wb3NpdGVPcGVyYXRvcigpIDogQ29tcG9zaXRlU291cmNlT3ZlciwKKyAgICAgICAg
ZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKSwKKyAgICAgICAgaW1h
Z2VPcmllbnRhdGlvbigpLAorICAgICAgICBpbWFnZSA/IGNob29zZUludGVycG9sYXRpb25RdWFs
aXR5KHBhaW50SW5mby5jb250ZXh0KCksICppbWFnZSwgaW1hZ2UsIExheW91dFNpemUocmVjdC5z
aXplKCkpKSA6IEludGVycG9sYXRpb25EZWZhdWx0CisgICAgfTsKKyAgICAKKyAgICBhdXRvIGRy
YXdSZXN1bHQgPSBwYWludEluZm8uY29udGV4dCgpLmRyYXdJbWFnZSgqaW1nLCByZWN0LCBvcHRp
b25zKTsKICAgICBpZiAoZHJhd1Jlc3VsdCA9PSBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlcXVlc3RE
ZWNvZGluZykKICAgICAgICAgaW1hZ2VSZXNvdXJjZSgpLmNhY2hlZEltYWdlKCktPmFkZENsaWVu
dFdhaXRpbmdGb3JBc3luY0RlY29kaW5nKCp0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5kZXggMGRmZTI4Mjc2
NGY0MDhiNjIwYmVmNWQ5ZjU4ZTg4YTZjYzc2YzA4NC4uNGZlODU4NjI1YzkyOWQ4MGJlY2FmZWE2
NmYwNjRlMzQyMTgxMjVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG8KICAgICAgICAgcmV0dXJuOwogCiAgICAgSW50ZXJwb2xhdGlvblF1YWxp
dHkgaW50ZXJwb2xhdGlvbiA9IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KGNvbnRleHQsICpp
bWFnZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7Ci0gICAgY29udGV4dC5kcmF3SW1hZ2Uo
KmltYWdlLCBhbGlnbmVkUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMoaW1hZ2VPcmllbnRhdGlv
bigpLCBpbnRlcnBvbGF0aW9uKSk7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoKmltYWdlLCBhbGln
bmVkUmVjdCwgeyBpbWFnZU9yaWVudGF0aW9uKCksIGludGVycG9sYXRpb24gfSk7CiB9CiAKIEN1
cnNvckRpcmVjdGl2ZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6Z2V0Q3Vyc29yKGNvbnN0IExh
eW91dFBvaW50JiBwb2ludCwgQ3Vyc29yJiBvdmVycmlkZUN1cnNvcikgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA0NGNiMjAwMWMwYmU4YWI0
Mjc3NmY1NTc1NmUxNDQwMzc1YzAxN2JhLi5hNDJjZTZlYzJkNjkzOWMwMDE2MWYxNzliZTI2NDRl
MTI0MjkyNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
CkBAIC0yMjc4LDcgKzIyNzgsNyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFNuYXBzaG90
dGVkUGx1Z2luT3ZlcmxheShjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyLAogICAgIGlmIChh
bGlnbmVkUGx1Z2luUmVjdC53aWR0aCgpIDw9IDAgfHwgYWxpZ25lZFBsdWdpblJlY3QuaGVpZ2h0
KCkgPD0gMCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBjb250ZXh0LmRyYXdJbWFnZSgq
c25hcHNob3QsIGFsaWduZWRQbHVnaW5SZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICBj
b250ZXh0LmRyYXdJbWFnZSgqc25hcHNob3QsIGFsaWduZWRQbHVnaW5SZWN0KTsKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmlu
ZGV4IDVjNTZiNjk5OTViYzkyZjRjYTg4MWUyYjkxZTlmMzdmZjVjMzhmNTIuLjAwYWJjMGQxMjcz
YjBmZWNlMDEzNzdlZTliOThjYWM3ZDVmODZlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcApAQCAtMTc4LDcgKzE3OCw3IEBAIEludFNpemUgU1ZHSW1hZ2U6OmNv
bnRhaW5lclNpemUoKSBjb25zdAogfQogCiBJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXdG
b3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFNpemUgY29u
dGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21l
bnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwKLSAgICBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
KQorICAgIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBJbWFnZURy
YXdSZXN1bHQ6OkRpZE5vdGhpbmc7CkBAIC0yMDIsNyArMjAyLDcgQEAgSW1hZ2VEcmF3UmVzdWx0
IFNWR0ltYWdlOjpkcmF3Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXQKIAogICAgIGZyYW1lVmlldygpLT5zY3JvbGxUb0ZyYWdtZW50KGluaXRpYWxGcmFn
bWVudFVSTCk7CiAKLSAgICBJbWFnZURyYXdSZXN1bHQgcmVzdWx0ID0gZHJhdyhjb250ZXh0LCBk
c3RSZWN0LCBzY2FsZWRTcmMsIGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUsIERlY29kaW5nTW9kZTo6
U3luY2hyb25vdXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUpOworICAgIEltYWdlRHJhd1Jlc3Vs
dCByZXN1bHQgPSBkcmF3KGNvbnRleHQsIGRzdFJlY3QsIHNjYWxlZFNyYywgb3B0aW9ucyk7CiAK
ICAgICBzZXRJbWFnZU9ic2VydmVyKG9ic2VydmVyKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAt
MjIxLDcgKzIyMSw3IEBAIE5hdGl2ZUltYWdlUHRyIFNWR0ltYWdlOjpuYXRpdmVJbWFnZUZvckN1
cnJlbnRGcmFtZShjb25zdCBHcmFwaGljc0NvbnRleHQqKQogICAgIGlmICghYnVmZmVyKSAvLyBm
YWlsZWQgdG8gYWxsb2NhdGUgaW1hZ2UKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBk
cmF3KGJ1ZmZlci0+Y29udGV4dCgpLCByZWN0KCksIHJlY3QoKSwgQ29tcG9zaXRlU291cmNlT3Zl
ciwgQmxlbmRNb2RlOjpOb3JtYWwsIERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUpOworICAgIGRyYXcoYnVmZmVyLT5jb250ZXh0KCksIHJlY3QoKSwgcmVj
dCgpKTsKIAogICAgIC8vIEZJWE1FOiBXSyhCdWcgMTEzNjU3KTogV2Ugc2hvdWxkIHVzZSBEb250
Q29weUJhY2tpbmdTdG9yZSBoZXJlLgogICAgIHJldHVybiBidWZmZXItPmNvcHlJbWFnZShDb3B5
QmFja2luZ1N0b3JlKS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKQEAgLTI0NywxNCAr
MjQ3LDE0IEBAIE5hdGl2ZUltYWdlUHRyIFNWR0ltYWdlOjpuYXRpdmVJbWFnZShjb25zdCBHcmFw
aGljc0NvbnRleHQqIHRhcmdldENvbnRleHQpCiAgICAgUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQg
cGxhdGZvcm1Db250ZXh0KG5hdGl2ZUltYWdlVGFyZ2V0LmdldCgpKTsKICAgICBHcmFwaGljc0Nv
bnRleHQgbG9jYWxDb250ZXh0KCZwbGF0Zm9ybUNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDo6Qml0
bWFwUmVuZGVyaW5nQ29udGV4dFR5cGU6OkdQVU1lbW9yeSk7CiAKLSAgICBkcmF3KGxvY2FsQ29u
dGV4dCwgcmVjdCgpLCByZWN0KCksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZTo6Tm9y
bWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsK
KyAgICBkcmF3KGxvY2FsQ29udGV4dCwgcmVjdCgpLCByZWN0KCkpOwogCiAgICAgcmV0dXJuIG5h
dGl2ZUltYWdlOwogfQogI2VuZGlmCiAKIHZvaWQgU1ZHSW1hZ2U6OmRyYXdQYXR0ZXJuRm9yQ29u
dGFpbmVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRTaXplJiBjb250YWlu
ZXJTaXplLCBmbG9hdCBjb250YWluZXJab29tLCBjb25zdCBVUkwmIGluaXRpYWxGcmFnbWVudFVS
TCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LAotICAgIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9h
dFNpemUmIHNwYWNpbmcsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgRmxvYXRSZWN0IHpvb21lZENvbnRhaW5lclJl
Y3QgPSBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBjb250YWluZXJTaXplKTsKICAgICB6b29tZWRD
b250YWluZXJSZWN0LnNjYWxlKGNvbnRhaW5lclpvb20pOwpAQCAtMjcxLDcgKzI3MSw3IEBAIHZv
aWQgU1ZHSW1hZ2U6OmRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRTaXplCiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBi
dWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihleHBhbmRlZEludFNp
emUoaW1hZ2VCdWZmZXJTaXplLnNpemUoKSksIDEsIENvbG9yU3BhY2VTUkdCLCBjb250ZXh0KTsK
ICAgICBpZiAoIWJ1ZmZlcikgLy8gRmFpbGVkIHRvIGFsbG9jYXRlIGJ1ZmZlci4KICAgICAgICAg
cmV0dXJuOwotICAgIGRyYXdGb3JDb250YWluZXIoYnVmZmVyLT5jb250ZXh0KCksIGNvbnRhaW5l
clNpemUsIGNvbnRhaW5lclpvb20sIGluaXRpYWxGcmFnbWVudFVSTCwgaW1hZ2VCdWZmZXJTaXpl
LCB6b29tZWRDb250YWluZXJSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGU6Ok5v
cm1hbCk7CisgICAgZHJhd0ZvckNvbnRhaW5lcihidWZmZXItPmNvbnRleHQoKSwgY29udGFpbmVy
U2l6ZSwgY29udGFpbmVyWm9vbSwgaW5pdGlhbEZyYWdtZW50VVJMLCBpbWFnZUJ1ZmZlclNpemUs
IHpvb21lZENvbnRhaW5lclJlY3QpOwogICAgIGlmIChjb250ZXh0LmRyYXdMdW1pbmFuY2VNYXNr
KCkpCiAgICAgICAgIGJ1ZmZlci0+Y29udmVydFRvTHVtaW5hbmNlTWFzaygpOwogCkBAIC0yODYs
MTAgKzI4NiwxMCBAQCB2b2lkIFNWR0ltYWdlOjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0U2l6ZQogICAgIHVuc2NhbGVkUGF0dGVy
blRyYW5zZm9ybS5zY2FsZSgxIC8gaW1hZ2VCdWZmZXJTY2FsZS53aWR0aCgpLCAxIC8gaW1hZ2VC
dWZmZXJTY2FsZS5oZWlnaHQoKSk7CiAKICAgICBjb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNr
KGZhbHNlKTsKLSAgICBpbWFnZS0+ZHJhd1BhdHRlcm4oY29udGV4dCwgZHN0UmVjdCwgc2NhbGVk
U3JjUmVjdCwgdW5zY2FsZWRQYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9z
aXRlT3AsIGJsZW5kTW9kZSk7CisgICAgaW1hZ2UtPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJl
Y3QsIHNjYWxlZFNyY1JlY3QsIHVuc2NhbGVkUGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNp
bmcsIG9wdGlvbnMpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBi
bGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3Vs
dCBTVkdJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIElt
YWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKQEAgLTI5OCwxMSArMjk4LDExIEBAIEltYWdlRHJh
d1Jlc3VsdCBTVkdJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjCiAgICAgQVNTRVJUKHZpZXcpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwotICAgIGNvbnRleHQuc2V0Q29tcG9zaXRl
T3BlcmF0aW9uKGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGNvbnRleHQuc2V0Q29tcG9z
aXRlT3BlcmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1v
ZGUoKSk7CiAgICAgY29udGV4dC5jbGlwKGVuY2xvc2luZ0ludFJlY3QoZHN0UmVjdCkpOwogCiAg
ICAgZmxvYXQgYWxwaGEgPSBjb250ZXh0LmFscGhhKCk7Ci0gICAgYm9vbCBjb21wb3NpdGluZ1Jl
cXVpcmVzVHJhbnNwYXJlbmN5TGF5ZXIgPSBjb21wb3NpdGVPcCAhPSBDb21wb3NpdGVTb3VyY2VP
dmVyIHx8IGJsZW5kTW9kZSAhPSBCbGVuZE1vZGU6Ok5vcm1hbCB8fCBhbHBoYSA8IDE7CisgICAg
Ym9vbCBjb21wb3NpdGluZ1JlcXVpcmVzVHJhbnNwYXJlbmN5TGF5ZXIgPSBvcHRpb25zLmNvbXBv
c2l0ZU9wZXJhdG9yKCkgIT0gQ29tcG9zaXRlU291cmNlT3ZlciB8fCBvcHRpb25zLmJsZW5kTW9k
ZSgpICE9IEJsZW5kTW9kZTo6Tm9ybWFsIHx8IGFscGhhIDwgMTsKICAgICBpZiAoY29tcG9zaXRp
bmdSZXF1aXJlc1RyYW5zcGFyZW5jeUxheWVyKSB7CiAgICAgICAgIGNvbnRleHQuYmVnaW5UcmFu
c3BhcmVuY3lMYXllcihhbHBoYSk7CiAgICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0
aW9uKENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZTo6Tm9ybWFsKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggMDc1NDI0ZmM3NWRiZGUwOTkxNzBmZjNmNmVi
YTZlNmM3MWZkMmUxNS4uOWFkOTM1OGM3MTFiYTIyMWMyZDkyYTVhNzk1OTlkYjU0MmI3ODVkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3KCkgY29uc3Q7CiAKICAgICBib29sIGlz
U1ZHSW1hZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgRmxvYXRTaXplIHNp
emUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ludHJpbnNpY1NpemU7IH0KKyAgICBGbG9hdFNp
emUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2ludHJpbnNpY1NpemU7IH0KIAogICAgIGJvb2wgaGFzU2lu
Z2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBmaW5hbDsKIApAQCAtOTQsMTAgKzk0LDkgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uVGltZXJGaXJlZCgpOwogCiAgICAgZXhwbGlj
aXQgU1ZHSW1hZ2UoSW1hZ2VPYnNlcnZlciYpOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZnJvbVJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdG9SZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIElt
YWdlT3JpZW50YXRpb24pIGZpbmFsOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3Rm9yQ29udGFp
bmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSBjb250YWluZXJTaXplLCBmbG9h
dCBjb250YWluZXJab29tLCBjb25zdCBVUkwmIGluaXRpYWxGcmFnbWVudFVSTCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yLCBCbGVuZE1vZGUpOwotICAgIHZvaWQgZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplJiBjb250YWluZXJTaXplLCBmbG9hdCBjb250YWlu
ZXJab29tLCBjb25zdCBVUkwmIGluaXRpYWxGcmFnbWVudFVSTCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLAotICAgICAgICBDb21wb3NpdGVPcGVyYXRvciwgY29u
c3QgRmxvYXRSZWN0JiwgQmxlbmRNb2RlKTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRvUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKKyAgICBJ
bWFnZURyYXdSZXN1bHQgZHJhd0ZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFNpemUgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBp
bml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIHZv
aWQgZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRT
aXplJiBjb250YWluZXJTaXplLCBmbG9hdCBjb250YWluZXJab29tLCBjb25zdCBVUkwmIGluaXRp
YWxGcmFnbWVudFVSTCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5n
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwog
CiAgICAgUmVmUHRyPFNWR1NWR0VsZW1lbnQ+IHJvb3RFbGVtZW50KCkgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3Bw
CmluZGV4IGNmOGNjM2U1Y2VjOGU4MTJkZTY5YTlmNDRhZGJiN2IwNWM1NWMwMDUuLmVhZWZjMzFl
NDdkMDIxNTFkNjkwYzVjZDY1ZjVlODMxYjMxYWYzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcApAQCAtMjcsMjMgKzI3
LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRmxvYXRTaXplIFNWR0ltYWdlRm9yQ29u
dGFpbmVyOjpzaXplKCkgY29uc3QKK0Zsb2F0U2l6ZSBTVkdJbWFnZUZvckNvbnRhaW5lcjo6c2l6
ZShJbWFnZU9yaWVudGF0aW9uKSBjb25zdAogewogICAgIEZsb2F0U2l6ZSBzY2FsZWRDb250YWlu
ZXJTaXplKG1fY29udGFpbmVyU2l6ZSk7CiAgICAgc2NhbGVkQ29udGFpbmVyU2l6ZS5zY2FsZSht
X2NvbnRhaW5lclpvb20pOwogICAgIHJldHVybiBGbG9hdFNpemUocm91bmRlZEludFNpemUoc2Nh
bGVkQ29udGFpbmVyU2l6ZSkpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2VGb3JDb250
YWluZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsCi0gICAgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBj
b21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlRm9yQ29udGFpbmVyOjpkcmF3KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewot
ICAgIHJldHVybiBtX2ltYWdlLT5kcmF3Rm9yQ29udGFpbmVyKGNvbnRleHQsIG1fY29udGFpbmVy
U2l6ZSwgbV9jb250YWluZXJab29tLCBtX2luaXRpYWxGcmFnbWVudFVSTCwgZHN0UmVjdCwgc3Jj
UmVjdCwgY29tcG9zaXRlT3AsIGJsZW5kTW9kZSk7CisgICAgcmV0dXJuIG1faW1hZ2UtPmRyYXdG
b3JDb250YWluZXIoY29udGV4dCwgbV9jb250YWluZXJTaXplLCBtX2NvbnRhaW5lclpvb20sIG1f
aW5pdGlhbEZyYWdtZW50VVJMLCBkc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKIH0KIAogdm9p
ZCBTVkdJbWFnZUZvckNvbnRhaW5lcjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9y
IGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQorICAgIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQogewotICAgIG1faW1hZ2UtPmRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKGNv
bnRleHQsIG1fY29udGFpbmVyU2l6ZSwgbV9jb250YWluZXJab29tLCBtX2luaXRpYWxGcmFnbWVu
dFVSTCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0
ZU9wLCBkc3RSZWN0LCBibGVuZE1vZGUpOworICAgIG1faW1hZ2UtPmRyYXdQYXR0ZXJuRm9yQ29u
dGFpbmVyKGNvbnRleHQsIG1fY29udGFpbmVyU2l6ZSwgbV9jb250YWluZXJab29tLCBtX2luaXRp
YWxGcmFnbWVudFVSTCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcs
IGRzdFJlY3QsIG9wdGlvbnMpOwogfQogCiBOYXRpdmVJbWFnZVB0ciBTVkdJbWFnZUZvckNvbnRh
aW5lcjo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29uc3QgR3JhcGhpY3NDb250ZXh0KiB0
YXJnZXRDb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlRm9yQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2VGb3JDb250YWluZXIuaAppbmRleCA4NjlkMDk3MWM1YjJmZTVkNDk1MWRkNjAzNDBhZTM2M2Nm
Nzc2ZjA0Li5lNjQ0ZjdhY2YzMGVjMjI0ZGY4NTE1ZDg3ZjcyYzJhZTFiYjM0YTVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaApA
QCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU1ZHSW1hZ2UoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IGZpbmFs
OworICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9u
OjpGcm9tSW1hZ2UpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCB1c2VzQ29udGFpbmVyU2l6ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW1hZ2UtPnVzZXNDb250YWluZXJTaXplKCk7IH0KICAg
ICBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ltYWdlLT5o
YXNSZWxhdGl2ZVdpZHRoKCk7IH0KQEAgLTUzLDkgKzUzLDkgQEAgcHVibGljOgogICAgICAgICBt
X2ltYWdlLT5jb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhpbnRyaW5zaWNXaWR0aCwgaW50cmlu
c2ljSGVpZ2h0LCBpbnRyaW5zaWNSYXRpbyk7CiAgICAgfQogCi0gICAgSW1hZ2VEcmF3UmVzdWx0
IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0
JiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uKSBmaW5hbDsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgPSB7IH0pIGZpbmFsOwogCi0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwgQ29tcG9zaXRl
T3BlcmF0b3IsIEJsZW5kTW9kZSkgZmluYWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKIAogICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGhpcyB0byBiZSBsZXNzIGNvbnNlcnZhdGl2ZS4KICAgICBib29sIGN1cnJlbnRGcmFt
ZUtub3duVG9CZU9wYXF1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDU1MmVmMWE4ZmUyZDU1NTY0M2FlOTVjNTQ1YTYwNWNmNzVhN2IzNWMuLmQxZmVmYzZlODNkNjEz
MTNiMWJjYzFjM2ExN2U0NjMxYTA2NDg5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yNjE4LDcgKzI2MTgsNyBAQCBz
dGF0aWMgdm9pZCBpbWFnZVBvc2l0aW9uSW5mb3JtYXRpb24oV2ViUGFnZSYgcGFnZSwgRWxlbWVu
dCYgZWxlbWVudCwgY29uc3QgSW50ZQogICAgIGlmICghZ3JhcGhpY3NDb250ZXh0KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZSgqaW1hZ2UsIEZsb2F0
UmVjdCgwLCAwLCBiaXRtYXBTaXplLndpZHRoKCksIGJpdG1hcFNpemUuaGVpZ2h0KCkpLCByZW5k
ZXJJbWFnZS5pbWFnZU9yaWVudGF0aW9uKCkpOworICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0lt
YWdlKCppbWFnZSwgRmxvYXRSZWN0KDAsIDAsIGJpdG1hcFNpemUud2lkdGgoKSwgYml0bWFwU2l6
ZS5oZWlnaHQoKSksIHsgcmVuZGVySW1hZ2UuaW1hZ2VPcmllbnRhdGlvbigpIH0pOwogICAgIGlu
Zm8uaW1hZ2UgPSBzaGFyZWRCaXRtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5M2M5ZDMxZDU1YTFkYmI4Nzgx
NDEzZmFkYzNmYzFmYWRlOWUxYThjLi4zMzMyYzllOTQ5MTU0NGNmZWMzMWE1ODk0ZGVjNDEyY2Nl
ZDZjNGNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTktMDgtMjUgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBFWElGIG9yaWVudGF0aW9u
IHNob3VsZCBiZSByZXNwZWN0ZWQgd2hlbiByZW5kZXJpbmcgaW1hZ2VzIAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgYXJlIG1h
ZGUgcmVmLXRlc3RzLiBOZXcgdGVzdHMgd2VyZSBhZGRlZCB0byBjb3ZlciBtb3JlCisgICAgICAg
IGNhc2VzIGZvciBkcmF3aW5nIGltYWdlcy4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYt
b3JpZW50YXRpb24tY29tcG9zaXRlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1p
bWFnZS1kb2N1bWVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVudC5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91
bmQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
Y2FudmFzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1l
bnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
aW1hZ2Utb2JqZWN0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVu
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1z
dmctZmVpbWFnZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTA4LTIyICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBTaG91bGQgc2hvdyBp
bnB1dCB2aWV3IHdoZW4gYmVjYW1lIGZpcnN0IHJlc3BvbmRlciBpZiBrZXlib2FyZCB3YXMgc2hv
d2luZyB3aGVuIHRoZSB2aWV3IHdhcyByZXNpZ25lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2YjE1OGJlYzU2YzE5ZTI2OTg1
ZGUwMjg0ODQ2YzQ5MjI1ZGFmMmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21w
b3NpdGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSBp
bWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9u
LiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFudWFs
bHkgc2V0dGluZyBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVlKS4K
LQotCi1GbGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQgMTgwwrAgCi1GbGlwcGVkIHZlcnRp
Y2FsbHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0
ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAgCi1S
b3RhdGVkIDkwwrAgQ1cgCi1pbWcxIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWcyIHNpemUgPSAx
MDBweCBieSA1MHB4Ci1pbWczIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc0IHNpemUgPSA1MHB4
IGJ5IDEwMHB4Ci1pbWc1IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc2IHNpemUgPSA1MHB4IGJ5
IDEwMHB4Ci1pbWc3IHNpemUgPSA1MHB4IGJ5IDEwMHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGNmZjA5YTQ3MmY0YjkxMGMxZjllZGU1NjUwZWViYTIz
MDUyZGUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotCi1mdW5jdGlvbiBsb2coc3RyKSB7Ci0gICAg
dmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAgICBsaS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2YXIgY29uc29sZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0gICAgY29uc29sZS5hcHBlbmRDaGlsZChs
aSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewotICAgIHZhciBjb21wdXRlZFN0eWxl
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAgIHJldHVybiBjb21wdXRlZFN0eWxl
LndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7Ci19Ci0KLQotZnVuY3Rpb24g
bG9hZCgpIHsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDc7IGkrKykKLSAgICAgICAgbG9nKCJp
bWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImltZyIgKyBpKSkpCi19Ci0KLTwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsgLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZVooMCk7IH0KLWRpdiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFy
Z2luLXJpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDogMTAwcHg7IHZlcnRp
Y2FsLWFsaWduOiB0b3A7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQo
KSI+Ci08Yj5UaGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJ
RiBvcmllbnRhdGlvbi4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIHRlc3RSdW5uZXIg
KG9yIGJ5IG1hbnVhbGx5IHNldHRpbmcgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24gdG8gdHJ1ZSkuPC9iPjxicj48YnI+Ci08ZGl2PjxpbWcgaWQ9ImltZzEiIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjxicj5GbGlwcGVkIGhvcml6b250YWxseTwv
ZGl2PgotPGRpdj48aW1nIGlkPSJpbWcyIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTMtbHIuanBnIj48YnI+Um90YXRlZCAxODAmZGVnOzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWcz
IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PGJyPkZsaXBwZWQg
dmVydGljYWxseTwvZGl2PgotPGJyPgotPGRpdj48aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXPC9k
aXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
Ny1ybC5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSA8
L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi04LWxsby5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTx1bCBpZD0i
Y29uc29sZSI+PC91bD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAyMjQ1YjYwYmJiOGQyZDExOWU5ZTA3ZTgzMDViZDYz
MTE4NTYxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Ob25lIG9mIHRoZSBpbWFnZXMgc2hvdWxk
IGJlIHJvdGF0ZWQuIFRoaXMgdGVzdCBpcyBvbmx5IHZhbGlkIHdoZW4gcnVuIHdpdGggdGVzdFJ1
bm5lciAob3Igd2l0aCBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBtYW51YWxs
eSBzZXQgdG8gdHJ1ZSkuCi0KLQotTm9ybWFsIAotRmxpcHBlZCBob3Jpem9udGFsbHkgCi1Sb3Rh
dGVkIDE4MMKwIAotRmxpcHBlZCB2ZXJ0aWNhbGx5IAotCi1Sb3RhdGVkIDkwwrAgQ0NXIGFuZCBm
bGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ0NXIAotUm90YXRlZCA5MMKwIENXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ1cgCi0KLVJvdGF0ZWQgOTDCsCBD
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkw
wrAgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDVyAKLQotVW5kZWZp
bmVkIChpbnZhbGlkIHZhbHVlKSAKLWltZzEgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6
ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9
IDEwMHB4IGJ5IDUwcHgKLWltZzUgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzYgc2l6ZSA9IDEw
MHB4IGJ5IDUwcHgKLWltZzcgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzggc2l6ZSA9IDEwMHB4
IGJ5IDUwcHgKLWltZzkgc2l6ZSA9IDEwMHB4IGJ5IDEwMHB4Ci1pbWcxMCBzaXplID0gMTAwcHgg
YnkgMTAwcHgKLWltZzExIHNpemUgPSAxMDBweCBieSAxMDBweAotaW1nMTIgc2l6ZSA9IDEwMHB4
IGJ5IDEwMHB4Ci1pbWcxMyBzaXplID0gMTAwcHggYnkgNTBweApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc0MTdmNTU4OTIxMzM2NDZkMzg2NmEwYmFlZWIzNjE2ODJlYjFmYmMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDU1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uKHRydWUpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCh0cnVlKTsKLQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoc3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5jdGlv
biBpbWFnZVNpemUoZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGVsKTsKLSAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkgIiAr
IGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAgZm9y
KHZhciBpID0gMTsgaSA8PSAxMzsgaSsrKQotICAgICAgICBsb2coImltZyIgKyBpICsgIiBzaXpl
ID0gIiArIGltYWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIiArIGkpKSkKLX0K
LQotPC9zY3JpcHQ+Ci08c3R5bGU+Ci1kaXYuaW1hZ2UgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci1kaXYuY29udGFpbmVyIHsgZGlzcGxheTogaW5s
aW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IHdpZHRo
OiAxMDBweDsgdmVydGljYWwtYWxpZ246IHRvcDsgfQotaW1nIHsgd2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9Ci08L3N0eWxlPgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+Tm9uZSBvZiB0aGUgaW1hZ2VzIHNob3Vs
ZCBiZSByb3RhdGVkLiBUaGlzIHRlc3QgaXMgb25seSB2YWxpZCB3aGVuIHJ1biB3aXRoIHRlc3RS
dW5uZXIgKG9yIHdpdGggV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gbWFudWFs
bHkgc2V0IHRvIHRydWUpLjwvYj48YnI+PGJyPgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2
IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzEiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rpdj48YnI+Tm9ybWFsPC9kaXY+Ci08ZGl2IGNs
YXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMiIgc3R5bGU9ImNvbnRl
bnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZykiPjwvZGl2Pjxicj5G
bGlwcGVkIGhvcml6b250YWxseTwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNs
YXNzPSJpbWFnZSIgaWQ9ImltZzMiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMy1sci5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCAxODAmZGVnOzwvZGl2Pgot
PGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzQiIHN0eWxl
PSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+PC9k
aXY+PGJyPkZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGJyPgotPGRpdiBjbGFzcz0iY29udGFp
bmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzUiIHN0eWxlPSJjb250ZW50OiB1cmwocmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCA5MCZk
ZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nNiIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRl
ZzsgQ0NXPC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBp
ZD0iaW1nNyIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03
LXJsLmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGlj
YWxseTwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9
ImltZzgiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1s
bG8uanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPGRpdiBj
bGFzcz0iY29udGFpbmVyIj48aW1nIGlkPSJpbWc5IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTog
dXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnKSI+PC9pbWc+PGJyPlJvdGF0
ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj48aW1nIGlkPSJpbWcxMCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZykiPjwvaW1nPjxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXPC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzExIiBz
dHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTct
cmwuanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNh
bGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzEyIiBzdHlsZT0i
YmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpw
ZykiPjwvaW1nPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWcxMyIgc3R5bGU9ImNvbnRlbnQ6
IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+PGJyPlVuZGVm
aW5lZCAoaW52YWxpZCB2YWx1ZSk8L2Rpdj4KLTxicj4KLTx1bCBpZD0iY29uc29sZSI+PC91bD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4
aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRmNDg4MzIzZjQ5NGEwNmI3NDkwYWY2MDM5N2QxNGY5MjAxYWUzYWQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCww
IEBACi1UaGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBv
cmllbnRhdGlvbi4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIHRlc3RSdW5uZXIgKG9y
IGJ5IG1hbnVhbGx5IHNldHRpbmcgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24g
dG8gdHJ1ZSkuCi0KLQotTm9ybWFsIAotRmxpcHBlZCBob3Jpem9udGFsbHkgCi1Sb3RhdGVkIDE4
MMKwIAotRmxpcHBlZCB2ZXJ0aWNhbGx5IAotCi1Sb3RhdGVkIDkwwrAgQ0NXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ0NXIAotUm90YXRlZCA5MMKwIENXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkgIAotUm90YXRlZCA5MMKwIENXIAotCi1VbmRlZmluZWQgKGludmFsaWQg
dmFsdWUpIAotaW1nMSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMiBzaXplID0gMTAwcHggYnkg
NTBweAotaW1nMyBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNCBzaXplID0gMTAwcHggYnkgNTBw
eAotaW1nNSBzaXplID0gNTBweCBieSAxMDBweAotaW1nNiBzaXplID0gNTBweCBieSAxMDBweAot
aW1nNyBzaXplID0gNTBweCBieSAxMDBweAotaW1nOCBzaXplID0gNTBweCBieSAxMDBweAotaW1n
OSBzaXplID0gMTAwcHggYnkgNTBweApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDczMTNiZTUyMzRmNWUyODY3YWQ0
ZDU2MDA2YTUzNWUwZWZjNmY0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdl
LWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGhl
IGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRp
b24uIEluIGltYWdlIGRvY3VtZW50cywgdGhpcyBoYXBwZW5zIGluZGVwZW5kZW50IG9mIFdlYktp
dFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLgotCi0gICAgCi0gICAgCi0gCi1QQVNTCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdl
LWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9u
LWltYWdlLWRvY3VtZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyMWIz
ZTU1OGI5NDQwMjhmYTZkMGZhNTk0OWU1ODc2NjBhYTA4ZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1v
cmllbnRhdGlvbi1pbWFnZS1kb2N1bWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICAvLyBOb3RlIHRoYXQgdGhpcyB0ZXN0IG9ubHkgcGFzc2VzIGluIERSVC4gSW4gYnJvd3Nl
cnMsIHRoZSBjcm9zcy1pZnJhbWUgZG9tIGluc3BlY3Rpb24gdXN1YWxseSBjYXVzZXMgYSBzZWN1
cml0eSBleGNlcHRpb24uCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotfQotCi1m
dW5jdGlvbiBsb2coc3RyKSB7Ci0gICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
bGkiKTsKLSAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsK
LSAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0g
ICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShuYW1l
KSB7Ci0gICAgdmFyIGltZyA9IHdpbmRvdy5mcmFtZXNbbmFtZV0uZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignaW1nJyk7Ci0gICAgcmV0dXJuIFtpbWcub2Zmc2V0V2lkdGgsIGltZy5vZmZzZXRIZWln
aHRdOwotfQotCi0KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAgdmFyIGV4cGVjdGVkID0gWwotICAg
ICAgWzEwMCwgNTBdLCBbMTAwLCA1MF0sIFsxMDAsIDUwXSwgWzEwMCwgNTBdLCAKLSAgICAgIFs1
MCwgMTAwXSwgWzUwLCAxMDBdLCBbNTAsIDEwMF0sIFs1MCwgMTAwXSwgCi0gICAgICBbMTAwLCA1
MF0sCi0gICAgXTsKLSAgICB2YXIgc3VjY2VzcyA9IHRydWU7Ci0gICAgZm9yKHZhciBpID0gMTsg
aSA8PSA5OyBpKyspIHsKLSAgICAgICAgdmFyIHMgPSBpbWFnZVNpemUoImltZyIgKyBpKTsKLSAg
ICAgICAgaWYgKHNbMF0gIT09IGV4cGVjdGVkW2kgLSAxXVswXSB8fCBzWzFdICE9PSBleHBlY3Rl
ZFtpIC0gMV1bMV0pCi0gICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAgfQotICAgIGxv
ZyhzdWNjZXNzID8gIlBBU1MiIDogIkZBSUwiKTsKLX0KLQotPC9zY3JpcHQ+Ci08c3R5bGU+Ci1p
ZnJhbWUgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2lu
LWJvdHRvbTogMTBweDsgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IDExMHB4OyB2ZXJ0aWNhbC1hbGln
bjogdG9wOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0ibG9hZCgpIj4KLTxiPlRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVz
cGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLiBJbiBpbWFnZSBkb2N1bWVudHMsIHRoaXMg
aGFwcGVucyBpbmRlcGVuZGVudCBvZiBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bi48L2I+PGJyPjxicj4KLTxpZnJhbWUgbmFtZT0iaW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFt
ZT0iaW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIgZnJhbWVi
b3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nMyIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0zLWxyLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUg
bmFtZT0iaW1nNCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciIGZy
YW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08YnI+Ci08aWZyYW1lIG5hbWU9ImltZzUiIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+
Ci08aWZyYW1lIG5hbWU9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1y
dS5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08aWZyYW1lIG5hbWU9ImltZzciIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJh
bWU+Ci08aWZyYW1lIG5hbWU9ImltZzgiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
OC1sbG8uanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGJyPgotPGlmcmFtZSBuYW1lPSJp
bWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciIGZyYW1lYm9yZGVy
PTA+PC9pZnJhbWU+Ci08YnI+Ci08dWwgaWQ9ImNvbnNvbGUiPjwvdWw+Ci08L2JvZHk+Ci08L2h0
bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ4YzgzYjBkNWYzZWQ1ZGU5MzA5Yjg2Mjc0
ZmUxNzE0YmYwNWE4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbih0cnVlKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIg
bGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsK
LX0KLQotZnVuY3Rpb24gaW1hZ2VTaXplKGVsKSB7Ci0gICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lk
dGggKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKLX0KLQotCi1mdW5jdGlvbiBsb2Fk
KCkgewotICAgIGZvcih2YXIgaSA9IDE7IGkgPD0gOTsgaSsrKQotICAgICAgICBsb2coImltZyIg
KyBpICsgIiBzaXplID0gIiArIGltYWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1n
IiArIGkpKSkKLX0KLQotPC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgeyBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsgfQotZGl2IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIw
cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiAxMDBweDsgdmVydGljYWwtYWxpZ246IHRv
cDsgfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLTxiPlRoZSBp
bWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9u
LiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFudWFs
bHkgc2V0dGluZyBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVlKS48
L2I+PGJyPjxicj4KLTxkaXY+PGltZyBpZD0iaW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyI+PGJyPk5vcm1hbDwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWcyIiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj48YnI+RmxpcHBlZCBob3Jp
em9udGFsbHk8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nMyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0zLWxyLmpwZyI+PGJyPlJvdGF0ZWQgMTgwJmRlZzs8L2Rpdj4KLTxkaXY+PGlt
ZyBpZD0iaW1nNCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciPjxi
cj5GbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxicj4KLTxkaXY+PGltZyBpZD0iaW1nNSIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc2IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj48YnI+Um90YXRlZCA5MCZk
ZWc7IENDVzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTctcmwuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHkgPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzgiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tOC1sbG8uanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+
Ci08ZGl2PjxpbWcgaWQ9ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11
LmpwZyI+PGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSk8L2Rpdj4KLTxicj4KLTx1bCBpZD0i
Y29uc29sZSI+PC91bD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzU2NmIwYWQ2MzA0YzllNTE0MDEwZTI2N2VlMmYxMmQ2
ZGMxMDRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
b3JpZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAg
IG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2
ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CisgICAgfQorICAgIGltZyB7
CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB0cmFuc2Zvcm0tb3Jp
Z2luOiBjZW50ZXI7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBjc3MgYmFj
a2dyb3VuZCBpbWFnZXMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBv
cmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciPgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDxicj5G
bGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPkZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFu
c2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7
Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJh
bnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZh
bHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMz
OTkxOWZlYTFiOWFiNWY5MGNhMjUwNDllNzRiNjYxM2VkMzRkZjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLmh0
bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNv
bnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2lu
LXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5p
bWFnZSB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Cisg
ICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRo
OiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4K
KyAgICA8Yj5UaGUgY3NzIGJhY2tncm91bmQgaW1hZ2VzIHNob3VsZCBiZSByZW5kZXJlZCByZXNw
ZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9y
aXpvbnRhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Ug
aG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0yLXVyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9u
dGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJs
KHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnKSI+PC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91
bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rp
dj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2
ZXJ0aWNhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi01LWx1LmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IEND
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGcpIj48
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNh
bCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBm
bGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImJhY2tncm91bmQt
aW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcpIj48L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jp
em9udGFsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTktdS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2
YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGVlMGFlOTZkMmNkMTlhMGMzMTFiNmYxMTBhYzI4Y2QzM2IyZTM1NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNh
bnZhcy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0
eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEw
cHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9w
OworICAgIH0KKyAgICBkaXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBt
YXJnaW4tYm90dG9tOiA2cHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4
IHNvbGlkIGJsYWNrOworICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7CisgICAgfQor
PC9zdHlsZT4KKzxib2R5PgorICAgIDxiPkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5kcmF3SW1h
Z2UoKSBzaG91bGQgcmVzcGVjdCB0aGUgaW1hZ2UgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAg
PGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+
Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
cm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgt
MSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwg
MjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1h
Z2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5
MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NX
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgp
IHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVn
KTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAg
IDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8
YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
Y2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q3MTFlZDNiNGUxMjhmYzAwOTFmMWVhZjU2ZGZmZDg1
Mjg1MDM4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMTAyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzdHlsZT4KKyAgICBkaXYgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cisg
ICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsK
KyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAg
IH0KKyAgICBjYW52YXMgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDog
NTBweDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIGNhbnZh
cy5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUw
cHg7CisgICAgfQorICAgIGNhbnZhcy52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4Owor
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZHJhd0ltYWdlKCkgc2hvdWxkIHJlc3BlY3QgdGhlIGlt
YWdlIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdj4K
KyAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczEiPjwvY2FudmFz
PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGNh
bnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczIiPjwvY2FudmFzPgorICAgICAgICA8
YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8
Y2FudmFzIGNsYXNzPSJob3Jpem9udGFsIiBpZD0iY2FudmFzMyI+PC9jYW52YXM+CisgICAgICAg
IDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGNh
bnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczQiPjwvY2FudmFzPgorICAgICAgICA8
YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXY+Cisg
ICAgICAgIDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFzNSI+PC9jYW52YXM+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9
ImNhbnZhczYiPjwvY2FudmFzPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAg
IDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0i
Y2FudmFzNyI+PC9jYW52YXM+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMg
Y2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFzOCI+PC9jYW52YXM+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAg
PGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczkiPjwvY2FudmFzPgorICAgICAg
ICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICB2YXIgbmFtZXMgPSBbCisgICAgICAgICAgICAgICAgeyByZXNv
dXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiwgIGlkIDogImNhbnZh
czEiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTItdXIuanBnIiwgIGlkIDogImNhbnZhczIiIH0sCisgICAgICAgICAgICAgICAgeyBy
ZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIiwgIGlkIDogImNh
bnZhczMiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTQtbG9sLmpwZyIsIGlkIDogImNhbnZhczQiIH0sCisgICAgICAgICAgICAgICAg
eyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIiwgIGlkIDog
ImNhbnZhczUiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTYtcnUuanBnIiwgIGlkIDogImNhbnZhczYiIH0sCisgICAgICAgICAgICAg
ICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIiwgIGlk
IDogImNhbnZhczciIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyIsIGlkIDogImNhbnZhczgiIH0sCisgICAgICAgICAg
ICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciLCAg
IGlkIDogImNhbnZhczkiIH0KKyAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgIHZhciBkcmF3
Q291bnQgPSAwOworCisgICAgICAgICAgICBuYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHsK
KyAgICAgICAgICAgICAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2U7CisgICAgICAgICAgICAgICAg
aW1hZ2Uuc3JjID0gbmFtZS5yZXNvdXJjZTsKKyAgICAgICAgICAgICAgICBpbWFnZS5kZWNvZGUo
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKG5hbWUuaWQpOworICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lk
dGggPSBpbWFnZS53aWR0aDsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGlt
YWdlLmhlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0
Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1h
Z2UsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAgICAgICAgICAg
ICAgIGlmICgrK2RyYXdDb3VudCA9PSBuYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVu
dC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYjA5YWI0NTkxZjczMmJiOTcxOTFlMzI3Zjk3
OGYwN2YyZjA0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAg
IHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKKyAgICB9CisgICAgaW1n
IHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgIHRyYW5zZm9ybS1v
cmlnaW46IGNlbnRlcjsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBj
b250ZW50IGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9y
aWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyI+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPGJyPkZs
aXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+Um90YXRl
ZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9
InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+Rmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5z
bGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFu
c2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFs
dWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJmMjU4Mzhl
NDA5NDQ1MGYyNDFmYTU2YTEyNzUwNTkwZmJhNmMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbApAQCAtMCww
ICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsK
KyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIw
cHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAg
ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAg
ICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4K
Kzxib2R5PgorICAgIDxiPlRoZSBjc3MgY29udGVudCBpbWFnZXMgc2hvdWxkIGJlIHJlbmRlcmVk
IHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFn
ZSBob3Jpem9udGFsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jp
em9udGFsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTIt
dXIuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imlt
YWdlIGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMy1sci5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTQtbG9sLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNh
bGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iY29udGVudDogdXJsKHJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0
aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1
LmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdl
IHZlcnRpY2FsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTctcmwuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iY29udGVudDogdXJs
KHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZykiPjwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0
eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZykiPjwv
ZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWRvY3VtZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI1MTY2
YTEyN2U3ODRlMzQ0MTNiMGZkNDBhZTk2MzkzMDA2YTgwNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWRvY3VtZW50LWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2
LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFy
Z2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAg
IHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAg
IGRpdi5pbWFnZSB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgd2lk
dGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206
IDZweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7
CisgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKKyAgICB9Cis8L3N0eWxlPgorPGJv
ZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBJbWFnZURvY3VtZW50cyBzaG91bGQgYmUgcmVuZGVy
ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAg
PGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5Ob3JtYWwKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNj
YWxlWCgtMSk7Ij4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgw
ZGVnKTsiPgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUo
MTgwZGVnKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFn
ZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3
MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0i
dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5VbmRlZmlu
ZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgorPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWRvY3VtZW50
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWY0NDNiNjczOGE4NmY3OWYwZjE1YTAxZjI4ZThjNjU1NWU2YTc0
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
c3R5bGU+CisgICAgZGl2IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAg
ICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9Cisg
ICAgaWZyYW1lIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJn
aW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0K
KyAgICBpZnJhbWUuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
aGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBpZnJhbWUudmVydGljYWwgeworICAgICAgICB3aWR0
aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+
CisgICAgPGI+VGhlIGltYWdlcyBvZiBJbWFnZURvY3VtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQg
cmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJy
PgorICAgIDxkaXY+CisgICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0i
b25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5q
cGciPjwvaWZyYW1lPgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdj4K
KyAgICAgICAgPGlmcmFtZSBjbGFzcz0iaG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0
aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+PC9pZnJhbWU+
CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXY+
CisgICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQo
dGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjwvaWZyYW1l
PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXY+Cisg
ICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhp
cykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj48L2lmcmFtZT4K
KyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAg
ICA8ZGl2PgorICAgICAgICA8aWZyYW1lIGNsYXNzPSJ2ZXJ0aWNhbCIgb25sb2FkPSJvbkZyYW1l
TG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+PC9p
ZnJhbWU+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRp
Y2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8aWZyYW1lIGNsYXNzPSJ2ZXJ0
aWNhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi02LXJ1LmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlmcmFtZSBjbGFzcz0idmVydGlj
YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNy1ybC5qcGciPjwvaWZyYW1lPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8
aWZyYW1lIGNsYXNzPSJ2ZXJ0aWNhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciPjwvaWZyYW1lPgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXY+Cisg
ICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhp
cykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyI+PC9pZnJhbWU+Cisg
ICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgdmFyIGlG
cmFtZUxvYWRlZENvdW50ID0gMDsKKworICAgICAgICAgZnVuY3Rpb24gb25GcmFtZUxvYWQoKSB7
CisgICAgICAgICAgICBpZiAoKytpRnJhbWVMb2FkZWRDb3VudCA9PSA5KSB7CisgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0LWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzY2MjljMWM2ZjM4NGFiMjE1OThkY2IzZjczYmM3YzVjYWRlODIzYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWltYWdlLW9iamVjdC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1i
b3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1h
bGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4Owor
ICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJv
cmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7
CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O29iamVj
dCZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBv
cmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciPgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDxicj5G
bGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPkZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zv
cm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0
cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVy
dGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4
LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciPgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwv
ZGl2PgorICAgIDxicj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGM1YjBmYWMxMjg4ZTk5OTY2ODJlNmMwZjkwMGY3NDllZmE4MzEyYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVj
dC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBv
YmplY3QgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxl
PgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiAmbHQ7b2JqZWN0Jmd0OyBlbGVtZW50cyBz
aG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4K
KyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciPjwvb2JqZWN0PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9q
cGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+PC9vYmplY3Q+
CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0
YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjwvb2JqZWN0PgorICAgICAg
ICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj48L29iamVjdD4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj48L29iamVjdD4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIg
ZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPjwvb2JqZWN0PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPjwvb2JqZWN0PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pw
ZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PC9vYmplY3Q+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9q
cGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj48L29iamVjdD4K
KyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWltZy1lbGVtZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMTY1
YjcwN2FjMzE4NWViYjE5Y2IwN2VjZDdhMWEwYmYwYjhjOGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAg
IGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAg
IG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAg
ICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0K
KyAgICBkaXYudmVydGljYWwgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAg
ICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBtYXJnaW4t
Ym90dG9tOiA2cHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlk
IGJsYWNrOworICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7CisgICAgfQorPC9zdHls
ZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVudHMgc2hv
dWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+Cisg
ICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4K
KyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPGJy
PkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGltZyBpZD0iaW1nMyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBk
ZWcpOyI+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVy
dGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAy
NXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1
cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNyIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc4IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgaWQ9ImltZzkiIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+VW5kZWZp
bmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8dWwgaWQ9ImNv
bnNvbGUiPjwvdWw+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0cikgewor
ICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAg
ICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAg
ICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
OworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0KKworICAg
ICAgICAgZnVuY3Rpb24gaW1hZ2VTaXplKGluZGV4KSB7CisgICAgICAgICAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaW5kZXgpOworICAgICAgICAgICAg
dmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKKyAg
ICAgICAgICAgIGlmIChlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2
ZXJ0aWNhbCIpKQorICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlZFN0eWxlLmhlaWdodCAr
ICIgYnkgIiArIGNvbXB1dGVkU3R5bGUud2lkdGg7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0
ZWRTdHlsZS53aWR0aCArICIgYnkgIiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OworICAgICAgICB9
CisKKyAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykKKyAgICAgICAgICAgICAg
ICBsb2coImltZyIgKyBpICsgIiBzaXplID0gIiArIGltYWdlU2l6ZShpKSk7CisgICAgICAgIH0p
OworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1l
bGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1p
bWctZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MGY4NzRmNGFmMmZiOTFhMmM3YTY0NjQ4NTg3
ODk2YTZhNmVmMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdiB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRv
bTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWdu
OiB0b3A7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNr
OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcm
Z3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3Jp
ZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPGlt
ZyBpZD0iaW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+Cisg
ICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1nIGlk
PSJpbWcyIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAg
ICAgPGltZyBpZD0iaW1nMyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpw
ZyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdj4K
KyAgICAgICAgPGltZyBpZD0iaW1nNCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00
LWxvbC5qcGciPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAg
ICAgPGltZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1Lmpw
ZyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRp
dj4KKyAgICAgICAgPGltZyBpZD0iaW1nNyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9ImltZzgi
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2PgorICAg
ICAgICA8aW1nIGlkPSJpbWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5q
cGciPgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2Pgor
ICAgIDxicj4KKyAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGls
ZChsaSk7CisgICAgICAgIH0KKworICAgICAgICAgIGZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewor
ICAgICAgICAgICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShl
bCk7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkgIiArIGNv
bXB1dGVkU3R5bGUuaGVpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBmb3IodmFyIGkgPSAx
OyBpIDw9IDk7IGkrKykKKyAgICAgICAgICAgICAgICBsb2coImltZyIgKyBpICsgIiBzaXplID0g
IiArIGltYWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIiArIGkpKSk7CisgICAg
ICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LXN2Zy1mZWltYWdlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjYTE5
NzRkMTMzYTc5YTZmNTZlOTBjMTIwZmJhYjhmNjA2MzU1ODkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAg
IGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAg
IG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAg
ICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0K
KyAgICBkaXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAg
IHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBtYXJnaW4tYm90
dG9tOiA2cHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7CisgICAgfQorPC9zdHlsZT4K
Kzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgU1ZHICZsdDtmZWltYWdlJmd0OyBlbGVtZW50
cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwv
Yj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAg
ICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpv
bnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOwor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
c2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNh
bGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkg
cm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVw
eCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0
ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+Cisg
ICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJy
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24tc3ZnLWZlaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM3MmU5NDEwYjBiNjYw
MTdmZDQzZDYwNTBmNzhjNmFmYmRhZjY0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWwKQEAgLTAsMCAr
MSwxMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdiB7CisgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAg
ICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZl
cnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIHN2ZyB7CisgICAgICAgIGJvcmRlcjogMXB4
IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBzdmcuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBzdmcudmVydGljYWwg
eworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8
L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBTVkcgJmx0O2ZlaW1hZ2UmZ3Q7
IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50
YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWcxIj4KKyAgICAg
ICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAl
IiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIvPgorICAgICAgICAg
ICAgPC9maWx0ZXI+CisgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAl
IiBzdHlsZT0iZmlsdGVyOnVybCgjaW1nMSk7Ii8+CisgICAgICAgIDwvc3ZnPgorICAgICAgICA8
YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWcyIj4KKyAgICAgICAgICAgICAg
ICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIvPgorICAgICAgICAgICAgPC9maWx0
ZXI+CisgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0i
ZmlsdGVyOnVybCgjaW1nMik7Ii8+CisgICAgICAgIDwvc3ZnPgorICAgICAgICA8YnI+RmxpcHBl
ZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzMiPgorICAgICAgICAg
ICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhy
ZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIi8+CisgICAgICAgICAgICA8
L2ZpbHRlcj4KKyAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0
eWxlPSJmaWx0ZXI6dXJsKCNpbWczKTsiLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5S
b3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWc0Ij4KKyAgICAgICAg
ICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBo
cmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciLz4KKyAgICAgICAgICAg
IDwvZmlsdGVyPgorICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIg
c3R5bGU9ImZpbHRlcjp1cmwoI2ltZzQpOyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJy
PkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2PgorICAg
ICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWc1
Ij4KKyAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVp
Z2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyIvPgor
ICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVp
Z2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVybCgjaW1nNSk7Ii8+CisgICAgICAgIDwvc3ZnPgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGZpbHRlciBpZD0iaW1nNiI+CisgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0i
MCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tNi1ydS5qcGciLz4KKyAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAg
ICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2lt
ZzYpOyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWc3Ij4KKyAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4
PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi03LXJsLmpwZyIvPgorICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAg
ICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVybCgj
aW1nNyk7Ii8+CisgICAgICAgIDwvc3ZnPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8
c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWc4Ij4KKyAg
ICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIx
MDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciLz4KKyAgICAg
ICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0i
MTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzgpOyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
PgorICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxmaWx0ZXIg
aWQ9ImltZzkiPgorICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIx
MDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5q
cGciLz4KKyAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzkpOyIvPgorICAgICAgICA8
L3N2Zz4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4K
KyAgICA8YnI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBlY3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ0ZjQ1OWRmN2RkMTViNjMyNTRjZDBiOTcxMDM4NmYzMzkxNWFjNTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmct
aW1hZ2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
dHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAx
MHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRv
cDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
bWFyZ2luLWJvdHRvbTogNnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFw
eCBzb2xpZCBibGFjazsKKyAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOworICAgIH0K
Kzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIFNWRyAmbHQ7aW1hZ2UmZ3Q7
IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50
YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
Ij4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8YnI+RmxpcHBl
ZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4
MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5GbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0
cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVy
dGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4
LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNs
YXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2Fs
bHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVw
eCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwu
anBnIj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4K
KyAgICA8YnI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3YmI1ZTUyZDNj
MWZkMTU4ZTg0ZGM4MzRkYmNlNjBiOGUyMzgxNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbApAQCAtMCww
ICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYgeworICAgICAgICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsKKyAgICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICB2
ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBzdmcgeworICAgICAgICBib3JkZXI6IDFw
eCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgc3ZnLmhvcml6b250YWwgeworICAgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgc3ZnLnZlcnRpY2Fs
IHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQor
PC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgU1ZHICZsdDtpbWFnZSZndDsg
ZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0
PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIvPgorICAg
ICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXY+Cisg
ICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltYWdlIHdpZHRo
PSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTIt
dXIuanBnIi8+CisgICAgICAgIDwvc3ZnPgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFs
bHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyI+CisgICAgICAgIDwvc3ZnPgorICAg
ICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAg
IDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAl
IiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpw
ZyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciLz4KKyAgICAgICAgPC9zdmc+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPHN2
ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWln
aHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIi8+Cisg
ICAgICAgIDwvc3ZnPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIg
aHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIi8+CisgICAgICAgIDwv
c3ZnPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTktdS5qcGciLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5VbmRl
ZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxMjg5ZWU2YzE4YmQ1
ODE3ZmRhM2M3YTAxYWEzNDkzOTNlNjA3YzhiLi4wY2M2NWFhZWYxNGRjYjdhMGFkY2JmMDgyMGRl
OWMxYzY5YWEwZGIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjkyNSw4ICsyOTI1LDYgQEAgd2Via2l0Lm9yZy9iLzEyMDU5NiBjc3MzL21hc2tpbmcv
bWFzay1yZXBlYXQtc3BhY2UtY29udGVudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHUKIAogd2Via2l0
Lm9yZy9iLzEyMDgzOSBsZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL2Nyb3NzLWZh
ZGUtYmFja2dyb3VuZC1pbWFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xMjE5MDUgZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIFsgRmFpbHVyZSBd
Ci0KIHdlYmtpdC5vcmcvYi8xODA1ODEgY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS92YWx1ZXMv
c2hhcGUtbWFyZ2luLTAwMS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgwNTgxIGNz
czMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW91dHNpZGUtY2lyY2xlLTAwNC5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgwNTgxIGNzczMvc2hhcGVzL3NoYXBlLW91
dHNpZGUvdmFsdWVzL3NoYXBlLW91dHNpZGUtY2lyY2xlLTAwNS5odG1sIFsgRmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRkYmUxYWJjNzJk
ZTk4YWY3YzI1NDY3NzUyMzQwMDg3NmI4MjgxZDYuLmMxMDgwNDlhNDYwYmM1NjY2MTE0YWVkMzhm
ZDdiZTE4YWVmNDc4YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCkBAIC0yODExLDExICsyODExLDkgQEAgZmFzdC9oaXN0b3J5L2xvY2F0aW9uLXJlcGxhY2Ut
aGFzaC5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3Rvcnkvc2F2ZXMtc3RhdGUtYWZ0ZXItZnJhZ21l
bnQtbmF2Lmh0bWwgWyBTa2lwIF0KIAogZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMu
aHRtbCBbIEZhaWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVk
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDA1MTYgWyBEZWJ1ZyBdIGZhc3QvaW1h
Z2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNraXAgXSAgIyBDcmFzaGluZwogZmFz
dC9pbWFnZXMvcGRmLWFzLWltYWdlLXdpdGgtYW5ub3RhdGlvbnMuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogZmFzdC9pbWFnZXMvc3VwcG9ydC1icm9rZW4taW1hZ2UtZGVsZWdhdGUuaHRtbCBb
IEZhaWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIFsgRmFpbHVyZSBd
CiAKIGZhc3QvaW5saW5lL3Bvc2l0aW9uZWRMaWZldGltZS5odG1sIFsgRmFpbHVyZSBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377346</attachid>
            <date>2019-08-27 09:34:17 -0700</date>
            <delta_ts>2019-08-27 12:25:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201123-20190827093416.patch</filename>
            <type>text/plain</type>
            <size>258859</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThjZTc4YWYzMGJiYWQ0
NWFiOTQyZjJmZThjZmM0YWYyNTkwN2NlZC4uNzU4NzIyYzU5NjBiMzU0ZjUyN2I2ZjY0OGRiYTFk
MDRmZTU0YjA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1NCBAQAorMjAxOS0wOC0yNyAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEVYSUYg
b3JpZW50YXRpb24gc2hvdWxkIGJlIHJlc3BlY3RlZCB3aGVuIHJlbmRlcmluZyBpbWFnZXMgCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDExMjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtLSBJbWFnZTo6
c2l6ZSgpIHdpbGwgcmV0dXJuIHRoZSByZW5kZXJlZCBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZQor
ICAgICAgICAgICBvcmllbnRhdGlvbi4gVGhlIGxvdyBsZXZlbCBBUElzIG1pZ2h0IHRyYW5zcG9z
ZSB0aGUgc2l6ZSBqdXN0IGJlZm9yZQorICAgICAgICAgICBjYWxsaW5nIHRoZSBzeXN0ZW0gQVBJ
IHRvIGRyYXcgdGhlIGltYWdlLgorCisgICAgICAgIC0tIFJlbmRlckVsZW1lbnQ6OmltYWdlT3Jp
ZW50YXRpb24oKSB3aWxsIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UKKyAgICAg
ICAgICAgZm9yIGFsbCBpbWFnZXMgYW5kIGZvciBhbGwgcG9ydHMgdGlsbCB0aGUgY3NzIGltYWdl
LW9yaWVudGF0aW9uIHNwZWNzCisgICAgICAgICAgIGlzIGZpbmFsaXplZC4KKworICAgICAgICAt
LSBUaGUgZGVmYXVsdCBvZiBJbWFnZU9yZWluZXRhdGlvbiBhcmd1bWVudCBvZiBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZSgpCisgICAgICAgICAgIHdpbGwgYmUgY2hhbmdlZCB0byB7IEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZSB9LgorCisgICAgICAgIC0tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoK
KyAgICAgICAgICAgRnJvbUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3
VGlsZWRJbWFnZSgpLgorCisgICAgICAgIC0tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmRyYXdJbWFnZSgpIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoKKyAgICAgICAgICAgRnJv
bUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KKworICAg
ICAgICBUZXN0czogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVu
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFn
ZS1vYmplY3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbAorCisgICAgICAg
ICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VG
cmFtZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNl
OjpvcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6c2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBERkRvY3VtZW50SW1hZ2U6OnNpemUgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdl
RnJvbUltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVy
RXh0ZW5kZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmltYWdlT3JpZW50YXRpb24gY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJJbWFnZTo6cGFpbnRJbnRvUmVjdCk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
Lmg6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRm9yQ29udGFpbmVyOjpzaXplIGNvbnN0KToKKyAgICAg
ICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaDoKKworMjAxOS0wOC0yMyAg
U2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFs
bCBpbWFnZSBkcmF3aW5nIGZ1bmN0aW9ucyBzaG91bGQgdGFrZSBhbiBhcmd1bWVudCBvZiB0eXBl
IEltYWdlUGFpbnRpbmdPcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDEwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiB0aGlzIHBhdGNoOgorICAgICAgICAtLSBBbGwgdGhlIGltYWdlIGRy
YXdpbmcgZnVuY3Rpb24gd2lsbCB0YWtlIGFuIGFyZ3VtZW50IG9mIHR5cGUKKyAgICAgICAgICAg
SW1hZ2VQYWludGluZ09wdGlvbnMgaW5zdGVhZCBvZiBwYXNzaW5nIGluZGl2aWR1YWwgb3B0aW9u
cy4KKworICAgICAgICAtLSBJbWFnZVBhaW50aW5nT3B0aW9ucyBpcyBtYWRlIGxpa2UgYSBzZXQg
b2Ygb3B0aW9ucy4gSXQgY2FuIGJlCisgICAgICAgICAgIGluaXRpYWxpemVkIHdpdGggYW55IG51
bWJlciBvZiBvcHRpb25zIGFuZCB0aGUgb3JkZXIgZG9lcyBub3QgbWF0dGVyCisKKyAgICAgICAg
LS0gSW1hZ2U6Om9yaWdpbmFsU2l6ZSgpIGlzIGRlbGV0ZWQgYmVjYXVzZSBpdCByZXR1cm5zIHNp
emUoKSBhbmQgbm9uZQorICAgICAgICAgICBvZiB0aGUgSW1hZ2UgY29uY3JldGUgY2xhc3NlcyBv
dmVycmlkZXMgdGhpcyBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGh0bWwvSW1hZ2VCaXRtYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXA6OmNy
ZWF0ZVByb21pc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXA6OmNyZWF0ZUZyb21C
dWZmZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6
ZHJhd0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdJbWFnZVRvQ29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpmdWxsQ2FudmFzQ29t
cG9zaXRlZERyYXdJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDcm9zc2ZhZGVT
dWJpbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJh
dyk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRl
cm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXN0b21QYWludEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNv
cmU6OkN1c3RvbVBhaW50SW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9DdXN0b21QYWludEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRlZEltYWdlOjpkcmF3
KToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFkaWVudEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50SW1h
Z2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudElt
YWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3VGlsZWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1
bWluZ0ltYWdlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25z
OjpJbWFnZVBhaW50aW5nT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVBhaW50aW5nT3B0aW9uczo6dXNlc0RlZmF1bHRJbnRlcnBvbGF0aW9uIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdJbWFnZUltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3VGlsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3KToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3VGlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2U6Om9yaWdpbmFsU2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3UGF0dGVybik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVBhaW50aW5nT3B0aW9uczo6SW1hZ2VQYWludGluZ09wdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OmNvbXBvc2l0ZU9wZXJhdG9yIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zOjpibGVuZE1vZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OmRlY29kaW5nTW9k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9uczo6b3JpZW50
YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6Omlu
dGVycG9sYXRpb25RdWFsaXR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zOjpzZXRPcHRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hbWVk
SW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYW1lZEltYWdlR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWRJbWFnZUdlbmVyYXRl
ZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTmFtZWRJ
bWFnZUdlbmVyYXRlZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZl
SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlv
bnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdTaGFkb3dMYXllckJ1ZmZlcik6
CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZHJhd1NoYWRvd0ltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhaXJvOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86
OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0
ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJ
bXBsQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW1wbENhaXJv
OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW1w
bENhaXJvOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6ZHJhd0NvbnN1bWluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHQzRENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFRvQ2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQnVmZmVyOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
TmF0aXZlSW1hZ2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3TmF0aXZlSW1hZ2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UERGRG9jdW1lbnRJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjphcHBseSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJu
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3UGF0dGVybjo6YXBwbHkgY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdQYXR0ZXJuOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdQYXR0ZXJuOjpEcmF3
UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29y
ZGVyOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJl
Y29yZGVyOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQmxlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6cGxhdGZv
cm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFw
cGx5U29mdHdhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcDoK
KyAgICAgICAgKE5pY29zaWE6OkNhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFn
ZSk6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0dGVy
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fp
cm9PcGVyYXRpb25SZWNvcmRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9E
aXJlY3QyRE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlyZWN0MkQ6OmRyYXdO
YXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXJlY3QyRDo6ZHJhd1BhdHRlcm4pOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRE9wZXJhdGlvbnMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJE
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ0dXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6Qml0bWFwSW1hZ2U6OmRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdlRGlyZWN0MkQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRHJhZ0lt
YWdlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRTbmFwc2hvdEltYWdlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBh
aW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRT
bmFwc2hvdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50U25hcHNob3R0ZWRQbHVnaW5PdmVybGF5
KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHSW1hZ2U6OmRyYXdGb3JDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1h
Z2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lt
YWdlOjpuYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZHJhd1BhdHRl
cm5Gb3JDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRyYXcpOgorICAg
ICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9T
VkdJbWFnZUZvckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUZvckNv
bnRhaW5lcjo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUZvckNvbnRhaW5lcjo6
ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5l
ci5oOgorCiAyMDE5LTA4LTIyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbd2F0Y2hPU10gRGlzYWJsZSBDb250ZW50IEZpbHRlcmluZyBpbiB0aGUgc2ltdWxhdG9y
IGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGVkZTM1MWQyZjc3ODdhMGQ5YzEwZWJjYmQ2NmMzZDUwYWY3MDU3
NjAuLmY1YmM4YmM5MjcxNWM3OWMyYjZlZWU2ZjA4MWU4Yzk4NGFkYTdlMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTktMDgtMjMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4KKworICAgICAgICBBbGwgaW1hZ2UgZHJhd2luZyBmdW5jdGlvbnMgc2hv
dWxkIHRha2UgYW4gYXJndW1lbnQgb2YgdHlwZSBJbWFnZVBhaW50aW5nT3B0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMDU5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0
OjpkcmF3SW1hZ2UoKSBub3cgdGFrZXMgYW4gSW1hZ2VQYWludGluZ09wdGlvbnMuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OmltYWdlUG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTktMDgtMjIgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBEaXNhYmxlIENvbnRlbnQg
RmlsdGVyaW5nIGluIHRoZSBzaW11bGF0b3IgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDdi
ODI4MGViZDAyNGYzNGNjNjcxMTJmZjAwMTcxZTY5MWFmZTdkMmUuLjI5NWI0ZjQyM2VmYTE0MGRh
NDZlOGU0ZjEwNGRlOWE3YmZmZmU2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTA2NCw2ICsx
MDY0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT2Jz
ZXJ2ZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VUeXBlcy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzg1MmQz
ZDM5MzdkNjZlOWRmZjEyOTBkMzFjY2NkODQ2ZjljYjVkYS4uMjdhNjFjZjY5ZWIwMTc4MzA0MTVm
M2I0NTYyY2NkMTM5MDdjYjhjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA4NCw2ICsyMDg0LDcgQEAKIAkJNzIxNDQzMzIy
MjNFQzg1RjAwRjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjE0
NDMzMzIyM0VDOEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYzMjIzQjJBMjQwMEZCQTk0NCAvKiBT
VkdQcm9wZXJ0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTcyMTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eU93bmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MDIyM0Iy
QTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJ
bWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRp
b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1
RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5
MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVF
NTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRGMURDN0Yy
NUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTQxNyw2ICs5NDE4LDcgQEAK
IAkJNzI3QUZFRDExQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRVhUc1JHQi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcyN0FGRUQyMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVYVHNSR0IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW1hZ2VQYWludGluZ09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzJFNDE3NjExQTJFOEQyRjAwNEM1NjJBIC8qIEpTRVhUc1JHQi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VYVHNSR0IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MkU0MTc2MjFBMkU4RDJGMDA0QzU2MkEgLyogSlNFWFRzUkdC
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRVhUc1JHQi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MkYxQUQ5RjFBMzkwNEMzMDAwMTRFMTggLyogRVhURnJh
Z0RlcHRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVEZyYWdE
ZXB0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDU1Myw2ICsyNDU1NSw3
IEBACiAJCQkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCAqLywKIAkJ
CQlCQzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oICovLAogCQkJCUE4
NzQ4RDY2MTJDQzM3NjMwMDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggKi8sCisJCQkJNzJD
MThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi8sCiAJCQkJ
NDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oICovLAogCQkJ
CTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5jcHAgKi8sCiAJCQkJNTU0
Njc1NzgxRkQxRkMxQTAwM0IxMEIwIC8qIEltYWdlU291cmNlLmggKi8sCkBAIC0yOTU2OSw2ICsy
OTU3Miw3IEBACiAJCQkJMDg5NTgyNTYwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1QTU5MzExNTI1MjVEMDAwMzZFRTUxIC8qIElt
YWdlT3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTcyMjgzRjBFMjMwQjI2OEMwMEY1
RDgyOCAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUxQTJG
M0YxN0Q3RDNBRTAwNzI1MTdBIC8qIEltYWdlUXVhbGl0eUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEMjdBRTUwMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJv
dGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1h
cC5jcHAKaW5kZXggNjMxZmFlNzJiMTAzMWE2NTIwNGU3OWZjYmE1YzM2YzZkOWIwOTA1My4uNmIw
YzdhM2Q2N2NkYzdhNWJiNWRlMjk4NGNkMmJhNTVkZjMwMjcwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUJpdG1hcC5jcHAKQEAgLTMyMywxMCArMzIzLDcgQEAgdm9pZCBJbWFnZUJpdG1hcDo6Y3Jl
YXRlUHJvbWlzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1l
bnQKICAgICB9CiAKICAgICBGbG9hdFJlY3QgZGVzdFJlY3QoRmxvYXRQb2ludCgpLCBvdXRwdXRT
aXplKTsKLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBwYWludGluZ09wdGlvbnM7Ci0gICAgcGFp
bnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkgPSBpbnRlcnBvbGF0aW9uUXVhbGl0
eUZvclJlc2l6ZVF1YWxpdHkob3B0aW9ucy5yZXNpemVRdWFsaXR5KTsKLQotICAgIGJpdG1hcERh
dGEtPmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwgc291cmNl
UmVjdGFuZ2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBwYWludGluZ09wdGlvbnMpOworICAgIGJp
dG1hcERhdGEtPmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwg
c291cmNlUmVjdGFuZ2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCB7IGludGVycG9sYXRpb25RdWFs
aXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpIH0pOwogCiAgICAgLy8g
Ny4gQ3JlYXRlIGEgbmV3IEltYWdlQml0bWFwIG9iamVjdC4KICAgICBhdXRvIGltYWdlQml0bWFw
ID0gY3JlYXRlKFdURk1vdmUoYml0bWFwRGF0YSkpOwpAQCAtMzczLDEwICszNzAsNyBAQCB2b2lk
IEltYWdlQml0bWFwOjpjcmVhdGVQcm9taXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQ
dHI8SFRNTENhbnZhc0VsZW1lbgogICAgIH0KIAogICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9h
dFBvaW50KCksIG91dHB1dFNpemUpOwotICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIHBhaW50aW5n
T3B0aW9uczsKLSAgICBwYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSA9IGlu
dGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkp
OwotCi0gICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIs
IGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHBhaW50aW5n
T3B0aW9ucyk7CisgICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JS
ZW5kZXIsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHsg
aW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0
eSkgfSk7CiAKICAgICAvLyAzLiBDcmVhdGUgYSBuZXcgSW1hZ2VCaXRtYXAgb2JqZWN0LgogICAg
IGF1dG8gaW1hZ2VCaXRtYXAgPSBjcmVhdGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7CkBAIC00ODQs
MTAgKzQ3OCw3IEBAIHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFJlZlB0cjxJbWFnZUJpdG1hcD4mIGV4CiAgICAgYXV0byBpbWFnZUZvclJl
bmRlciA9IGV4aXN0aW5nSW1hZ2VCaXRtYXAtPmJ1ZmZlcigpLT5jb3B5SW1hZ2UoKTsKIAogICAg
IEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIG91dHB1dFNpemUpOwotICAgIEltYWdl
UGFpbnRpbmdPcHRpb25zIHBhaW50aW5nT3B0aW9uczsKLSAgICBwYWludGluZ09wdGlvbnMubV9p
bnRlcnBvbGF0aW9uUXVhbGl0eSA9IGludGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVhbGl0
eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpOwotCi0gICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRy
YXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFz
ZVJldHVyblZhbHVlKCksIHBhaW50aW5nT3B0aW9ucyk7CisgICAgYml0bWFwRGF0YS0+Y29udGV4
dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUu
cmVsZWFzZVJldHVyblZhbHVlKCksIHsgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFs
aXR5KG9wdGlvbnMucmVzaXplUXVhbGl0eSkgfSk7CiAKICAgICAvLyAzLiBDcmVhdGUgYSBuZXcg
SW1hZ2VCaXRtYXAgb2JqZWN0LgogICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBjcmVhdGUoV1RGTW92
ZShiaXRtYXBEYXRhKSk7CkBAIC02NTEsMTAgKzY0Miw3IEBAIHZvaWQgSW1hZ2VCaXRtYXA6OmNy
ZWF0ZUZyb21CdWZmZXIoCiAgICAgfQogCiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0KEZsb2F0UG9p
bnQoKSwgb3V0cHV0U2l6ZSk7Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFpbnRpbmdPcHRp
b25zOwotICAgIHBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJw
b2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0eSk7Ci0K
LSAgICBiaXRtYXBEYXRhLT5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNv
dXJjZVJlY3RhbmdsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgcGFpbnRpbmdPcHRpb25zKTsKKyAg
ICBiaXRtYXBEYXRhLT5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNvdXJj
ZVJlY3RhbmdsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgeyBpbnRlcnBvbGF0aW9uUXVhbGl0eUZv
clJlc2l6ZVF1YWxpdHkob3B0aW9ucy5yZXNpemVRdWFsaXR5KSB9KTsKIAogICAgIGF1dG8gaW1h
Z2VCaXRtYXAgPSBjcmVhdGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAKaW5kZXggNTNjOWM1NjYwNDI3YzQ4NmUzMmFiYzBjMmQ2NTRjY2M1NmMwMjhhMy4uMThj
NmY3NmI4NWVmMDc3Mzc1OGFkNjUyYzlmOWJmOWRhMmM2OWNmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAKQEAgLTE1NzMsMTggKzE1NzMsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgQ2EKICAg
ICBpZiAoaW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSkKICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1h
Z2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKGRvY3VtZW50LnNldHRpbmdzKCkpOwogCisg
ICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucyA9IHsgb3AsIGJsZW5kTW9kZSwgSW1hZ2VP
cmllbnRhdGlvbjo6RnJvbUltYWdlIH07CiAgICAgaWYgKHJlY3RDb250YWluc0NhbnZhcyhub3Jt
YWxpemVkRHN0UmVjdCkpIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXpl
ZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcCwgYmxl
bmRNb2RlKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0
LCBub3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52
YXMoKTsKICAgICB9IGVsc2UgaWYgKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUob3ApKSB7CiAg
ICAgICAgIGZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERz
dFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52
YXMoKTsKICAgICB9IGVsc2UgaWYgKG9wID09IENvbXBvc2l0ZUNvcHkpIHsKICAgICAgICAgY2xl
YXJDYW52YXMoKTsKLSAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJl
Y3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcCwgYmxlbmRNb2Rl
KSk7CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3Jt
YWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0
UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wLCBibGVuZE1v
ZGUpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5v
cm1hbGl6ZWRTcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhdyhub3JtYWxpemVkRHN0
UmVjdCk7CiAgICAgfQogICAgIApAQCAtMTYzMiw3ICsxNjMzLDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKEhUTUxDYW52YXNFbGVt
ZW50JiBzb3UKICNlbmRpZgogCiAgICAgaWYgKHJlY3RDb250YWluc0NhbnZhcyhkc3RSZWN0KSkg
ewotICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwg
SW1hZ2VQYWludGluZ09wdGlvbnMoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xv
YmFsQmxlbmQpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3Qs
IHNyY1JlY3QsIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxlbmQg
fSk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2UgaWYgKGlzRnVs
bENhbnZhc0NvbXBvc2l0ZU1vZGUoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUpKSB7CiAgICAgICAg
IGZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdlKCpidWZmZXIsIGRzdFJlY3QsIHNyY1JlY3Qs
IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlKTsKQEAgLTE2NDEsMTUgKzE2NDIsMTUgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKEhUTUxD
YW52YXNFbGVtZW50JiBzb3UKICAgICAgICAgaWYgKCZzb3VyY2VDYW52YXMgPT0gJmNhbnZhc0Jh
c2UoKSkgewogICAgICAgICAgICAgaWYgKGF1dG8gY29weSA9IGJ1ZmZlci0+Y29weVJlY3RUb0J1
ZmZlcihzcmNSZWN0LCBDb2xvclNwYWNlU1JHQiwgKmMpKSB7CiAgICAgICAgICAgICAgICAgY2xl
YXJDYW52YXMoKTsKLSAgICAgICAgICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmNvcHksIGRz
dFJlY3QsIHsgeyB9LCBzcmNSZWN0LnNpemUoKSB9LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0
ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCkpOworICAgICAgICAgICAg
ICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqY29weSwgZHN0UmVjdCwgeyB7IH0sIHNyY1JlY3Quc2l6
ZSgpIH0sIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxlbmQgfSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBjbGVhckNhbnZh
cygpOwotICAgICAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNy
Y1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0
ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZl
ciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5n
bG9iYWxCbGVuZCB9KTsKICAgICAgICAgfQogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJl
Y3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRl
LCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVm
ZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgp
Lmdsb2JhbEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3KGRzdFJlY3QpOwogICAgIH0KIApAQCAt
MTczMCwxNyArMTczMSwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoSW1hZ2VCaXRtYXAmIGltYWdlQml0bQogICAgIGNoZWNrT3Jp
Z2luKCZpbWFnZUJpdG1hcCk7CiAKICAgICBpZiAocmVjdENvbnRhaW5zQ2FudmFzKGRzdFJlY3Qp
KSB7Ci0gICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0
LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5n
bG9iYWxCbGVuZCkpOworICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVj
dCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVu
ZCB9KTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxzZSBpZiAoaXNG
dWxsQ2FudmFzQ29tcG9zaXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkpIHsKICAgICAg
ICAgZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVj
dCwgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFz
KCk7CiAgICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVD
b3B5KSB7CiAgICAgICAgIGNsZWFyQ2FudmFzKCk7Ci0gICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZl
cigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgp
Lmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCkpOworICAgICAgICBjLT5kcmF3
SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENv
bXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNh
bnZhcygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVy
LCBkc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENv
bXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCkpOworICAgICAgICBjLT5kcmF3SW1hZ2VCdWZm
ZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwg
c3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgZGlkRHJhdyhkc3RSZWN0KTsKICAgICB9
CiAKQEAgLTE4MjksMTQgKzE4MzAsMTQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlOjpjb21wb3NpdGVCdWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgSW4KICAgICBj
LT5yZXN0b3JlKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRyYXdJbWFnZVRvQ29udGV4dChJbWFnZSYg
aW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCitzdGF0aWMgdm9pZCBk
cmF3SW1hZ2VUb0NvbnRleHQoSW1hZ2UmIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdl
LCBkZXN0LCBzcmMsIG9wKTsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgZGVzdCwgc3Jj
LCBvcHRpb25zKTsKIH0KIAotc3RhdGljIHZvaWQgZHJhd0ltYWdlVG9Db250ZXh0KEltYWdlQnVm
ZmVyJiBpbWFnZUJ1ZmZlciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK3N0
YXRpYyB2b2lkIGRyYXdJbWFnZVRvQ29udGV4dChJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyYywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAg
Y29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIGRlc3QsIHNyYywgb3ApOworICAg
IGNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBkZXN0LCBzcmMsIG9wdGlvbnMp
OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdlKFQmIGltYWdlLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAg
LTE4NjUsNyArMTg2Niw3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZTo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hCiAgICAgYnVmZmVyLT5j
b250ZXh0KCkudHJhbnNsYXRlKC10cmFuc2Zvcm1lZEFkanVzdGVkUmVjdC5sb2NhdGlvbigpKTsK
ICAgICBidWZmZXItPmNvbnRleHQoKS50cmFuc2xhdGUoY3JvcHBlZE9mZnNldCk7CiAgICAgYnVm
ZmVyLT5jb250ZXh0KCkuY29uY2F0Q1RNKGVmZmVjdGl2ZVRyYW5zZm9ybSk7Ci0gICAgZHJhd0lt
YWdlVG9Db250ZXh0KGltYWdlLCBidWZmZXItPmNvbnRleHQoKSwgYWRqdXN0ZWREZXN0LCBzcmMs
IENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIGRyYXdJbWFnZVRvQ29udGV4dChpbWFnZSwgYnVm
ZmVyLT5jb250ZXh0KCksIGFkanVzdGVkRGVzdCwgc3JjLCB7IENvbXBvc2l0ZVNvdXJjZU92ZXIg
fSk7CiAKICAgICBjb21wb3NpdGVCdWZmZXIoKmJ1ZmZlciwgYnVmZmVyUmVjdCwgb3ApOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggZWY5M2Iz
NTFlNzkxZDUyN2RhZTgwZjg3YzUyNWE3ZGMxNGU3ZTQyMC4uY2VmYmUzMmI1NmE2ZGVjYTVjOTEx
MzQ4ZWFiMTBiMTA2NmM5ZWRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkSW1hZ2UuY3BwCkBAIC0yODAsMTMgKzI4MCwxMCBAQCBGbG9hdFNpemUgQ2FjaGVkSW1hZ2U6
OmltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBTaXpl
VAogICAgIGlmICghbV9pbWFnZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGlmIChpczxC
aXRtYXBJbWFnZT4oKm1faW1hZ2UpICYmIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pbWFnZU9yaWVu
dGF0aW9uKCkgPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKQotICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCptX2ltYWdlKS5zaXplUmVzcGVjdGluZ09yaWVudGF0aW9u
KCk7Ci0KICAgICBpZiAoaXM8U1ZHSW1hZ2U+KCptX2ltYWdlKSAmJiBzaXplVHlwZSA9PSBVc2Vk
U2l6ZSkKICAgICAgICAgcmV0dXJuIG1fc3ZnSW1hZ2VDYWNoZS0+aW1hZ2VTaXplRm9yUmVuZGVy
ZXIocmVuZGVyZXIpOwogCi0gICAgcmV0dXJuIG1faW1hZ2UtPnNpemUoKTsKKyAgICByZXR1cm4g
bV9pbWFnZS0+c2l6ZShyZW5kZXJlciA/IHJlbmRlcmVyLT5pbWFnZU9yaWVudGF0aW9uKCkgOiBJ
bWFnZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkpOwogfQogCiBMYXlv
dXRTaXplIENhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVt
ZW50KiByZW5kZXJlciwgZmxvYXQgbXVsdGlwbGllciwgU2l6ZVR5cGUgc2l6ZVR5cGUpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
aW5kZXggYjJiZDQ3Y2IxNjE0Y2RhZTVkODllZWExN2I0MmM0Nzg2YmMyZDliMS4uNjI2NTA0MDc4
Yjc5MDM3Yzg4YzJlNWQwNzhhMGUxYWY4YjE1ZjBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIEVu
Y29kZWREYXRhU3RhdHVzIEJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNl
aXZlZCkKICAgICBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID0gRGVjb2RpbmdTdGF0dXM6
OkludmFsaWQ7CiAgICAgcmV0dXJuIG1fc291cmNlLT5kYXRhQ2hhbmdlZChkYXRhKCksIGFsbERh
dGFSZWNlaXZlZCk7CiB9Ci0gICAgCisKIHZvaWQgQml0bWFwSW1hZ2U6OnNldEN1cnJlbnRGcmFt
ZURlY29kaW5nU3RhdHVzSWZOZWNlc3NhcnkoRGVjb2RpbmdTdGF0dXMgZGVjb2RpbmdTdGF0dXMp
CiB7CiAgICAgLy8gV2hlbiBuZXcgZGF0YSBpcyByZWNlaXZlZCwgbV9jdXJyZW50RnJhbWVEZWNv
ZGluZ1N0YXR1cyBpcyBzZXQgdG8gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQKQEAgLTE4Myw3ICsx
ODMsNyBAQCBib29sIEJpdG1hcEltYWdlOjpub3RTb2xpZENvbG9yKCkKIH0KICNlbmRpZgogCi1J
bWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgbW9kZSwgRGVjb2RpbmdNb2RlIGRlY29kaW5n
TW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBCaXRt
YXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKGRlc3RSZWN0LmlzRW1wdHkoKSB8fCBzcmNSZWN0
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsK
QEAgLTE5Niw3ICsxOTYsNyBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogICAgIExPRyhJbWFn
ZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDogJXMgW3N1YnNhbXBsaW5nTGV2ZWwgPSAl
ZCBzY2FsZUZhY3RvckZvckRyYXdpbmcgPSAoJS40ZiwgJS40ZildIiwgX19GVU5DVElPTl9fLCB0
aGlzLCBzb3VyY2VVUkwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+
KG1fY3VycmVudFN1YnNhbXBsaW5nTGV2ZWwpLCBzY2FsZUZhY3RvckZvckRyYXdpbmcud2lkdGgo
KSwgc2NhbGVGYWN0b3JGb3JEcmF3aW5nLmhlaWdodCgpKTsKIAogICAgIE5hdGl2ZUltYWdlUHRy
IGltYWdlOwotICAgIGlmIChkZWNvZGluZ01vZGUgPT0gRGVjb2RpbmdNb2RlOjpBc3luY2hyb25v
dXMpIHsKKyAgICBpZiAob3B0aW9ucy5kZWNvZGluZ01vZGUoKSA9PSBEZWNvZGluZ01vZGU6OkFz
eW5jaHJvbm91cykgewogICAgICAgICBBU1NFUlQoIWNhbkFuaW1hdGUoKSk7CiAgICAgICAgIEFT
U0VSVCghbV9jdXJyZW50RnJhbWUgfHwgbV9hbmltYXRpb25GaW5pc2hlZCk7CiAKQEAgLTIxNiw3
ICsyMTYsNyBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogCiAgICAgICAgIGlmICghZnJhbWVI
YXNEZWNvZGVkTmF0aXZlSW1hZ2VDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KG1fY3VycmVu
dEZyYW1lLCBtX2N1cnJlbnRTdWJzYW1wbGluZ0xldmVsLCBEZWNvZGluZ09wdGlvbnMoRGVjb2Rp
bmdNb2RlOjpBc3luY2hyb25vdXMpKSkgewogICAgICAgICAgICAgaWYgKG1fc2hvd0RlYnVnQmFj
a2dyb3VuZCkKLSAgICAgICAgICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVz
dFJlY3QsIENvbG9yKENvbG9yOjp5ZWxsb3cpLmNvbG9yV2l0aEFscGhhKDAuNSksIG9wKTsKKyAg
ICAgICAgICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVzdFJlY3QsIENvbG9y
KENvbG9yOjp5ZWxsb3cpLmNvbG9yV2l0aEFscGhhKDAuNSksIG9wdGlvbnMuY29tcG9zaXRlT3Bl
cmF0b3IoKSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAKQEAgLTIy
Nyw3ICsyMjcsNyBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogICAgICAgICBBU1NFUlRfSU1Q
TElFUyhzdGF0dXMgPT0gU3RhcnRBbmltYXRpb25TdGF0dXM6OkRlY29kaW5nQWN0aXZlLCAoIW1f
Y3VycmVudEZyYW1lICYmICFtX3JlcGV0aXRpb25zQ29tcGxldGUpIHx8IGZyYW1lSGFzRnVsbFNp
emVOYXRpdmVJbWFnZUF0SW5kZXgobV9jdXJyZW50RnJhbWUsIG1fY3VycmVudFN1YnNhbXBsaW5n
TGV2ZWwpKTsKIAogICAgICAgICBpZiAoc3RhdHVzID09IFN0YXJ0QW5pbWF0aW9uU3RhdHVzOjpE
ZWNvZGluZ0FjdGl2ZSAmJiBtX3Nob3dEZWJ1Z0JhY2tncm91bmQpIHsKLSAgICAgICAgICAgIGZp
bGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29sb3IoQ29sb3I6OnllbGxvdyku
Y29sb3JXaXRoQWxwaGEoMC41KSwgb3ApOworICAgICAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9y
KGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVsbG93KS5jb2xvcldpdGhBbHBoYSgw
LjUpLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICAgICAgfQogICAgICAgICAKQEAgLTI0NSw3ICsyNDUsNyBAQCBJbWFnZURyYXdS
ZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIGRlcwogICAgICAgICB9IGVsc2UgaWYgKGZyYW1lSXNCZWluZ0RlY29kZWQpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBpbnN0ZWFkIG9mIHNob3dpbmcgdGhlIHllbGxvdyByZWN0
YW5nbGUgYW5kIHJldHVybmluZyB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoaXMgZnJhbWUgdG8gZmlu
aXNoIGRlY29kaW5nLgogICAgICAgICAgICAgaWYgKG1fc2hvd0RlYnVnQmFja2dyb3VuZCkgewot
ICAgICAgICAgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29s
b3IoQ29sb3I6OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3ApOworICAgICAgICAgICAg
ICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29sb3IoQ29sb3I6Onll
bGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsK
ICAgICAgICAgICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2U6OiVzIC0gJXAgLSB1cmw6
ICVzIFt3YWl0aW5nIGZvciBhc3luYyBkZWNvZGluZyB0byBmaW5pc2hdIiwgX19GVU5DVElPTl9f
LCB0aGlzLCBzb3VyY2VVUkwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlcXVlc3REZWNvZGlu
ZzsKQEAgLTI2NCwxNCArMjY0LDE1IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJh
dyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgQVNT
RVJUKGltYWdlKTsKICAgICBDb2xvciBjb2xvciA9IHNpbmdsZVBpeGVsU29saWRDb2xvcigpOwog
ICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpIHsKLSAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGNv
bnRleHQsIGRlc3RSZWN0LCBjb2xvciwgb3ApOworICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3Io
Y29udGV4dCwgZGVzdFJlY3QsIGNvbG9yLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIGlmIChvcmllbnRhdGlvbiA9PSBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCi0gICAgICAgIG9yaWVudGF0aW9uID0gZnJhbWVP
cmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOworICAgIGlmIChvcHRpb25zLm9yaWVu
dGF0aW9uKCkgPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAgICBkcmF3TmF0
aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRTaXplKHNpemUo
KSksIHsgb3B0aW9ucywgZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpIH0p
OworICAgIGVsc2UKKyAgICAgICAgZHJhd05hdGl2ZUltYWdlKGltYWdlLCBjb250ZXh0LCBkZXN0
UmVjdCwgc3JjUmVjdCwgSW50U2l6ZShzaXplKCkpLCBvcHRpb25zKTsKIAotICAgIGRyYXdOYXRp
dmVJbWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNpemUoc2l6ZSgp
KSwgb3AsIG1vZGUsIG9yaWVudGF0aW9uKTsKICAgICBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3Rh
dHVzID0gZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgobV9jdXJyZW50RnJhbWUpOwogCiAgICAg
aWYgKGltYWdlT2JzZXJ2ZXIoKSkKQEAgLTI4MCw3ICsyODEsNyBAQCBJbWFnZURyYXdSZXN1bHQg
Qml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRlcwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgQml0bWFwSW1hZ2U6OmRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zv
cm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENv
bXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBCaXRtYXBJbWFn
ZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHRp
bGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjkwLDcgKzI5MSw3IEBAIHZv
aWQgQml0bWFwSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwKICAgICAgICAgaWYgKG1fY3VycmVudEZyYW1lRGVjb2RpbmdT
dGF0dXMgPT0gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQpCiAgICAgICAgICAgICBtX3NvdXJjZS0+
ZGVzdHJveUluY29tcGxldGVEZWNvZGVkRGF0YSgpOwogICAgICAgICAKLSAgICAgICAgSW1hZ2U6
OmRyYXdQYXR0ZXJuKGN0eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwg
c3BhY2luZywgb3AsIGJsZW5kTW9kZSk7CisgICAgICAgIEltYWdlOjpkcmF3UGF0dGVybihjdHh0
LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMp
OwogICAgICAgICBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID0gZnJhbWVEZWNvZGluZ1N0
YXR1c0F0SW5kZXgobV9jdXJyZW50RnJhbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MzA1LDcgKzMwNiw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29u
dGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKICAgICAgICAgLy8gVGVtcG9y
YXJpbHkgcmVzZXQgaW1hZ2Ugb2JzZXJ2ZXIsIHdlIGRvbid0IHdhbnQgdG8gcmVjZWl2ZSBhbnkg
Y2hhbmdlSW5SZWN0KCkgY2FsbHMgZHVlIHRvIHRoaXMgcmVsYXlvdXQuCiAgICAgICAgIHNldElt
YWdlT2JzZXJ2ZXIobnVsbHB0cik7CiAKLSAgICAgICAgZHJhdyhidWZmZXItPmNvbnRleHQoKSwg
dGlsZVJlY3QsIHRpbGVSZWN0LCBvcCwgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGU6OlN5bmNocm9u
b3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICAgICAgZHJhdyhidWZmZXItPmNvbnRl
eHQoKSwgdGlsZVJlY3QsIHRpbGVSZWN0LCB7IG9wdGlvbnMsIERlY29kaW5nTW9kZTo6U3luY2hy
b25vdXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUgfSk7CiAKICAgICAgICAgc2V0SW1hZ2VPYnNl
cnZlcihvYnNlcnZlcik7CiAgICAgICAgIGJ1ZmZlci0+Y29udmVydFRvTHVtaW5hbmNlTWFzaygp
OwpAQCAtMzE2LDcgKzMxNyw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKICAgICB9CiAKICAg
ICBjdHh0LnNldERyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKTsKLSAgICBtX2NhY2hlZEltYWdlLT5k
cmF3UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNw
YWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIG1fY2FjaGVkSW1hZ2UtPmRyYXdQYXR0ZXJuKGN0
eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9u
cyk7CiB9CiAKIGJvb2wgQml0bWFwSW1hZ2U6OnNob3VsZEFuaW1hdGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggNWFlZjYx
ZDdlODk5YmRjZjVjNGQ0NDVhYWJjODhiNjhmMWYwNGFkNS4uMmFkN2YxYzVjZTA3ZDUxMzM1NDgw
MzE0YmJjNzQzNzc4MDFjZGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5oCkBAIC04MSw4ICs4MSw3IEBAIHB1YmxpYzoKICAgICBPcHRpb25h
bDxJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5o
b3RTcG90KCk7IH0KIAogICAgIC8vIEZsb2F0U2l6ZSBkdWUgdG8gb3ZlcnJpZGUuCi0gICAgRmxv
YXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NvdXJjZS0+c2l6ZSgpOyB9
Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2UtPnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsgfQorICAgIEZsb2F0U2l6ZSBz
aXplKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaXplKG9yaWVudGF0aW9u
KTsgfQogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fc291cmNlLT5zaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsgfQogICAgIGJvb2wgZnJh
bWVJc0JlaW5nRGVjb2RlZEFuZElzQ29tcGF0aWJsZVdpdGhPcHRpb25zQXRJbmRleChzaXplX3Qg
aW5kZXgsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYgZGVjb2RpbmdPcHRpb25zKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZS0+ZnJhbWVJc0JlaW5nRGVjb2RlZEFuZElzQ29tcGF0aWJsZVdpdGhPcHRp
b25zQXRJbmRleChpbmRleCwgZGVjb2RpbmdPcHRpb25zKTsgfQogICAgIERlY29kaW5nU3RhdHVz
IGZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2UtPmZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KGluZGV4KTsgfQpAQCAtMTYxLDgg
KzE2MCw4IEBAIHByb3RlY3RlZDoKICAgICAvLyB8ZGVzdHJveUFsbHwgYWxvbmcuCiAgICAgdm9p
ZCBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeShib29sIGRlc3Ryb3lBbGwgPSB0cnVlKTsK
IAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pIG92ZXJyaWRlOwot
ICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5v
cm1hbCkgb3ZlcnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKICNpZiBQTEFURk9S
TShXSU4pCiAgICAgdm9pZCBkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBD
b21wb3NpdGVPcGVyYXRvcikgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNw
cAppbmRleCBlYTY0YjFkOTQ4OWIxMDM1NzJkMGM2OTY4OWJkZGEzNDBhYzY3MzNmLi5kNGJkYjVm
MjBhYTRhZDJhNTczNjVhMzg2YzI2MDJjZDM5M2FlNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
Y3BwCkBAIC01MCwyMCArNTAsMjEgQEAgc3RhdGljIHZvaWQgZHJhd0Nyb3NzZmFkZVN1YmltYWdl
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBDb21wb3MKICAgICBib29s
IHVzZVRyYW5zcGFyZW5jeUxheWVyID0gaW1hZ2UuaXNTVkdJbWFnZSgpOwogCiAgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwotICAgIAotICAgIENvbXBv
c2l0ZU9wZXJhdG9yIGRyYXdJbWFnZU9wZXJhdGlvbiA9IG9wZXJhdGlvbjsKKworICAgIEltYWdl
UGFpbnRpbmdPcHRpb25zIG9wdGlvbnM7CiAKICAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIp
IHsKICAgICAgICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ob3BlcmF0aW9uKTsKICAg
ICAgICAgY29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNpdHkpOwotICAgICAgICBk
cmF3SW1hZ2VPcGVyYXRpb24gPSBDb21wb3NpdGVTb3VyY2VPdmVyOwotICAgIH0gZWxzZQorICAg
IH0gZWxzZSB7CiAgICAgICAgIGNvbnRleHQuc2V0QWxwaGEob3BhY2l0eSk7CisgICAgICAgIG9w
dGlvbnMgPSB7IG9wZXJhdGlvbiB9OworICAgIH0KIAogICAgIGlmICh0YXJnZXRTaXplICE9IGlt
YWdlU2l6ZSkKICAgICAgICAgY29udGV4dC5zY2FsZSh0YXJnZXRTaXplIC8gaW1hZ2VTaXplKTsK
IAotICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBJbnRQb2ludCgpLCBJbWFnZVBhaW50aW5n
T3B0aW9ucyhkcmF3SW1hZ2VPcGVyYXRpb24pKTsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFn
ZSwgSW50UG9pbnQoKSwgb3B0aW9ucyk7CiAKICAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIp
CiAgICAgICAgIGNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKQEAgLTg2LDEwICs4Nywx
MCBAQCB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3Q3Jvc3NmYWRlKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCkKICAgICBjb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiB9
CiAKLUltYWdlRHJhd1Jlc3VsdCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJs
ZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0
IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9w
ZXJhdGlvbihjb21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0
ZU9wZXJhdGlvbihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2Rl
KCkpOwogICAgIGNvbnRleHQuY2xpcChkc3RSZWN0KTsKICAgICBjb250ZXh0LnRyYW5zbGF0ZShk
c3RSZWN0LmxvY2F0aW9uKCkpOwogICAgIGlmIChkc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNp
emUoKSkKQEAgLTEwMCw3ICsxMDEsNyBAQCBJbWFnZURyYXdSZXN1bHQgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbAogICAgIHJl
dHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7CiB9CiAKLXZvaWQgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0
IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5k
TW9kZSBibGVuZE1vZGUpCit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUo
KSwgY29udGV4dC5yZW5kZXJpbmdNb2RlKCkpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCkBAIC0x
MTEsNyArMTEyLDcgQEAgdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFIKICAgICBkcmF3Q3Jvc3NmYWRl
KGdyYXBoaWNzQ29udGV4dCk7CiAKICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0
aGUgY29udGV4dC4KLSAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgZHN0UmVj
dCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9w
LCBibGVuZE1vZGUpOworICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RS
ZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7
CiB9CiAKIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmR1bXAoVGV4dFN0cmVhbSYgdHMp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAyMWUxMzIzNTE4NWE0ZTg1MmY0ZDAyZGY0
Y2QxZjQ2OThjN2UxY2MwLi40NTc2NWM4MzE0NTIxZTQ4YWNiMGY5ZGIzOWVhMDNkNGVhNmVjM2Ix
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Ny
b3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKQEAgLTQ0LDExICs0NCwxMSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBoYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9j
cm9zc2ZhZGVTaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IElt
YWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jcm9z
c2ZhZGVTaXplOyB9CiAKIHByb3RlY3RlZDoKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFn
ZU9yaWVudGF0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBC
bGVuZE1vZGUpIG92ZXJyaWRlOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOworICAgIHZvaWQg
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRy
YW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKIAogICAgIENy
b3NzZmFkZUdlbmVyYXRlZEltYWdlKEltYWdlJiBmcm9tSW1hZ2UsIEltYWdlJiB0b0ltYWdlLCBm
bG9hdCBwZXJjZW50YWdlLCBjb25zdCBGbG9hdFNpemUmIGNyb3NzZmFkZVNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9DdXN0b21QYWludEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0N1c3RvbVBhaW50SW1hZ2UuY3BwCmluZGV4IGZhYTBiZjA2MTQwNTk4MTJiNjY0MzUxOGU1ODcz
NzhkMDNlYTc5ZDMuLjJmYjZmYTQ0ZDg4YmUyYzJjM2NhNzM2ZGMzOGFhMjI0OGY5MjBjZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50SW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50
SW1hZ2UuY3BwCkBAIC0xNzAsMTAgKzE3MCwxMCBAQCBJbWFnZURyYXdSZXN1bHQgQ3VzdG9tUGFp
bnRJbWFnZTo6ZG9DdXN0b21QYWludChHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjbwog
ICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7CiB9CiAKLUltYWdlRHJhd1Jlc3Vs
dCBDdXN0b21QYWludEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIERlY29kaW5nTW9k
ZSwgSW1hZ2VPcmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBDdXN0b21QYWludEltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGRl
c3RDb250ZXh0KTsKLSAgICBkZXN0Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29tcG9z
aXRlT3AsIGJsZW5kTW9kZSk7CisgICAgZGVzdENvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9u
KG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUoKSk7CiAgICAg
ZGVzdENvbnRleHQuY2xpcChkZXN0UmVjdCk7CiAgICAgZGVzdENvbnRleHQudHJhbnNsYXRlKGRl
c3RSZWN0LmxvY2F0aW9uKCkpOwogICAgIGlmIChkZXN0UmVjdC5zaXplKCkgIT0gc3JjUmVjdC5z
aXplKCkpCkBAIC0xODMsNyArMTgzLDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEN1c3RvbVBhaW50SW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXQKIH0KIAog
dm9pZCBDdXN0b21QYWludEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RD
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVy
YXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9yIHRvIHByb3Zp
ZGUgdmlzdWFsbHktZXF1aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0dGVyIHBlcmZv
cm1hbmNlLgogICAgIEZsb2F0U2l6ZSBhZGp1c3RlZFNpemUgPSBzaXplKCk7CkBAIC0yMDUsNyAr
MjA1LDcgQEAgdm9pZCBDdXN0b21QYWludEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QKICAgICBpZiAoZGVzdENvbnRleHQuZHJh
d0x1bWluYW5jZU1hc2soKSkKICAgICAgICAgYnVmZmVyLT5jb252ZXJ0VG9MdW1pbmFuY2VNYXNr
KCk7CiAKLSAgICBidWZmZXItPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRq
dXN0ZWRTcmNSZWN0LCBhZGp1c3RlZFBhdHRlcm5DVE0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3Np
dGVPcCwgYmxlbmRNb2RlKTsKKyAgICBidWZmZXItPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBk
ZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBhZGp1c3RlZFBhdHRlcm5DVE0sIHBoYXNlLCBzcGFj
aW5nLCBvcHRpb25zKTsKICAgICBkZXN0Q29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxz
ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1
c3RvbVBhaW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3Rv
bVBhaW50SW1hZ2UuaAppbmRleCA0ZThlNTg5Nzk1MWE5NTEyNWI5MTM0ODBhZjkzMzAzZWI2Nzhk
NzFlLi5lNzcwNzliODgyOTZlZjEyMGRmMGI2MjQ0MmU4NWUxNzI3ZTZhNWQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DdXN0b21QYWludEltYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5oCkBA
IC01Miw4ICs1Miw4IEBAIHByaXZhdGU6CiAKICAgICBJbWFnZURyYXdSZXN1bHQgZG9DdXN0b21Q
YWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFNpemUmKTsKIAotICAgIEltYWdlRHJh
d1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBE
ZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pIGZpbmFsOwotICAgIHZvaWQgZHJhd1BhdHRl
cm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBv
c2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIGZpbmFsOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOwor
ICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAK
ICAgICBXZWFrUHRyPFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpQYWludERlZmluaXRpb24+IG1f
cGFpbnREZWZpbml0aW9uOwogICAgIFZlY3RvcjxTdHJpbmc+IG1faW5wdXRQcm9wZXJ0aWVzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgK
aW5kZXggM2E4NTljMzFhYzRmMDJiYjdhMmNiNDY0MzNkOGQ4YWJhZTYyMWE0MS4uM2UwMTYxNGMx
NGRlZGZjNDU1OTIzZmE2ZDI0YjExMWFiMTQ0YzNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCkBAIC00MCwxNSArNDAsMTQgQEAg
cHVibGljOgogICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgm
IGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRy
aW5zaWNSYXRpbykgb3ZlcnJpZGU7CiAKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRp
b24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fc2l6ZTsgfQogCiAgICAgLy8gQXNzdW1lIHRoYXQgZ2VuZXJhdGVkIGNvbnRlbnQgaGFzIG5v
IGRlY29kZWQgZGF0YSB3ZSBuZWVkIHRvIHdvcnJ5IGFib3V0CiAgICAgdm9pZCBkZXN0cm95RGVj
b2RlZERhdGEoYm9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRydWUpIG92ZXJyaWRlIHsgfQogCiBwcm90
ZWN0ZWQ6Ci0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJp
ZGUgPSAwOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1v
ZGUpIG92ZXJyaWRlID0gMDsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZSA9IDA7CisgICAgdm9p
ZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZSA9IDA7CiAK
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgdG8gYmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAg
ICAgYm9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVPcGFxdWUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudEltYWdlLmNwcAppbmRleCA1ZDRlZTI4MTY2YmI0ODhhNzlkY2EyOTRmYWFjZGY2NWMy
YTRmNDBiLi5mM2VjMGExYWQ0NjA0MTI4NzJkOTIwZTdlMWUwMTE2NzY2Y2E2M2ZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcApA
QCAtMzksMTAgKzM5LDEwIEBAIEdyYWRpZW50SW1hZ2U6OkdyYWRpZW50SW1hZ2UoR3JhZGllbnQm
IGdlbmVyYXRvciwgY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiBHcmFkaWVudEltYWdlOjp+R3Jh
ZGllbnRJbWFnZSgpID0gZGVmYXVsdDsKIAotSW1hZ2VEcmF3UmVzdWx0IEdyYWRpZW50SW1hZ2U6
OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3Np
dGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9u
KQorSW1hZ2VEcmF3UmVzdWx0IEdyYWRpZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBk
ZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBHcmFw
aGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZGVzdENvbnRleHQpOwotICAgIGRlc3RD
b250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAg
ICBkZXN0Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ob3B0aW9ucy5jb21wb3NpdGVPcGVy
YXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKICAgICBkZXN0Q29udGV4dC5jbGlwKGRlc3RS
ZWN0KTsKICAgICBkZXN0Q29udGV4dC50cmFuc2xhdGUoZGVzdFJlY3QubG9jYXRpb24oKSk7CiAg
ICAgaWYgKGRlc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKQEAgLTUzLDcgKzUzLDcg
QEAgSW1hZ2VEcmF3UmVzdWx0IEdyYWRpZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBk
ZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWMKIH0KIAogdm9pZCBHcmFkaWVudEltYWdlOjpkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxv
YXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2Rl
IGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICAv
LyBBbGxvdyB0aGUgZ2VuZXJhdG9yIHRvIHByb3ZpZGUgdmlzdWFsbHktZXF1aXZhbGVudCB0aWxp
bmcgcGFyYW1ldGVycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLgogICAgIEZsb2F0U2l6ZSBhZGp1
c3RlZFNpemUgPSBzaXplKCk7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgR3JhZGllbnRJbWFnZTo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkCiAgICAgZGVzdENvbnRleHQuc2V0RHJhd0x1bWluYW5jZU1hc2soZmFsc2UpOwogCiAgICAg
Ly8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVyIGludG8gdGhlIGNvbnRleHQuCi0gICAgbV9jYWNoZWRJ
bWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3Qs
IGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wLCBibGVuZE1v
ZGUpOworICAgIG1fY2FjaGVkSW1hZ2UtPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVj
dCwgYWRqdXN0ZWRTcmNSZWN0LCBhZGp1c3RlZFBhdHRlcm5DVE0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFkaWVudEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudEltYWdlLmgKaW5kZXggMWQ5ZGQ5MDhiYzA3NjFlNTUyNGQxYTQ3OGVhNmM1ZWFmYjc4
OGVmZC4uMGNjMTg0MzljMTQ3ZjkzNGRkZTE5MzA3NDhkYTcwYzNmYjE3NWE3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaApAQCAtNDYs
OCArNDYsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEdyYWRpZW50SW1hZ2UoR3JhZGllbnQm
LCBjb25zdCBGbG9hdFNpemUmKTsKIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3Jp
ZW50YXRpb24pIGZpbmFsOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1v
ZGUpIGZpbmFsOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAgICAgYm9vbCBpc0dyYWRpZW50SW1h
Z2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBkdW1wKFdURjo6VGV4
dFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggN2FmOWVhZTA0N2E3OTY2
NTIzZWY0Njk1MzQ1OGRmZDNjOWRmOTJlOS4uMzM1MTNkZjRmODM3ZmE2ODZkM2Q0YmFmNDk4YzBl
ZTg4MTUzMTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03MTUsNTUgKzcxNSw1MCBAQCBJbWFnZURyYXdSZXN1
bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFBv
aW50JiBkZXN0aQogCiBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2Uo
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCiB7Ci0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBGbG9hdFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50KCksIGltYWdlLm9yaWdp
bmFsU2l6ZSgpKTsKLSNlbHNlCiAgICAgRmxvYXRSZWN0IHNyY1JlY3QoRmxvYXRQb2ludCgpLCBp
bWFnZS5zaXplKCkpOwotI2VuZGlmCi0gICAgICAgIAogICAgIHJldHVybiBkcmF3SW1hZ2UoaW1h
Z2UsIGRlc3RpbmF0aW9uLCBzcmNSZWN0LCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAKLUlt
YWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCitJbWFnZURyYXdS
ZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAogICAgIGlmICht
X2ltcGwpCi0gICAgICAgIHJldHVybiBtX2ltcGwtPmRyYXdJbWFnZShpbWFnZSwgZGVzdGluYXRp
b24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOworICAgICAgICByZXR1cm4gbV9pbXBs
LT5kcmF3SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogCi0gICAg
SW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhp
c1Njb3BlKCp0aGlzLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5
KTsKLSAgICByZXR1cm4gaW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgaW1h
Z2VQYWludGluZ09wdGlvbnMubV9jb21wb3NpdGVPcGVyYXRvciwgaW1hZ2VQYWludGluZ09wdGlv
bnMubV9ibGVuZE1vZGUsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fZGVjb2RpbmdNb2RlLCBpbWFn
ZVBhaW50aW5nT3B0aW9ucy5tX29yaWVudGF0aW9uKTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0
eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlv
bnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXcoKnRoaXMs
IGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXpl
JiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCitJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxl
U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCiAgICAgaWYgKG1faW1wbCkKLSAgICAg
ICAgcmV0dXJuIG1faW1wbC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3Vy
Y2UsIHRpbGVTaXplLCBzcGFjaW5nLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgICAgIHJl
dHVybiBtX2ltcGwtPmRyYXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0
aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7CiAKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1h
aW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIGltYWdlUGFp
bnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5k
cmF3VGlsZWQoKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBp
bWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5nT3B0
aW9ucy5tX2JsZW5kTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGluZ01vZGUsIGlt
YWdlUGFpbnRpbmdPcHRpb25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0
aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4gaW1hZ2UuZHJhd1RpbGVk
KCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7
CiB9CiAKIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKElt
YWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLAotICAgIEltYWdlOjpU
aWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCisgICAgSW1hZ2U6OlRpbGVSdWxlIGhSdWxl
LCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRp
b25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybiBJbWFn
ZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKICAgICBpZiAobV9pbXBsKQotICAgICAgICByZXR1
cm4gbV9pbXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGls
ZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKKyAgICAg
ICAgcmV0dXJuIG1faW1wbC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3Vy
Y2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBvcHRpb25zKTsKIAogICAgIGlmICho
UnVsZSA9PSBJbWFnZTo6U3RyZXRjaFRpbGUgJiYgdlJ1bGUgPT0gSW1hZ2U6OlN0cmV0Y2hUaWxl
KSB7CiAgICAgICAgIC8vIEp1c3QgZG8gYSBzY2FsZS4KLSAgICAgICAgcmV0dXJuIGRyYXdJbWFn
ZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOworICAg
ICAgICByZXR1cm4gZHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25z
KTsKICAgICB9CiAKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xh
dGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50
ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3VGlsZWQoKnRoaXMsIGRl
c3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBh
aW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICBJbnRlcnBvbGF0aW9uUXVh
bGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9w
dGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXdUaWxl
ZCgqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1
bGUsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFBvaW50
JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdP
cHRpb25zKQpAQCAtNzc2LDEzICs3NzEsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGkKICAg
ICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3QoRmxvYXRQb2lu
dCgpLCBGbG9hdFNpemUoaW1hZ2UubG9naWNhbFNpemUoKSkpLCBpbWFnZVBhaW50aW5nT3B0aW9u
cyk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25z
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0
eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIGltYWdl
UGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIGltYWdlLmRyYXco
KnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9z
aXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlKTsKKyAgICBJbnRl
cnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2Nv
cGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAgaW1hZ2UuZHJh
dygqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiBpbWFnZSwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKQEAgLTgwMSwxMyArNzk2LDEz
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnCiAgICAgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVy
KFdURk1vdmUoaW1hZ2UpLCBkZXN0aW5hdGlvbiwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgRmxv
YXRTaXplKGltYWdlTG9naWNhbFNpemUpKSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQ
YWludGluZ09wdGlvbnMpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0ltYWdl
QnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2UsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFp
bWFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFp
bnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWlu
dGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgSW1hZ2VCdWZmZXI6OmRy
YXdDb25zdW1pbmcoV1RGTW92ZShpbWFnZSksICp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBp
bWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5nT3B0
aW9ucy5tX2JsZW5kTW9kZSk7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGlu
dGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBvcHRpb25zLmludGVycG9sYXRp
b25RdWFsaXR5KCkpOworICAgIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKFdURk1vdmUoaW1h
Z2UpLCAqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpjbGlwUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVj
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKaW5kZXggNDQ3ZDdlM2UzNTQ3NjJlODBiOGYyN2E5NTI2MjMyMjc5YjVmOTA5NC4uMTNm
NWEyZjU1ZGI2N2ZiMzYyZGQwY2U4ZGU2YTFmMTE5YjdjMWZiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNp
bmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlv
bnMuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0yMTAsNDMgKzIxMSw2IEBAIHN0cnVjdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSB7CiAjZW5kaWYKIH07CiAKLXN0cnVjdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyB7Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMoQ29tcG9zaXRlT3BlcmF0b3IgY29t
cG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
ID0gQmxlbmRNb2RlOjpOb3JtYWwsIERlY29kaW5nTW9kZSBkZWNvZGluZ01vZGUgPSBEZWNvZGlu
Z01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gSW1hZ2VP
cmllbnRhdGlvbjo6Tm9uZSwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxp
dHkgPSBJbnRlcnBvbGF0aW9uRGVmYXVsdCkKLSAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJhdG9y
KGNvbXBvc2l0ZU9wZXJhdG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKLSAg
ICAgICAgLCBtX2RlY29kaW5nTW9kZShkZWNvZGluZ01vZGUpCi0gICAgICAgICwgbV9vcmllbnRh
dGlvbihvcmllbnRhdGlvbikKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5KGludGVy
cG9sYXRpb25RdWFsaXR5KQotICAgIHsKLSAgICB9Ci0KLSAgICBJbWFnZVBhaW50aW5nT3B0aW9u
cyhJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRl
cnBvbGF0aW9uUXVhbGl0eSA9IEludGVycG9sYXRpb25EZWZhdWx0LCBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSBibGVu
ZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSA9IERl
Y29kaW5nTW9kZTo6U3luY2hyb25vdXMpCi0gICAgICAgIDogbV9jb21wb3NpdGVPcGVyYXRvcihj
b21wb3NpdGVPcGVyYXRvcikKLSAgICAgICAgLCBtX2JsZW5kTW9kZShibGVuZE1vZGUpCi0gICAg
ICAgICwgbV9kZWNvZGluZ01vZGUoZGVjb2RpbmdNb2RlKQotICAgICAgICAsIG1fb3JpZW50YXRp
b24ob3JpZW50YXRpb24pCi0gICAgICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eShpbnRlcnBv
bGF0aW9uUXVhbGl0eSkKLSAgICB7Ci0gICAgfQotCi0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMo
SW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHksIEltYWdlT3JpZW50YXRp
b24gb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpOb25lLCBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSBibGVu
ZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSA9IERl
Y29kaW5nTW9kZTo6U3luY2hyb25vdXMpCi0gICAgICAgIDogbV9jb21wb3NpdGVPcGVyYXRvcihj
b21wb3NpdGVPcGVyYXRvcikKLSAgICAgICAgLCBtX2JsZW5kTW9kZShibGVuZE1vZGUpCi0gICAg
ICAgICwgbV9kZWNvZGluZ01vZGUoZGVjb2RpbmdNb2RlKQotICAgICAgICAsIG1fb3JpZW50YXRp
b24ob3JpZW50YXRpb24pCi0gICAgICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eShpbnRlcnBv
bGF0aW9uUXVhbGl0eSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIGJvb2wgdXNlc0RlZmF1bHRJ
bnRlcnBvbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnBvbGF0aW9uUXVhbGl0eSA9PSBJ
bnRlcnBvbGF0aW9uRGVmYXVsdDsgfQotCi0gICAgQ29tcG9zaXRlT3BlcmF0b3IgbV9jb21wb3Np
dGVPcGVyYXRvcjsKLSAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGU7Ci0gICAgRGVjb2RpbmdNb2Rl
IG1fZGVjb2RpbmdNb2RlOwotICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKLSAg
ICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBtX2ludGVycG9sYXRpb25RdWFsaXR5OwotfTsKLQogc3Ry
dWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZUNoYW5nZSgpID0gZGVmYXVsdDsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZShjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0YXRlOjpTdGF0
ZUNoYW5nZUZsYWdzIGZsYWdzKQpAQCAtMzQ3LDcgKzMxMSw3IEBAIHB1YmxpYzoKICAgICBjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9
CiAKICNpZiBVU0UoQ0cpIHx8IFVTRShESVJFQ1QyRCkgfHwgVVNFKENBSVJPKQotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29u
c3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92
ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsLCBJbWFnZU9yaWVudGF0aW9uID0gSW1h
Z2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAjZW5kaWYKIAogI2lmIFVTRShDRykgfHwg
VVNFKERJUkVDVDJEKQpAQCAtMzk1LDIzICszNTksMjIgQEAgcHVibGljOgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGxpbmVXaWR0
aCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdl
JiwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIFdFQkNPUkVfRVhQT1JUIEltYWdl
RHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9u
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsK
LSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOworICAgIFdFQkNPUkVfRVhQT1JUIElt
YWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5h
dGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpG
cm9tSW1hZ2UgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFn
ZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOworICAgIEltYWdl
RHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9u
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
eyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CiAKLSAgICBJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0gSW1hZ2VQYWlu
dGluZ09wdGlvbnMoKSk7Ci0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdl
JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2Us
IGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLAotICAgICAgICBJbWFnZTo6VGlsZVJ1
bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0gSW1hZ2VQ
YWludGluZ09wdGlvbnMoKSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291
cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJ
bWFnZTo6VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmID0geyB9KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIHZvaWQgZHJhd0lt
YWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7Ci0gICAg
dm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
cmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlv
biwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CisgICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAotICAgIHZv
aWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBC
bGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7CisgICAgdm9pZCBkcmF3UGF0dGVybihJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsKLSAgICB2
b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsKLSAgICB2b2lkIGRyYXdDb25zdW1pbmdJbWFn
ZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwg
Y29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiA9IHsgfSk7CisgICAgdm9pZCBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1
ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmID0geyB9KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CiAgICAgSW50ZXJwb2xhdGlvblF1YWxp
dHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuaW1h
Z2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcAppbmRleCA5NjM2NDlmNTY5
YWUzNDc3MDFkNTFkYWRkZjQwN2Y1YWZmYTZjMGEyLi5jZThlMTcyYTE2MWFlNDZhZWEyODgyNzll
YmM5MDg2MTNlMmNjZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcApAQCAtMzcsMjcgKzM3LDI3IEBAIEdy
YXBoaWNzQ29udGV4dEltcGw6On5HcmFwaGljc0NvbnRleHRJbXBsKCkKIHsKIH0KIAotSW1hZ2VE
cmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdJbWFnZUltcGwoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1h
Z2VQYWludGluZ09wdGlvbnMpCitJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6
ZHJhd0ltYWdlSW1wbChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIEludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBp
bWFnZVBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICByZXR1cm4g
aW1hZ2UuZHJhdyhjb250ZXh0LCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0
aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2JsZW5kTW9k
ZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGluZ01vZGUsIGltYWdlUGFpbnRpbmdPcHRp
b25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBvcHRpb25zLmludGVycG9s
YXRpb25RdWFsaXR5KCkpOworICAgIHJldHVybiBpbWFnZS5kcmF3KGNvbnRleHQsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250
ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1h
Z2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50
JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQor
SW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdUaWxlZEltYWdlSW1wbChH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRp
bGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQogewotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRl
cnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBpbWFnZVBhaW50aW5nT3B0aW9u
cy5tX2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICByZXR1cm4gaW1hZ2UuZHJhd1RpbGVkKGNv
bnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBpbWFnZVBhaW50
aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2Js
ZW5kTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGluZ01vZGUsIGltYWdlUGFpbnRp
bmdPcHRpb25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRh
aW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBvcHRpb25zLmlu
dGVycG9sYXRpb25RdWFsaXR5KCkpOworICAgIHJldHVybiBpbWFnZS5kcmF3VGlsZWQoY29udGV4
dCwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIG9wdGlvbnMpOwogfQog
Ci1JbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBs
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0
aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZS
dWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCitJ
bWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxl
U2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxl
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoaFJ1bGUg
PT0gSW1hZ2U6OlN0cmV0Y2hUaWxlICYmIHZSdWxlID09IEltYWdlOjpTdHJldGNoVGlsZSkgewog
ICAgICAgICAvLyBKdXN0IGRvIGEgc2NhbGUuCi0gICAgICAgIHJldHVybiBkcmF3SW1hZ2VJbXBs
KGNvbnRleHQsIGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9u
cyk7CisgICAgICAgIHJldHVybiBkcmF3SW1hZ2VJbXBsKGNvbnRleHQsIGltYWdlLCBkZXN0aW5h
dGlvbiwgc291cmNlLCBvcHRpb25zKTsKICAgICB9CiAKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0
eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoY29udGV4dCwgaW1h
Z2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgcmV0dXJuIGlt
YWdlLmRyYXdUaWxlZChjb250ZXh0LCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0
b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9jb21wb3NpdGVPcGVyYXRv
cik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFs
aXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7
CisgICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZChjb250ZXh0LCBkZXN0aW5hdGlvbiwgc291cmNl
LCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRv
cigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IGI4NzMx
OTRlZTI0NjAxZmU0ZTA3MTQ3YWE3MWVhMzA1ODdhODRhNDUuLjhmYmM1ZTU2Y2YxNTQ4NTM3Nzlj
NTU0NDU0NWU5ZTZhMWM5Yzg4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTczLDkgKzczLDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBj
b25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJ
bWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSA9IDA7CiAjaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShE
SVJFQ1QyRCkKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUlt
YWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRN
b2RlLCBJbWFnZU9yaWVudGF0aW9uKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgZHJh
d1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1v
ZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVy
bihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgYm9y
ZGVyVGhpY2tuZXNzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdMaW5lKGNvbnN0IEZsb2F0
UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2UuY3BwCmluZGV4IDM5OTk2NzJiOWY1ODkzMjg2Y2YzMmRiMWNjNmI4MGEz
MzE4MmFkYzQuLmVlZTRjZmUyMzZhMzU4NWM3NTU2ZmJiYTI1OTZjMDA4Njc2ZWExYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKQEAgLTEzOCwzMiArMTM4
LDI4IEBAIHZvaWQgSW1hZ2U6OmZpbGxXaXRoU29saWRDb2xvcihHcmFwaGljc0NvbnRleHQmIGN0
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwKIH0KIAogdm9pZCBJbWFnZTo6ZHJhd1BhdHRl
cm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sCi0gICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKCFuYXRpdmVJbWFnZUZvckN1
cnJlbnRGcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjdHh0LmRyYXdQYXR0ZXJuKCp0
aGlzLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5n
LCBvcCwgYmxlbmRNb2RlKTsKKyAgICBjdHh0LmRyYXdQYXR0ZXJuKCp0aGlzLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIAog
ICAgIGlmIChpbWFnZU9ic2VydmVyKCkpCiAgICAgICAgIGltYWdlT2JzZXJ2ZXIoKS0+ZGlkRHJh
dygqdGhpcyk7CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNz
Q29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRQb2lu
dCYgc3JjUG9pbnQsIGNvbnN0IEZsb2F0U2l6ZSYgc2NhbGVkVGlsZVNpemUsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUs
IERlY29kaW5nTW9kZSBkZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24p
CitJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNyY1BvaW50LCBj
b25zdCBGbG9hdFNpemUmIHNjYWxlZFRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIENvbG9yIGNvbG9y
ID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewot
ICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY3R4dCwgZGVzdFJlY3QsIGNvbG9yLCBvcCk7Cisg
ICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjdHh0LCBkZXN0UmVjdCwgY29sb3IsIG9wdGlvbnMu
Y29tcG9zaXRlT3BlcmF0b3IoKSk7CiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRp
ZERyYXc7CiAgICAgfQogCiAgICAgQVNTRVJUKCFpc0JpdG1hcEltYWdlKCkgfHwgbm90U29saWRD
b2xvcigpKTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmxvYXRTaXplIGludHJp
bnNpY1RpbGVTaXplID0gb3JpZ2luYWxTaXplKCk7Ci0jZWxzZQogICAgIEZsb2F0U2l6ZSBpbnRy
aW5zaWNUaWxlU2l6ZSA9IHNpemUoKTsKLSNlbmRpZgogICAgIGlmIChoYXNSZWxhdGl2ZVdpZHRo
KCkpCiAgICAgICAgIGludHJpbnNpY1RpbGVTaXplLnNldFdpZHRoKHNjYWxlZFRpbGVTaXplLndp
ZHRoKCkpOwogICAgIGlmIChoYXNSZWxhdGl2ZUhlaWdodCgpKQpAQCAtMTg0LDcgKzE4MCw3IEBA
IEltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjCiAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldFkoKGRl
c3RSZWN0LnkoKSAtIG9uZVRpbGVSZWN0LnkoKSkgLyBzY2FsZS5oZWlnaHQoKSk7CiAgICAgICAg
IHZpc2libGVTcmNSZWN0LnNldFdpZHRoKGRlc3RSZWN0LndpZHRoKCkgLyBzY2FsZS53aWR0aCgp
KTsKICAgICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0SGVpZ2h0KGRlc3RSZWN0LmhlaWdodCgpIC8g
c2NhbGUuaGVpZ2h0KCkpOwotICAgICAgICByZXR1cm4gZHJhdyhjdHh0LCBkZXN0UmVjdCwgdmlz
aWJsZVNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIGRlY29kaW5nTW9kZSwgb3JpZW50YXRpb24pOwor
ICAgICAgICByZXR1cm4gZHJhdyhjdHh0LCBkZXN0UmVjdCwgdmlzaWJsZVNyY1JlY3QsIG9wdGlv
bnMpOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTYsNyArMTkyLDcg
QEAgSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWMKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNl
dFkoKGRlc3RSZWN0LnkoKSAtIG9uZVRpbGVSZWN0LnkoKSkgLyBzY2FsZS5oZWlnaHQoKSk7CiAg
ICAgICAgICAgICB2aXNpYmxlU3JjUmVjdC5zZXRXaWR0aCgxKTsKICAgICAgICAgICAgIHZpc2li
bGVTcmNSZWN0LnNldEhlaWdodChkZXN0UmVjdC5oZWlnaHQoKSAvIHNjYWxlLmhlaWdodCgpKTsK
LSAgICAgICAgICAgIHJldHVybiBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwg
b3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBkZWNvZGluZ01vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAg
ICAgICAgIHJldHVybiBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgeyBvcHRp
b25zLCBCbGVuZE1vZGU6Ok5vcm1hbCB9KTsKICAgICAgICAgfQogICAgICAgICBpZiAoc2l6ZSgp
LmhlaWdodCgpID09IDEgJiYgaW50ZXJzZWN0aW9uKG9uZVRpbGVSZWN0LCBkZXN0UmVjdCkud2lk
dGgoKSA9PSBkZXN0UmVjdC53aWR0aCgpKSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgdmlzaWJs
ZVNyY1JlY3Q7CkBAIC0yMDQsNyArMjAwLDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3
VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWMKICAg
ICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldFkoMCk7CiAgICAgICAgICAgICB2aXNpYmxlU3Jj
UmVjdC5zZXRXaWR0aChkZXN0UmVjdC53aWR0aCgpIC8gc2NhbGUud2lkdGgoKSk7CiAgICAgICAg
ICAgICB2aXNpYmxlU3JjUmVjdC5zZXRIZWlnaHQoMSk7Ci0gICAgICAgICAgICByZXR1cm4gZHJh
dyhjdHh0LCBkZXN0UmVjdCwgdmlzaWJsZVNyY1JlY3QsIG9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwg
ZGVjb2RpbmdNb2RlLCBvcmllbnRhdGlvbik7CisgICAgICAgICAgICByZXR1cm4gZHJhdyhjdHh0
LCBkZXN0UmVjdCwgdmlzaWJsZVNyY1JlY3QsIHsgb3B0aW9ucywgQmxlbmRNb2RlOjpOb3JtYWwg
fSk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKQEAgLTIzNiw3ICsyMzIsNyBAQCBJbWFnZURy
YXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlYwogICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBmcm9tUmVjdCh0b0Zs
b2F0UG9pbnQoY3VycmVudFRpbGVSZWN0LmxvY2F0aW9uKCkgLSBvbmVUaWxlUmVjdC5sb2NhdGlv
bigpKSwgY3VycmVudFRpbGVSZWN0LnNpemUoKSk7CiAgICAgICAgICAgICAgICAgZnJvbVJlY3Qu
c2NhbGUoMSAvIHNjYWxlLndpZHRoKCksIDEgLyBzY2FsZS5oZWlnaHQoKSk7CiAKLSAgICAgICAg
ICAgICAgICByZXN1bHQgPSBkcmF3KGN0eHQsIHRvUmVjdCwgZnJvbVJlY3QsIG9wLCBCbGVuZE1v
ZGU6Ok5vcm1hbCwgZGVjb2RpbmdNb2RlLCBvcmllbnRhdGlvbik7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gZHJhdyhjdHh0LCB0b1JlY3QsIGZyb21SZWN0LCB7IG9wdGlvbnMsIEJsZW5kTW9k
ZTo6Tm9ybWFsIH0pOwogICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gSW1hZ2VEcmF3UmVz
dWx0OjpEaWRSZXF1ZXN0RGVjb2RpbmcpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgICAgICAgICAgICAgdG9YICs9IGN1cnJlbnRUaWxlUmVjdC53aWR0aCgpOwpAQCAt
MjUwLDE3ICsyNDYsMTcgQEAgSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhp
Y3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWMKIAogICAgIEFmZmluZVRy
YW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3JtID0gQWZmaW5lVHJhbnNmb3JtKCkuc2NhbGVOb25Vbmlm
b3JtKHNjYWxlLndpZHRoKCksIHNjYWxlLmhlaWdodCgpKTsKICAgICBGbG9hdFJlY3QgdGlsZVJl
Y3QoRmxvYXRQb2ludCgpLCBpbnRyaW5zaWNUaWxlU2l6ZSk7Ci0gICAgZHJhd1BhdHRlcm4oY3R4
dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBvbmVUaWxlUmVjdC5sb2Nh
dGlvbigpLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKKyAgICBkcmF3UGF0dGVybihjdHh0LCBk
ZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIG9uZVRpbGVSZWN0LmxvY2F0aW9u
KCksIHNwYWNpbmcsIG9wdGlvbnMpOwogICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAgICAgcmV0dXJu
IEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKIH0KIAogLy8gRklYTUU6IE1lcmdlIHdpdGggdGhl
IG90aGVyIGRyYXdUaWxlZCBldmVudHVhbGx5LCBzaW5jZSB3ZSBuZWVkIGEgY29tYmluYXRpb24g
b2YgYm90aCBmb3Igc29tZSB0aGluZ3MuCi1JbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxl
ZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgVGls
ZVJ1bGUgaFJ1bGUsIFRpbGVSdWxlIHZSdWxlLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK0ltYWdl
RHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0
U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogeyAgICAKICAgICBDb2xvciBjb2xv
ciA9IHNpbmdsZVBpeGVsU29saWRDb2xvcigpOwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpIHsK
LSAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGN0eHQsIGRzdFJlY3QsIGNvbG9yLCBvcCk7Cisg
ICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjdHh0LCBkc3RSZWN0LCBjb2xvciwgb3B0aW9ucy5j
b21wb3NpdGVPcGVyYXRvcigpKTsKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlk
RHJhdzsKICAgICB9CiAgICAgCkBAIC0zMzAsMTggKzMyNiwxNCBAQCBJbWFnZURyYXdSZXN1bHQg
SW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdAogICAgICAgICB2UGhhc2UgLT0gKGRzdFJlY3QuaGVpZ2h0KCkgLSBzY2FsZWRUaWxl
SGVpZ2h0KSAvIDI7CiAKICAgICBGbG9hdFBvaW50IHBhdHRlcm5QaGFzZShkc3RSZWN0LngoKSAt
IGhQaGFzZSwgZHN0UmVjdC55KCkgLSB2UGhhc2UpOwotICAgIGRyYXdQYXR0ZXJuKGN0eHQsIGRz
dFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBhdHRlcm5QaGFzZSwgc3BhY2luZywg
b3ApOworICAgIGRyYXdQYXR0ZXJuKGN0eHQsIGRzdFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5UcmFu
c2Zvcm0sIHBhdHRlcm5QaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgc3RhcnRBbmltYXRp
b24oKTsKICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogfQogCiB2b2lkIElt
YWdlOjpjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBM
ZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykKIHsKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGludHJpbnNpY1JhdGlvID0gb3JpZ2luYWxTaXpl
KCk7Ci0jZWxzZQogICAgIGludHJpbnNpY1JhdGlvID0gc2l6ZSgpOwotI2VuZGlmCiAgICAgaW50
cmluc2ljV2lkdGggPSBMZW5ndGgoaW50cmluc2ljUmF0aW8ud2lkdGgoKSwgRml4ZWQpOwogICAg
IGludHJpbnNpY0hlaWdodCA9IExlbmd0aChpbnRyaW5zaWNSYXRpby5oZWlnaHQoKSwgRml4ZWQp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggMzY5OTdj
ODM1MjFjNDZjNWNkNDc1NTZkODE0NGVlOTI1NTA5YTRhNy4uMzcyMmMyMjZlMDBlYjUwZmZlNGVl
NmRkODcyMWU1YTNiMjFmNDljMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZS5oCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEltcGw7CiBjbGFzcyBTaGFyZWRCdWZmZXI7
CitzdHJ1Y3QgSW1hZ2VQYWludGluZ09wdGlvbnM7CiBzdHJ1Y3QgTGVuZ3RoOwogCiAvLyBUaGlz
IGNsYXNzIGdldHMgbm90aWZpZWQgd2hlbiBhbiBpbWFnZSBjcmVhdGVzIG9yIGRlc3Ryb3lzIGRl
Y29kZWQgZnJhbWVzIGFuZCB3aGVuIGl0IGFkdmFuY2VzIGFuaW1hdGlvbiBmcmFtZXMuCkBAIC0x
MTAsMTYgKzExMSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVp
Z2h0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUlu
dHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5z
aWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pOwogCi0gICAgdmlydHVhbCBGbG9h
dFNpemUgc2l6ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzaXplKEltYWdl
T3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0ID0gMDsKICAg
ICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50KCks
IHNpemUoKSk7IH0KICAgICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0
aCgpOyB9CiAgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLmhlaWdodCgp
OyB9CiAgICAgdmlydHVhbCBPcHRpb25hbDxJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IHsgcmV0
dXJuIFdURjo6bnVsbG9wdDsgfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2aXJ0
dWFsIEZsb2F0U2l6ZSBvcmlnaW5hbFNpemUoKSBjb25zdCB7IHJldHVybiBzaXplKCk7IH0KLSNl
bmRpZgotCiAgICAgV0VCQ09SRV9FWFBPUlQgRW5jb2RlZERhdGFTdGF0dXMgc2V0RGF0YShSZWZQ
dHI8U2hhcmVkQnVmZmVyPiYmIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKICAgICB2aXJ0
dWFsIEVuY29kZWREYXRhU3RhdHVzIGRhdGFDaGFuZ2VkKGJvb2wgLyphbGxEYXRhUmVjZWl2ZWQq
LykgeyByZXR1cm4gRW5jb2RlZERhdGFTdGF0dXM6OlVua25vd247IH0KIApAQCAtMTczLDggKzE3
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdka1BpeGJ1ZiogZ2V0R2RrUGl4YnVmKCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0g
ICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7CisgICAg
dmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxv
YXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCiAj
aWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIHZpcnR1YWwgYm9vbCBub3RTb2xpZENvbG9yKCkgeyBy
ZXR1cm4gdHJ1ZTsgfQpAQCAtMTkwLDkgKzE4Niw5IEBAIHByb3RlY3RlZDoKICNpZiBQTEFURk9S
TShXSU4pCiAgICAgdmlydHVhbCB2b2lkIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFNpemUmIHNy
Y1NpemUsIENvbXBvc2l0ZU9wZXJhdG9yKSB7IH0KICNlbmRpZgotICAgIHZpcnR1YWwgSW1hZ2VE
cmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUs
IERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgPSAwOwotICAgIEltYWdlRHJhd1Jlc3Vs
dCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFBvaW50JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNv
ZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGls
ZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBUaWxlUnVs
ZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFs
IEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IH0pID0gMDsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkKEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc3Jj
UG9pbnQsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICBJbWFnZURyYXdSZXN1
bHQgZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3Rv
ciwgVGlsZVJ1bGUgaFJ1bGUsIFRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IH0pOwogCiAgICAgLy8gU3VwcG9ydGluZyB0aWxlZCBkcmF3aW5nCiAgICAgdmly
dHVhbCBDb2xvciBzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xvcigp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApp
bmRleCAzY2Q0NzUwOTAxYmYwMjcwMjkzODA5ZmJjNTZmMTcyNGI4NmRmYjZiLi43ZjBjMDE5MmNm
YWU0MTc0NzFkMjA3Y2YzZjVmNjViYzhjNDk5NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXJEYXRhLmgiCisjaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIK
ICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CkBAIC01MSw3ICs1Miw3IEBA
IGNsYXNzIEltYWdlRGF0YTsKIGNsYXNzIEludFBvaW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNz
IEhvc3RXaW5kb3c7Ci0gICAgCisKIGVudW0gQmFja2luZ1N0b3JlQ29weSB7CiAgICAgQ29weUJh
Y2tpbmdTdG9yZSwgLy8gR3VhcmFudGVlIHN1YnNlcXVlbnQgZHJhd3MgZG9uJ3QgYWZmZWN0IHRo
ZSBjb3B5LgogICAgIERvbnRDb3B5QmFja2luZ1N0b3JlIC8vIFN1YnNlcXVlbnQgZHJhd3MgbWF5
IGFmZmVjdCB0aGUgY29weS4KQEAgLTE1MSwxMCArMTUyLDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBmbHVzaENvbnRleHQoKSBjb25zdDsKICNlbmRpZgogICAgIAotICAgIHZvaWQgZHJhdyhHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBD
b21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7Ci0gICAg
dm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFs
KTsKKyAgICB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSks
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CisgICAgdm9pZCBkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAotICAgIHN0YXRpYyB2b2lkIGRyYXdDb25z
dW1pbmcoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRS
ZWN0KDAsIDAsIC0xLCAtMSksIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zl
ciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlOjpOb3JtYWwpOworICAgIHN0YXRpYyB2b2lkIGRyYXdD
b25zdW1pbmcoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxv
YXRSZWN0KDAsIDAsIC0xLCAtMSksIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7
CiAKICAgICBpbmxpbmUgdm9pZCBnZW5lcmljQ29udmVydFRvTHVtaW5hbmNlTWFzaygpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKaW5kZXggMmRm
ZWZhZWI1ZDE5MzM2ZGVkMjEyNThlZTFmZmY2Mzg2ZjU4YjkyZC4uMmNjNmIwMmE3ZDM1MDE1NzFj
ZjIwOTM2NGIzNmVkMjVjMWQ4Mzk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRnJhbWUuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0NvbXBsZXRlKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvZGluZ1N0YXR1cyA9PSBEZWNvZGluZ1N0
YXR1czo6Q29tcGxldGU7IH0KIAogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0OwotICAgIEludFNp
emUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuICFtX29yaWVudGF0
aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkgPyBzaXplKCkgOiBzaXplKCkudHJhbnNwb3NlZFNpemUo
KTsgfQogICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXMoKSBjb25zdCB7IHJldHVybiBoYXNOYXRpdmVJ
bWFnZSgpID8gKHNpemUoKS5hcmVhKCkgKiBzaXplb2YodWludDMyX3QpKS51bnNhZmVHZXQoKSA6
IDA7IH0KICAgICBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwoKSBjb25zdCB7IHJl
dHVybiBtX3N1YnNhbXBsaW5nTGV2ZWw7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY0
NWMzZmQ2ZDMzODQxYmMwMzU1NWYwN2M5MDJjOTFkNTExY2RhMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgK
QEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRlY29kaW5nT3B0aW9ucy5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKKyNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zIHsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBPcHRpb25zPgorICAgIEltYWdlUGFpbnRpbmdPcHRpb25z
KE9wdGlvbnMuLi4gb3B0aW9ucykKKyAgICB7CisgICAgICAgIHNldE9wdGlvbihvcHRpb25zLi4u
KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBPdmVycnJpZGVzPgorICAgIElt
YWdlUGFpbnRpbmdPcHRpb25zKGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvdGhlciwgT3Zl
cnJyaWRlcy4uLiBvdmVycnJpZGVzKQorICAgICAgICA6IEltYWdlUGFpbnRpbmdPcHRpb25zKG90
aGVyKQorICAgIHsKKyAgICAgICAgc2V0T3B0aW9uKG92ZXJycmlkZXMuLi4pOworICAgIH0KKwor
ICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKCkgPSBkZWZhdWx0OworICAgIEltYWdlUGFpbnRpbmdP
cHRpb25zKGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSBkZWZhdWx0OworCisgICAgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IoKSBjb25zdCB7IHJldHVybiBtX2NvbXBv
c2l0ZU9wZXJhdG9yOyB9CisgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYmxlbmRNb2RlOyB9CisgICAgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZGVjb2RpbmdNb2RlOyB9CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0KKyAgICBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJwb2xhdGlv
blF1YWxpdHk7IH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmlyc3QsIHR5
cGVuYW1lLi4uIFJlc3Q+CisgICAgdm9pZCBzZXRPcHRpb24oRmlyc3QgZmlyc3QsIFJlc3QuLi4g
cmVzdCkKKyAgICB7CisgICAgICAgIHNldE9wdGlvbihmaXJzdCk7CisgICAgICAgIHNldE9wdGlv
bihyZXN0Li4uKTsKKyAgICB9CisKKyAgICB2b2lkIHNldE9wdGlvbihDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcGVyYXRvcikgeyBtX2NvbXBvc2l0ZU9wZXJhdG9yID0gY29tcG9zaXRlT3Bl
cmF0b3I7IH0KKyAgICB2b2lkIHNldE9wdGlvbihCbGVuZE1vZGUgYmxlbmRNb2RlKSB7IG1fYmxl
bmRNb2RlID0gYmxlbmRNb2RlOyB9CisgICAgdm9pZCBzZXRPcHRpb24oRGVjb2RpbmdNb2RlIGRl
Y29kaW5nTW9kZSkgeyBtX2RlY29kaW5nTW9kZSA9IGRlY29kaW5nTW9kZTsgfQorICAgIHZvaWQg
c2V0T3B0aW9uKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9
IG9yaWVudGF0aW9uOyB9CisgICAgdm9pZCBzZXRPcHRpb24oSW1hZ2VPcmllbnRhdGlvbjo6T3Jp
ZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9Cisg
ICAgdm9pZCBzZXRPcHRpb24oSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxp
dHkpIHsgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eSA9IGludGVycG9sYXRpb25RdWFsaXR5OyB9CisK
KyAgICBDb21wb3NpdGVPcGVyYXRvciBtX2NvbXBvc2l0ZU9wZXJhdG9yIHsgQ29tcG9zaXRlU291
cmNlT3ZlciB9OworICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZSB7IEJsZW5kTW9kZTo6Tm9ybWFs
IH07CisgICAgRGVjb2RpbmdNb2RlIG1fZGVjb2RpbmdNb2RlIHsgRGVjb2RpbmdNb2RlOjpTeW5j
aHJvbm91cyB9OworICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbiB7IEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBtX2ludGVycG9sYXRp
b25RdWFsaXR5IHsgSW50ZXJwb2xhdGlvbkRlZmF1bHQgfTsKK307CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCAxODk3NmY5
MTllYjgxZGEzOTU2N2YyNmExOGJhZTdhOWFmMWQzMjQzLi43MmMzNzMxN2I0YzFmYTAyYWI1OTEy
MmU3YWVlNTE5NGZjNTE5ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC02MywxMCArNjMsOCBAQCBJbWFnZVNvdXJjZTo6SW1h
Z2VTb3VyY2UoTmF0aXZlSW1hZ2VQdHImJiBuYXRpdmVJbWFnZSkKIAogICAgIG1fZGVjb2RlZFNp
emUgPSBtX2ZyYW1lc1swXS5mcmFtZUJ5dGVzKCk7CiAKLSAgICAvLyBUaGUgYXNzdW1wdGlvbiBp
cyB0aGUgbWVtb3J5IGltYWdlIHdpbGwgYmUgZGlzcGxheWVkIHdpdGggdGhlIGRlZmF1bHQKLSAg
ICAvLyBvcmllbnRhdGlvbi4gU28gc2V0IG1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiB0byBi
ZSB0aGUgc2FtZSBhcyBtX3NpemUuCiAgICAgbV9zaXplID0gbV9mcmFtZXNbMF0uc2l6ZSgpOwot
ICAgIG1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiA9IG1fc2l6ZTsKKyAgICBtX29yaWVudGF0
aW9uID0gSW1hZ2VPcmllbnRhdGlvbihJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKIH0KIAogSW1h
Z2VTb3VyY2U6On5JbWFnZVNvdXJjZSgpCkBAIC01NTksMjAgKzU1NywyNyBAQCBPcHRpb25hbDxJ
bnRQb2ludD4gSW1hZ2VTb3VyY2U6OmhvdFNwb3QoKQogICAgIHJldHVybiBtZXRhZGF0YTxPcHRp
b25hbDxJbnRQb2ludD4sICgmSW1hZ2VEZWNvZGVyOjpob3RTcG90KT4oV1RGOjpudWxsb3B0LCAm
bV9ob3RTcG90KTsKIH0KIAotSW50U2l6ZSBJbWFnZVNvdXJjZTo6c2l6ZSgpCitJbWFnZU9yaWVu
dGF0aW9uIEltYWdlU291cmNlOjpvcmllbnRhdGlvbigpCiB7CisgICAgcmV0dXJuIGZyYW1lTWV0
YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxJbWFnZU9yaWVudGF0aW9uPigwLCAoJkltYWdlRnJh
bWU6Om9yaWVudGF0aW9uKSwgJm1fb3JpZW50YXRpb24sIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1l
dGFkYXRhKTsKK30KKworSW50U2l6ZSBJbWFnZVNvdXJjZTo6c2l6ZShJbWFnZU9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKQoreworICAgIEludFNpemUgc2l6ZTsKICNpZiAhVVNFKENHKQogICAgIC8v
IEl0J3MgcG9zc2libGUgdGhhdCB3ZSBoYXZlIGRlY29kZWQgdGhlIG1ldGFkYXRhLCBidXQgbm90
IGZyYW1lIGNvbnRlbnRzIHlldC4gSW4gdGhhdCBjYXNlIEltYWdlRGVjb2RlciBjbGFpbXMgdG8K
ICAgICAvLyBoYXZlIHRoZSBzaXplIGF2YWlsYWJsZSwgYnV0IHRoZSBmcmFtZSBjYWNoZSBpcyBl
bXB0eS4gUmV0dXJuIHRoZSBkZWNvZGVyIHNpemUgd2l0aG91dCBjYWNoaW5nIGluIHN1Y2ggY2Fz
ZS4KICAgICBpZiAobV9mcmFtZXMuaXNFbXB0eSgpICYmIGlzRGVjb2RlckF2YWlsYWJsZSgpKQot
ICAgICAgICByZXR1cm4gbV9kZWNvZGVyLT5zaXplKCk7CisgICAgICAgIHNpemUgPSBtX2RlY29k
ZXItPnNpemUoKTsKKyAgICBlbHNlCiAjZW5kaWYKLSAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0
SW5kZXhDYWNoZUlmTmVlZGVkPEludFNpemU+KDAsICgmSW1hZ2VGcmFtZTo6c2l6ZSksICZtX3Np
emUsIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1ldGFkYXRhLCBTdWJzYW1wbGluZ0xldmVsOjpEZWZh
dWx0KTsKLX0KLQotSW50U2l6ZSBJbWFnZVNvdXJjZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlv
bigpCi17Ci0gICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxJbnRT
aXplPigwLCAoJkltYWdlRnJhbWU6OnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pLCAmbV9zaXpl
UmVzcGVjdGluZ09yaWVudGF0aW9uLCBJbWFnZUZyYW1lOjpDYWNoaW5nOjpNZXRhZGF0YSwgU3Vi
c2FtcGxpbmdMZXZlbDo6RGVmYXVsdCk7CisgICAgICAgIHNpemUgPSBmcmFtZU1ldGFkYXRhQXRJ
bmRleENhY2hlSWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZyYW1lOjpzaXplKSwgJm1fc2l6
ZSwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1
bHQpOworICAgIAorICAgIGlmIChvcmllbnRhdGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2UpCisgICAgICAgIG9yaWVudGF0aW9uID0gdGhpcy0+b3JpZW50YXRpb24oKTsKKyAgICAK
KyAgICByZXR1cm4gIW9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkgPyBzaXplIDogc2l6
ZS50cmFuc3Bvc2VkU2l6ZSgpOwogfQogCiBDb2xvciBJbWFnZVNvdXJjZTo6c2luZ2xlUGl4ZWxT
b2xpZENvbG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNv
dXJjZS5oCmluZGV4IGJjNzkwOTkzMjc4YmNiNDI1MDM4NjVmYjUxMmFiNmYyZTk4OGU4M2QuLjk5
OGUyN2FhYTJjMDM5MmVhZDllZWU0NzAxMmNiYjMyODQ5MWIyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtOTMsMTAgKzkzLDEwIEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgdXRpKCk7CiAgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9u
KCk7CiAgICAgT3B0aW9uYWw8SW50UG9pbnQ+IGhvdFNwb3QoKTsKKyAgICBJbWFnZU9yaWVudGF0
aW9uIG9yaWVudGF0aW9uKCk7CiAKICAgICAvLyBJbWFnZSBtZXRhZGF0YSB3aGljaCBpcyBjYWxj
dWxhdGVkIGZyb20gdGhlIGZpcnN0IEltYWdlRnJhbWUuCi0gICAgV0VCQ09SRV9FWFBPUlQgSW50
U2l6ZSBzaXplKCk7Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgSW50U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9y
aWVudGF0aW9uOjpGcm9tSW1hZ2UpOwogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigp
OwogICAgIFN1YnNhbXBsaW5nTGV2ZWwgbWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwoKTsKIApAQCAt
MTk2LDcgKzE5Niw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBJbWFnZSBtZXRhZGF0YSB3aGljaCBp
cyBjYWxjdWxhdGVkIGZyb20gdGhlIGZpcnN0IEltYWdlRnJhbWUuCiAgICAgT3B0aW9uYWw8SW50
U2l6ZT4gbV9zaXplOwotICAgIE9wdGlvbmFsPEludFNpemU+IG1fc2l6ZVJlc3BlY3RpbmdPcmll
bnRhdGlvbjsKKyAgICBPcHRpb25hbDxJbWFnZU9yaWVudGF0aW9uPiBtX29yaWVudGF0aW9uOwog
ICAgIE9wdGlvbmFsPENvbG9yPiBtX3NpbmdsZVBpeGVsU29saWRDb2xvcjsKICAgICBPcHRpb25h
bDxTdWJzYW1wbGluZ0xldmVsPiBtX21heGltdW1TdWJzYW1wbGluZ0xldmVsOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0
ZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdl
R2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4IDlhNmIwMThkNDJmYTc0NDg3ZDE0N2FhNmNlNjQ2NmEx
OWVlYWViM2QuLmQzZDNmYTM5ZTA2ZDg5ZWE2MmMxNzlkOTg4N2Y0NWJiZjZjOGRiZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0
ZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFtZWRJ
bWFnZUdlbmVyYXRlZEltYWdlLmNwcApAQCAtNDAsMTEgKzQwLDExIEBAIE5hbWVkSW1hZ2VHZW5l
cmF0ZWRJbWFnZTo6TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlKFN0cmluZyBuYW1lLCBjb25zdCBG
bG9hdFNpemUmCiAgICAgc2V0Q29udGFpbmVyU2l6ZShzaXplKTsKIH0KIAotSW1hZ2VEcmF3UmVz
dWx0IE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgRGVjb2Rp
bmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0IE5hbWVkSW1hZ2VHZW5l
cmF0ZWRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgb3B0aW9ucykKIHsKICNpZiBVU0UoTkVXX1RIRU1FKSB8fCBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0
KTsKLSAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCwgYmxlbmRN
b2RlKTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcHRpb25zLmNvbXBvc2l0
ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogICAgIGNvbnRleHQuY2xpcChkc3RS
ZWN0KTsKICAgICBjb250ZXh0LnRyYW5zbGF0ZShkc3RSZWN0LmxvY2F0aW9uKCkpOwogICAgIGlm
IChkc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKQEAgLTU3LDEzICs1NywxMiBAQCBJ
bWFnZURyYXdSZXN1bHQgTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRgogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKICAgICBV
TlVTRURfUEFSQU0oZHN0UmVjdCk7CiAgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOwotICAgIFVO
VVNFRF9QQVJBTShjb21wb3NpdGVPcCk7Ci0gICAgVU5VU0VEX1BBUkFNKGJsZW5kTW9kZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRp
ZE5vdGhpbmc7CiAjZW5kaWYKIH0KIAotdm9pZCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRy
YXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1v
ZGUpCit2b2lkIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25z
dCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICNpZiBVU0UoTkVXX1RIRU1FKQogICAgIGF1
dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihzaXpl
KCksIGNvbnRleHQpOwpAQCAtNzQsMTYgKzczLDE1IEBAIHZvaWQgTmFtZWRJbWFnZUdlbmVyYXRl
ZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
CiAgICAgVGhlbWU6OnNpbmdsZXRvbigpLmRyYXdOYW1lZEltYWdlKG1fbmFtZSwgZ3JhcGhpY3ND
b250ZXh0LCBGbG9hdFJlY3QoMCwgMCwgc2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSkp
OwogCiAgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVyIGludG8gdGhlIGNvbnRleHQuCi0gICAg
aW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNyY1JlY3QsIHBhdHRl
cm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAg
ICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0
dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKGRzdFJlY3QpOwogICAgIFVOVVNF
RF9QQVJBTShzcmNSZWN0KTsKICAgICBVTlVTRURfUEFSQU0ocGF0dGVyblRyYW5zZm9ybSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHBoYXNlKTsKICAgICBVTlVTRURfUEFSQU0oc3BhY2luZyk7Ci0gICAg
VU5VU0VEX1BBUkFNKGRzdFJlY3QpOwotICAgIFVOVVNFRF9QQVJBTShjb21wb3NpdGVPcCk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGJsZW5kTW9kZSk7CisgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmgKaW5kZXggM2U3Yzk2ZDk0NzFmMTNmNDY5
NjMxZmI2ZWY0ZDU0ZmY4NTI1MWIxYy4uMDI4NWUxZjhiOWEyYTUxNjMyZGZjNGYzNzBhMmEwY2Q2
MTNkODBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFt
ZWRJbWFnZUdlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmgKQEAgLTM5LDggKzM5LDggQEAgcHVibGlj
OgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3Jp
ZW50YXRpb24pIG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5k
TW9kZSkgb3ZlcnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogCiAgICAgTmFtZWRJ
bWFnZUdlbmVyYXRlZEltYWdlKFN0cmluZyBuYW1lLCBjb25zdCBGbG9hdFNpemUmKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKaW5kZXggZDBm
ZjY3ZWZlMWE2YzJmYjlkMmNlZGM3NTg3NWZkODgwZTZiNTczMS4uZTA5NjU2ZWFmMzFiY2U2OTgx
Y2VkNWQzNDZmYTliMTc4OTU2NWZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9OYXRpdmVJbWFnZS5oCkBAIC0yNyw4ICsyNyw3IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24u
aCIKKyNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogCiAjaWYgVVNFKENHKQogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTY2LDcgKzY1LDcgQEAgSW50U2l6ZSBuYXRpdmVJ
bWFnZVNpemUoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIGJvb2wgbmF0aXZlSW1hZ2VIYXNBbHBo
YShjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwogQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNv
bGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIAotdm9pZCBkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbnRTaXplJiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJs
ZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbik7Cit2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEludFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYp
Owogdm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7
CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9DYWlyb09wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAppbmRleCA3NDY0MGY3MDRlY2U0OTZkYTQwYWY0
MTNiYTZmNGQ5YmRlYWY0MTliLi5hODk1ZGFkZDA0MjFiN2VkMDkxMTI4ZDIzZjY1ZjVkZDk0NGE0
NzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKQEAgLTE3OSw4ICsxNzksNyBAQCBzdGF0aWMgdm9p
ZCBkcmF3U2hhZG93TGF5ZXJCdWZmZXIoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29u
dGV4dCwgSW1hZ2VCdQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYXV0byBzdXJmYWNlID0g
aW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpIHsKLSAgICAgICAgZHJhd05hdGl2
ZUltYWdlKHBsYXRmb3JtQ29udGV4dCwgc3VyZmFjZS5nZXQoKSwgRmxvYXRSZWN0KHJvdW5kZWRJ
bnRQb2ludChsYXllck9yaWdpbiksIGxheWVyU2l6ZSksIEZsb2F0UmVjdChGbG9hdFBvaW50KCks
IGxheWVyU2l6ZSksIHNoYWRvd1N0YXRlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1v
ZGU6Ok5vcm1hbCwgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSwKLSAgICAgICAgICAgIEludGVycG9s
YXRpb25EZWZhdWx0LCBzaGFkb3dTdGF0ZS5nbG9iYWxBbHBoYSwgU2hhZG93U3RhdGUoKSk7Cisg
ICAgICAgIGRyYXdOYXRpdmVJbWFnZShwbGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UuZ2V0KCksIEZs
b2F0UmVjdChyb3VuZGVkSW50UG9pbnQobGF5ZXJPcmlnaW4pLCBsYXllclNpemUpLCBGbG9hdFJl
Y3QoRmxvYXRQb2ludCgpLCBsYXllclNpemUpLCB7IHNoYWRvd1N0YXRlLmdsb2JhbENvbXBvc2l0
ZU9wZXJhdG9yIH0sIHNoYWRvd1N0YXRlLmdsb2JhbEFscGhhLCBTaGFkb3dTdGF0ZSgpKTsKICAg
ICB9CiB9CiAKQEAgLTE5Miw4ICsxOTEsNyBAQCBzdGF0aWMgdm9pZCBkcmF3U2hhZG93SW1hZ2Uo
UGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgSW1hZ2VCdWZmZXImCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChhdXRvIHN1cmZhY2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2VG
b3JDdXJyZW50RnJhbWUoKSkgewotICAgICAgICBkcmF3TmF0aXZlSW1hZ2UocGxhdGZvcm1Db250
ZXh0LCBzdXJmYWNlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwgc2hhZG93U3RhdGUuZ2xvYmFs
Q29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZTo6Tm9ybWFsLCBJbWFnZU9yaWVudGF0aW9uOjpO
b25lLAotICAgICAgICAgICAgSW50ZXJwb2xhdGlvbkRlZmF1bHQsIHNoYWRvd1N0YXRlLmdsb2Jh
bEFscGhhLCBTaGFkb3dTdGF0ZSgpKTsKKyAgICAgICAgZHJhd05hdGl2ZUltYWdlKHBsYXRmb3Jt
Q29udGV4dCwgc3VyZmFjZS5nZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIHsgc2hhZG93U3RhdGUu
Z2xvYmFsQ29tcG9zaXRlT3BlcmF0b3IgfSwgc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNoYWRv
d1N0YXRlKCkpOwogICAgIH0KIH0KIApAQCAtODc4LDM3ICs4NzYsMzcgQEAgdm9pZCBkcmF3R2x5
cGhzKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZpbGxTb3Vy
Y2UmIGZpbGxTb3UKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAotdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFj
ZV90KiBzdXJmYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUg
YmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxBbHBoYSwgY29uc3Qg
U2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQordm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1D
b250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBmbG9hdCBnbG9iYWxBbHBoYSwgY29uc3Qg
U2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQogewogICAgIHBsYXRmb3JtQ29udGV4dC5zYXZlKCk7
CiAKICAgICAvLyBTZXQgdGhlIGNvbXBvc2l0aW5nIG9wZXJhdGlvbi4KLSAgICBpZiAoY29tcG9z
aXRlT3BlcmF0b3IgPT0gQ29tcG9zaXRlU291cmNlT3ZlciAmJiBibGVuZE1vZGUgPT0gQmxlbmRN
b2RlOjpOb3JtYWwgJiYgIWNhaXJvU3VyZmFjZUhhc0FscGhhKHN1cmZhY2UpKQorICAgIGlmIChv
cHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkgPT0gQ29tcG9zaXRlU291cmNlT3ZlciAmJiBvcHRp
b25zLmJsZW5kTW9kZSgpID09IEJsZW5kTW9kZTo6Tm9ybWFsICYmICFjYWlyb1N1cmZhY2VIYXNB
bHBoYShzdXJmYWNlKSkKICAgICAgICAgQ2Fpcm86OlN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRp
b24ocGxhdGZvcm1Db250ZXh0LCBDb21wb3NpdGVDb3B5LCBCbGVuZE1vZGU6Ok5vcm1hbCk7CiAg
ICAgZWxzZQotICAgICAgICBDYWlybzo6U3RhdGU6OnNldENvbXBvc2l0ZU9wZXJhdGlvbihwbGF0
Zm9ybUNvbnRleHQsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUpOworICAgICAgICBDYWly
bzo6U3RhdGU6OnNldENvbXBvc2l0ZU9wZXJhdGlvbihwbGF0Zm9ybUNvbnRleHQsIG9wdGlvbnMu
Y29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUoKSk7CiAKICAgICBGbG9hdFJl
Y3QgZHN0ID0gZGVzdFJlY3Q7Ci0gICAgaWYgKG9yaWVudGF0aW9uICE9IEltYWdlT3JpZW50YXRp
b246Ok5vbmUpIHsKKyAgICBpZiAob3B0aW9ucy5vcmllbnRhdGlvbigpICE9IEltYWdlT3JpZW50
YXRpb246Ok5vbmUpIHsKICAgICAgICAgLy8gSW1hZ2VPcmllbnRhdGlvbiBleHBlY3RzIHRoZSBv
cmlnaW4gdG8gYmUgYXQgKDAsIDApLgogICAgICAgICBDYWlybzo6dHJhbnNsYXRlKHBsYXRmb3Jt
Q29udGV4dCwgZHN0LngoKSwgZHN0LnkoKSk7CiAgICAgICAgIGRzdC5zZXRMb2NhdGlvbihGbG9h
dFBvaW50KCkpOwotICAgICAgICBDYWlybzo6Y29uY2F0Q1RNKHBsYXRmb3JtQ29udGV4dCwgb3Jp
ZW50YXRpb24udHJhbnNmb3JtRnJvbURlZmF1bHQoZHN0LnNpemUoKSkpOwotICAgICAgICBpZiAo
b3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSkgeworICAgICAgICBDYWlybzo6Y29uY2F0
Q1RNKHBsYXRmb3JtQ29udGV4dCwgb3B0aW9ucy5vcmllbnRhdGlvbigpLnRyYW5zZm9ybUZyb21E
ZWZhdWx0KGRzdC5zaXplKCkpKTsKKyAgICAgICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKS51
c2VzV2lkdGhBc0hlaWdodCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgZGVzdGluYXRpb24gcmVj
dGFuZ2xlIHdpbGwgaGF2ZSBpdHMgd2lkdGggYW5kIGhlaWdodCBhbHJlYWR5IHJldmVyc2VkIGZv
ciB0aGUgb3JpZW50YXRpb24gb2YKICAgICAgICAgICAgIC8vIHRoZSBpbWFnZSwgYXMgaXQgd2Fz
IG5lZWRlZCBmb3IgcGFnZSBsYXlvdXQsIHNvIHdlIG5lZWQgdG8gcmV2ZXJzZSBpdCBiYWNrIGhl
cmUuCiAgICAgICAgICAgICBkc3QgPSBGbG9hdFJlY3QoZHN0LngoKSwgZHN0LnkoKSwgZHN0Lmhl
aWdodCgpLCBkc3Qud2lkdGgoKSk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBkcmF3U3VyZmFj
ZShwbGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UsIGRzdCwgc3JjUmVjdCwgaW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eSwgZ2xvYmFsQWxwaGEsIHNoYWRvd1N0YXRlKTsKKyAgICBkcmF3U3VyZmFjZShw
bGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UsIGRzdCwgc3JjUmVjdCwgb3B0aW9ucy5pbnRlcnBvbGF0
aW9uUXVhbGl0eSgpLCBnbG9iYWxBbHBoYSwgc2hhZG93U3RhdGUpOwogICAgIHBsYXRmb3JtQ29u
dGV4dC5yZXN0b3JlKCk7CiB9CiAKLXZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1Db250ZXh0Q2Fp
cm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBjb25zdCBJbnRT
aXplJiBzaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
IHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBjb25zdCBJbnRTaXpl
JiBzaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAg
ICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgd2h5IHRoZSBzaXplIGhhcyB0byBiZSBwYXNzZWQgaW4g
YXMgYW4gSW50UmVjdC4KLSAgICBkcmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KHBsYXRmb3JtQ29u
dGV4dC5jcigpLCBzdXJmYWNlLCBzaXplLCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHRvQ2Fpcm9PcGVyYXRvcihjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlKSwgZGVzdFJl
Y3QpOworICAgIGRyYXdQYXR0ZXJuVG9DYWlyb0NvbnRleHQocGxhdGZvcm1Db250ZXh0LmNyKCks
IHN1cmZhY2UsIHNpemUsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgdG9DYWly
b09wZXJhdG9yKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUo
KSksIGRlc3RSZWN0KTsKIH0KIAogdm9pZCBkcmF3U3VyZmFjZShQbGF0Zm9ybUNvbnRleHRDYWly
byYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgb3JpZ2luYWxTcmNSZWN0LCBJbnRlcnBv
bGF0aW9uUXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxBbHBo
YSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuaAppbmRleCAw
ODVlNjFhNWIzYzljN2M5NzIxNmIzYzdiY2Q2ZDc2OTI1OGNjODRmLi41ODM0ZjQzMGYwNWRkMTU4
MzczOGUzMWU0MzNkMjcxNDBhNmNkMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuaApAQCAtMTM4LDggKzEz
OCw4IEBAIHZvaWQgY2xlYXJSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRS
ZWN0Jik7CiAKIHZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZp
bGxTb3VyY2UmLCBjb25zdCBTdHJva2VTb3VyY2UmLCBjb25zdCBTaGFkb3dTdGF0ZSYsIGNvbnN0
IEZsb2F0UG9pbnQmLCBjYWlyb19zY2FsZWRfZm9udF90KiwgZG91YmxlLCBjb25zdCBWZWN0b3I8
Y2Fpcm9fZ2x5cGhfdD4mLCBmbG9hdCwgVGV4dERyYXdpbmdNb2RlRmxhZ3MsIGZsb2F0LCBjb25z
dCBGbG9hdFNpemUmLCBjb25zdCBDb2xvciYpOwogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0
Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50
YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCwgY29uc3QgU2hhZG93U3RhdGUmKTsK
LXZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjYWlyb19zdXJmYWNlX3Qq
LCBjb25zdCBJbnRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIENvbXBvc2l0ZU9wZXJhdG9y
LCBCbGVuZE1vZGUpOwordm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
LCBjYWlyb19zdXJmYWNlX3QqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYsIGZsb2F0LCBjb25zdCBTaGFkb3dTdGF0ZSYpOwor
dm9pZCBkcmF3UGF0dGVybihQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCos
IGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd1N1cmZhY2UoUGxhdGZvcm1Db250
ZXh0Q2Fpcm8mLCBjYWlyb19zdXJmYWNlX3QqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9h
dFJlY3QmLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQsIGNvbnN0IFNoYWRvd1N0YXRlJik7
CiAKIHZvaWQgZHJhd1JlY3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjb25zdCBGbG9hdFJlY3Qm
LCBmbG9hdCwgY29uc3QgQ29sb3ImLCBTdHJva2VTdHlsZSwgY29uc3QgQ29sb3ImKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCAyM2Y2NTNlYmUzNzUyMWZjNzI1YWQzYmExOTJl
MzU0MGJhYzE5ZWVkLi5kNTAzOWI5NzIxMTY0ZDIxZGJkMmQ4YTVkNzhkMDMzZWQxYjVkZmFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0xMjAsMTkgKzEyMCwxOSBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBi
b3JkZXJUaGlja25lc3MpCiAgICAgQ2Fpcm86OmRyYXdSZWN0KCpwbGF0Zm9ybUNvbnRleHQoKSwg
cmVjdCwgYm9yZGVyVGhpY2tuZXNzLCBzdGF0ZS5maWxsQ29sb3IsIHN0YXRlLnN0cm9rZVN0eWxl
LCBzdGF0ZS5zdHJva2VDb2xvcik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0
aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGlt
YWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5k
TW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9h
dFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9p
bXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUs
IGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlLCBvcmllbnRh
dGlvbik7CisgICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUs
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgYXV0byYgc3RhdGUgPSB0aGlz
LT5zdGF0ZSgpOwotICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoKnBsYXRmb3JtQ29udGV4dCgp
LCBpbWFnZS5nZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVu
ZE1vZGUsIG9yaWVudGF0aW9uLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBzdGF0
ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CisgICAgQ2Fpcm86OmRyYXdOYXRp
dmVJbWFnZSgqcGxhdGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVj
dCwgeyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5IH0sIHN0YXRlLmFs
cGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAogLy8gVGhpcyBpcyBvbmx5IHVz
ZWQgdG8gZHJhdyBib3JkZXJzLCBzbyB3ZSBzaG91bGQgbm90IGRyYXcgc2hhZG93cy4KQEAgLTY2
MCwxOSArNjYwLDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdFdpdGhSb3VuZGVk
SG9sZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0CiAgICAgQ2Fpcm86OmZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgcm91bmRlZEhvbGVS
ZWN0LCBDYWlybzo6RmlsbFNvdXJjZShzdGF0ZSksIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkp
OwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0
ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdE
aXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pbXBsKSB7Ci0gICAgICAg
IG1faW1wbC0+ZHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRy
YW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUpOwor
ICAgICAgICBtX2ltcGwtPmRyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgaWYgKGF1
dG8gc3VyZmFjZSA9IGltYWdlLm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpCi0gICAgICAg
IENhaXJvOjpkcmF3UGF0dGVybigqcGxhdGZvcm1Db250ZXh0KCksIHN1cmZhY2UuZ2V0KCksIElu
dFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3Jt
LCBwaGFzZSwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSk7CisgICAgICAgIENhaXJvOjpk
cmF3UGF0dGVybigqcGxhdGZvcm1Db250ZXh0KCksIHN1cmZhY2UuZ2V0KCksIEludFNpemUoaW1h
Z2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwg
b3B0aW9ucyk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNob3VsZEFu
dGlhbGlhcyhib29sIGVuYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3Bw
CmluZGV4IDA0ZjJhOWZmNTQ2OWFhNWJhMjRkMTQ5NTY1NGI2MGYwYmM0M2QyYWIuLjg1MmEyNzZm
N2ZjNjYxNmE5OTA0YWZlZWIwZTk5MDk3MDgwNjIzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvLmNwcApAQCAtMjc2LDE3ICsyNzYsMTcgQEAgSW1hZ2VEcmF3UmVzdWx0IEdy
YXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG8KICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBs
KGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxl
RmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKQordm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIFVOVVNFRF9QQVJBTShp
bWFnZVNpemUpOwogICAgIGF1dG8mIHN0YXRlID0gZ3JhcGhpY3NDb250ZXh0KCkuc3RhdGUoKTsK
LSAgICBDYWlybzo6ZHJhd05hdGl2ZUltYWdlKG1fcGxhdGZvcm1Db250ZXh0LCBpbWFnZS5nZXQo
KSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUsIG9yaWVu
dGF0aW9uLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBzdGF0ZS5hbHBoYSwgQ2Fp
cm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CisgICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShtX3Bs
YXRmb3JtQ29udGV4dCwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCB7IG9wdGlvbnMs
IHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgfSwgc3RhdGUuYWxwaGEsIENhaXJvOjpT
aGFkb3dTdGF0ZShzdGF0ZSkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6
ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmLCBDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQg
R3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2Us
IGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQog
ewogICAgIGlmIChhdXRvIHN1cmZhY2UgPSBpbWFnZS5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpKQotICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4obV9wbGF0Zm9ybUNvbnRleHQsIHN1cmZh
Y2UuZ2V0KCksIEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSk7CisgICAg
ICAgIENhaXJvOjpkcmF3UGF0dGVybihtX3BsYXRmb3JtQ29udGV4dCwgc3VyZmFjZS5nZXQoKSwg
SW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zv
cm0sIHBoYXNlLCBvcHRpb25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86
OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0SW1wbENhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaAppbmRleCBmMWIwMmQzNGFiMmZmMjlhZGNm
Yjg3NDNjODk0YzFlNDYwOGI2NzNiLi4yZjUxOWQ0NTQ3N2Q0Mzc5OGI3NTlhODE1MzQ2MmM5ODM1
MzdjZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaApAQCAtNzQsOCArNzQs
OCBAQCBwdWJsaWM6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
Jikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNv
bnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAg
ICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRTaXplJiwgSW1hZ2U6OlRpbGVSdWxlLCBJ
bWFnZTo6VGlsZVJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9h
dFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRy
YXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYs
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25z
dCBGbG9hdFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1h
Z2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxv
YXRSZWN0JiwgZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQ
b2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAK
aW5kZXggZTAxZTYwYjllZWU3YmExODM5N2E2M2VmNGExNzY2N2ZmZGM0YTQ1YS4uMGY3MjY1NzAy
NGViYWM3NDBiMGU3OGY3MzJhYzkzZmIwZGRiN2QxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAK
QEAgLTM0NCwyNCArMzQ0LDIzIEBAIEJhY2tpbmdTdG9yZUNvcHkgSW1hZ2VCdWZmZXI6OmZhc3RD
b3B5SW1hZ2VNb2RlKCkKICAgICByZXR1cm4gRG9udENvcHlCYWNraW5nU3RvcmU7CiB9CiAKLXZv
aWQgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
PiBpbWFnZUJ1ZmZlciwgR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRv
ciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1p
bmcoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciwgR3JhcGhpY3NDb250
ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAg
ICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBi
bGVuZE1vZGUpOworICAgIGltYWdlQnVmZmVyLT5kcmF3KGRlc3RDb250ZXh0LCBkZXN0UmVjdCwg
c3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3ND
b250ZXh0JiBkZXN0aW5hdGlvbkNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwKLSAgICBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRN
b2RlIGJsZW5kTW9kZSkKK3ZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBk
ZXN0aW5hdGlvbkNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewog
ICAgIEJhY2tpbmdTdG9yZUNvcHkgY29weU1vZGUgPSAmZGVzdGluYXRpb25Db250ZXh0ID09ICZj
b250ZXh0KCkgPyBDb3B5QmFja2luZ1N0b3JlIDogRG9udENvcHlCYWNraW5nU3RvcmU7CiAgICAg
UmVmUHRyPEltYWdlPiBpbWFnZSA9IGNvcHlJbWFnZShjb3B5TW9kZSk7Ci0gICAgZGVzdGluYXRp
b25Db250ZXh0LmRyYXdJbWFnZSgqaW1hZ2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBhaW50
aW5nT3B0aW9ucyhvcCwgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFn
ZU9yaWVudGF0aW9uOjpOb25lKSk7CisgICAgZGVzdGluYXRpb25Db250ZXh0LmRyYXdJbWFnZSgq
aW1hZ2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKIH0KIAogdm9pZCBJbWFnZUJ1ZmZl
cjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlKQorICAg
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChSZWZQdHI8SW1hZ2U+
IGltYWdlID0gY29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKSkKLSAgICAgICAgaW1hZ2Ut
PmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3Jt
LCBwaGFzZSwgc3BhY2luZywgb3ApOworICAgICAgICBpbWFnZS0+ZHJhd1BhdHRlcm4oY29udGV4
dCwgZGVzdFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlcjo6cGxhdGZvcm1UcmFuc2Zvcm1Db2xvclNw
YWNlKGNvbnN0IHN0ZDo6YXJyYXk8dWludDhfdCwgMjU2PiYgbG9va1VwVGFibGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNh
aXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUlt
YWdlQ2Fpcm8uY3BwCmluZGV4IDgyM2ZmMGM3ZDc2YzgzZWFlZDYzZWM5OGZmMTRmMDJhMzQwYmY5
YzIuLmRlMzA0ZjM1ZjY1MjljZDZmZDE1OGU5YTAzYzlmMTBjM2Q1YmZjMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05hdGl2ZUlt
YWdlQ2Fpcm8uY3BwCkBAIC01Nyw5ICs1Nyw5IEBAIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4
ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKICAgICByZXR1cm4gY29s
b3JGcm9tUHJlbXVsdGlwbGllZEFSR0IoKnBpeGVsKTsKIH0KIAotdm9pZCBkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW50U2l6ZSYgaW1hZ2VTaXplLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3Zv
aWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUmIGltYWdlU2l6ZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2Us
IGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1v
ZGUsIG9yaWVudGF0aW9uKTsKKyAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1h
Z2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgY2xlYXJOYXRp
dmVJbWFnZVN1YmltYWdlcyhjb25zdCBOYXRpdmVJbWFnZVB0ciYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cu
Y3BwCmluZGV4IDg3Yzk5MDc5YmEwZmExNDUzMmVmMjUzNzZiYTI1MDI2OGFjMDk1ZmIuLmNkNmJi
NzMwZTYxNjE5MTkzZWNlNjBhOTdlZjg4OGQ3N2VmYjYxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cu
Y3BwCkBAIC01MzksNyArNTM5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0Nh
bnZhcyhjb25zdCB1bnNpZ25lZCBjaGFyKiBpbWFnZVBpeGVscywgY29uc3QgSW4KICAgICBjb250
ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1p
bWFnZVNpemUuaGVpZ2h0KCkpOwogICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7Ci0gICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoY2dJ
bWFnZSwgaW1hZ2VTaXplLCBjYW52YXNSZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFn
ZVNpemUpLCBDb21wb3NpdGVDb3B5KTsKKyAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShjZ0lt
YWdlLCBpbWFnZVNpemUsIGNhbnZhc1JlY3QsIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGltYWdl
U2l6ZSksIHsgQ29tcG9zaXRlQ29weSB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwCmluZGV4IGUzZmIzODRkYjMyNzk0NjI5NTk4YzI5Y2JhNTA3MzE2Mzkw
MTg4YjkuLmVlMjczOGY0MjEwYzY5MmMzNWI5MmE4ZGU4OWFmZGEyNzBiZDhiMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5jcHAKQEAgLTI3MywxMyArMjczLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpy
ZXN0b3JlUGxhdGZvcm1TdGF0ZSgpCiAgICAgbV9kYXRhLT5tX3VzZXJUb0RldmljZVRyYW5zZm9y
bUtub3duVG9CZUlkZW50aXR5ID0gZmFsc2U7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwgY29uc3Qg
RmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdl
U2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uKTsKKyAg
ICAgICAgbV9pbXBsLT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wdGlvbnMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yODgsNyAr
Mjg4LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdAogI2VuZGlmCiAgICAgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IHN1YkltYWdlKGltYWdlKTsKIAotICAgIGZsb2F0IGN1cnJIZWlnaHQgPSBvcmll
bnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpID8gQ0dJbWFnZUdldFdpZHRoKHN1YkltYWdlLmdl
dCgpKSA6IENHSW1hZ2VHZXRIZWlnaHQoc3ViSW1hZ2UuZ2V0KCkpOworICAgIGZsb2F0IGN1cnJI
ZWlnaHQgPSBvcHRpb25zLm9yaWVudGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSA/IENHSW1h
Z2VHZXRXaWR0aChzdWJJbWFnZS5nZXQoKSkgOiBDR0ltYWdlR2V0SGVpZ2h0KHN1YkltYWdlLmdl
dCgpKTsKICAgICBpZiAoY3VyckhlaWdodCA8PSBzcmNSZWN0LnkoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0zNTgsMTUgKzM1OCwxNSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2
ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0CiAgICAgYWRq
dXN0ZWREZXN0UmVjdCA9IHJvdW5kVG9EZXZpY2VQaXhlbHMoYWRqdXN0ZWREZXN0UmVjdCk7CiAj
ZW5kaWYKIAotICAgIHNldFBsYXRmb3JtQ29tcG9zaXRlT3BlcmF0aW9uKG9wLCBibGVuZE1vZGUp
OworICAgIHNldFBsYXRmb3JtQ29tcG9zaXRlT3BlcmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3Bl
cmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUoKSk7CiAKICAgICAvLyBJbWFnZU9yaWVudGF0aW9u
IGV4cGVjdHMgdGhlIG9yaWdpbiB0byBiZSBhdCAoMCwgMCkKICAgICBDR0NvbnRleHRUcmFuc2xh
dGVDVE0oY29udGV4dCwgYWRqdXN0ZWREZXN0UmVjdC54KCksIGFkanVzdGVkRGVzdFJlY3QueSgp
KTsKICAgICBhZGp1c3RlZERlc3RSZWN0LnNldExvY2F0aW9uKEZsb2F0UG9pbnQoKSk7CiAKLSAg
ICBpZiAob3JpZW50YXRpb24gIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgewotICAgICAgICBD
R0NvbnRleHRDb25jYXRDVE0oY29udGV4dCwgb3JpZW50YXRpb24udHJhbnNmb3JtRnJvbURlZmF1
bHQoYWRqdXN0ZWREZXN0UmVjdC5zaXplKCkpKTsKLSAgICAgICAgaWYgKG9yaWVudGF0aW9uLnVz
ZXNXaWR0aEFzSGVpZ2h0KCkpIHsKKyAgICBpZiAob3B0aW9ucy5vcmllbnRhdGlvbigpICE9IElt
YWdlT3JpZW50YXRpb246Ok5vbmUpIHsKKyAgICAgICAgQ0dDb250ZXh0Q29uY2F0Q1RNKGNvbnRl
eHQsIG9wdGlvbnMub3JpZW50YXRpb24oKS50cmFuc2Zvcm1Gcm9tRGVmYXVsdChhZGp1c3RlZERl
c3RSZWN0LnNpemUoKSkpOworICAgICAgICBpZiAob3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNX
aWR0aEFzSGVpZ2h0KCkpIHsKICAgICAgICAgICAgIC8vIFRoZSBkZXN0aW5hdGlvbiByZWN0IHdp
bGwgaGF2ZSBpdCdzIHdpZHRoIGFuZCBoZWlnaHQgYWxyZWFkeSByZXZlcnNlZCBmb3IgdGhlIG9y
aWVudGF0aW9uIG9mCiAgICAgICAgICAgICAvLyB0aGUgaW1hZ2UsIGFzIGl0IHdhcyBuZWVkZWQg
Zm9yIHBhZ2UgbGF5b3V0LCBzbyB3ZSBuZWVkIHRvIHJldmVyc2UgaXQgYmFjayBoZXJlLgogICAg
ICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdCA9IEZsb2F0UmVjdChhZGp1c3RlZERlc3RSZWN0Lngo
KSwgYWRqdXN0ZWREZXN0UmVjdC55KCksIGFkanVzdGVkRGVzdFJlY3QuaGVpZ2h0KCksIGFkanVz
dGVkRGVzdFJlY3Qud2lkdGgoKSk7CkBAIC00MDgsMTMgKzQwOCwxMyBAQCBzdGF0aWMgdm9pZCBw
YXR0ZXJuUmVsZWFzZUNhbGxiYWNrKHZvaWQqIGluZm8pCiAgICAgfSk7CiB9CiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBj
b25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRp
b25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgIXBhdHRlcm5UcmFuc2Zvcm0u
aXNJbnZlcnRpYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2ltcGwpIHsKLSAg
ICAgICAgbV9pbXBsLT5kcmF3UGF0dGVybihpbWFnZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJsZW5kTW9kZSk7CisgICAgICAgIG1f
aW1wbC0+ZHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5z
Zm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKElt
YWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QKICAgICBDR0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CiAgICAgQ0dDb250ZXh0Q2xpcFRvUmVj
dChjb250ZXh0LCBkZXN0UmVjdCk7CiAKLSAgICBzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9wZXJhdGlv
bihvcCwgYmxlbmRNb2RlKTsKKyAgICBzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9wZXJhdGlvbihvcHRp
b25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogCiAgICAgQ0dD
b250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIGRlc3RSZWN0LngoKSwgZGVzdFJlY3QueSgpICsg
ZGVzdFJlY3QuaGVpZ2h0KCkpOwogICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEsIC0x
KTsKQEAgLTQzOSwxMSArNDM5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJu
KEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QKICAgICBmbG9h
dCBoID0gQ0dJbWFnZUdldEhlaWdodCh0aWxlSW1hZ2UuZ2V0KCkpOwogCiAgICAgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IHN1YkltYWdlOwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmxv
YXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLm9yaWdpbmFsU2l6ZSgpOwotI2Vsc2UKICAgICBGbG9h
dFNpemUgaW1hZ2VTaXplID0gaW1hZ2Uuc2l6ZSgpOwotI2VuZGlmCiAgICAgaWYgKHRpbGVSZWN0
LnNpemUoKSA9PSBpbWFnZVNpemUpCiAgICAgICAgIHN1YkltYWdlID0gdGlsZUltYWdlOwogICAg
IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcAppbmRleCBkMzVmZjBlZmY5NzE5NTBlZWQxZTNmZDAyNmJjZGE5ZWFm
YTM0ZTQ2Li44MzdiODc3M2Y2ZTM5YzI3OTU0MzM2NjI3MjA5ODA0YjYzY2VmZTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcApAQCAtMzM0LDExICszMzQsMTEgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IEltYWdlQnVm
ZmVyOjpjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSBjb3B5QmVoYXZpb3IKICAgICBy
ZXR1cm4gaW1hZ2U7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciwgR3JhcGhpY3NDb250ZXh0JiBkZXN0
Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgSW1h
Z2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFn
ZUJ1ZmZlciwgR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKIHsKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JF
KQogICAgIGlmICghaW1hZ2VCdWZmZXItPm1fZGF0YS5zdXJmYWNlKSB7Ci0gICAgICAgIGltYWdl
QnVmZmVyLT5kcmF3KGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9k
ZSk7CisgICAgICAgIGltYWdlQnVmZmVyLT5kcmF3KGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgc3Jj
UmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0zNTEsMTMg
KzM1MSwxMyBAQCB2b2lkIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIEdyYXBoaQogICAgIAogICAgIEZsb2F0UmVjdCBh
ZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OwogICAgIGFkanVzdGVkU3JjUmVjdC5zY2FsZShyZXNv
bHV0aW9uU2NhbGUpOwotICAgIGRlc3RDb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZS5nZXQo
KSwgYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgb3AsIGJsZW5k
TW9kZSk7CisgICAgZGVzdENvbnRleHQuZHJhd05hdGl2ZUltYWdlKGltYWdlLmdldCgpLCBiYWNr
aW5nU3RvcmVTaXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBvcHRpb25zKTsKICNlbHNl
Ci0gICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBv
cCwgYmxlbmRNb2RlKTsKKyAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwgZGVzdFJl
Y3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogI2VuZGlmCiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXI6OmRy
YXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRN
b2RlIGJsZW5kTW9kZSkKK3ZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBk
ZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2U7CiAgICAgaWYgKCZkZXN0Q29udGV4dCA9PSAmY29udGV4
dCgpIHx8IGRlc3RDb250ZXh0LmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkpCkBAIC0zNjcsMTAgKzM2
NywxMCBAQCB2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsCiAKICAgICBGbG9hdFJlY3QgYWRqdXN0ZWRT
cmNSZWN0ID0gc3JjUmVjdDsKICAgICBhZGp1c3RlZFNyY1JlY3Quc2NhbGUobV9yZXNvbHV0aW9u
U2NhbGUpOwotICAgIGRlc3RDb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZS5nZXQoKSwgbV9k
YXRhLmJhY2tpbmdTdG9yZVNpemUsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIG9wLCBibGVu
ZE1vZGUpOworICAgIGRlc3RDb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZS5nZXQoKSwgbV9k
YXRhLmJhY2tpbmdTdG9yZVNpemUsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIG9wdGlvbnMp
OwogfQogCi12b2lkIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRl
c3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0
b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3Bh
Y2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgRmxvYXRS
ZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CiAgICAgYWRqdXN0ZWRTcmNSZWN0LnNjYWxl
KG1fcmVzb2x1dGlvblNjYWxlKTsKQEAgLTM3OCwxNCArMzc4LDE0IEBAIHZvaWQgSW1hZ2VCdWZm
ZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzCiAgICAgaWYgKCFjb250ZXh0KCkuaXNBY2NlbGVyYXRlZENvbnRleHQoKSkgewog
ICAgICAgICBpZiAoJmRlc3RDb250ZXh0ID09ICZjb250ZXh0KCkgfHwgZGVzdENvbnRleHQuaXNB
Y2NlbGVyYXRlZENvbnRleHQoKSkgewogICAgICAgICAgICAgaWYgKFJlZlB0cjxJbWFnZT4gY29w
eSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3JlKSkgLy8gRHJhd2luZyBpbnRvIG91ciBvd24g
YnVmZmVyLCBuZWVkIHRvIGRlZXAgY29weS4KLSAgICAgICAgICAgICAgICBjb3B5LT5kcmF3UGF0
dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5z
Zm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgICAgICAgICAgICAgIGNv
cHktPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBpZiAoUmVmUHRyPEltYWdlPiBpbWFnZUZvclJlbmRlcmluZyA9IGNv
cHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSkpCi0gICAgICAgICAgICAgICAgaW1hZ2VGb3JS
ZW5kZXJpbmctPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNS
ZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJsZW5kTW9kZSk7Cisg
ICAgICAgICAgICAgICAgaW1hZ2VGb3JSZW5kZXJpbmctPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0
LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3Bh
Y2luZywgb3B0aW9ucyk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoUmVm
UHRyPEltYWdlPiBjb3B5ID0gY29weUltYWdlKENvcHlCYWNraW5nU3RvcmUpKQotICAgICAgICAg
ICAgY29weS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1Jl
Y3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKKyAg
ICAgICAgICAgIGNvcHktPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0
ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9OYXRpdmVJbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L05hdGl2ZUltYWdlQ0cuY3BwCmluZGV4IGYwMmQ1ZDU2NjBhNmM4YTExMWQ1YmM4MjEwZjZkNWQ5
ZmVhZDNiZDguLjgyOTQxMTY2MWU5ODcwNjBlMDNiM2YwM2UwZTZkYmMxZTdkMjA0MWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdl
Q0cuY3BwCkBAIC02OSw3ICs2OSw3IEBAIENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xp
ZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKICAgICByZXR1cm4gQ29sb3IocGl4
ZWxbMF0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbMV0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxb
Ml0gKiAyNTUgLyBwaXhlbFszXSwgcGl4ZWxbM10pOwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbnRTaXplJiBzcmNTaXplLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIG1vZGUs
IEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25z
dCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRT
aXplJiBzcmNTaXplLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAg
ICAvLyBTdWJzYW1wbGluZyBtYXkgaGF2ZSBnaXZlbiB1cyBhbiBpbWFnZSB0aGF0IGlzIHNtYWxs
ZXIgdGhhbiBzaXplKCkuCiAgICAgSW50U2l6ZSBzdWJzYW1wbGVkSW1hZ2VTaXplID0gbmF0aXZl
SW1hZ2VTaXplKGltYWdlKTsKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnMKICAgICBpZiAoc3Vic2FtcGxlZEltYWdlU2l6ZSAhPSBzcmNTaXplKQogICAgICAgICBhZGp1
c3RlZFNyY1JlY3QgPSBtYXBSZWN0KHNyY1JlY3QsIEZsb2F0UmVjdCh7IH0sIHNyY1NpemUpLCBG
bG9hdFJlY3QoeyB9LCBzdWJzYW1wbGVkSW1hZ2VTaXplKSk7CiAKLSAgICBjb250ZXh0LmRyYXdO
YXRpdmVJbWFnZShpbWFnZSwgc3Vic2FtcGxlZEltYWdlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVk
U3JjUmVjdCwgb3AsIG1vZGUsIG9yaWVudGF0aW9uKTsKKyAgICBjb250ZXh0LmRyYXdOYXRpdmVJ
bWFnZShpbWFnZSwgc3Vic2FtcGxlZEltYWdlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVj
dCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgY2xlYXJOYXRpdmVJbWFnZVN1YmltYWdlcyhjb25zdCBO
YXRpdmVJbWFnZVB0ciYgaW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCmluZGV4IDNkNDNjZmI0MTExZTdi
OGJmMWRmYjFiMGU3ODMzMmY2NmEyYjE0OTYuLjgwZjZiMTg3MjUyMjk2OGVhN2Q5NTc2YjdlMDA1
NjMzMzI1ODgyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFN0cmluZyBQ
REZEb2N1bWVudEltYWdlOjpmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuICJw
ZGYiOwogfQogCi1GbG9hdFNpemUgUERGRG9jdW1lbnRJbWFnZTo6c2l6ZSgpIGNvbnN0CitGbG9h
dFNpemUgUERGRG9jdW1lbnRJbWFnZTo6c2l6ZShJbWFnZU9yaWVudGF0aW9uKSBjb25zdAogewog
ICAgIEZsb2F0U2l6ZSBleHBhbmRlZENyb3BCb3hTaXplID0gRmxvYXRTaXplKGV4cGFuZGVkSW50
U2l6ZShtX2Nyb3BCb3guc2l6ZSgpKSk7CiAKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2b2lkIFBERkRv
Y3VtZW50SW1hZ2U6OnVwZGF0ZUNhY2hlZEltYWdlSWZOZWVkZWQoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdAogICAgIGRlY29kZWRTaXplQ2hhbmdlZChpbnRlcm5hbFNpemUudW5jbGFt
cGVkQXJlYSgpICogNCk7CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBQREZEb2N1bWVudEltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUs
IERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBQREZEb2N1
bWVudEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zKQogewogICAgIGlmICghbV9kb2N1bWVudCB8fCAhbV9oYXNQYWdlKQog
ICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwpAQCAtMjY2LDcgKzI2
Niw3IEBAIEltYWdlRHJhd1Jlc3VsdCBQREZEb2N1bWVudEltYWdlOjpkcmF3KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0CiAKICAgICB7CiAgICAgICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICAgICAgY29udGV4dC5z
ZXRDb21wb3NpdGVPcGVyYXRpb24ob3ApOworICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9w
ZXJhdGlvbihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogCiAgICAgICAgIGlmIChtX2Nh
Y2hlZEltYWdlQnVmZmVyKSB7CiAgICAgICAgICAgICAvLyBEcmF3IHRoZSBJbWFnZUJ1ZmZlciAn
bV9jYWNoZWRJbWFnZUJ1ZmZlcicgdG8gdGhlIHJlY3RhbmdsZSAnbV9jYWNoZWRJbWFnZVJlY3Qn
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1
bWVudEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1
bWVudEltYWdlLmgKaW5kZXggOWJmMTY3YzQ1NTQyMDE2MGI4YjBmODk3M2E3ZDE3OTU0ZjY2MTc1
NS4uZWQ5ZDE2ZDI4NWExMzJmNjcwZmYwODRjZTEzMDA3ZjNkNDU0ZjU5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2Uu
aApAQCAtNzYsOSArNzYsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVzdHJveURlY29kZWREYXRh
KGJvb2wgLypkZXN0cm95QWxsKi8gPSB0cnVlKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY29tcHV0
ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRy
aW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIG92ZXJyaWRlOwotICAgIEZs
b2F0U2l6ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VP
cmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGU7
CiAKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0
b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZTsK
KyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhp
cyB0byBiZSBsZXNzIGNvbnNlcnZhdGl2ZS4KICAgICBib29sIGN1cnJlbnRGcmFtZUtub3duVG9C
ZU9wYXF1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggYjcxM2U4NWVmYzQ4NmFlMWFlMWUwZDczMDM2MWQ5
YTU0YjI4Yzg4Ny4uZDM5YjY2MmE0YWE4YWI2NDZiMzMxNzAxMDJkYjZmYzhjZDgyYTE1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtNDg3LDcgKzQ4Nyw3IEBAIHN0
YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3VGls
ZWRTY2FsZWRJbWFnZSYgaXRlbSkKIH0KIAogI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBV
U0UoRElSRUNUMkQpCi1EcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQorRHJhd05hdGl2ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHIm
IGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKICAgICA6IERyYXdpbmdJdGVtKEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2Up
CiAjaWYgVVNFKENHKQogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHN0b3JlIGFuIGltYWdlIGZvciBD
YWlyby4KQEAgLTQ5NiwyMyArNDk2LDE3IEBAIERyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUlt
YWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpCiAgICAg
LCBtX2ltYWdlU2l6ZShpbWFnZVNpemUpCiAgICAgLCBtX2Rlc3RpbmF0aW9uKGRlc3RSZWN0KQog
ICAgICwgbV9zcmNSZWN0KHNyY1JlY3QpCi0jaWYgVVNFKENHKQotICAgICwgbV9vcChvcCkKLSAg
ICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKLSNlbmRpZgotICAgICwgbV9vcmllbnRhdGlvbihv
cmllbnRhdGlvbikKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogewogI2lmICFVU0UoQ0cpCiAg
ICAgVU5VU0VEX1BBUkFNKGltYWdlKTsKLSAgICBVTlVTRURfUEFSQU0ob3ApOwotICAgIFVOVVNF
RF9QQVJBTShibGVuZE1vZGUpOwogI2VuZGlmCiB9CiAKIHZvaWQgRHJhd05hdGl2ZUltYWdlOjph
cHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAjaWYgVVNFKENHKQotICAg
IGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG1faW1hZ2UsIG1faW1hZ2VTaXplLCBtX2Rlc3RpbmF0
aW9uLCBtX3NyY1JlY3QsIG1fb3AsIG1fYmxlbmRNb2RlLCBtX29yaWVudGF0aW9uKTsKKyAgICBj
b250ZXh0LmRyYXdOYXRpdmVJbWFnZShtX2ltYWdlLCBtX2ltYWdlU2l6ZSwgbV9kZXN0aW5hdGlv
biwgbV9zcmNSZWN0LCBtX29wdGlvbnMpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY29udGV4
dCk7CiAjZW5kaWYKQEAgLTUyOCw3ICs1MjIsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd05hdGl2ZUltYWdlJiBpdGVtKQogfQogI2Vu
ZGlmCiAKLURyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0
IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVu
ZE1vZGUpCitEcmF3UGF0dGVybjo6RHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQogICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRyYXdQYXR0ZXJuKQogICAgICwgbV9pbWFn
ZShpbWFnZSkKICAgICAsIG1fcGF0dGVyblRyYW5zZm9ybShwYXR0ZXJuVHJhbnNmb3JtKQpAQCAt
NTM2LDE0ICs1MzAsMTMgQEAgRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWMKICAgICAsIG1fZGVzdGlu
YXRpb24oZGVzdFJlY3QpCiAgICAgLCBtX3BoYXNlKHBoYXNlKQogICAgICwgbV9zcGFjaW5nKHNw
YWNpbmcpCi0gICAgLCBtX29wKG9wKQotICAgICwgbV9ibGVuZE1vZGUoYmxlbmRNb2RlKQorICAg
ICwgbV9vcHRpb25zKG9wdGlvbnMpCiB7CiB9CiAKIHZvaWQgRHJhd1BhdHRlcm46OmFwcGx5KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAgICBjb250ZXh0LmRyYXdQYXR0ZXJu
KG1faW1hZ2UuZ2V0KCksIG1fZGVzdGluYXRpb24sIG1fdGlsZVJlY3QsIG1fcGF0dGVyblRyYW5z
Zm9ybSwgbV9waGFzZSwgbV9zcGFjaW5nLCBtX29wLCBtX2JsZW5kTW9kZSk7CisgICAgY29udGV4
dC5kcmF3UGF0dGVybihtX2ltYWdlLmdldCgpLCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBt
X3BhdHRlcm5UcmFuc2Zvcm0sIG1fcGhhc2UsIG1fc3BhY2luZywgbV9vcHRpb25zKTsKIH0KIAog
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdQ
YXR0ZXJuJiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggOGJjY2Ux
OWIyNGUxZmY1ZjY1YjZiZjQ4Yzk0MTcwYzliN2UwMWZiOC4uY2YzY2Y5MjkzMGM0NmRiZTZjNzI5
N2E1YTkxY2UyNTEyNWNiYTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBA
IC02NDEsMTYgKzY0MSwxNiBAQCBwcml2YXRlOgogI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8
fCBVU0UoRElSRUNUMkQpCiBjbGFzcyBEcmF3TmF0aXZlSW1hZ2UgOiBwdWJsaWMgRHJhd2luZ0l0
ZW0gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RHJhd05hdGl2ZUltYWdlPiBjcmVhdGUoY29u
c3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmll
bnRhdGlvbikKKyAgICBzdGF0aWMgUmVmPERyYXdOYXRpdmVJbWFnZT4gY3JlYXRlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3Qs
IG9wLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwg
b3B0aW9ucykpOwogICAgIH0KIAogICAgIEZsb2F0UmVjdCBzb3VyY2UoKSBjb25zdCB7IHJldHVy
biBtX3NyY1JlY3Q7IH0KICAgICBGbG9hdFJlY3QgZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2Rlc3RpbmF0aW9uOyB9CiAKIHByaXZhdGU6Ci0gICAgRHJhd05hdGl2ZUltYWdlKGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBEcmF3TmF0aXZlSW1hZ2UoY29u
c3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJik7CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0
IG92ZXJyaWRlOwogCkBAIC02NjIsMTkgKzY2MiwxNSBAQCBwcml2YXRlOgogICAgIEZsb2F0U2l6
ZSBtX2ltYWdlU2l6ZTsKICAgICBGbG9hdFJlY3QgbV9kZXN0aW5hdGlvbjsKICAgICBGbG9hdFJl
Y3QgbV9zcmNSZWN0OwotI2lmIFVTRShDRykKLSAgICBDb21wb3NpdGVPcGVyYXRvciBtX29wOwot
ICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZTsKLSNlbmRpZgotICAgIEltYWdlT3JpZW50YXRpb24g
bV9vcmllbnRhdGlvbjsKKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX29wdGlvbnM7CiB9Owog
I2VuZGlmCiAKIGNsYXNzIERyYXdQYXR0ZXJuIDogcHVibGljIERyYXdpbmdJdGVtIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPERyYXdQYXR0ZXJuPiBjcmVhdGUoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlKQorICAgIHN0YXRpYyBSZWY8RHJhd1BhdHRlcm4+IGNyZWF0ZShJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQ
b2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
cmF3UGF0dGVybihpbWFnZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBw
aGFzZSwgc3BhY2luZywgb3AsIGJsZW5kTW9kZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEcmF3UGF0dGVybihpbWFnZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNm
b3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucykpOwogICAgIH0KIAogICAgIGNvbnN0IEltYWdl
JiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7IH0KQEAgLTY4NSw3ICs2ODEs
NyBAQCBwdWJsaWM6CiAgICAgRmxvYXRTaXplIHNwYWNpbmcoKSBjb25zdCB7IHJldHVybiBtX3Nw
YWNpbmc7IH0KIAogcHJpdmF0ZToKLSAgICBEcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKTsKKyAg
ICBEcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyB9KTsKIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qg
b3ZlcnJpZGU7CiAKQEAgLTY5Nyw4ICs2OTMsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBt
X2Rlc3RpbmF0aW9uOwogICAgIEZsb2F0UG9pbnQgbV9waGFzZTsKICAgICBGbG9hdFNpemUgbV9z
cGFjaW5nOwotICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1fb3A7Ci0gICAgQmxlbmRNb2RlIG1fYmxl
bmRNb2RlOworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG1fb3B0aW9uczsKIH07CiAKIC8vIElz
IERyYXdpbmdJdGVtIGJlY2F1c2UgdGhlIHNpemUgb2YgdGhlIHRyYW5zcGFyZW5jeSBsYXllciBp
cyBpbXBsaWNpdGx5IHRoZSBjbGlwIGJvdW5kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcAppbmRleCBlNzk3YTdmZDQyODcxOGQzOTcwODAyNTRhMmZmZDYxNjIzY2E2
NTRlLi5lMjBmM2VkMTNjYjZlNTVmNzgyZThjOWFkYzEzMDg3MmRlNmVmMTMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0xMjcsMTYgKzEyNywxNiBAQCBJ
bWFnZURyYXdSZXN1bHQgUmVjb3JkZXI6OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdAogfQogCiAjaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8
IFVTRShESVJFQ1QyRCkKLXZvaWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQordm9pZCBSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBp
bWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG9wdGlvbnMpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5n
SXRlbT4oYXBwZW5kSXRlbShEcmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgaW1hZ2VTaXpl
LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24pKSk7CisgICAg
RHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShE
cmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVj
dCwgb3B0aW9ucykpKTsKICAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogI2VuZGlm
CiAKLXZvaWQgUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5k
TW9kZSkKK3ZvaWQgUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJdGVtPihh
cHBlbmRJdGVtKERyYXdQYXR0ZXJuOjpjcmVhdGUoaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwg
cGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpKSk7CisgICAg
RHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShE
cmF3UGF0dGVybjo6Y3JlYXRlKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFu
c2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKSkpOwogICAgIHVwZGF0ZUl0ZW1FeHRlbnQo
bmV3SXRlbSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4
IDMxNzk4YzFiMmQ0NzQzNzQ5OGZjMzE1YWMxNjNkMzVlNDY3NTM3ZjAuLjUxNmQ0ZGY4YzdmZDll
YjVmMjk5NzU2NThkZDc2M2QxODAwYzNjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
UmVjb3JkZXIuaApAQCAtOTIsOSArOTIsOSBAQCBwcml2YXRlOgogICAgIEltYWdlRHJhd1Jlc3Vs
dCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNp
emUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1
bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAjaWYgVVNF
KENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKLSAgICB2b2lkIGRyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNp
emUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAjZW5kaWYK
LSAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlOjpOb3JtYWwpIG92ZXJyaWRlOworICAgIHZvaWQg
ZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZs
b2F0IGJvcmRlclRoaWNrbmVzcykgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TGluZShjb25zdCBG
bG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKaW5kZXggYmVm
M2FkOTA3MWVlOGM0NTBkOTFmOWJmOTgyNDg1NTU4MGUxZjQxNy4uZTRkNzI5NTdiMGNkZTg3ZjE3
ZmY5NzJmY2I3MTk3Yzk1OWYzMzBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQg
RkVCbGVuZDo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
ZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyMiwgZHJhd2luZ1JlZ2lv
bk9mSW5wdXRJbWFnZShpbjItPmFic29sdXRlUGFpbnRSZWN0KCkpKTsKLSAgICBmaWx0ZXJDb250
ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdSZWdpb25PZklucHV0SW1h
Z2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVm
ZmVyLT5sb2dpY2FsU2l6ZSgpKSwgSW1hZ2VQYWludGluZ09wdGlvbnMoQ29tcG9zaXRlU291cmNl
T3ZlciwgbV9tb2RlKSk7CisgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdl
QnVmZmVyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgp
KSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIHsgQ29t
cG9zaXRlU291cmNlT3ZlciwgbV9tb2RlIH0pOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAK
aW5kZXggNTMyM2JlZGFhNTcwYTRiMjEyNDE2OGM0NjViNDk1MWMwNDFmNDM5YS4uZDU2ZGI0MGMw
NDk0ZGIxNzNmMDAxNzQ0YjVjMWJjNGQyYzFhNWEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAKQEAgLTI3
MCw4ICsyNzAsOCBAQCB2b2lkIEZFQ29tcG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQog
ICAgICAgICBJbnRSZWN0IGFkanVzdGVkRGVzdGluYXRpb25SZWN0ID0gZGVzdGluYXRpb25SZWN0
IC0gYWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigpOwogICAgICAgICBJbnRSZWN0IHNvdXJj
ZVJlY3QgPSBkZXN0aW5hdGlvblJlY3QgLSBpbi0+YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlv
bigpOwogICAgICAgICBJbnRSZWN0IHNvdXJjZTJSZWN0ID0gZGVzdGluYXRpb25SZWN0IC0gaW4y
LT5hYnNvbHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9uKCk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQu
ZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIsIGFkanVzdGVkRGVzdGluYXRpb25SZWN0LCBz
b3VyY2UyUmVjdCk7Ci0gICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFn
ZUJ1ZmZlciwgYWRqdXN0ZWREZXN0aW5hdGlvblJlY3QsIHNvdXJjZVJlY3QsIENvbXBvc2l0ZVNv
dXJjZUluKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVm
ZmVyMiwgRmxvYXRSZWN0KGFkanVzdGVkRGVzdGluYXRpb25SZWN0KSwgRmxvYXRSZWN0KHNvdXJj
ZTJSZWN0KSk7CisgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1
ZmZlciwgRmxvYXRSZWN0KGFkanVzdGVkRGVzdGluYXRpb25SZWN0KSwgRmxvYXRSZWN0KHNvdXJj
ZVJlY3QpLCB7IENvbXBvc2l0ZVNvdXJjZUluIH0pOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggYjAyZTI4ZWRjZDQwN2Zk
ZmY4Y2JlYTc4YWQxYTZlN2IwYzdiNThhOS4uMDgyZjE5NDRlOTQ1OTZlYzRkNjkxMjA2YmQ0NWI0
MTIyNTExOTUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcApAQCAtODg1LDE1ICs4ODUsMTEgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2EKICAgICBpZiAoIUdTVF9JU19TQU1QTEUobV9zYW1wbGUuZ2V0KCkpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBwYWludGluZ09wdGlvbnMoQ29tcG9z
aXRlQ29weSk7Ci0gICAgaWYgKG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCkKLSAgICAgICAg
cGFpbnRpbmdPcHRpb25zLm1fb3JpZW50YXRpb24gPSBtX3ZpZGVvU291cmNlT3JpZW50YXRpb247
Ci0KICAgICBhdXRvIGdzdEltYWdlID0gSW1hZ2VHU3RyZWFtZXI6OmNyZWF0ZUltYWdlKG1fc2Ft
cGxlLmdldCgpKTsKICAgICBpZiAoIWdzdEltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBj
b250ZXh0LmRyYXdJbWFnZShnc3RJbWFnZS0+aW1hZ2UoKSwgcmVjdCwgZ3N0SW1hZ2UtPnJlY3Qo
KSwgcGFpbnRpbmdPcHRpb25zKTsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShnc3RJbWFnZS0+aW1h
Z2UoKSwgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgeyBDb21wb3NpdGVDb3B5LCBtX3JlbmRlcmlu
Z0NhbkJlQWNjZWxlcmF0ZWQgPyBtX3ZpZGVvU291cmNlT3JpZW50YXRpb24gOiBJbWFnZU9yaWVu
dGF0aW9uKCkgfSk7CiB9CiAKICNpZiBVU0UoR1NUUkVBTUVSX0dMKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcAppbmRleCA1MGUw
YzNjN2Q5NzY4MjZiYTdiYjgxODVkMWVlMTQyMTI5YWRhMDJjLi4xZDJhZjY5ZmQ2ZmE3ODNmMGZj
MTY2MWE4NjgwYzJiMTA2OGMxNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05p
Y29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcApAQCAtNTQ5LDE0ICs1NDksMTQgQEAgSW1h
Z2VEcmF3UmVzdWx0IENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdUaWxlZEltYWdlKEltYWdl
JiBpbWFnZSwgY29uc3QgRmxvYXQKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJh
d1RpbGVkSW1hZ2VJbXBsKGdyYXBoaWNzQ29udGV4dCgpLCBpbWFnZSwgZGVzdGluYXRpb24sIHNv
dXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25z
KTsKIH0KIAotdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29u
c3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VP
cmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgc3Ry
dWN0IERyYXdOYXRpdmVJbWFnZSBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25E
YXRhPFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+LCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1
YWxpdHksIGZsb2F0LCBDYWlybzo6U2hhZG93U3RhdGU+IHsKKyAgICBzdHJ1Y3QgRHJhd05hdGl2
ZUltYWdlIGZpbmFsIDogUGFpbnRpbmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4sIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9u
cywgZmxvYXQsIENhaXJvOjpTaGFkb3dTdGF0ZT4gewogICAgICAgICB2aXJ0dWFsIH5EcmF3TmF0
aXZlSW1hZ2UoKSA9IGRlZmF1bHQ7CiAKICAgICAgICAgdm9pZCBleGVjdXRlKFBhaW50aW5nT3Bl
cmF0aW9uUmVwbGF5JiByZXBsYXllcikgb3ZlcnJpZGUKICAgICAgICAgewotICAgICAgICAgICAg
Q2Fpcm86OmRyYXdOYXRpdmVJbWFnZShjb250ZXh0Rm9yUmVwbGF5KHJlcGxheWVyKSwgYXJnPDA+
KCkuZ2V0KCksIGFyZzwxPigpLCBhcmc8Mj4oKSwgYXJnPDM+KCksIGFyZzw0PigpLCBhcmc8NT4o
KSwgYXJnPDY+KCksIGFyZzw3PigpLCBhcmc8OD4oKSk7CisgICAgICAgICAgICBDYWlybzo6ZHJh
d05hdGl2ZUltYWdlKGNvbnRleHRGb3JSZXBsYXkocmVwbGF5ZXIpLCBhcmc8MD4oKS5nZXQoKSwg
YXJnPDE+KCksIGFyZzwyPigpLCBhcmc8Mz4oKSwgYXJnPDQ+KCksIGFyZzw1PigpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cykgb3ZlcnJpZGUKQEAgLTU2
NywxNyArNTY3LDE3IEBAIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2ZUlt
YWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QKIAogICAgIFVOVVNFRF9QQVJB
TShpbWFnZVNpemUpOwogICAgIGF1dG8mIHN0YXRlID0gZ3JhcGhpY3NDb250ZXh0KCkuc3RhdGUo
KTsKLSAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3TmF0aXZlSW1hZ2U+KFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+KGltYWdlLmdldCgpKSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9w
ZXJhdG9yLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25R
dWFsaXR5LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSkpOworICAgIGFw
cGVuZChjcmVhdGVDb21tYW5kPERyYXdOYXRpdmVJbWFnZT4oUmVmUHRyPGNhaXJvX3N1cmZhY2Vf
dD4oaW1hZ2UuZ2V0KCkpLCBkZXN0UmVjdCwgc3JjUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMo
b3B0aW9ucywgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSksIHN0YXRlLmFscGhhLCBD
YWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKSk7CiB9CiAKLXZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNv
cmRlcjo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRl
cm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNw
YWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxl
bmRNb2RlKQordm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQ
b2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgc3RydWN0IERyYXdQYXR0ZXJuIGZpbmFsIDogUGFp
bnRpbmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4sIElu
dFNpemUsIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBBZmZpbmVUcmFuc2Zvcm0sIEZsb2F0UG9pbnQs
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGU+IHsKKyAgICBzdHJ1Y3QgRHJhd1BhdHRlcm4g
ZmluYWwgOiBQYWludGluZ09wZXJhdGlvbiwgT3BlcmF0aW9uRGF0YTxSZWZQdHI8Y2Fpcm9fc3Vy
ZmFjZV90PiwgSW50U2l6ZSwgRmxvYXRSZWN0LCBGbG9hdFJlY3QsIEFmZmluZVRyYW5zZm9ybSwg
RmxvYXRQb2ludCwgSW1hZ2VQYWludGluZ09wdGlvbnM+IHsKICAgICAgICAgdmlydHVhbCB+RHJh
d1BhdHRlcm4oKSA9IGRlZmF1bHQ7CiAKICAgICAgICAgdm9pZCBleGVjdXRlKFBhaW50aW5nT3Bl
cmF0aW9uUmVwbGF5JiByZXBsYXllcikgb3ZlcnJpZGUKICAgICAgICAgewotICAgICAgICAgICAg
Q2Fpcm86OmRyYXdQYXR0ZXJuKGNvbnRleHRGb3JSZXBsYXkocmVwbGF5ZXIpLCBhcmc8MD4oKS5n
ZXQoKSwgYXJnPDE+KCksIGFyZzwyPigpLCBhcmc8Mz4oKSwgYXJnPDQ+KCksIGFyZzw1PigpLCBh
cmc8Nj4oKSwgYXJnPDc+KCkpOworICAgICAgICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKGNvbnRl
eHRGb3JSZXBsYXkocmVwbGF5ZXIpLCBhcmc8MD4oKS5nZXQoKSwgYXJnPDE+KCksIGFyZzwyPigp
LCBhcmc8Mz4oKSwgYXJnPDQ+KCksIGFyZzw1PigpLCBhcmc8Nj4oKSk7CiAgICAgICAgIH0KIAog
ICAgICAgICB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMpIG92ZXJyaWRlCkBAIC01ODgsNyArNTg4
LDcgQEAgdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QKIAogICAgIFVOVVNFRF9QQVJBTShzcGFjaW5n
KTsKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UubmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJh
bWUoKSkKLSAgICAgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd1BhdHRlcm4+KFdURk1vdmUo
c3VyZmFjZSksIEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSkpOworICAg
ICAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3UGF0dGVybj4oV1RGTW92ZShzdXJmYWNlKSwg
SW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zv
cm0sIHBoYXNlLCBvcHRpb25zKSk7CiB9CiAKIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6
ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJv
L05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgK
aW5kZXggZGJkNjcyMzE0ODRmOTE4NzIxY2MwYmZkZDg2Mzg1ZTdmZTViODlmOS4uODI2MGM0OGFk
Nzk4Njg0YzZlNTdjMWQ2NmRmYmU2ZDAxMDFjMWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25S
ZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
Y2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaApAQCAtNjcsOCArNjcsOCBAQCBw
cml2YXRlOgogICAgIFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoV2ViQ29yZTo6
SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAg
IFdlYkNvcmU6OkltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShXZWJDb3JlOjpJbWFnZSYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25z
dCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6
OkltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OkltYWdlOjpUaWxlUnVsZSwgV2ViQ29yZTo6SW1hZ2U6
OlRpbGVSdWxlLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRy
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3IsIFdl
YkNvcmU6OkJsZW5kTW9kZSwgV2ViQ29yZTo6SW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmLCBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvciwgV2ViQ29yZTo6QmxlbmRNb2RlID0g
V2ViQ29yZTo6QmxlbmRNb2RlOjpOb3JtYWwpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd05hdGl2
ZUltYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyJiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJh
bnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZsb2F0KSBvdmVy
cmlkZTsKICAgICB2b2lkIGRyYXdMaW5lKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRE9wZXJhdGlvbnMuY3BwCmlu
ZGV4IGQ3YTBlOTgzOTcxOGMzMTBlYTFmMjU5YTVhZjRlNDFhZWU4MmM1MWMuLjlhZTJhNzJlOTBm
OTViOWFhYTQ2NDg3ODhjNmYyN2ExNzdjOGZkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRE9wZXJhdGlvbnMuY3BwCkBA
IC03NjUsNyArNzY1LDcgQEAgdm9pZCBkcmF3R2x5cGhzKFBsYXRmb3JtQ29udGV4dERpcmVjdDJE
JiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZpbGxTb3VyY2UmIGZpbGwKIH0KIAogCi12b2lkIGRy
YXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHREaXJlY3QyRCYgcGxhdGZvcm1Db250ZXh0LCBJ
V0lDQml0bWFwKiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBvcmlnaW5hbEltYWdlU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBv
bGF0aW9uUXVhbGl0eSwgZmxvYXQgZ2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFk
b3dTdGF0ZSkKK3ZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBw
bGF0Zm9ybUNvbnRleHQsIElXSUNCaXRtYXAqIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIG9yaWdp
bmFsSW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBmbG9hdCBnbG9i
YWxBbHBoYSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQogewogICAgIGF1dG8gbmF0
aXZlSW1hZ2VTaXplID0gYml0bWFwU2l6ZShpbWFnZSk7CiAgICAgQ09NUHRyPElEMkQxQml0bWFw
PiBkZXZpY2VCaXRtYXA7CkBAIC03NzQsMTAgKzc3NCwxMCBAQCB2b2lkIGRyYXdOYXRpdmVJbWFn
ZShQbGF0Zm9ybUNvbnRleHREaXJlY3QyRCYgcGxhdGZvcm1Db250ZXh0LCBJV0lDQml0bWFwKiBp
bWFnZQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGltYWdlU2l6ZSA9IGJpdG1hcFNpemUo
ZGV2aWNlQml0bWFwLmdldCgpKTsKLSAgICBkcmF3TmF0aXZlSW1hZ2UocGxhdGZvcm1Db250ZXh0
LCBkZXZpY2VCaXRtYXAuZ2V0KCksIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBv
c2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uLCBpbWFnZUludGVycG9sYXRpb25R
dWFsaXR5LCBnbG9iYWxBbHBoYSwgc2hhZG93U3RhdGUpOworICAgIGRyYXdOYXRpdmVJbWFnZShw
bGF0Zm9ybUNvbnRleHQsIGRldmljZUJpdG1hcC5nZXQoKSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwg
c3JjUmVjdCwgb3B0aW9ucywgZ2xvYmFsQWxwaGEsIHNoYWRvd1N0YXRlKTsKIH0KIAotdm9pZCBk
cmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwg
SUQyRDFCaXRtYXAqIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVy
YXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRh
dGlvbiBvcmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eSwgZmxvYXQgZ2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0
ZSkKK3ZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9y
bUNvbnRleHQsIElEMkQxQml0bWFwKiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIGZsb2F0IGdsb2JhbEFscGhhLCBjb25z
dCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCiB7CiAgICAgYXV0byBiaXRtYXBTaXplID0gaW1h
Z2UtPkdldFNpemUoKTsKIApAQCAtODA5LDE2ICs4MDksMTYgQEAgdm9pZCBkcmF3TmF0aXZlSW1h
Z2UoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgSUQyRDFCaXRtYXAq
IGltYWcKICAgICBpZiAoIXNob3VsZFVzZVN1YmltYWdlICYmIGN1cnJIZWlnaHQgPCBpbWFnZVNp
emUuaGVpZ2h0KCkpCiAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0SGVpZ2h0KGFkanVzdGVk
RGVzdFJlY3QuaGVpZ2h0KCkgKiBjdXJySGVpZ2h0IC8gaW1hZ2VTaXplLmhlaWdodCgpKTsKIAot
ICAgIFN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRpb24ocGxhdGZvcm1Db250ZXh0LCBjb21wb3Np
dGVPcGVyYXRvciwgYmxlbmRNb2RlKTsKKyAgICBTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9u
KHBsYXRmb3JtQ29udGV4dCwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJs
ZW5kTW9kZSgpKTsKIAogICAgIC8vIEltYWdlT3JpZW50YXRpb24gZXhwZWN0cyB0aGUgb3JpZ2lu
IHRvIGJlIGF0ICgwLCAwKS4KICAgICB0cmFuc2Zvcm0udHJhbnNsYXRlKGFkanVzdGVkRGVzdFJl
Y3QueCgpLCBhZGp1c3RlZERlc3RSZWN0LnkoKSk7CiAgICAgY29udGV4dC0+U2V0VHJhbnNmb3Jt
KHRyYW5zZm9ybSk7CiAgICAgYWRqdXN0ZWREZXN0UmVjdC5zZXRMb2NhdGlvbihGbG9hdFBvaW50
KCkpOwogCi0gICAgaWYgKG9yaWVudGF0aW9uICE9IEltYWdlT3JpZW50YXRpb246Ok5vbmUpIHsK
LSAgICAgICAgY29uY2F0Q1RNKHBsYXRmb3JtQ29udGV4dCwgb3JpZW50YXRpb24udHJhbnNmb3Jt
RnJvbURlZmF1bHQoYWRqdXN0ZWREZXN0UmVjdC5zaXplKCkpKTsKLSAgICAgICAgaWYgKG9yaWVu
dGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpIHsKKyAgICBpZiAob3B0aW9ucy5vcmllbnRhdGlv
bigpICE9IEltYWdlT3JpZW50YXRpb246Ok5vbmUpIHsKKyAgICAgICAgY29uY2F0Q1RNKHBsYXRm
b3JtQ29udGV4dCwgb3B0aW9ucy5vcmllbnRhdGlvbigpLnRyYW5zZm9ybUZyb21EZWZhdWx0KGFk
anVzdGVkRGVzdFJlY3Quc2l6ZSgpKSk7CisgICAgICAgIGlmIChvcHRpb25zLm9yaWVudGF0aW9u
KCkudXNlc1dpZHRoQXNIZWlnaHQoKSkgewogICAgICAgICAgICAgLy8gVGhlIGRlc3RpbmF0aW9u
IHJlY3Qgd2lsbCBoYXZlIGl0J3Mgd2lkdGggYW5kIGhlaWdodCBhbHJlYWR5IHJldmVyc2VkIGZv
ciB0aGUgb3JpZW50YXRpb24gb2YKICAgICAgICAgICAgIC8vIHRoZSBpbWFnZSwgYXMgaXQgd2Fz
IG5lZWRlZCBmb3IgcGFnZSBsYXlvdXQsIHNvIHdlIG5lZWQgdG8gcmV2ZXJzZSBpdCBiYWNrIGhl
cmUuCiAgICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0ID0gRmxvYXRSZWN0KGFkanVzdGVkRGVz
dFJlY3QueCgpLCBhZGp1c3RlZERlc3RSZWN0LnkoKSwgYWRqdXN0ZWREZXN0UmVjdC5oZWlnaHQo
KSwgYWRqdXN0ZWREZXN0UmVjdC53aWR0aCgpKTsKQEAgLTg0MiwxNCArODQyLDE0IEBAIHZvaWQg
ZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9ybUNvbnRleHQs
IElEMkQxQml0bWFwKiBpbWFnCiAgICAgICAgIGNvbnRleHQtPlNldFRyYW5zZm9ybShjdG0pOwog
fQogCi12b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9ybUNv
bnRleHQsIElXSUNCaXRtYXAqIHRpbGVJbWFnZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Q29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUp
Cit2b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9ybUNvbnRl
eHQsIElXSUNCaXRtYXAqIHRpbGVJbWFnZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXV0byBjb250ZXh0ID0g
cGxhdGZvcm1Db250ZXh0LnJlbmRlclRhcmdldCgpOwogICAgIFBsYXRmb3JtQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcihwbGF0Zm9ybUNvbnRleHQpOwogCiAgICAgY2xpcChwbGF0Zm9ybUNv
bnRleHQsIGRlc3RSZWN0KTsKIAotICAgIFN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRpb24ocGxh
dGZvcm1Db250ZXh0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlKTsKKyAgICBTdGF0ZTo6
c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgb3B0aW9ucy5jb21wb3NpdGVP
cGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKIAogICAgIGF1dG8gYml0bWFwQnJ1c2hQ
cm9wZXJ0aWVzID0gRDJEMTo6Qml0bWFwQnJ1c2hQcm9wZXJ0aWVzKCk7CiAgICAgYml0bWFwQnJ1
c2hQcm9wZXJ0aWVzLmV4dGVuZE1vZGVYID0gRDJEMV9FWFRFTkRfTU9ERV9XUkFQOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3Bl
cmF0aW9ucy5oCmluZGV4IDA2ZjY1NjE4ZWIyOTA3Yzg1ZTE0ZjYwZmNhNjMzYjA4ODY5YjJlOGEu
LmJjY2Y2NTY5ZDg4YzU0YTEzZmNhZjA3MjJhOTBiMzg4MzFiOGQ5NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRE9wZXJhdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRp
b25zLmgKQEAgLTEyNywxMCArMTI3LDEwIEBAIHZvaWQgY2xlYXJSZWN0KFBsYXRmb3JtQ29udGV4
dERpcmVjdDJEJiwgY29uc3QgRmxvYXRSZWN0Jik7CiAKIHZvaWQgZHJhd0dseXBocyhQbGF0Zm9y
bUNvbnRleHREaXJlY3QyRCYsIGNvbnN0IEZpbGxTb3VyY2UmLCBjb25zdCBTdHJva2VTb3VyY2Um
LCBjb25zdCBTaGFkb3dTdGF0ZSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGb250JiwgZG91
YmxlLCBjb25zdCBWZWN0b3I8dW5zaWduZWQgc2hvcnQ+JiBnbHlwaHMsIGNvbnN0IFZlY3Rvcjxm
bG9hdD4mIGhvcml6b250YWxBZHZhbmNlcywgY29uc3QgVmVjdG9yPERXUklURV9HTFlQSF9PRkZT
RVQ+JiwgZmxvYXQsIFRleHREcmF3aW5nTW9kZUZsYWdzLCBmbG9hdCwgY29uc3QgRmxvYXRTaXpl
JiwgY29uc3QgQ29sb3ImKTsKIAotdm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0
RGlyZWN0MkQmLCBJV0lDQml0bWFwKiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCwgY29uc3Qg
U2hhZG93U3RhdGUmKTsKLXZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVj
dDJEJiwgSUQyRDFCaXRtYXAqLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwg
SW1hZ2VPcmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0LCBjb25zdCBTaGFk
b3dTdGF0ZSYpOwordm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQm
LCBJV0lDQml0bWFwKiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgZmxvYXQs
IGNvbnN0IFNoYWRvd1N0YXRlJik7Cit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRl
eHREaXJlY3QyRCYsIElEMkQxQml0bWFwKiwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiwgZmxvYXQsIGNvbnN0IFNoYWRvd1N0YXRlJik7CiB2b2lkIGRyYXdQYXRoKFBsYXRmb3Jt
Q29udGV4dERpcmVjdDJEJiwgY29uc3QgUGF0aCYsIGNvbnN0IFN0cm9rZVNvdXJjZSYsIGNvbnN0
IFNoYWRvd1N0YXRlJik7Ci12b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29udGV4dERpcmVjdDJE
JiwgSVdJQ0JpdG1hcCosIGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7Cit2b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29u
dGV4dERpcmVjdDJEJiwgSVdJQ0JpdG1hcCosIGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9h
dFBvaW50JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAogdm9pZCBkcmF3V2l0aG91
dFNoYWRvdyhQbGF0Zm9ybUNvbnRleHREaXJlY3QyRCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRp
bmdSZWN0LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoSUQyRDFSZW5kZXJUYXJnZXQqKT4mIGRy
YXdDb21tYW5kcyk7CiB2b2lkIGRyYXdXaXRoU2hhZG93KFBsYXRmb3JtQ29udGV4dERpcmVjdDJE
JiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ1JlY3QsIGNvbnN0IFNoYWRvd1N0YXRlJiwgY29u
c3QgV1RGOjpGdW5jdGlvbjx2b2lkKElEMkQxUmVuZGVyVGFyZ2V0Kik+JiBkcmF3Q29tbWFuZHMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dEltcGxEaXJlY3QyRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dEltcGxEaXJlY3QyRC5oCmluZGV4IDZiYjY0NGEyYjY1ZTIz
NGMxNWZlM2NmZmY5ZWI3MzkxOTQ0ZDQxYzEuLjQ0MjVmZDI2YWJlODU0NTFkMmMwMzJmMzZhMjZh
NTdlZTMxZTJiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HcmFwaGljc0NvbnRleHRJbXBsRGlyZWN0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJELmgKQEAgLTcx
LDggKzcxLDggQEAgcHVibGljOgogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2Um
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJ
bWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNp
emUmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJy
aWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYsIEltYWdlOjpUaWxl
UnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJy
aWRlOwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29u
c3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9h
dFNpemUmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlOjpOb3JtYWwp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRy
JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdQYXR0
ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0KGNv
bnN0IEZsb2F0UmVjdCYsIGZsb2F0KSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdMaW5lKGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAKaW5kZXggMTQx
MTllYmY1YTI5YWY2OGNkNTZkOWZiMDczOWQ2OWM5NjY1NDIyMi4uOTMyM2RhNzI0OGY2ZjQ5OTgx
ZTQ1OTM4MzY4MzI4NzlkZDFkZTJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNHV2luLmNwcApAQCAtNzksNyArNzksNyBAQCBib29sIEJp
dG1hcEltYWdlOjpnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAgYm1wLCBjb25zdCBJbnRTaXplKiBz
aXplKQogICAgIGlmIChzaXplKQogICAgICAgICBkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUo
Z2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWln
aHQpLCAqc2l6ZSwgQ29tcG9zaXRlQ29weSk7CiAgICAgZWxzZQotICAgICAgICBkcmF3KGdjLCBG
bG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0KSwg
RmxvYXRSZWN0KDAuMGYsIDAuMGYsIGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0
KCkpLCBDb21wb3NpdGVDb3B5LCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5j
aHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgICAgIGRyYXcoZ2MsIEZsb2F0
UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWlnaHQpLCBGbG9h
dFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSks
IHsgQ29tcG9zaXRlQ29weSB9KTsKIAogICAgIC8vIERvIGNsZWFudXAKICAgICBDR0NvbnRleHRS
ZWxlYXNlKGNnQ29udGV4dCk7CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRy
YXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZs
b2F0CiAgICAgICAgIGlmIChpbWFnZSAmJiBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlKSA9PSBzdGF0
aWNfY2FzdDxzaXplX3Q+KHNyY1NpemUuaGVpZ2h0KCkpICYmIENHSW1hZ2VHZXRXaWR0aChpbWFn
ZSkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzcmNTaXplLndpZHRoKCkpKSB7CiAgICAgICAgICAg
ICBzaXplX3QgY3VycmVudEZyYW1lID0gbV9jdXJyZW50RnJhbWU7CiAgICAgICAgICAgICBtX2N1
cnJlbnRGcmFtZSA9IGk7Ci0gICAgICAgICAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBzcmNTaXplLndpZHRoKCksIHNyY1NpemUuaGVpZ2h0KCkpLCBjb21wb3Np
dGVPcCwgQmxlbmRNb2RlOjpOb3JtYWwsIERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsIEltYWdl
T3JpZW50YXRpb246Ok5vbmUpOworICAgICAgICAgICAgZHJhdyhjdHh0LCBkc3RSZWN0LCBGbG9h
dFJlY3QoMC4wZiwgMC4wZiwgc3JjU2l6ZS53aWR0aCgpLCBzcmNTaXplLmhlaWdodCgpKSwgeyBj
b21wb3NpdGVPcCB9KTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lID0gY3VycmVudEZyYW1l
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMDMsNyArMTAzLDcgQEAgdm9p
ZCBCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29udGV4
dCYgY3R4dCwgY29uc3QgRmxvYXQKIAogICAgIC8vIE5vIGltYWdlIG9mIHRoZSBjb3JyZWN0IHNp
emUgd2FzIGZvdW5kLCBmYWxsYmFjayB0byBkcmF3aW5nIHRoZSBjdXJyZW50IGZyYW1lCiAgICAg
RmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXplKCk7Ci0gICAgZHJhdyhjdHh0
LCBkc3RSZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdl
U2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdN
b2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgZHJhdyhjdHh0
LCBkc3RSZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdl
U2l6ZS5oZWlnaHQoKSksIHsgY29tcG9zaXRlT3AgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9J
bWFnZUNhaXJvV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9J
bWFnZUNhaXJvV2luLmNwcAppbmRleCAyNGVjNWJjMWQ4YzJiYjkyOGZhMDU4NTZlMzMzNDIyYWM2
ZjVjOGIyLi42OGJmMzk3ZGVmYjE4ZWQwNzc4ZTgzZjY0MmNkOWYyYTVkZjZkYjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9X
aW4uY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNp
emUoSEJJVE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAgICAgaWYgKHNpemUpCiAgICAg
ICAgIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYs
IGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksICpzaXplLCBDb21wb3NpdGVDb3B5
KTsKICAgICBlbHNlCi0gICAgICAgIGRyYXcoZ2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJ
bmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWlnaHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1h
Z2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIENvbXBvc2l0ZUNvcHksIEJsZW5k
TW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9u
OjpOb25lKTsKKyAgICAgICAgZHJhdyhnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8u
Ym1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNp
emUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBDb21wb3NpdGVDb3B5IH0pOwogCiAg
ICAgLy8gRG8gY2xlYW51cAogICAgIGNhaXJvX2Rlc3Ryb3kodGFyZ2V0UmVmKTsKQEAgLTEwMCw3
ICsxMDAsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUo
R3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdAogICAgICAgICBpZiAoY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UuZ2V0KCkpID09IHN0YXRpY19jYXN0PHNpemVf
dD4oc3JjU2l6ZS5oZWlnaHQoKSkgJiYgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgoc3Vy
ZmFjZS5nZXQoKSkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzcmNTaXplLndpZHRoKCkpKSB7CiAg
ICAgICAgICAgICBzaXplX3QgY3VycmVudEZyYW1lID0gbV9jdXJyZW50RnJhbWU7CiAgICAgICAg
ICAgICBtX2N1cnJlbnRGcmFtZSA9IGk7Ci0gICAgICAgICAgICBkcmF3KGN0eHQsIGRzdFJlY3Qs
IEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBzcmNTaXplLndpZHRoKCksIHNyY1NpemUuaGVpZ2h0KCkp
LCBjb21wb3NpdGVPcCwgQmxlbmRNb2RlOjpOb3JtYWwsIERlY29kaW5nTW9kZTo6U3luY2hyb25v
dXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUpOworICAgICAgICAgICAgZHJhdyhjdHh0LCBkc3RS
ZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgc3JjU2l6ZS53aWR0aCgpLCBzcmNTaXplLmhlaWdo
dCgpKSwgeyBjb21wb3NpdGVPcCB9KTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lID0gY3Vy
cmVudEZyYW1lOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMDgsNyArMTA4
LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBo
aWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXQKIAogICAgIC8vIE5vIGltYWdlIG9mIHRoZSBj
b3JyZWN0IHNpemUgd2FzIGZvdW5kLCBmYWxsYmFjayB0byBkcmF3aW5nIHRoZSBjdXJyZW50IGZy
YW1lCiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXplKCk7Ci0gICAg
ZHJhdyhjdHh0LCBkc3RSZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRo
KCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwg
RGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAg
ZHJhdyhjdHh0LCBkc3RSZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRo
KCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIHsgY29tcG9zaXRlT3AgfSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAppbmRleCA0ZTRkODhkZTQ0NDFm
ZTNkNjU2N2M2ZThhOGYyOGE1NWU4MzA2ODdiLi5jNjAzODUxY2Q1MzUwNjQ1NmVjYjdmMGM5MmEw
NDM4MDkyYzgxYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTmF0aXZlSW1hZ2VEaXJlY3QyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdlRGlyZWN0MkQuY3BwCkBAIC0xMDIsNyArMTAyLDcg
QEAgQ29sb3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1h
Z2VQdHImIGltYWdlKQogICAgIHJldHVybiBDb2xvcigpOwogfQogCi12b2lkIGRyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbnRTaXplJiBzcmNTaXplLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxl
bmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgZHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JikKIHsKICAgICBhdXRvIHBsYXRmb3JtQ29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCmluZGV4
IDE0N2MyZDBiNWIzZmU5ODExMGIwZmMzYWM4MWY2YmJkNzZmYThhZGQuLjUwMjc5OTBjZTU1ZTQ2
MWIyZGQ4MmI5YzMyOWU5ZDlhMzJmODBlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0RyYWdJbWFnZUlPUy5tbQpAQCAtOTYsNyArOTYsNyBAQCBEcmFnSW1hZ2VSZWYgY3JlYXRl
RHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRh
dGlvbgogICAgICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dChyZW5kZXJlckNvbnRleHQuQ0dD
b250ZXh0KTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoMCwgaW1hZ2VTaXplLmhlaWdodCk7
CiAgICAgICAgIGNvbnRleHQuc2NhbGUoeyBhZGp1c3RlZEltYWdlU2NhbGUsIC1hZGp1c3RlZElt
YWdlU2NhbGUgfSk7Ci0gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRQb2lu
dCgpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcmllbnRhdGlvbikpOworICAgICAgICBjb250ZXh0
LmRyYXdJbWFnZSgqaW1hZ2UsIEZsb2F0UG9pbnQoKSwgeyBvcmllbnRhdGlvbiB9KTsKICAgICB9
XTsKICAgICByZXR1cm4gaW1hZ2VDb3B5LkNHSW1hZ2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCA4ZWJlMDA3NmE4Y2M2NmVhYmZlMDQyOTFm
YWVmZjU5NGZmMDkxODBlLi4xMjVhZWJlYjEyYzI1Mjc1MWExNDMwMWU1MzJhZjRkODc5MjMxYWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTk0
LDM5ICs5NCwzNiBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0
aW9uKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwgZmxvYXQgZAogICAgICAgICAKIFJldGFpblB0
cjxOU0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKQogewotICAgIEZsb2F0U2l6ZSBzaXplID0gaW1hZ2UtPnNp
emUoKTsKLQogICAgIGlmIChpczxCaXRtYXBJbWFnZT4oKmltYWdlKSkgewogICAgICAgICBCaXRt
YXBJbWFnZSYgYml0bWFwSW1hZ2UgPSBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKTsKLSAg
ICAgICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gYml0bWFwSW1hZ2Uuc2l6
ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpOwogCiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCiAgICAgICAgICAgICBvcmllbnRhdGlvbiA9IGJp
dG1hcEltYWdlLm9yaWVudGF0aW9uRm9yQ3VycmVudEZyYW1lKCk7CiAKICAgICAgICAgaWYgKG9y
aWVudGF0aW9uICE9IEltYWdlT3JpZW50YXRpb246Ok5vbmUpIHsKLSAgICAgICAgICAgIC8vIENv
bnN0cnVjdCBhIGNvcnJlY3RseS1yb3RhdGVkIGNvcHkgb2YgdGhlIGltYWdlIHRvIHVzZSBhcyB0
aGUgZHJhZyBpbWFnZS4KLSAgICAgICAgICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50
KCksIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pOworICAgICAgICAgICAgRmxvYXRTaXplIGlt
YWdlU2l6ZSA9IGltYWdlLT5zaXplKG9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgIFJldGFpblB0
cjxOU0ltYWdlPiByb3RhdGVkRHJhZ0ltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGlu
aXRXaXRoU2l6ZTooTlNTaXplKShpbWFnZVNpemUpXSk7CiAKLSAgICAgICAgICAgIFJldGFpblB0
cjxOU0ltYWdlPiByb3RhdGVkRHJhZ0ltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGlu
aXRXaXRoU2l6ZTooTlNTaXplKShzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKV0pOwogICAgICAg
ICAgICAgW3JvdGF0ZWREcmFnSW1hZ2UgbG9ja0ZvY3VzXTsKIAogICAgICAgICAgICAgLy8gSW1h
Z2VPcmllbnRhdGlvbiB1c2VzIHRvcC1sZWZ0IGNvb3JkaW5hdGVzLCBuZWVkIHRvIGZsaXAgdG8g
Ym90dG9tLWxlZnQsIGFwcGx5Li4uCi0gICAgICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFu
c2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VUcmFuc2xhdGlvbigwLCBkZXN0UmVjdC5oZWln
aHQoKSk7CisgICAgICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmlu
ZVRyYW5zZm9ybU1ha2VUcmFuc2xhdGlvbigwLCBpbWFnZVNpemUuaGVpZ2h0KCkpOwogICAgICAg
ICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIDEsIC0x
KTsKLSAgICAgICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG9yaWVu
dGF0aW9uLnRyYW5zZm9ybUZyb21EZWZhdWx0KHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pLCB0
cmFuc2Zvcm0pOworICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25j
YXQob3JpZW50YXRpb24udHJhbnNmb3JtRnJvbURlZmF1bHQoaW1hZ2VTaXplKSwgdHJhbnNmb3Jt
KTsKIAogICAgICAgICAgICAgaWYgKG9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCi0g
ICAgICAgICAgICAgICAgZGVzdFJlY3QgPSBGbG9hdFJlY3QoZGVzdFJlY3QueCgpLCBkZXN0UmVj
dC55KCksIGRlc3RSZWN0LmhlaWdodCgpLCBkZXN0UmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAg
ICAgICBpbWFnZVNpemUgPSBpbWFnZVNpemUudHJhbnNwb3NlZFNpemUoKTsKIAogICAgICAgICAg
ICAgLy8gLi4uYW5kIGZsaXAgYmFjay4KLSAgICAgICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5l
VHJhbnNmb3JtVHJhbnNsYXRlKHRyYW5zZm9ybSwgMCwgZGVzdFJlY3QuaGVpZ2h0KCkpOworICAg
ICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1UcmFuc2xhdGUodHJhbnNmb3Jt
LCAwLCBpbWFnZVNpemUuaGVpZ2h0KCkpOwogICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZp
bmVUcmFuc2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIDEsIC0xKTsKIAogICAgICAgICAgICAgUmV0YWlu
UHRyPE5TQWZmaW5lVHJhbnNmb3JtPiBjb2NvYVRyYW5zZm9ybSA9IGFkb3B0TlMoW1tOU0FmZmlu
ZVRyYW5zZm9ybSBhbGxvY10gaW5pdF0pOwogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtIHNl
dFRyYW5zZm9ybVN0cnVjdDoqKE5TQWZmaW5lVHJhbnNmb3JtU3RydWN0KikmdHJhbnNmb3JtXTsK
ICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9ybSBjb25jYXRdOwogCi0gICAgICAgICAgICBbaW1h
Z2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNNYWtl
UmVjdCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0NvbXBv
c2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOworICAgICAgICAgICAgRmxv
YXRSZWN0IGltYWdlUmVjdChGbG9hdFBvaW50KCksIGltYWdlU2l6ZSk7CisgICAgICAgICAgICBb
aW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6aW1hZ2VSZWN0IGZyb21SZWN0Omlt
YWdlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rp
b246MS4wXTsKIAogICAgICAgICAgICAgW3JvdGF0ZWREcmFnSW1hZ2UgdW5sb2NrRm9jdXNdOwog
CkBAIC0xMzQsOCArMTMxLDkgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb24gb3JpZW4KICAgICAgICAgfQog
ICAgIH0KIAorICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUgPSBpbWFnZS0+c2l6ZSgpOwogICAgIGF1
dG8gZHJhZ0ltYWdlID0gaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpOwotICAgIFtkcmFnSW1hZ2Ug
c2V0U2l6ZTooTlNTaXplKXNpemVdOworICAgIFtkcmFnSW1hZ2Ugc2V0U2l6ZTooTlNTaXplKWlt
YWdlU2l6ZV07CiAgICAgcmV0dXJuIGRyYWdJbWFnZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDkwMWM0MTEw
ZTFjNTZiYTYwYTRkZDNiYTdiOTNmYWFmNjA0MWNiMzMuLjIyMGFmZDczNTE4NjM5MGViNGM0MDFi
YTA0OTQwNzgzYjE2NzI3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtOTQ3LDE1ICs5NDcsMjAgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY28KICAgICAgICAgZ2VvbWV0cnkuY2xpcChMYXlvdXRSZWN0KHBpeGVsU25hcHBl
ZFJlY3QpKTsKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZTsKICAgICAgICAgaWYgKCFnZW9t
ZXRyeS5kZXN0UmVjdCgpLmlzRW1wdHkoKSAmJiAoaW1hZ2UgPSBiZ0ltYWdlLT5pbWFnZShiYWNr
Z3JvdW5kT2JqZWN0ID8gYmFja2dyb3VuZE9iamVjdCA6IHRoaXMsIGdlb21ldHJ5LnRpbGVTaXpl
KCkpKSkgewotICAgICAgICAgICAgYXV0byBjb21wb3NpdGVPcCA9IG9wID09IENvbXBvc2l0ZVNv
dXJjZU92ZXIgPyBiZ0xheWVyLmNvbXBvc2l0ZSgpIDogb3A7CiAgICAgICAgICAgICBjb250ZXh0
LnNldERyYXdMdW1pbmFuY2VNYXNrKGJnTGF5ZXIubWFza1NvdXJjZVR5cGUoKSA9PSBNYXNrU291
cmNlVHlwZTo6THVtaW5hbmNlKTsKIAogICAgICAgICAgICAgaWYgKGlzPEJpdG1hcEltYWdlPihp
bWFnZSkpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBk
YXRlRnJvbVNldHRpbmdzKHNldHRpbmdzKCkpOwogCi0gICAgICAgICAgICBhdXRvIGludGVycG9s
YXRpb24gPSBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsICZiZ0xh
eWVyLCBnZW9tZXRyeS50aWxlU2l6ZSgpKTsKLSAgICAgICAgICAgIGF1dG8gZGVjb2RpbmdNb2Rl
ID0gZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKTsKLSAgICAgICAg
ICAgIGF1dG8gZHJhd1Jlc3VsdCA9IGNvbnRleHQuZHJhd1RpbGVkSW1hZ2UoKmltYWdlLCBnZW9t
ZXRyeS5kZXN0UmVjdCgpLCB0b0xheW91dFBvaW50KGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSks
IGdlb21ldHJ5LnRpbGVTaXplKCksIGdlb21ldHJ5LnNwYWNlU2l6ZSgpLCBJbWFnZVBhaW50aW5n
T3B0aW9ucyhjb21wb3NpdGVPcCwgYmdMYXllci5ibGVuZE1vZGUoKSwgZGVjb2RpbmdNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uOjpOb25lLCBpbnRlcnBvbGF0aW9uKSk7CisgICAgICAgICAgICBJbWFn
ZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0geworICAgICAgICAgICAgICAgIG9wID09IENvbXBv
c2l0ZVNvdXJjZU92ZXIgPyBiZ0xheWVyLmNvbXBvc2l0ZSgpIDogb3AsCisgICAgICAgICAgICAg
ICAgYmdMYXllci5ibGVuZE1vZGUoKSwKKyAgICAgICAgICAgICAgICBkZWNvZGluZ01vZGVGb3JJ
bWFnZURyYXcoKmltYWdlLCBwYWludEluZm8pLAorICAgICAgICAgICAgICAgIEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSwKKyAgICAgICAgICAgICAgICBjaG9vc2VJbnRlcnBvbGF0aW9uUXVh
bGl0eShjb250ZXh0LCAqaW1hZ2UsICZiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6ZSgpKQorICAg
ICAgICAgICAgfTsKKworICAgICAgICAgICAgYXV0byBkcmF3UmVzdWx0ID0gY29udGV4dC5kcmF3
VGlsZWRJbWFnZSgqaW1hZ2UsIGdlb21ldHJ5LmRlc3RSZWN0KCksIHRvTGF5b3V0UG9pbnQoZ2Vv
bWV0cnkucmVsYXRpdmVQaGFzZSgpKSwgZ2VvbWV0cnkudGlsZVNpemUoKSwgZ2VvbWV0cnkuc3Bh
Y2VTaXplKCksIG9wdGlvbnMpOwogICAgICAgICAgICAgaWYgKGRyYXdSZXN1bHQgPT0gSW1hZ2VE
cmF3UmVzdWx0OjpEaWRSZXF1ZXN0RGVjb2RpbmcpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQo
YmdJbWFnZS0+aXNDYWNoZWRJbWFnZSgpKTsKICAgICAgICAgICAgICAgICBiZ0ltYWdlLT5jYWNo
ZWRJbWFnZSgpLT5hZGRDbGllbnRXYWl0aW5nRm9yQXN5bmNEZWNvZGluZygqdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMWIxMWUyZTNmMWNk
MWVhNDdmODY3YTBlZDBkZDA4MGJhOGM5NzJjYS4uMjIwYjFhNjczNTkwZTZiYTdjMjhmZmJiMTkw
YzEwODUwZWE0NmZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcApAQCAtMjAzOSwxNiArMjAzOSw3IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6Y2hlY2tGb3JS
ZXBhaW50RHVyaW5nTGF5b3V0KCkgY29uc3QKIAogSW1hZ2VPcmllbnRhdGlvbiBSZW5kZXJFbGVt
ZW50OjppbWFnZU9yaWVudGF0aW9uKCkgY29uc3QKIHsKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlS
TykgfHwgVVNFKERJUkVDVDJEKQotICAgIC8vIFRoaXMgY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3Ig
cG9ydHMgd2hpY2ggaG9ub3IgdGhlIG9yaWVudGF0aW9uIGZsYWcgaW4gdGhlaXIgZHJhd2luZyBj
b2RlLgotICAgIGlmIChkb2N1bWVudCgpLmlzSW1hZ2VEb2N1bWVudCgpKQotICAgICAgICByZXR1
cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOwotI2VuZGlmCi0gICAgLy8gUmVzcGVjdCB0
aGUgaW1hZ2UncyBvcmllbnRhdGlvbiBpZiBpdCdzIGJlaW5nIHVzZWQgYXMgYSBmdWxsLXBhZ2Ug
aW1hZ2Ugb3IgaXQncwotICAgIC8vIGFuIDxpbWc+IGFuZCB0aGUgc2V0dGluZyB0byByZXNwZWN0
IGl0IGV2ZXJ5d2hlcmUgaXMgc2V0LgotICAgIGlmIChzZXR0aW5ncygpLnNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKCkgJiYgaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCgpKSkKLSAg
ICAgICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZTsKLSAgICByZXR1cm4gc3R5
bGUoKS5pbWFnZU9yaWVudGF0aW9uKCk7CisgICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246OkZy
b21JbWFnZTsKIH0KIAogdm9pZCBSZW5kZXJFbGVtZW50OjphZGp1c3RGcmFnbWVudGVkRmxvd1N0
YXRlT25Db250YWluaW5nQmxvY2tDaGFuZ2VJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCA5MTNiYjQxM2I5NDJm
MWUwNjI2Y2Y1OGMxNDVhYjMyNmI3MWNjMjk2Li43YWMwNGI4YmE0ZjQxNTEzYjNmY2JhZjE5MzFi
Y2Y0NDgwNWM5NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpwYWludFNuYXBzaG90SW1hZ2UoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dAogICAgICAgICByZXR1cm47CiAKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBv
bGF0aW9uID0gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoY29udGV4dCwgaW1hZ2UsICZpbWFn
ZSwgYWxpZ25lZFJlY3Quc2l6ZSgpKTsKLSAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgYWxp
Z25lZFJlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKGltYWdlT3JpZW50YXRpb24oKSwgaW50ZXJw
b2xhdGlvbikpOworICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBhbGlnbmVkUmVjdCwgeyBp
bWFnZU9yaWVudGF0aW9uKCksIGludGVycG9sYXRpb24gfSk7CiB9CiAKIHZvaWQgUmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCmluZGV4IGY1MWUyZmViMzdlMWZjZjBmZDBlNzkxYWU2NGYwM2VlODhhMmE3YzguLjA4
ZDVjZjhjODBlYWE2NzZkYjg3YmYyYzQ0ZWMwMTM3NzI0MTAyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtNDY5LDcgKzQ2OSw3IEBAIHZvaWQgUmVuZGVy
SW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mCiAgICAgICAgICAgICAgICAgICAgIGNlbnRlclkgPSAwOwogICAgICAgICAg
ICAgICAgIGltYWdlT2Zmc2V0ID0gTGF5b3V0U2l6ZShsZWZ0Qm9yZGVyICsgbGVmdFBhZCArIGNl
bnRlclggKyBtaXNzaW5nSW1hZ2VCb3JkZXJXaWR0aCwgdG9wQm9yZGVyICsgdG9wUGFkICsgY2Vu
dGVyWSArIG1pc3NpbmdJbWFnZUJvcmRlcldpZHRoKTsKIAotICAgICAgICAgICAgICAgIGNvbnRl
eHQuZHJhd0ltYWdlKCppbWFnZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyhMYXlvdXRSZWN0KHBh
aW50T2Zmc2V0ICsgaW1hZ2VPZmZzZXQsIGltYWdlU2l6ZSksIGRldmljZVNjYWxlRmFjdG9yKSwg
aW1hZ2VPcmllbnRhdGlvbigpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZSgq
aW1hZ2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoTGF5b3V0UmVjdChwYWludE9mZnNldCArIGlt
YWdlT2Zmc2V0LCBpbWFnZVNpemUpLCBkZXZpY2VTY2FsZUZhY3RvciksIHsgaW1hZ2VPcmllbnRh
dGlvbigpIH0pOwogICAgICAgICAgICAgICAgIGVycm9yUGljdHVyZURyYXduID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0KIApAQCAtNjE3LDExICs2MTcsOCBAQCBJbWFnZURyYXdSZXN1bHQgUmVuZGVy
SW1hZ2U6OnBhaW50SW50b1JlY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVj
dAogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCiAgICAgSFRN
TEltYWdlRWxlbWVudCogaW1hZ2VFbGVtZW50ID0gaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVu
dCgpKSA/IGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQoKSkgOiBudWxscHRyOwot
ICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gaW1hZ2VFbGVtZW50ID8g
aW1hZ2VFbGVtZW50LT5jb21wb3NpdGVPcGVyYXRvcigpIDogQ29tcG9zaXRlU291cmNlT3ZlcjsK
LQogICAgIC8vIEZJWE1FOiBEb2N1bWVudCB3aGVuIGltYWdlICE9IGltZy5nZXQoKS4KICAgICBJ
bWFnZSogaW1hZ2UgPSBpbWFnZVJlc291cmNlKCkuaW1hZ2UoKS5nZXQoKTsKLSAgICBJbnRlcnBv
bGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9uID0gaW1hZ2UgPyBjaG9vc2VJbnRlcnBvbGF0aW9u
UXVhbGl0eShwYWludEluZm8uY29udGV4dCgpLCAqaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJl
Y3Quc2l6ZSgpKSkgOiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKIAogI2lmIFVTRShDRykKICAgICBp
ZiAoaXM8UERGRG9jdW1lbnRJbWFnZT4oaW1hZ2UpKQpAQCAtNjMxLDggKzYyOCwxNCBAQCBJbWFn
ZURyYXdSZXN1bHQgUmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEZsb2F0UmVjdAogICAgIGlmIChpczxCaXRtYXBJbWFnZT4oaW1hZ2UpKQogICAg
ICAgICBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3Moc2V0
dGluZ3MoKSk7CiAKLSAgICBhdXRvIGRlY29kaW5nTW9kZSA9IGRlY29kaW5nTW9kZUZvckltYWdl
RHJhdygqaW1hZ2UsIHBhaW50SW5mbyk7Ci0gICAgYXV0byBkcmF3UmVzdWx0ID0gcGFpbnRJbmZv
LmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMoY29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZTo6Tm9ybWFsLCBkZWNvZGluZ01vZGUsIGltYWdlT3Jp
ZW50YXRpb24oKSwgaW50ZXJwb2xhdGlvbikpOworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9w
dGlvbnMgPSB7CisgICAgICAgIGltYWdlRWxlbWVudCA/IGltYWdlRWxlbWVudC0+Y29tcG9zaXRl
T3BlcmF0b3IoKSA6IENvbXBvc2l0ZVNvdXJjZU92ZXIsCisgICAgICAgIGRlY29kaW5nTW9kZUZv
ckltYWdlRHJhdygqaW1hZ2UsIHBhaW50SW5mbyksCisgICAgICAgIGltYWdlT3JpZW50YXRpb24o
KSwKKyAgICAgICAgaW1hZ2UgPyBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwYWludEluZm8u
Y29udGV4dCgpLCAqaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJlY3Quc2l6ZSgpKSkgOiBJbnRl
cnBvbGF0aW9uRGVmYXVsdAorICAgIH07CisgICAgCisgICAgYXV0byBkcmF3UmVzdWx0ID0gcGFp
bnRJbmZvLmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgb3B0aW9ucyk7CiAgICAgaWYg
KGRyYXdSZXN1bHQgPT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZXF1ZXN0RGVjb2RpbmcpCiAgICAg
ICAgIGltYWdlUmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpLT5hZGRDbGllbnRXYWl0aW5nRm9yQXN5
bmNEZWNvZGluZygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDBkZmUyODI3NjRmNDA4YjYyMGJlZjVk
OWY1OGU4OGE2Y2M3NmMwODQuLjRmZTg1ODYyNWM5MjlkODBiZWNhZmVhNjZmMDY0ZTM0MjE4MTI1
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90
dGVkUGx1Z0luLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW46OnBhaW50U25hcHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
CiAgICAgICAgIHJldHVybjsKIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRp
b24gPSBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsIGltYWdlLCBh
bGlnbmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgYWxpZ25l
ZFJlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKGltYWdlT3JpZW50YXRpb24oKSwgaW50ZXJwb2xh
dGlvbikpOworICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgYWxpZ25lZFJlY3QsIHsgaW1h
Z2VPcmllbnRhdGlvbigpLCBpbnRlcnBvbGF0aW9uIH0pOwogfQogCiBDdXJzb3JEaXJlY3RpdmUg
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnQsIEN1cnNvciYgb3ZlcnJpZGVDdXJzb3IpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggNDRjYjIwMDFjMGJlOGFiNDI3NzZmNTU3NTZlMTQ0
MDM3NWMwMTdiYS4uYTQyY2U2ZWMyZDY5MzljMDAxNjFmMTc5YmUyNjQ0ZTEyNDI5MjQ3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjI3OCw3ICsy
Mjc4LDcgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJs
YXkoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwKICAgICBpZiAoYWxpZ25lZFBsdWdpblJl
Y3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRQbHVnaW5SZWN0LmhlaWdodCgpIDw9IDApCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgY29udGV4dC5kcmF3SW1hZ2UoKnNuYXBzaG90LCBhbGln
bmVkUGx1Z2luUmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgY29udGV4dC5kcmF3SW1h
Z2UoKnNuYXBzaG90LCBhbGlnbmVkUGx1Z2luUmVjdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCA1YzU2YjY5OTk1
YmM5MmY0Y2E4ODFlMmI5MWU5ZjM3ZmY1YzM4ZjUyLi4wMGFiYzBkMTI3M2IwZmVjZTAxMzc3ZWU5
Yjk4Y2FjN2Q1Zjg2ZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAKQEAgLTE3OCw3ICsxNzgsNyBAQCBJbnRTaXplIFNWR0ltYWdlOjpjb250YWluZXJTaXplKCkg
Y29uc3QKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3Rm9yQ29udGFpbmVyKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRTaXplIGNvbnRhaW5lclNpemUsIGZs
b2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdtZW50VVJMLCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QsCi0gICAgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQog
ewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWRO
b3RoaW5nOwpAQCAtMjAyLDcgKzIwMiw3IEBAIEltYWdlRHJhd1Jlc3VsdCBTVkdJbWFnZTo6ZHJh
d0ZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0CiAKICAg
ICBmcmFtZVZpZXcoKS0+c2Nyb2xsVG9GcmFnbWVudChpbml0aWFsRnJhZ21lbnRVUkwpOwogCi0g
ICAgSW1hZ2VEcmF3UmVzdWx0IHJlc3VsdCA9IGRyYXcoY29udGV4dCwgZHN0UmVjdCwgc2NhbGVk
U3JjLCBjb21wb3NpdGVPcCwgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJ
bWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBJbWFnZURyYXdSZXN1bHQgcmVzdWx0ID0gZHJh
dyhjb250ZXh0LCBkc3RSZWN0LCBzY2FsZWRTcmMsIG9wdGlvbnMpOwogCiAgICAgc2V0SW1hZ2VP
YnNlcnZlcihvYnNlcnZlcik7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIyMSw3ICsyMjEsNyBA
QCBOYXRpdmVJbWFnZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29u
c3QgR3JhcGhpY3NDb250ZXh0KikKICAgICBpZiAoIWJ1ZmZlcikgLy8gZmFpbGVkIHRvIGFsbG9j
YXRlIGltYWdlCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgZHJhdyhidWZmZXItPmNv
bnRleHQoKSwgcmVjdCgpLCByZWN0KCksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZTo6
Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25l
KTsKKyAgICBkcmF3KGJ1ZmZlci0+Y29udGV4dCgpLCByZWN0KCksIHJlY3QoKSk7CiAKICAgICAv
LyBGSVhNRTogV0soQnVnIDExMzY1Nyk6IFdlIHNob3VsZCB1c2UgRG9udENvcHlCYWNraW5nU3Rv
cmUgaGVyZS4KICAgICByZXR1cm4gYnVmZmVyLT5jb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSkt
Pm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CkBAIC0yNDcsMTQgKzI0NywxNCBAQCBOYXRp
dmVJbWFnZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2UoY29uc3QgR3JhcGhpY3NDb250ZXh0KiB0
YXJnZXRDb250ZXh0KQogICAgIFBsYXRmb3JtQ29udGV4dERpcmVjdDJEIHBsYXRmb3JtQ29udGV4
dChuYXRpdmVJbWFnZVRhcmdldC5nZXQoKSk7CiAgICAgR3JhcGhpY3NDb250ZXh0IGxvY2FsQ29u
dGV4dCgmcGxhdGZvcm1Db250ZXh0LCBHcmFwaGljc0NvbnRleHQ6OkJpdG1hcFJlbmRlcmluZ0Nv
bnRleHRUeXBlOjpHUFVNZW1vcnkpOwogCi0gICAgZHJhdyhsb2NhbENvbnRleHQsIHJlY3QoKSwg
cmVjdCgpLCBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdN
b2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgZHJhdyhsb2Nh
bENvbnRleHQsIHJlY3QoKSwgcmVjdCgpKTsKIAogICAgIHJldHVybiBuYXRpdmVJbWFnZTsKIH0K
ICNlbmRpZgogCiB2b2lkIFNWR0ltYWdlOjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxvYXQg
Y29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwKLSAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zv
cm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENv
bXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIEJs
ZW5kTW9kZSBibGVuZE1vZGUpCisgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5n
LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewogICAgIEZsb2F0UmVjdCB6b29tZWRDb250YWluZXJSZWN0ID0gRmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgY29udGFpbmVyU2l6ZSk7CiAgICAgem9vbWVkQ29udGFpbmVyUmVjdC5z
Y2FsZShjb250YWluZXJab29tKTsKQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkIFNWR0ltYWdlOjpk
cmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0U2l6ZQogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoZXhwYW5kZWRJbnRTaXplKGltYWdlQnVmZmVy
U2l6ZS5zaXplKCkpLCAxLCBDb2xvclNwYWNlU1JHQiwgY29udGV4dCk7CiAgICAgaWYgKCFidWZm
ZXIpIC8vIEZhaWxlZCB0byBhbGxvY2F0ZSBidWZmZXIuCiAgICAgICAgIHJldHVybjsKLSAgICBk
cmF3Rm9yQ29udGFpbmVyKGJ1ZmZlci0+Y29udGV4dCgpLCBjb250YWluZXJTaXplLCBjb250YWlu
ZXJab29tLCBpbml0aWFsRnJhZ21lbnRVUkwsIGltYWdlQnVmZmVyU2l6ZSwgem9vbWVkQ29udGFp
bmVyUmVjdCwgQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlOjpOb3JtYWwpOworICAgIGRy
YXdGb3JDb250YWluZXIoYnVmZmVyLT5jb250ZXh0KCksIGNvbnRhaW5lclNpemUsIGNvbnRhaW5l
clpvb20sIGluaXRpYWxGcmFnbWVudFVSTCwgaW1hZ2VCdWZmZXJTaXplLCB6b29tZWRDb250YWlu
ZXJSZWN0KTsKICAgICBpZiAoY29udGV4dC5kcmF3THVtaW5hbmNlTWFzaygpKQogICAgICAgICBi
dWZmZXItPmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIApAQCAtMjg2LDEwICsyODYsMTAgQEAg
dm9pZCBTVkdJbWFnZTo6ZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFNpemUKICAgICB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0uc2Nh
bGUoMSAvIGltYWdlQnVmZmVyU2NhbGUud2lkdGgoKSwgMSAvIGltYWdlQnVmZmVyU2NhbGUuaGVp
Z2h0KCkpOwogCiAgICAgY29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxzZSk7Ci0gICAg
aW1hZ2UtPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNjYWxlZFNyY1JlY3QsIHVuc2Nh
bGVkUGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wLCBibGVuZE1v
ZGUpOworICAgIGltYWdlLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzY2FsZWRTcmNS
ZWN0LCB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsK
IH0KIAotSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBEZWNv
ZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6
OkRpZE5vdGhpbmc7CkBAIC0yOTgsMTEgKzI5OCwxMSBAQCBJbWFnZURyYXdSZXN1bHQgU1ZHSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
YwogICAgIEFTU0VSVCh2aWV3KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihjb250ZXh0KTsKLSAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21w
b3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihv
cHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogICAgIGNv
bnRleHQuY2xpcChlbmNsb3NpbmdJbnRSZWN0KGRzdFJlY3QpKTsKIAogICAgIGZsb2F0IGFscGhh
ID0gY29udGV4dC5hbHBoYSgpOwotICAgIGJvb2wgY29tcG9zaXRpbmdSZXF1aXJlc1RyYW5zcGFy
ZW5jeUxheWVyID0gY29tcG9zaXRlT3AgIT0gQ29tcG9zaXRlU291cmNlT3ZlciB8fCBibGVuZE1v
ZGUgIT0gQmxlbmRNb2RlOjpOb3JtYWwgfHwgYWxwaGEgPCAxOworICAgIGJvb2wgY29tcG9zaXRp
bmdSZXF1aXJlc1RyYW5zcGFyZW5jeUxheWVyID0gb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigp
ICE9IENvbXBvc2l0ZVNvdXJjZU92ZXIgfHwgb3B0aW9ucy5ibGVuZE1vZGUoKSAhPSBCbGVuZE1v
ZGU6Ok5vcm1hbCB8fCBhbHBoYSA8IDE7CiAgICAgaWYgKGNvbXBvc2l0aW5nUmVxdWlyZXNUcmFu
c3BhcmVuY3lMYXllcikgewogICAgICAgICBjb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIo
YWxwaGEpOwogICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVT
b3VyY2VPdmVyLCBCbGVuZE1vZGU6Ok5vcm1hbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZS5oCmluZGV4IDA3NTQyNGZjNzVkYmRlMDk5MTcwZmYzZjZlYmE2ZTZjNzFmZDJlMTUu
LjlhZDkzNThjNzExYmEyMjFjMmQ5MmE1YTc5NTk5ZGI1NDJiNzg1ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldygpIGNvbnN0OwogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VP
cmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QgZmluYWw7CiAKQEAgLTk0LDEwICs5NCw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdGFydEFuaW1hdGlvblRpbWVyRmlyZWQoKTsKIAogICAgIGV4cGxpY2l0IFNWR0ltYWdlKElt
YWdlT2JzZXJ2ZXImKTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRvUmVjdCwgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9u
KSBmaW5hbDsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ZvckNvbnRhaW5lcihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFNpemUgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9v
bSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2Rl
KTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3Qg
VVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywKLSAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYs
IEJsZW5kTW9kZSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdGb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplIGNvbnRh
aW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdtZW50
VVJMLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJu
Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVy
U2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkws
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAogICAgIFJlZlB0cjxT
VkdTVkdFbGVtZW50PiByb290RWxlbWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcAppbmRleCBjZjhjYzNl
NWNlYzhlODEyZGU2OWE5ZjQ0YWRiYjdiMDVjNTVjMDA1Li5lYWVmYzMxZTQ3ZDAyMTUxZDY5MGM1
Y2Q2NWY1ZTgzMWIzMWFmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAKQEAgLTI3LDIzICsyNywyMiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLUZsb2F0U2l6ZSBTVkdJbWFnZUZvckNvbnRhaW5lcjo6c2l6ZSgp
IGNvbnN0CitGbG9hdFNpemUgU1ZHSW1hZ2VGb3JDb250YWluZXI6OnNpemUoSW1hZ2VPcmllbnRh
dGlvbikgY29uc3QKIHsKICAgICBGbG9hdFNpemUgc2NhbGVkQ29udGFpbmVyU2l6ZShtX2NvbnRh
aW5lclNpemUpOwogICAgIHNjYWxlZENvbnRhaW5lclNpemUuc2NhbGUobV9jb250YWluZXJab29t
KTsKICAgICByZXR1cm4gRmxvYXRTaXplKHJvdW5kZWRJbnRTaXplKHNjYWxlZENvbnRhaW5lclNp
emUpKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlRm9yQ29udGFpbmVyOjpkcmF3KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LAotICAgIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJs
ZW5kTW9kZSBibGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0ltYWdl
RHJhd1Jlc3VsdCBTVkdJbWFnZUZvckNvbnRhaW5lcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gbV9p
bWFnZS0+ZHJhd0ZvckNvbnRhaW5lcihjb250ZXh0LCBtX2NvbnRhaW5lclNpemUsIG1fY29udGFp
bmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkwsIGRzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0
ZU9wLCBibGVuZE1vZGUpOworICAgIHJldHVybiBtX2ltYWdlLT5kcmF3Rm9yQ29udGFpbmVyKGNv
bnRleHQsIG1fY29udGFpbmVyU2l6ZSwgbV9jb250YWluZXJab29tLCBtX2luaXRpYWxGcmFnbWVu
dFVSTCwgZHN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgU1ZHSW1hZ2VGb3JD
b250YWluZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwg
QmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
IHsKLSAgICBtX2ltYWdlLT5kcmF3UGF0dGVybkZvckNvbnRhaW5lcihjb250ZXh0LCBtX2NvbnRh
aW5lclNpemUsIG1fY29udGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkwsIHNyY1JlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3NpdGVPcCwgZHN0UmVjdCwg
YmxlbmRNb2RlKTsKKyAgICBtX2ltYWdlLT5kcmF3UGF0dGVybkZvckNvbnRhaW5lcihjb250ZXh0
LCBtX2NvbnRhaW5lclNpemUsIG1fY29udGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkws
IHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBkc3RSZWN0LCBvcHRp
b25zKTsKIH0KIAogTmF0aXZlSW1hZ2VQdHIgU1ZHSW1hZ2VGb3JDb250YWluZXI6Om5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRh
aW5lci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVy
LmgKaW5kZXggODY5ZDA5NzFjNWIyZmU1ZDQ5NTFkZDYwMzQwYWUzNjNjZjc3NmYwNC4uZTY0NGY3
YWNmMzBlYzIyNGRmODUxNWQ4N2Y3MmMyYWUxYmIzNGE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKQEAgLTQzLDcgKzQzLDcg
QEAgcHVibGljOgogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBGbG9hdFNp
emUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBj
b25zdCBmaW5hbDsKIAogICAgIGJvb2wgdXNlc0NvbnRhaW5lclNpemUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2ltYWdlLT51c2VzQ29udGFpbmVyU2l6ZSgpOyB9CiAgICAgYm9vbCBoYXNSZWxh
dGl2ZVdpZHRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbWFnZS0+aGFzUmVsYXRpdmVXaWR0
aCgpOyB9CkBAIC01Myw5ICs1Myw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9pbWFnZS0+Y29tcHV0
ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwgaW50
cmluc2ljUmF0aW8pOwogICAgIH0KIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgZmluYWw7
CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9
KSBmaW5hbDsKIAotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUpIGZpbmFsOworICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwg
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiA9IHsgfSkgZmluYWw7CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgdG8g
YmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAgICAgYm9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVPcGFx
dWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA1NTJlZjFhOGZlMmQ1
NTU2NDNhZTk1YzU0NWE2MDVjZjc1YTdiMzVjLi5kMWZlZmM2ZTgzZDYxMzEzYjFiY2MxYzNhMTdl
NDYzMWEwNjQ4OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjYxOCw3ICsyNjE4LDcgQEAgc3RhdGljIHZvaWQgaW1h
Z2VQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNv
bnN0IEludGUKICAgICBpZiAoIWdyYXBoaWNzQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoKmltYWdlLCBGbG9hdFJlY3QoMCwgMCwgYml0
bWFwU2l6ZS53aWR0aCgpLCBiaXRtYXBTaXplLmhlaWdodCgpKSwgcmVuZGVySW1hZ2UuaW1hZ2VP
cmllbnRhdGlvbigpKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZSgqaW1hZ2UsIEZs
b2F0UmVjdCgwLCAwLCBiaXRtYXBTaXplLndpZHRoKCksIGJpdG1hcFNpemUuaGVpZ2h0KCkpLCB7
IHJlbmRlckltYWdlLmltYWdlT3JpZW50YXRpb24oKSB9KTsKICAgICBpbmZvLmltYWdlID0gc2hh
cmVkQml0bWFwOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTNjOWQzMWQ1NWExZGJiODc4MTQxM2ZhZGMzZmMxZmFk
ZTllMWE4Yy4uZDdjMzk3MDA5NzIzZDJiYzc1ZTc2NTM2MTY0YzA3ZDQ2YzFiZDFhZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTI3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFs
bGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRVhJRiBvcmllbnRhdGlvbiBzaG91bGQgYmUgcmVz
cGVjdGVkIHdoZW4gcmVuZGVyaW5nIGltYWdlcyAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTEyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEV4aXN0aW5nIHRlc3RzIGFyZSBtYWRlIHJlZi10ZXN0cy4g
TmV3IHRlc3RzIHdlcmUgYWRkZWQgdG8gY292ZXIgbW9yZQorICAgICAgICBjYXNlcyBmb3IgZHJh
d2luZyBpbWFnZXMuCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNv
bXBvc2l0ZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4
aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50
YXRpb24taW1hZ2UtZG9jdW1lbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
YW52YXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tY29udGVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLWRvY3VtZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWRvY3VtZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1pbWFnZS1vYmplY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1m
ZWltYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLXN2Zy1pbWFnZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMTktMDgtMjIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIFNob3VsZCBzaG93IGlucHV0IHZpZXcgd2hlbiBiZWNhbWUg
Zmlyc3QgcmVzcG9uZGVyIGlmIGtleWJvYXJkIHdhcyBzaG93aW5nIHdoZW4gdGhlIHZpZXcgd2Fz
IHJlc2lnbmVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVu
dGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTZiMTU4YmVjNTZjMTllMjY5ODVkZTAyODQ4NDZjNDkyMjVkYWYyYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRl
ZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBi
ZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLgotCi0KLUZsaXBwZWQgaG9yaXpvbnRh
bGx5IAotUm90YXRlZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQotUm90YXRlZCA5MMKw
IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQg
OTDCsCBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5ICAKLVJvdGF0ZWQgOTDCsCBDVyAKLWltZzEg
c2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzMgc2l6
ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzUgc2l6ZSA9
IDUwcHggYnkgMTAwcHgKLWltZzYgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzcgc2l6ZSA9IDUw
cHggYnkgMTAwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3Jp
ZW50YXRpb24tY29tcG9zaXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1v
cmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDk4Y2ZmMDlhNDcyZjRiOTEwYzFmOWVkZTU2NTBlZWJhMjMwNTJkZTEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbih0
cnVlKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
dHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKLX0KLQotZnVuY3Rpb24gaW1h
Z2VTaXplKGVsKSB7Ci0gICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5ICIgKyBjb21w
dXRlZFN0eWxlLmhlaWdodDsKLX0KLQotCi1mdW5jdGlvbiBsb2FkKCkgewotICAgIGZvcih2YXIg
aSA9IDE7IGkgPD0gNzsgaSsrKQotICAgICAgICBsb2coImltZyIgKyBpICsgIiBzaXplID0gIiAr
IGltYWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIiArIGkpKSkKLX0KLQotPC9z
Y3JpcHQ+Ci08c3R5bGU+Ci1pbWcgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsg
fQotZGl2IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIwcHg7IG1hcmdp
bi1ib3R0b206IDEwcHg7IHdpZHRoOiAxMDBweDsgdmVydGljYWwtYWxpZ246IHRvcDsgfQotPC9z
dHlsZT4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLTxiPlRoZSBpbWFnZXMgc2hv
dWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLiBUaGlzIHRl
c3QgY2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFudWFsbHkgc2V0dGlu
ZyBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVlKS48L2I+PGJyPjxi
cj4KLTxkaXY+PGltZyBpZD0iaW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0y
LXVyLmpwZyI+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9Imlt
ZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjxicj5Sb3RhdGVk
IDE4MCZkZWc7PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzMiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tNC1sb2wuanBnIj48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+
Ci08ZGl2PjxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1s
dS5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rp
dj4KLTxkaXY+PGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02
LXJ1LmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1n
NiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IDwvZGl2PgotPGRpdj48aW1nIGlkPSJp
bWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PGJyPlJvdGF0
ZWQgOTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1v
cmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmMDIyNDViNjBiYmI4ZDJkMTE5ZTllMDdlODMwNWJkNjMxMTg1NjEzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMy
ICswLDAgQEAKLU5vbmUgb2YgdGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZC4gVGhpcyB0ZXN0
IGlzIG9ubHkgdmFsaWQgd2hlbiBydW4gd2l0aCB0ZXN0UnVubmVyIChvciB3aXRoIFdlYktpdFNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIG1hbnVhbGx5IHNldCB0byB0cnVlKS4KLQotCi1O
b3JtYWwgCi1GbGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQgMTgwwrAgCi1GbGlwcGVkIHZl
cnRpY2FsbHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJv
dGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAK
LVJvdGF0ZWQgOTDCsCBDVyAKLQotUm90YXRlZCA5MMKwIENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNh
bGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBDVyBhbmQgZmxpcHBlZCB2ZXJ0
aWNhbGx5IAotUm90YXRlZCA5MMKwIENXIAotCi1VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpIAot
aW1nMSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMiBzaXplID0gMTAwcHggYnkgNTBweAotaW1n
MyBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNCBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNSBz
aXplID0gMTAwcHggYnkgNTBweAotaW1nNiBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNyBzaXpl
ID0gMTAwcHggYnkgNTBweAotaW1nOCBzaXplID0gMTAwcHggYnkgNTBweAotaW1nOSBzaXplID0g
MTAwcHggYnkgMTAwcHgKLWltZzEwIHNpemUgPSAxMDBweCBieSAxMDBweAotaW1nMTEgc2l6ZSA9
IDEwMHB4IGJ5IDEwMHB4Ci1pbWcxMiBzaXplID0gMTAwcHggYnkgMTAwcHgKLWltZzEzIHNpemUg
PSAxMDBweCBieSA1MHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlm
LW9yaWVudGF0aW9uLWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1jc3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQxN2Y1NTg5
MjEzMzY0NmQzODY2YTBiYWVlYjM2MTY4MmViMWZiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVu
dGF0aW9uLWNzcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotCi1mdW5jdGlv
biBsb2coc3RyKSB7Ci0gICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsK
LSAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2
YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0gICAgY29u
c29sZS5hcHBlbmRDaGlsZChsaSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewotICAg
IHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAgIHJl
dHVybiBjb21wdXRlZFN0eWxlLndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7
Ci19Ci0KLQotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDEzOyBp
KyspCi0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VTaXplKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4K
LWRpdi5pbWFnZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7IH0KLWRpdi5jb250YWluZXIgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdo
dDogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGln
bjogdG9wOyB9Ci1pbWcgeyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQt
cmVwZWF0OiBuby1yZXBlYXQ7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9Imxv
YWQoKSI+Ci08Yj5Ob25lIG9mIHRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQuIFRoaXMgdGVz
dCBpcyBvbmx5IHZhbGlkIHdoZW4gcnVuIHdpdGggdGVzdFJ1bm5lciAob3Igd2l0aCBXZWJLaXRT
aG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBtYW51YWxseSBzZXQgdG8gdHJ1ZSkuPC9iPjxi
cj48YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1n
MSIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZykiPjwvZGl2Pjxicj5Ob3JtYWw8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBj
bGFzcz0iaW1hZ2UiIGlkPSJpbWcyIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTItdXIuanBnKSI+PC9kaXY+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9k
aXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMyIg
c3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyki
PjwvZGl2Pjxicj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIi
PjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nNCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rpdj48YnI+RmxpcHBlZCB2ZXJ0aWNh
bGx5PC9kaXY+Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdl
IiBpZD0iaW1nNSIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi01LWx1LmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2Ui
IGlkPSJpbWc2IiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTYtcnUuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc3IiBzdHlsZT0iY29udGVu
dDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnKSI+PC9kaXY+PGJyPlJv
dGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNz
PSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nOCIgc3R5bGU9ImNvbnRlbnQ6
IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcpIj48L2Rpdj48YnI+Um90
YXRlZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcg
aWQ9ImltZzkiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNS1sdS5qcGcpIj48L2ltZz48YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9Imlt
ZzEwIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTYtcnUuanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdl
OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2ltZz48YnI+Um90
YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNz
PSJpbWFnZSIgaWQ9ImltZzEzIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTktdS5qcGcpIj48L2Rpdj48YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKTwv
ZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY0ODgzMjNmNDk0YTA2Yjc0OTBh
ZjYwMzk3ZDE0ZjkyMDFhZTNhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSBpbWFnZXMgc2hvdWxk
IGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLiBUaGlzIHRlc3Qg
Y2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFudWFsbHkgc2V0dGluZyBX
ZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVlKS4KLQotCi1Ob3JtYWwg
Ci1GbGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQgMTgwwrAgCi1GbGlwcGVkIHZlcnRpY2Fs
bHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0ZWQg
OTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAgCi1Sb3Rh
dGVkIDkwwrAgQ1cgCi0KLVVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkgCi1pbWcxIHNpemUgPSAx
MDBweCBieSA1MHB4Ci1pbWcyIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWczIHNpemUgPSAxMDBw
eCBieSA1MHB4Ci1pbWc0IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc1IHNpemUgPSA1MHB4IGJ5
IDEwMHB4Ci1pbWc2IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc3IHNpemUgPSA1MHB4IGJ5IDEw
MHB4Ci1pbWc4IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc5IHNpemUgPSAxMDBweCBieSA1MHB4
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWlt
YWdlLWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYt
b3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0NzMxM2JlNTIzNGY1ZTI4NjdhZDRkNTYwMDZhNTM1ZTBlZmM2ZjQyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1UaGUgaW1hZ2VzIHNob3VsZCBiZSByb3Rh
dGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi4gSW4gaW1hZ2UgZG9jdW1lbnRz
LCB0aGlzIGhhcHBlbnMgaW5kZXBlbmRlbnQgb2YgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24uCi0KLSAgICAKLSAgICAKLSAKLVBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTIxYjNlNTU4Yjk0NDAyOGZhNmQwZmE1OTQ5
ZTU4NzY2MGFhMDhkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3Vt
ZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIC8vIE5vdGUgdGhhdCB0aGlz
IHRlc3Qgb25seSBwYXNzZXMgaW4gRFJULiBJbiBicm93c2VycywgdGhlIGNyb3NzLWlmcmFtZSBk
b20gaW5zcGVjdGlvbiB1c3VhbGx5IGNhdXNlcyBhIHNlY3VyaXR5IGV4Y2VwdGlvbi4KLSAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAg
ICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxk
KGxpKTsKLX0KLQotZnVuY3Rpb24gaW1hZ2VTaXplKG5hbWUpIHsKLSAgICB2YXIgaW1nID0gd2lu
ZG93LmZyYW1lc1tuYW1lXS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKTsKLSAgICByZXR1
cm4gW2ltZy5vZmZzZXRXaWR0aCwgaW1nLm9mZnNldEhlaWdodF07Ci19Ci0KLQotZnVuY3Rpb24g
bG9hZCgpIHsKLSAgICB2YXIgZXhwZWN0ZWQgPSBbCi0gICAgICBbMTAwLCA1MF0sIFsxMDAsIDUw
XSwgWzEwMCwgNTBdLCBbMTAwLCA1MF0sIAotICAgICAgWzUwLCAxMDBdLCBbNTAsIDEwMF0sIFs1
MCwgMTAwXSwgWzUwLCAxMDBdLCAKLSAgICAgIFsxMDAsIDUwXSwKLSAgICBdOwotICAgIHZhciBz
dWNjZXNzID0gdHJ1ZTsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykgewotICAgICAg
ICB2YXIgcyA9IGltYWdlU2l6ZSgiaW1nIiArIGkpOwotICAgICAgICBpZiAoc1swXSAhPT0gZXhw
ZWN0ZWRbaSAtIDFdWzBdIHx8IHNbMV0gIT09IGV4cGVjdGVkW2kgLSAxXVsxXSkKLSAgICAgICAg
ICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICB9Ci0gICAgbG9nKHN1Y2Nlc3MgPyAiUEFTUyIgOiAi
RkFJTCIpOwotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWlmcmFtZSB7IGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDog
MTIwcHg7IGhlaWdodDogMTEwcHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOyB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgot
PGI+VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3Jp
ZW50YXRpb24uIEluIGltYWdlIGRvY3VtZW50cywgdGhpcyBoYXBwZW5zIGluZGVwZW5kZW50IG9m
IFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLjwvYj48YnI+PGJyPgotPGlmcmFt
ZSBuYW1lPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBm
cmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWcyIiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlm
cmFtZSBuYW1lPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBn
IiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWc0IiBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4K
LTxicj4KLTxpZnJhbWUgbmFtZT0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi01LWx1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNiIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIgZnJhbWVib3JkZXI9MD48
L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi03LXJsLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1n
OCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciIGZyYW1lYm9yZGVy
PTA+PC9pZnJhbWU+Ci08YnI+Ci08aWZyYW1lIG5hbWU9ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tOS11LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTx1
bCBpZD0iY29uc29sZSI+PC91bD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwZDhjODNiMGQ1ZjNlZDVkZTkzMDliODYyNzRmZTE3MTRiZjA1YThjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKHRydWUp
OwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVl
KTsKLQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
c3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5jdGlvbiBpbWFnZVNp
emUoZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGVsKTsKLSAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkgIiArIGNvbXB1dGVk
U3R5bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAgZm9yKHZhciBpID0g
MTsgaSA8PSA5OyBpKyspCi0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1h
Z2VTaXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQotfQotCi08L3Njcmlw
dD4KLTxzdHlsZT4KLWltZyB7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci1kaXYgeyBkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBw
eDsgd2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci08L3N0eWxlPgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRl
ZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBi
ZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLjwvYj48YnI+PGJyPgotPGRpdj48aW1n
IGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj48YnI+
Tm9ybWFsPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMi11ci5qcGciPjxicj5GbGlwcGVkIGhvcml6b250YWxseTwvZGl2PgotPGRpdj48
aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj48
YnI+Um90YXRlZCAxODAmZGVnOzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc0IiBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PGJyPkZsaXBwZWQgdmVydGljYWxseTwv
ZGl2PgotPGJyPgotPGRpdj48aW1nIGlkPSJpbWc1IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTUtbHUuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0
aWNhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNi1ydS5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXPC9kaXY+Ci08ZGl2Pjxp
bWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPjxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSA8L2Rpdj4KLTxkaXY+
PGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGci
Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTxkaXY+PGltZyBpZD0iaW1nOSIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj48YnI+VW5kZWZpbmVkIChp
bnZhbGlkIHZhbHVlKTwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY3NTY2YjBhZDYzMDRjOWU1MTQwMTBlMjY3ZWUyZjEyZDZkYzEwNGMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5k
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+
CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAg
ICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsg
CisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cisg
ICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG1h
cmdpbi1ib3R0b206IDZweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7CisgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKKyAgICB9Cis8
L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBiYWNrZ3JvdW5kIGltYWdlcyBzaG91bGQg
YmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8
YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5O
b3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBy
b3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0x
KSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4
LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90
YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVw
eCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJv
dGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+
CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1iYWNrZ3JvdW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1iYWNrZ3JvdW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM5OTE5ZmVhMWI5YWI1ZjkwY2EyNTA0
OWU3NGI2NjEzZWQzNGRmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQuaHRtbApAQCAtMCwwICsxLDY2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAg
IG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVy
dGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAg
ICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250
YWwgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9
CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBjc3MgYmFja2dy
b3VuZCBpbWFnZXMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmll
bnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iYmFja2dy
b3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnKSI+PC9k
aXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iYmFj
a2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnKSI+
PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6
b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMy1sci5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+RmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iYmFja2dy
b3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnKSI+PC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2Fs
bHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iYmFja2dyb3VuZC1p
bWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnKSI+PC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZykiPjwvZGl2
PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tY2FudmFzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWUwYWU5NmQyY2Qx
OWEwYzMxMWI2ZjExMGFjMjhjZDMzYjJlMzU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5l
ciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0
OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAx
MDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5pbWFn
ZSB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgd2lkdGg6IDUwcHg7
CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKKyAg
ICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAg
IHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAg
PGI+Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSgpIHNob3VsZCByZXNwZWN0IHRo
ZSBpbWFnZSBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4K
KyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAg
ICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgor
ICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNj
YWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zv
cm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZ
KC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0
cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQg
dmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43ZDcxMWVkM2I0ZTEyOGZjMDA5MWYxZWFmNTZkZmZkODUyODUwMzg4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLmh0
bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdiB7
CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAy
MHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGNhbnZhcyB7CisgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgY2FudmFzLmhvcml6b250YWwgeworICAgICAg
ICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgY2FudmFz
LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5kcmF3SW1hZ2UoKSBzaG91bGQgcmVzcGVjdCB0aGUgaW1hZ2UgRVhJRiBvcmllbnRhdGlvbi48
L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGNsYXNz
PSJob3Jpem9udGFsIiBpZD0iY2FudmFzMSI+PC9jYW52YXM+CisgICAgICAgIDxicj5Ob3JtYWwK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGNsYXNzPSJob3Jpem9udGFs
IiBpZD0iY2FudmFzMiI+PC9jYW52YXM+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxjYW52YXMgY2xhc3M9Imhvcml6b250
YWwiIGlkPSJjYW52YXMzIj48L2NhbnZhcz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGNsYXNzPSJob3Jpem9udGFs
IiBpZD0iY2FudmFzNCI+PC9jYW52YXM+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBjbGFzcz0i
dmVydGljYWwiIGlkPSJjYW52YXM1Ij48L2NhbnZhcz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXY+Cisg
ICAgICAgIDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFzNiI+PC9jYW52YXM+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAg
ICAgICAgPGNhbnZhcyBjbGFzcz0idmVydGljYWwiIGlkPSJjYW52YXM3Ij48L2NhbnZhcz4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBjbGFzcz0idmVydGljYWwiIGlkPSJj
YW52YXM4Ij48L2NhbnZhcz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGNsYXNzPSJob3Jpem9u
dGFsIiBpZD0iY2FudmFzOSI+PC9jYW52YXM+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFs
aWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworCisgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZh
ciBuYW1lcyA9IFsKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciLCAgaWQgOiAiY2FudmFzMSIgfSwKKyAgICAgICAgICAgICAg
ICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciLCAgaWQg
OiAiY2FudmFzMiIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMy1sci5qcGciLCAgaWQgOiAiY2FudmFzMyIgfSwKKyAgICAgICAgICAg
ICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIiwg
aWQgOiAiY2FudmFzNCIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciLCAgaWQgOiAiY2FudmFzNSIgfSwKKyAgICAgICAg
ICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGci
LCAgaWQgOiAiY2FudmFzNiIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciLCAgaWQgOiAiY2FudmFzNyIgfSwKKyAgICAg
ICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8u
anBnIiwgaWQgOiAiY2FudmFzOCIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyIsICAgaWQgOiAiY2FudmFzOSIgfQorICAg
ICAgICAgICAgXTsKKworICAgICAgICAgICAgdmFyIGRyYXdDb3VudCA9IDA7CisKKyAgICAgICAg
ICAgIG5hbWVzLmZvckVhY2goZnVuY3Rpb24obmFtZSkgeworICAgICAgICAgICAgICAgIHZhciBp
bWFnZSA9IG5ldyBJbWFnZTsKKyAgICAgICAgICAgICAgICBpbWFnZS5zcmMgPSBuYW1lLnJlc291
cmNlOworICAgICAgICAgICAgICAgIGltYWdlLmRlY29kZSgpLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmFtZS5p
ZCk7CisgICAgICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IGltYWdlLndpZHRoOworICAg
ICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaW1hZ2UuaGVpZ2h0OworICAgICAgICAg
ICAgICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgICAg
ICAgICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgY2FudmFzLndpZHRo
LCBjYW52YXMuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCsrZHJhd0NvdW50ID09
IG5hbWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTBiMDlhYjQ1OTFmNzMyYmI5NzE5MWUzMjdmOTc4ZjA3ZjJmMDQ2MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRl
bnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHls
ZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwor
ICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4
OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsK
KyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
bWFyZ2luLWJvdHRvbTogNnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFw
eCBzb2xpZCBibGFjazsKKyAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOworICAgIH0K
Kzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgY3NzIGNvbnRlbnQgaW1hZ2VzIHNob3VsZCBi
ZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxi
cj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPGJyPk5v
cm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJv
dGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEp
IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8
L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgs
IDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4
LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90
YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRl
ZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4K
KyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmYyNTgzOGU0MDk0NDUwZjI0MWZhNTZhMTI3NTA1
OTBmYmE2YzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tY29udGVudC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luLWJv
dHRvbTogMTBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGln
bjogdG9wOworICAgIH0KKyAgICBkaXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBkaXYu
aG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4
OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNz
cyBjb250ZW50IGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElG
IG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJj
b250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rpdj4K
KyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50
OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rpdj4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9
ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZykiPjwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0
eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+
PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1h
Z2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tNS1sdS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5k
IGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iY29udGVudDog
dXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250
ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tOC1sbG8uanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5VbmRl
ZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1l
bnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjUxNjZhMTI3ZTc4NGUzNDQxM2IwZmQ0MGFl
OTYzOTMwMDZhODA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAg
ICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAg
ICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OworICAgIH0KKyAgICBpbWcg
eworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgdHJhbnNmb3JtLW9y
aWdpbjogY2VudGVyOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2Vz
IG9mIEltYWdlRG9jdW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVY
SUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8
YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5S
b3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxi
cj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNs
YXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
MjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAg
ICA8L2Rpdj4KKyAgICA8YnI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjQ0
M2I2NzM4YTg2Zjc5ZjBmMTVhMDFmMjhlOGM2NTU1ZTZhNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbApA
QCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYgeworICAg
ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsK
KyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBpZnJhbWUgeworICAgICAgICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsKKyAgICAg
ICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIGlmcmFtZS5ob3Jpem9udGFs
IHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQor
ICAgIGlmcmFtZS52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9m
IEltYWdlRG9jdW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYg
b3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAg
PGlmcmFtZSBjbGFzcz0iaG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+PC9pZnJhbWU+CisgICAgICAg
IDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8aWZyYW1lIGNsYXNz
PSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPGJyPkZsaXBwZWQg
aG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlmcmFtZSBjbGFz
cz0iaG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDxicj5Sb3RhdGVk
IDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlmcmFtZSBjbGFzcz0i
aG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi00LWxvbC5qcGciPjwvaWZyYW1lPgorICAgICAgICA8YnI+RmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXY+CisgICAgICAgIDxpZnJh
bWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXY+CisgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVM
b2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj48L2lm
cmFtZT4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2PgorICAgICAgICA8aWZyYW1lIGNsYXNzPSJ2ZXJ0aWNhbCIgb25sb2FkPSJvbkZyYW1lTG9h
ZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+PC9pZnJh
bWU+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2Fs
IiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTgtbGxvLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPGlmcmFtZSBjbGFzcz0i
aG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi05LXUuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAo
aW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICB2YXIgaUZyYW1lTG9hZGVkQ291bnQgPSAwOwor
CisgICAgICAgICBmdW5jdGlvbiBvbkZyYW1lTG9hZCgpIHsKKyAgICAgICAgICAgIGlmICgrK2lG
cmFtZUxvYWRlZENvdW50ID09IDkpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Ut
b2JqZWN0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmll
bnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjYyOWMxYzZm
Mzg0YWIyMTU5OGRjYjNmNzNiYzdjNWNhZGU4MjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0LWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2
LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFy
Z2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAg
IHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAg
IGRpdi5pbWFnZSB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgd2lk
dGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206
IDZweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7
CisgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKKyAgICB9Cis8L3N0eWxlPgorPGJv
ZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiAmbHQ7b2JqZWN0Jmd0OyBlbGVtZW50cyBzaG91bGQg
YmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8
YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5O
b3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBy
b3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0x
KSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAy
NXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFn
ZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkw
ZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkg
cm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAg
PC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxi
cj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
aW1hZ2Utb2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1pbWFnZS1vYmplY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzViMGZhYzEyODhlOTk5NjY4MmU2
YzBmOTAwZjc0OWVmYTgzMTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0bWwKQEAgLTAsMCArMSw1NiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAg
ICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAg
IHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIG9iamVjdCB7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUg
aW1hZ2VzIG9mICZsdDtvYmplY3QmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNw
ZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9q
cGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+PC9vYmplY3Q+
CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj48L29iamVjdD4KKyAgICAgICAgPGJyPkZsaXBwZWQg
aG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0zLWxyLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPG9iamVj
dCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxv
bC5qcGciPjwvb2JqZWN0PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxvYmpl
Y3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1s
dS5qcGciPjwvb2JqZWN0PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi02LXJ1LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRl
ZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5k
IGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj48L29iamVjdD4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTktdS5qcGciPjwvb2JqZWN0PgorICAgICAgICA8YnI+VW5kZWZpbmVk
IChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVt
ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIxNjViNzA3YWMzMTg1ZWJiMTljYjA3ZWNk
N2ExYTBiZjBiOGM4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAK
KyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisg
ICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7Cisg
ICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKKyAgICB9Cisg
ICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgIHRyYW5z
Zm9ybS1vcmlnaW46IGNlbnRlcjsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhl
IGltYWdlcyBvZiAmbHQ7aW1nJmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVj
dGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgaWQ9ImltZzEiIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+Tm9ybWFsCisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBpZD0i
aW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIGlk
PSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0i
dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVn
OworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcg
aWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPkZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
aW1nIGlkPSJpbWc1IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2Nh
bGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBD
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
bWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1
cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRp
Y2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzgiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVw
eCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGltZyBpZD0iaW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisg
ICAgPC9kaXY+CisgICAgPGJyPgorICAgIDx1bCBpZD0iY29uc29sZSI+PC91bD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBmdW5jdGlvbiBsb2coc3RyKSB7CisgICAgICAgICAgICB2YXIgbGkgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgICAgICAgICAgbGkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7CisgICAgICAgICAgICB2YXIgY29uc29sZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAgICAgICAgICBjb25zb2xl
LmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICAgfQorCisgICAgICAgICBmdW5jdGlvbiBpbWFnZVNp
emUoaW5kZXgpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImltZyIgKyBpbmRleCk7CisgICAgICAgICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpOworICAgICAgICAgICAgaWYgKGVsZW1lbnQu
cGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInZlcnRpY2FsIikpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUuaGVpZ2h0ICsgIiBieSAiICsgY29tcHV0ZWRTdHls
ZS53aWR0aDsKKyAgICAgICAgICAgIHJldHVybiBjb21wdXRlZFN0eWxlLndpZHRoICsgIiBieSAi
ICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7CisgICAgICAgIH0KKworICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGZvcih2YXIg
aSA9IDE7IGkgPD0gOTsgaSsrKQorICAgICAgICAgICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNp
emUgPSAiICsgaW1hZ2VTaXplKGkpKTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2Jv
ZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1n
LWVsZW1lbnQtb2JqZWN0LWZpdC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NGZkY2ZkMDQ1
NWIxYTI4ZjUyMjIzOGY2OWVhZTg5ZWRjZGQ1MjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+
CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAg
ICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAK
KyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
IH0KKyAgICBkaXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAg
ICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKKyAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgdHJhbnNmb3Jt
LW9yaWdpbjogY2VudGVyOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1h
Z2VzIG9mICZsdDtpbWcmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5n
IHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0
ZSgwLCAyNXB4KSBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Rmxp
cHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5z
bGF0ZSgwLCAyNXB4KSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRy
YW5zbGF0ZSgwLCAyNXB4KSBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdl
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSg5MGRlZykg
c2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0i
dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xh
dGUoMCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVu
dC1vYmplY3QtZml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZlNmNhMzM1NDZl
NWQ3ZmMyYjdiMDgxNTk2OWJkOGM0YTAzY2EyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQu
aHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYg
eworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDog
MjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1h
bGlnbjogdG9wOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgfQorICAgIGltZyB7CisgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgb2JqZWN0
LWZpdDogY29udGFpbjsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQor
PC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVu
dHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48
L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+Tm9ybWFsCisg
ICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTItdXIuanBnIj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNC1sb2wuanBnIj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tNS1sdS5qcGciPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IEND
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2PgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
OC1sbG8uanBnIj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2Pgor
ICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tOS11LmpwZyI+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUp
CisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTBm
ODc0ZjRhZjJmYjkxYTJjN2E2NDY0ODU4Nzg5NmE2YTZlZjIxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRt
bApAQCAtMCwwICsxLDc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYgewor
ICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBw
eDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7
IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBpbWcgeworICAgICAg
ICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAg
PGI+VGhlIGltYWdlcyBvZiAmbHQ7aW1nJmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQg
cmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJy
PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9ImltZzEiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+Cisg
ICAgPGRpdj4KKyAgICAgICAgPGltZyBpZD0iaW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0yLXVyLmpwZyI+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAg
IDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9ImltZzMiIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVn
OworICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9ImltZzQiIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj4KKyAgICAgICAgPGJyPkZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1n
IGlkPSJpbWc1IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENDVworICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9ImltZzciIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
PgorICAgICAgICA8aW1nIGlkPSJpbWc4IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4K
KyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPGltZyBpZD0iaW1nOSIgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52
YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPHVsIGlkPSJjb25zb2xlIj48
L3VsPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAg
ICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBs
aS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAg
IHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAg
ICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisKKyAgICAgICAgICBm
dW5jdGlvbiBpbWFnZVNpemUoZWwpIHsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVk
U3R5bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKKyAgICAgICAgfQor
CisgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4gewor
ICAgICAgICAgICAgZm9yKHZhciBpID0gMTsgaSA8PSA5OyBpKyspCisgICAgICAgICAgICAgICAg
bG9nKCJpbWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImltZyIgKyBpKSkpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44Y2ExOTc0ZDEzM2E3OWE2ZjU2ZTkwYzEyMGZiYWI4ZjYwNjM1
NTg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBt
YXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVy
dGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OworICAgIH0KKyAgICBpbWcgeworICAg
ICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjog
Y2VudGVyOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIFNW
RyAmbHQ7ZmVpbWFnZSZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3Rpbmcg
dGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+Cisg
ICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAg
ICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2Fs
ZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IEND
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0i
dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgt
MSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5k
IGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJh
bnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZh
bHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIzNzJlOTQxMGIwYjY2MDE3ZmQ0M2Q2MDUwZjc4YzZhZmJkYWY2NGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1z
dmctZmVpbWFnZS5odG1sCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHls
ZT4KKyAgICBkaXYgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBz
dmcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgc3ZnLmhv
cml6b250YWwgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsK
KyAgICB9CisgICAgc3ZnLnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFn
ZXMgb2YgU1ZHICZsdDtmZWltYWdlJmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVz
cGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgor
ICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PGZpbHRlciBpZD0iaW1nMSI+CisgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0iMCIg
d2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciLz4KKyAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgPHJlY3Qg
d2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzEpOyIvPgor
ICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXY+
CisgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGZpbHRlciBp
ZD0iaW1nMiI+CisgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5q
cGciLz4KKyAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzIpOyIvPgorICAgICAgICA8
L3N2Zz4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdj4KKyAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Zmls
dGVyIGlkPSJpbWczIj4KKyAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0z
LWxyLmpwZyIvPgorICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICA8cmVjdCB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVybCgjaW1nMyk7Ii8+CisgICAg
ICAgIDwvc3ZnPgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAg
IDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGZp
bHRlciBpZD0iaW1nNCI+CisgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0iMCIgd2lk
dGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
NC1sb2wuanBnIi8+CisgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAgICAgICAgIDxyZWN0IHdp
ZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc0KTsiLz4KKyAg
ICAgICAgPC9zdmc+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4K
KyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGZpbHRlciBpZD0iaW1nNSI+CisgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0i
MCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tNS1sdS5qcGciLz4KKyAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAg
ICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2lt
ZzUpOyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxz
dmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzYiPgorICAg
ICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIi8+CisgICAgICAg
ICAgICA8L2ZpbHRlcj4KKyAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc2KTsiLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAg
PHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNyI+Cisg
ICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0i
MTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciLz4KKyAgICAg
ICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0i
MTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzcpOyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAg
ICAgPGZpbHRlciBpZD0iaW1nOCI+CisgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0i
MCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tOC1sbG8uanBnIi8+CisgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAgICAgICAgIDxy
ZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc4KTsi
Lz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8
L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWc5Ij4KKyAgICAgICAgICAgICAgICA8ZmVp
bWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIi8+CisgICAgICAgICAgICA8L2ZpbHRlcj4KKyAg
ICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6
dXJsKCNpbWc5KTsiLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGlu
dmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmct
aW1hZ2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGY0NTlkZjdkZDE1YjYzMjU0Y2QwYjk3
MTAzODZmMzM5MTVhYzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAK
KyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisg
ICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5pbWFnZSB7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKKyAgICB9CisgICAg
aW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgIHRyYW5zZm9y
bS1vcmlnaW46IGNlbnRlcjsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGlt
YWdlcyBvZiBTVkcgJmx0O2ltYWdlJmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVz
cGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgt
MSk7Ij4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsi
PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVn
KTsiPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdl
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBk
ZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAg
ICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0
cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykg
c2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGlu
dmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kN2JiNWU1MmQzYzFmZDE1OGU4NGRjODM0ZGJjZTYwYjhlMjM4MTcyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tc3ZnLWltYWdlLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5
bGU+CisgICAgZGl2IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBt
YXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAg
c3ZnIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIHN2Zy5o
b3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7
CisgICAgfQorICAgIHN2Zy52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1h
Z2VzIG9mIFNWRyAmbHQ7aW1hZ2UmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNw
ZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+Cisg
ICAgPGRpdj4KKyAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8
aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5Ob3JtYWwK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4K
KyAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAg
ICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5q
cGciPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxi
cj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAg
ICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIx
MDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUu
anBnIi8+CisgICAgICAgIDwvc3ZnPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPHN2
ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWln
aHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIi8+Cisg
ICAgICAgIDwvc3ZnPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2
PgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi03LXJsLmpwZyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRp
dj4KKyAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltYWdlIHdp
ZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIx
MDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIi8+CisgICAgICAg
IDwvc3ZnPgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2
PgorICAgIDxicj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggMTI4OWVlNmMxOGJkNTgxN2ZkYTNjN2EwMWFhMzQ5MzkzZTYwN2M4Yi4uMGNj
NjVhYWVmMTRkY2I3YTBhZGNiZjA4MjBkZTljMWM2OWFhMGRiMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5MjUsOCArMjkyNSw2IEBAIHdlYmtpdC5v
cmcvYi8xMjA1OTYgY3NzMy9tYXNraW5nL21hc2stcmVwZWF0LXNwYWNlLWNvbnRlbnQuaHRtbCBb
IEltYWdlT25seUZhaWx1CiAKIHdlYmtpdC5vcmcvYi8xMjA4MzkgbGVnYWN5LWFuaW1hdGlvbi1l
bmdpbmUvYW5pbWF0aW9ucy9jcm9zcy1mYWRlLWJhY2tncm91bmQtaW1hZ2UuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTIxOTA1IGZhc3QvaW1hZ2VzL2V4aWYtb3Jp
ZW50YXRpb24uaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTgwNTgxIGNzczMvc2hh
cGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW1hcmdpbi0wMDEuaHRtbCBbIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzE4MDU4MSBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9z
aGFwZS1vdXRzaWRlLWNpcmNsZS0wMDQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4
MDU4MSBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1vdXRzaWRlLWNpcmNs
ZS0wMDUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBkZGJlMWFiYzcyZGU5OGFmN2MyNTQ2Nzc1MjM0MDA4NzZiODI4MWQ2Li5j
MTA4MDQ5YTQ2MGJjNTY2NjExNGFlZDM4ZmQ3YmUxOGFlZjQ3OGEwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjgxMSwxMSArMjgxMSw5IEBAIGZhc3Qv
aGlzdG9yeS9sb2NhdGlvbi1yZXBsYWNlLWhhc2guaHRtbCBbIFNraXAgXQogZmFzdC9oaXN0b3J5
L3NhdmVzLXN0YXRlLWFmdGVyLWZyYWdtZW50LW5hdi5odG1sIFsgU2tpcCBdCiAKIGZhc3QvaW1h
Z2VzL2ltYWdlLWNvbnRyb2xzLWJhc2ljLmh0bWwgWyBGYWlsdXJlIF0KLWZhc3QvaW1hZ2VzL2V4
aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
MTQwNTE2IFsgRGVidWcgXSBmYXN0L2ltYWdlcy9sYXJnZS1zaXplLWltYWdlLWNyYXNoLmh0bWwg
WyBTa2lwIF0gICMgQ3Jhc2hpbmcKIGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS13aXRoLWFubm90
YXRpb25zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvaW1hZ2VzL3N1cHBvcnQtYnJv
a2VuLWltYWdlLWRlbGVnYXRlLmh0bWwgWyBGYWlsdXJlIF0KLWZhc3QvaW1hZ2VzL2V4aWYtb3Jp
ZW50YXRpb24uaHRtbCBbIEZhaWx1cmUgXQogCiBmYXN0L2lubGluZS9wb3NpdGlvbmVkTGlmZXRp
bWUuaHRtbCBbIEZhaWx1cmUgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377362</attachid>
            <date>2019-08-27 12:25:04 -0700</date>
            <delta_ts>2019-08-27 23:04:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201123-20190827122503.patch</filename>
            <type>text/plain</type>
            <size>256142</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY3NzY2YmNjYTI4OWMz
OWQyODhmYTkyOWI4NzkzYjU2NTBjMWJiMS4uZjlkNzNiMWQ0NjFiZDE3MzY1NThhNWU1MWZjODQy
ODU3OTE2MjY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1MiBAQAorMjAxOS0wOC0yNyAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEVYSUYg
b3JpZW50YXRpb24gc2hvdWxkIGJlIHJlc3BlY3RlZCB3aGVuIHJlbmRlcmluZyBpbWFnZXMgCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDExMjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtLSBJbWFnZTo6
c2l6ZSgpIHdpbGwgcmV0dXJuIHRoZSByZW5kZXJlZCBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZQor
ICAgICAgICAgICBvcmllbnRhdGlvbi4gVGhlIGxvdyBsZXZlbCBBUElzIG1pZ2h0IHRyYW5zcG9z
ZSB0aGUgc2l6ZSBqdXN0IGJlZm9yZQorICAgICAgICAgICBjYWxsaW5nIHRoZSBzeXN0ZW0gQVBJ
IHRvIGRyYXcgdGhlIGltYWdlLgorCisgICAgICAgIC0tIFJlbmRlckVsZW1lbnQ6OmltYWdlT3Jp
ZW50YXRpb24oKSB3aWxsIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UKKyAgICAg
ICAgICAgZm9yIGFsbCBpbWFnZXMgYW5kIGZvciBhbGwgcG9ydHMgdGlsbCB0aGUgY3NzIGltYWdl
LW9yaWVudGF0aW9uIHNwZWNzCisgICAgICAgICAgIGlzIGZpbmFsaXplZC4KKworICAgICAgICAt
LSBUaGUgZGVmYXVsdCBvZiBJbWFnZU9yZWluZXRhdGlvbiBhcmd1bWVudCBvZiBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZSgpCisgICAgICAgICAgIHdpbGwgYmUgY2hhbmdlZCB0byB7IEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZSB9LgorCisgICAgICAgIC0tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoK
KyAgICAgICAgICAgRnJvbUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3
VGlsZWRJbWFnZSgpLgorCisgICAgICAgIC0tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmRyYXdJbWFnZSgpIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoKKyAgICAgICAgICAgRnJv
bUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KKworICAg
ICAgICBUZXN0czogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVu
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFn
ZS1vYmplY3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbAorCisgICAgICAg
ICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VG
cmFtZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemVS
ZXNwZWN0aW5nT3JpZW50YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9j
dW1lbnRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpzaXpl
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjppbWFnZU9y
aWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAq
IHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFn
ZUZvckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUZvckNvbnRhaW5l
cjo6c2l6ZSBjb25zdCk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFp
bmVyLmg6CisKKzIwMTktMDgtMjcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFw
cGxlLmNvbT4KKworICAgICAgICBBbGwgaW1hZ2UgZHJhd2luZyBmdW5jdGlvbnMgc2hvdWxkIHRh
a2UgYW4gYXJndW1lbnQgb2YgdHlwZSBJbWFnZVBhaW50aW5nT3B0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMDU5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaDoKKyAgICAg
ICAgLS0gQWxsIHRoZSBpbWFnZSBkcmF3aW5nIGZ1bmN0aW9uIHdpbGwgdGFrZSBhbiBhcmd1bWVu
dCBvZiB0eXBlCisgICAgICAgICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIGluc3RlYWQgb2YgcGFz
c2luZyBpbmRpdmlkdWFsIG9wdGlvbnMuCisKKyAgICAgICAgLS0gSW1hZ2VQYWludGluZ09wdGlv
bnMgaXMgbWFkZSBsaWtlIGEgc2V0IG9mIG9wdGlvbnMuIEl0IGNhbiBiZQorICAgICAgICAgICBp
bml0aWFsaXplZCB3aXRoIGFueSBudW1iZXIgb2Ygb3B0aW9ucyBhbmQgdGhlIG9yZGVyIGRvZXMg
bm90IG1hdHRlcgorCisgICAgICAgIC0tIEltYWdlOjpvcmlnaW5hbFNpemUoKSBpcyBkZWxldGVk
IGJlY2F1c2UgaXQgcmV0dXJucyBzaXplKCkgYW5kIG5vbmUKKyAgICAgICAgICAgb2YgdGhlIElt
YWdlIGNvbmNyZXRlIGNsYXNzZXMgb3ZlcnJpZGVzIHRoaXMgaW1wbGVtZW50YXRpb24uCisKKyAg
ICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQml0bWFwOjpjcmVhdGVQcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQml0bWFwOjpjcmVhdGVGcm9tQnVmZmVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpkcmF3
SW1hZ2VUb0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3UGF0dGVybik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkcmF3Q3Jvc3NmYWRlU3ViaW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0N1
c3RvbVBhaW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tUGFpbnRJbWFnZTo6
ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21QYWludEltYWdlOjpkcmF3UGF0dGVybik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHZW5lcmF0ZWRJbWFnZTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0ZWRJbWFn
ZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnRJbWFnZTo6ZHJhdyk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFkaWVudEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxl
ZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0lt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVBhaW50aW5nT3B0aW9uczo6SW1hZ2VQYWludGluZ09wdGlvbnMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OnVzZXNEZWZhdWx0SW50ZXJw
b2xhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJ
bXBsOjpkcmF3SW1hZ2VJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dElt
cGw6OmRyYXdUaWxlZEltYWdlSW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZTo6ZHJhd1RpbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpjb21wdXRl
SW50cmluc2ljRGltZW5zaW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhd1RpbGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpvcmlnaW5hbFNpemUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6
ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1p
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OkltYWdlUGFp
bnRpbmdPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zOjpj
b21wb3NpdGVPcGVyYXRvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9uczo6YmxlbmRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zOjpkZWNvZGluZ01vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnM6Om9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlUGFpbnRpbmdPcHRpb25zOjppbnRlcnBvbGF0aW9uUXVhbGl0eSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9uczo6c2V0T3B0aW9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpk
cmF3U2hhZG93TGF5ZXJCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdTaGFk
b3dJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZHJhd05hdGl2ZUltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhaXJvOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFn
ZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6ZHJhd0NvbnN1bWluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZE
b2N1bWVudEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBERkRvY3VtZW50SW1hZ2U6OmRy
YXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpE
cmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRp
dmVJbWFnZTo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdQYXR0ZXJuOjpEcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd1BhdHRlcm46OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3UGF0dGVybjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3UGF0dGVybjo6RHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFQmxlbmQ6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
RUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJl
Y29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRp
b25SZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpcmVjdDJEOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGly
ZWN0MkQ6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRGly
ZWN0MkRPcGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dEltcGxEaXJlY3QyRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9JbWFnZUNHV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpnZXRIQklU
TUFQT2ZTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRj
aGluZ1NvdXJjZVNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNh
aXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpnZXRIQklUTUFQT2ZT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRjaGluZ1Nv
dXJjZVNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURp
cmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEZpbGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50
U25hcHNob3RJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckltYWdlOjpwYWludEludG9SZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFNu
YXBzaG90dGVkUGx1Z2luT3ZlcmxheSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkcmF3Rm9yQ29udGFpbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHSW1hZ2U6OmRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ltYWdlOjpkcmF3KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKKyAg
ICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHSW1hZ2VGb3JDb250YWluZXI6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VGb3JDb250YWluZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBzdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaDoKKwogMjAxOS0wOC0yNyAgUGVuZyBMaXUgIDxwZW5n
LmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
IGlzIGZpcmVkIHR3aWNlIHdoZW4gZXhpdGluZyBwaWN0dXJlIGluIHBpY3R1cmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZjE5ZGYzMGM2Mjk3YjJiMzc0ODlkZWU0M2Y0YzNmZTA4MDNiMGZhZC4uOGI1ZGE5NWVlODg2
NGI4ZWVlZWUwMzg0OTU0MTZjM2ViYTMzM2U0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wOC0yNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgor
CisgICAgICAgIEFsbCBpbWFnZSBkcmF3aW5nIGZ1bmN0aW9ucyBzaG91bGQgdGFrZSBhbiBhcmd1
bWVudCBvZiB0eXBlIEltYWdlUGFpbnRpbmdPcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpIG5v
dyB0YWtlcyBhbiBJbWFnZVBhaW50aW5nT3B0aW9ucy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6aW1hZ2VQb3NpdGlv
bkluZm9ybWF0aW9uKToKKwogMjAxOS0wOC0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgRG8gbm90IGNsZWFyIHRoZSBwZW5kaW5nIGFwaSBy
ZXF1ZXN0IHdoZW4gdGhlcmUncyBubyBuYXZpZ2F0aW9uIElECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRl
eCA1ZDk2MTZhNDU2MjZmNTU2YzAwMTZlMmEzNDI0ZDRmNGU5MDQyNDYyLi5iZTg1NjRlYTg3MmMy
MWMyMTNiYTliMWQyYWMyZmJkMGE0YmE0MmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwNjQs
NiArMTA2NCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZU9ic2VydmVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlVHlwZXMu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg4
YTZiOGM1ZGE3Y2I5YTY3NWIxNzZmMDhkMjI5OGUxNzE3ZGE5YWUuLjVlZTFmYTU4NGFmZDJmMmFk
NjlkNzA5YmQzMDNlMjNmNGVlYjJlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwODQsNiArMjA4NCw3IEBACiAJCTcyMTQ0
MzMyMjIzRUM4NUYwMEYxMkZGNyAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzIxNDQzMzMyMjNFQzhCMDAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MzIyM0IyQTI0MDBGQkE5NDQg
LyogU1ZHUHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MjE0NDMzNDIyM0VDOTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjAy
MjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjI4M0YwRTIzMEIyNjhDMDBGNUQ4Mjgg
LyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5n
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRDMzMDFBM0E4QjIz
MDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9OwogCQk3MjRFRTU1MDFEQzgwRDdG
MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RjFE
QzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk0MTgsNiArOTQxOSw3
IEBACiAJCTcyN0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlUGFpbnRpbmdPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyRTQxNzYxMUEyRThEMkYwMDRDNTYyQSAvKiBKU0VYVHNSR0IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFWFRzUkdCLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjIxQTJFOEQyRjAwNEM1NjJBIC8qIEpTRVhU
c1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VYVHNSR0IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJGMUFEOUYxQTM5MDRDMzAwMDE0RTE4IC8qIEVY
VEZyYWdEZXB0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFWFRG
cmFnRGVwdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQ1NTYsNiArMjQ1
NTgsNyBAQAogCQkJCTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8s
CiAJCQkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLywKIAkJ
CQlBODc0OEQ2NjEyQ0MzNzYzMDAxRkJBNDEgLyogSW1hZ2VPcmllbnRhdGlvbi5oICovLAorCQkJ
CTcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovLAog
CQkJCTQ5MjkxRTRBMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCAqLywK
IAkJCQk1NTQ2NzU3NzFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuY3BwICovLAogCQkJ
CTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5oICovLApAQCAtMjk1NzUs
NiArMjk1NzgsNyBAQAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RjQ0QTgwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENUE1OTMxMTUyNTI1RDAwMDM2RUU1MSAv
KiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjI4M0YwRTIzMEIyNjhD
MDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1
MUEyRjNGMTdEN0QzQUUwMDcyNTE3QSAvKiBJbWFnZVF1YWxpdHlDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdN
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDI3QUU1MDIyQTk4Njg3MDA5NDdGRjkgLyogSW1h
Z2VSb3RhdGlvblNlc3Npb25WVC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDYwNCw2ICszMDYwOCw3
IEBACiAJCQkJODQ3MzBEOTExMjQ4RjBCMzAwRDNBOUM5IC8qIExpZ2h0U291cmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMjIyNzk2NTBEMDBCRjIyMDA3MUI3ODIgLyogTGluZWFyR3JhZGllbnRB
dHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQjMxQzkxRTEwQUUxQjhFMDAwQzdCOTIg
LyogTGluZUNsYW1wVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0ODRBMzNFMjMwNTUzMjUw
MDlBREU2QSAvKiBMaW5lTGF5b3V0SW50ZXJmYWNlVGV4dEJveGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGluZUxheW91dFN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0MDcxMDkgLyogTGluZVdpZHRoLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0MDAwNTY3NUMgLyogTGlua0hlYWRlci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMTkyMiw3ICszMTkyNyw2IEBACiAJCQkJQjJDM0RBM0UwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdF
RjVFNjAxRDIwQzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmlu
ZWQuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0ODRBMzNFMjMwNTUzMjUwMDlBREU2QSAvKiBMaW5l
TGF5b3V0SW50ZXJmYWNlVGV4dEJveGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MjBE
MDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNDJCOTdDQTEzMTM4OTQzMDA4QkVGNEIgLyogVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VC
aXRtYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKaW5kZXggNjMx
ZmFlNzJiMTAzMWE2NTIwNGU3OWZjYmE1YzM2YzZkOWIwOTA1My4uNmIwYzdhM2Q2N2NkYzdhNWJi
NWRlMjk4NGNkMmJhNTVkZjMwMjcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUJpdG1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAK
QEAgLTMyMywxMCArMzIzLDcgQEAgdm9pZCBJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQKICAgICB9CiAKICAg
ICBGbG9hdFJlY3QgZGVzdFJlY3QoRmxvYXRQb2ludCgpLCBvdXRwdXRTaXplKTsKLSAgICBJbWFn
ZVBhaW50aW5nT3B0aW9ucyBwYWludGluZ09wdGlvbnM7Ci0gICAgcGFpbnRpbmdPcHRpb25zLm1f
aW50ZXJwb2xhdGlvblF1YWxpdHkgPSBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6ZVF1YWxp
dHkob3B0aW9ucy5yZXNpemVRdWFsaXR5KTsKLQotICAgIGJpdG1hcERhdGEtPmNvbnRleHQoKS5k
cmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwgc291cmNlUmVjdGFuZ2xlLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpLCBwYWludGluZ09wdGlvbnMpOworICAgIGJpdG1hcERhdGEtPmNvbnRl
eHQoKS5kcmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwgc291cmNlUmVjdGFuZ2xl
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCB7IGludGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVh
bGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpIH0pOwogCiAgICAgLy8gNy4gQ3JlYXRlIGEgbmV3
IEltYWdlQml0bWFwIG9iamVjdC4KICAgICBhdXRvIGltYWdlQml0bWFwID0gY3JlYXRlKFdURk1v
dmUoYml0bWFwRGF0YSkpOwpAQCAtMzczLDEwICszNzAsNyBAQCB2b2lkIEltYWdlQml0bWFwOjpj
cmVhdGVQcm9taXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8SFRNTENhbnZhc0Vs
ZW1lbgogICAgIH0KIAogICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIG91dHB1
dFNpemUpOwotICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIHBhaW50aW5nT3B0aW9uczsKLSAgICBw
YWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSA9IGludGVycG9sYXRpb25RdWFs
aXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpOwotCi0gICAgYml0bWFw
RGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0LCBzb3Vy
Y2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHBhaW50aW5nT3B0aW9ucyk7CisgICAg
Yml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0
LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHsgaW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0eSkgfSk7CiAKICAgICAv
LyAzLiBDcmVhdGUgYSBuZXcgSW1hZ2VCaXRtYXAgb2JqZWN0LgogICAgIGF1dG8gaW1hZ2VCaXRt
YXAgPSBjcmVhdGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7CkBAIC00ODQsMTAgKzQ3OCw3IEBAIHZv
aWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJl
ZlB0cjxJbWFnZUJpdG1hcD4mIGV4CiAgICAgYXV0byBpbWFnZUZvclJlbmRlciA9IGV4aXN0aW5n
SW1hZ2VCaXRtYXAtPmJ1ZmZlcigpLT5jb3B5SW1hZ2UoKTsKIAogICAgIEZsb2F0UmVjdCBkZXN0
UmVjdChGbG9hdFBvaW50KCksIG91dHB1dFNpemUpOwotICAgIEltYWdlUGFpbnRpbmdPcHRpb25z
IHBhaW50aW5nT3B0aW9uczsKLSAgICBwYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVh
bGl0eSA9IGludGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6
ZVF1YWxpdHkpOwotCi0gICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VG
b3JSZW5kZXIsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCks
IHBhaW50aW5nT3B0aW9ucyk7CisgICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgq
aW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZh
bHVlKCksIHsgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVz
aXplUXVhbGl0eSkgfSk7CiAKICAgICAvLyAzLiBDcmVhdGUgYSBuZXcgSW1hZ2VCaXRtYXAgb2Jq
ZWN0LgogICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBjcmVhdGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7
CkBAIC02NTEsMTAgKzY0Miw3IEBAIHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZUZyb21CdWZmZXIo
CiAgICAgfQogCiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0KEZsb2F0UG9pbnQoKSwgb3V0cHV0U2l6
ZSk7Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFpbnRpbmdPcHRpb25zOwotICAgIHBhaW50
aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJwb2xhdGlvblF1YWxpdHlG
b3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0eSk7Ci0KLSAgICBiaXRtYXBEYXRh
LT5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSwgcGFpbnRpbmdPcHRpb25zKTsKKyAgICBiaXRtYXBEYXRhLT5j
b250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5yZWxl
YXNlUmV0dXJuVmFsdWUoKSwgeyBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6ZVF1YWxpdHko
b3B0aW9ucy5yZXNpemVRdWFsaXR5KSB9KTsKIAogICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBjcmVh
dGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggNTNj
OWM1NjYwNDI3YzQ4NmUzMmFiYzBjMmQ2NTRjY2M1NmMwMjhhMy4uYzM1NTBhZjEwZjczYjM1NzI0
YjEwMzVmMWU0ODI0OGM4NTBlNTBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKQEAgLTE1NzMs
MTggKzE1NzMsMjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6ZHJhd0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgQ2EKICAgICBpZiAoaW1hZ2UtPmlz
Qml0bWFwSW1hZ2UoKSkKICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBk
YXRlRnJvbVNldHRpbmdzKGRvY3VtZW50LnNldHRpbmdzKCkpOwogCisgICAgSW1hZ2VQYWludGlu
Z09wdGlvbnMgb3B0aW9ucyA9IHsgb3AsIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbjo6RnJv
bUltYWdlIH07CisKICAgICBpZiAocmVjdENvbnRhaW5zQ2FudmFzKG5vcm1hbGl6ZWREc3RSZWN0
KSkgewotICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9y
bWFsaXplZFNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wLCBibGVuZE1vZGUpKTsKKyAg
ICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRT
cmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0g
ZWxzZSBpZiAoaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShvcCkpIHsKICAgICAgICAgZnVsbENh
bnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFs
aXplZFNyY1JlY3QsIG9wKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0g
ZWxzZSBpZiAob3AgPT0gQ29tcG9zaXRlQ29weSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwot
ICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFsaXpl
ZFNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wLCBibGVuZE1vZGUpKTsKKyAgICAgICAg
Yy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0
LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxp
emVkU3JjUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMob3AsIGJsZW5kTW9kZSkpOworICAgICAg
ICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1Jl
Y3QsIG9wdGlvbnMpOwogICAgICAgICBkaWREcmF3KG5vcm1hbGl6ZWREc3RSZWN0KTsKICAgICB9
CiAgICAgCkBAIC0xNjMyLDcgKzE2MzQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoSFRNTENhbnZhc0VsZW1lbnQmIHNvdQogI2Vu
ZGlmCiAKICAgICBpZiAocmVjdENvbnRhaW5zQ2FudmFzKGRzdFJlY3QpKSB7Ci0gICAgICAgIGMt
PmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBhaW50aW5n
T3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCkpOwor
ICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBz
dGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAg
ZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxzZSBpZiAoaXNGdWxsQ2FudmFzQ29tcG9z
aXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkpIHsKICAgICAgICAgZnVsbENhbnZhc0Nv
bXBvc2l0ZWREcmF3SW1hZ2UoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgc3RhdGUoKS5nbG9i
YWxDb21wb3NpdGUpOwpAQCAtMTY0MSwxNSArMTY0MywxNSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoSFRNTENhbnZhc0VsZW1lbnQm
IHNvdQogICAgICAgICBpZiAoJnNvdXJjZUNhbnZhcyA9PSAmY2FudmFzQmFzZSgpKSB7CiAgICAg
ICAgICAgICBpZiAoYXV0byBjb3B5ID0gYnVmZmVyLT5jb3B5UmVjdFRvQnVmZmVyKHNyY1JlY3Qs
IENvbG9yU3BhY2VTUkdCLCAqYykpIHsKICAgICAgICAgICAgICAgICBjbGVhckNhbnZhcygpOwot
ICAgICAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqY29weSwgZHN0UmVjdCwgeyB7IH0s
IHNyY1JlY3Quc2l6ZSgpIH0sIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29t
cG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgICAgICAgICAgYy0+ZHJhd0lt
YWdlQnVmZmVyKCpjb3B5LCBkc3RSZWN0LCB7IHsgfSwgc3JjUmVjdC5zaXplKCkgfSwgeyBzdGF0
ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNsZWFyQ2FudmFzKCk7Ci0gICAgICAg
ICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgSW1hZ2VQ
YWludGluZ09wdGlvbnMoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxl
bmQpKTsKKyAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBz
cmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kIH0p
OwogICAgICAgICB9CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwg
SW1hZ2VQYWludGluZ09wdGlvbnMoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xv
YmFsQmxlbmQpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3Qs
IHNyY1JlY3QsIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxlbmQg
fSk7CiAgICAgICAgIGRpZERyYXcoZHN0UmVjdCk7CiAgICAgfQogCkBAIC0xNzMwLDE3ICsxNzMy
LDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRy
YXdJbWFnZShJbWFnZUJpdG1hcCYgaW1hZ2VCaXRtCiAgICAgY2hlY2tPcmlnaW4oJmltYWdlQml0
bWFwKTsKIAogICAgIGlmIChyZWN0Q29udGFpbnNDYW52YXMoZHN0UmVjdCkpIHsKLSAgICAgICAg
Yy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRp
bmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7
CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7
IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kIH0pOwogICAgICAg
ICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlmIChpc0Z1bGxDYW52YXNDb21w
b3NpdGVNb2RlKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlKSkgewogICAgICAgICBmdWxsQ2FudmFz
Q29tcG9zaXRlZERyYXdJbWFnZSgqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBzdGF0ZSgpLmds
b2JhbENvbXBvc2l0ZSk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVs
c2UgaWYgKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZUNvcHkpIHsKICAgICAg
ICAgY2xlYXJDYW52YXMoKTsKLSAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRz
dFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9z
aXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigq
YnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0
ZSgpLmdsb2JhbEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAg
fSBlbHNlIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNy
Y1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0
ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBk
c3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2Jh
bEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3KGRzdFJlY3QpOwogICAgIH0KIApAQCAtMTgyOSwx
NCArMTgzMSwxNCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNvbXBvc2l0
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbgogICAgIGMtPnJlc3RvcmUoKTsK
IH0KIAotc3RhdGljIHZvaWQgZHJhd0ltYWdlVG9Db250ZXh0KEltYWdlJiBpbWFnZSwgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK3N0YXRpYyB2b2lkIGRyYXdJbWFnZVRvQ29u
dGV4dChJbWFnZSYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7Ci0gICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIGRlc3QsIHNyYywg
b3ApOworICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBkZXN0LCBzcmMsIG9wdGlvbnMpOwog
fQogCi1zdGF0aWMgdm9pZCBkcmF3SW1hZ2VUb0NvbnRleHQoSW1hZ2VCdWZmZXImIGltYWdlQnVm
ZmVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQorc3RhdGljIHZvaWQgZHJh
d0ltYWdlVG9Db250ZXh0KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBjb250ZXh0LmRyYXdJ
bWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgZGVzdCwgc3JjLCBvcCk7CisgICAgY29udGV4dC5kcmF3
SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIGRlc3QsIHNyYywgb3B0aW9ucyk7CiB9CiAKIHRlbXBs
YXRlPGNsYXNzIFQ+IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZnVsbENhbnZh
c0NvbXBvc2l0ZWREcmF3SW1hZ2UoVCYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQpAQCAtMTg2NSw3ICsxODY3
LDcgQEAgdGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
OjpmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWEKICAgICBidWZmZXItPmNvbnRleHQoKS50cmFu
c2xhdGUoLXRyYW5zZm9ybWVkQWRqdXN0ZWRSZWN0LmxvY2F0aW9uKCkpOwogICAgIGJ1ZmZlci0+
Y29udGV4dCgpLnRyYW5zbGF0ZShjcm9wcGVkT2Zmc2V0KTsKICAgICBidWZmZXItPmNvbnRleHQo
KS5jb25jYXRDVE0oZWZmZWN0aXZlVHJhbnNmb3JtKTsKLSAgICBkcmF3SW1hZ2VUb0NvbnRleHQo
aW1hZ2UsIGJ1ZmZlci0+Y29udGV4dCgpLCBhZGp1c3RlZERlc3QsIHNyYywgQ29tcG9zaXRlU291
cmNlT3Zlcik7CisgICAgZHJhd0ltYWdlVG9Db250ZXh0KGltYWdlLCBidWZmZXItPmNvbnRleHQo
KSwgYWRqdXN0ZWREZXN0LCBzcmMsIHsgQ29tcG9zaXRlU291cmNlT3ZlciB9KTsKIAogICAgIGNv
bXBvc2l0ZUJ1ZmZlcigqYnVmZmVyLCBidWZmZXJSZWN0LCBvcCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRleCBlZjkzYjM1MWU3OTFkNTI3ZGFl
ODBmODdjNTI1YTdkYzE0ZTdlNDIwLi5jZWZiZTMyYjU2YTZkZWNhNWM5MTEzNDhlYWIxMGIxMDY2
YzllZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAK
QEAgLTI4MCwxMyArMjgwLDEwIEBAIEZsb2F0U2l6ZSBDYWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9y
UmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFNpemVUCiAgICAgaWYgKCFt
X2ltYWdlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYgKGlzPEJpdG1hcEltYWdlPigq
bV9pbWFnZSkgJiYgcmVuZGVyZXIgJiYgcmVuZGVyZXItPmltYWdlT3JpZW50YXRpb24oKSA9PSBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxCaXRt
YXBJbWFnZT4oKm1faW1hZ2UpLnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKLQogICAgIGlm
IChpczxTVkdJbWFnZT4oKm1faW1hZ2UpICYmIHNpemVUeXBlID09IFVzZWRTaXplKQogICAgICAg
ICByZXR1cm4gbV9zdmdJbWFnZUNhY2hlLT5pbWFnZVNpemVGb3JSZW5kZXJlcihyZW5kZXJlcik7
CiAKLSAgICByZXR1cm4gbV9pbWFnZS0+c2l6ZSgpOworICAgIHJldHVybiBtX2ltYWdlLT5zaXpl
KHJlbmRlcmVyID8gcmVuZGVyZXItPmltYWdlT3JpZW50YXRpb24oKSA6IEltYWdlT3JpZW50YXRp
b24oSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSk7CiB9CiAKIExheW91dFNpemUgQ2FjaGVk
SW1hZ2U6OmltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVy
LCBmbG9hdCBtdWx0aXBsaWVyLCBTaXplVHlwZSBzaXplVHlwZSkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBiMmJkNDdj
YjE2MTRjZGFlNWQ4OWVlYTE3YjQyYzQ3ODZiYzJkOWIxLi42MjY1MDQwNzhiNzkwMzdjODhjMmU1
ZDA3OGEwZTFhZjhiMTVmMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgRW5jb2RlZERhdGFTdGF0
dXMgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIG1f
Y3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZDsKICAg
ICByZXR1cm4gbV9zb3VyY2UtPmRhdGFDaGFuZ2VkKGRhdGEoKSwgYWxsRGF0YVJlY2VpdmVkKTsK
IH0KLSAgICAKKwogdm9pZCBCaXRtYXBJbWFnZTo6c2V0Q3VycmVudEZyYW1lRGVjb2RpbmdTdGF0
dXNJZk5lY2Vzc2FyeShEZWNvZGluZ1N0YXR1cyBkZWNvZGluZ1N0YXR1cykKIHsKICAgICAvLyBX
aGVuIG5ldyBkYXRhIGlzIHJlY2VpdmVkLCBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzIGlz
IHNldCB0byBEZWNvZGluZ1N0YXR1czo6SW52YWxpZApAQCAtMTgzLDcgKzE4Myw3IEBAIGJvb2wg
Qml0bWFwSW1hZ2U6Om5vdFNvbGlkQ29sb3IoKQogfQogI2VuZGlmCiAKLUltYWdlRHJhd1Jlc3Vs
dCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0
b3Igb3AsIEJsZW5kTW9kZSBtb2RlLCBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2RlLCBJbWFnZU9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKICAgICBpZiAoZGVzdFJlY3QuaXNFbXB0eSgpIHx8IHNyY1JlY3QuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwpAQCAtMTk2LDcgKzE5
Niw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgTE9HKEltYWdlcywgIkJpdG1hcElt
YWdlOjolcyAtICVwIC0gdXJsOiAlcyBbc3Vic2FtcGxpbmdMZXZlbCA9ICVkIHNjYWxlRmFjdG9y
Rm9yRHJhd2luZyA9ICglLjRmLCAlLjRmKV0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVS
TCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4obV9jdXJyZW50U3Vi
c2FtcGxpbmdMZXZlbCksIHNjYWxlRmFjdG9yRm9yRHJhd2luZy53aWR0aCgpLCBzY2FsZUZhY3Rv
ckZvckRyYXdpbmcuaGVpZ2h0KCkpOwogCiAgICAgTmF0aXZlSW1hZ2VQdHIgaW1hZ2U7Ci0gICAg
aWYgKGRlY29kaW5nTW9kZSA9PSBEZWNvZGluZ01vZGU6OkFzeW5jaHJvbm91cykgeworICAgIGlm
IChvcHRpb25zLmRlY29kaW5nTW9kZSgpID09IERlY29kaW5nTW9kZTo6QXN5bmNocm9ub3VzKSB7
CiAgICAgICAgIEFTU0VSVCghY2FuQW5pbWF0ZSgpKTsKICAgICAgICAgQVNTRVJUKCFtX2N1cnJl
bnRGcmFtZSB8fCBtX2FuaW1hdGlvbkZpbmlzaGVkKTsKIApAQCAtMjE2LDcgKzIxNiw3IEBAIElt
YWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAKICAgICAgICAgaWYgKCFmcmFtZUhhc0RlY29kZWROYXRp
dmVJbWFnZUNvbXBhdGlibGVXaXRoT3B0aW9uc0F0SW5kZXgobV9jdXJyZW50RnJhbWUsIG1fY3Vy
cmVudFN1YnNhbXBsaW5nTGV2ZWwsIERlY29kaW5nT3B0aW9ucyhEZWNvZGluZ01vZGU6OkFzeW5j
aHJvbm91cykpKSB7CiAgICAgICAgICAgICBpZiAobV9zaG93RGVidWdCYWNrZ3JvdW5kKQotICAg
ICAgICAgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29sb3Io
Q29sb3I6OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3ApOworICAgICAgICAgICAgICAg
IGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29sb3IoQ29sb3I6OnllbGxv
dykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIApAQCAtMjI3LDcgKzIyNyw3IEBA
IEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgICAgIEFTU0VSVF9JTVBMSUVTKHN0YXR1cyA9
PSBTdGFydEFuaW1hdGlvblN0YXR1czo6RGVjb2RpbmdBY3RpdmUsICghbV9jdXJyZW50RnJhbWUg
JiYgIW1fcmVwZXRpdGlvbnNDb21wbGV0ZSkgfHwgZnJhbWVIYXNGdWxsU2l6ZU5hdGl2ZUltYWdl
QXRJbmRleChtX2N1cnJlbnRGcmFtZSwgbV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCkpOwogCiAg
ICAgICAgIGlmIChzdGF0dXMgPT0gU3RhcnRBbmltYXRpb25TdGF0dXM6OkRlY29kaW5nQWN0aXZl
ICYmIG1fc2hvd0RlYnVnQmFja2dyb3VuZCkgewotICAgICAgICAgICAgZmlsbFdpdGhTb2xpZENv
bG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVsbG93KS5jb2xvcldpdGhBbHBo
YSgwLjUpLCBvcCk7CisgICAgICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVz
dFJlY3QsIENvbG9yKENvbG9yOjp5ZWxsb3cpLmNvbG9yV2l0aEFscGhhKDAuNSksIG9wdGlvbnMu
Y29tcG9zaXRlT3BlcmF0b3IoKSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9CiAgICAgICAgIApAQCAtMjQ1LDcgKzI0NSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJ
bWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
CiAgICAgICAgIH0gZWxzZSBpZiAoZnJhbWVJc0JlaW5nRGVjb2RlZCkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IGluc3RlYWQgb2Ygc2hvd2luZyB0aGUgeWVsbG93IHJlY3RhbmdsZSBhbmQgcmV0
dXJuaW5nIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhpcyBmcmFtZSB0byBmaW5pc2ggZGVjb2Rpbmcu
CiAgICAgICAgICAgICBpZiAobV9zaG93RGVidWdCYWNrZ3JvdW5kKSB7Ci0gICAgICAgICAgICAg
ICAgZmlsbFdpdGhTb2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVs
bG93KS5jb2xvcldpdGhBbHBoYSgwLjUpLCBvcCk7CisgICAgICAgICAgICAgICAgZmlsbFdpdGhT
b2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVsbG93KS5jb2xvcldp
dGhBbHBoYSgwLjUpLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogICAgICAgICAgICAg
ICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDogJXMgW3dhaXRpbmcg
Zm9yIGFzeW5jIGRlY29kaW5nIHRvIGZpbmlzaF0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJj
ZVVSTCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkUmVxdWVzdERlY29kaW5nOwpAQCAtMjY0LDE0
ICsyNjQsMTUgQEAgSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXMKICAgICBBU1NFUlQoaW1hZ2UpOwog
ICAgIENvbG9yIGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgaWYgKGNvbG9y
LmlzVmFsaWQoKSkgewotICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVzdFJl
Y3QsIGNvbG9yLCBvcCk7CisgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0
UmVjdCwgY29sb3IsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSk7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogCi0gICAgaWYgKG9yaWVudGF0aW9uID09IEltYWdlT3JpZW50YXRp
b246OkZyb21JbWFnZSkKLSAgICAgICAgb3JpZW50YXRpb24gPSBmcmFtZU9yaWVudGF0aW9uQXRJ
bmRleChtX2N1cnJlbnRGcmFtZSk7CisgICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKSA9PSBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCisgICAgICAgIGRyYXdOYXRpdmVJbWFnZShpbWFn
ZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNpemUoc2l6ZSgpKSwgeyBvcHRpb25z
LCBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSkgfSk7CisgICAgZWxzZQor
ICAgICAgICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0
LCBJbnRTaXplKHNpemUoKSksIG9wdGlvbnMpOwogCi0gICAgZHJhd05hdGl2ZUltYWdlKGltYWdl
LCBjb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgSW50U2l6ZShzaXplKCkpLCBvcCwgbW9kZSwg
b3JpZW50YXRpb24pOwogICAgIG1fY3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBmcmFtZURl
Y29kaW5nU3RhdHVzQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CiAKICAgICBpZiAoaW1hZ2VPYnNl
cnZlcigpKQpAQCAtMjgwLDcgKzI4MSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6
ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhp
Y3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0
b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAodGlsZVJlY3QuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CkBAIC0yOTAsNyArMjkxLDcgQEAgdm9pZCBCaXRtYXBJbWFn
ZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LAogICAgICAgICBpZiAobV9jdXJyZW50RnJhbWVEZWNvZGluZ1N0YXR1cyA9PSBEZWNv
ZGluZ1N0YXR1czo6SW52YWxpZCkKICAgICAgICAgICAgIG1fc291cmNlLT5kZXN0cm95SW5jb21w
bGV0ZURlY29kZWREYXRhKCk7CiAgICAgICAgIAotICAgICAgICBJbWFnZTo6ZHJhd1BhdHRlcm4o
Y3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwg
YmxlbmRNb2RlKTsKKyAgICAgICAgSW1hZ2U6OmRyYXdQYXR0ZXJuKGN0eHQsIGRlc3RSZWN0LCB0
aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgICAgIG1f
Y3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleCht
X2N1cnJlbnRGcmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMDUsNyArMzA2LDcg
QEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAgICAgICAvLyBUZW1wb3JhcmlseSByZXNldCBp
bWFnZSBvYnNlcnZlciwgd2UgZG9uJ3Qgd2FudCB0byByZWNlaXZlIGFueSBjaGFuZ2VJblJlY3Qo
KSBjYWxscyBkdWUgdG8gdGhpcyByZWxheW91dC4KICAgICAgICAgc2V0SW1hZ2VPYnNlcnZlcihu
dWxscHRyKTsKIAotICAgICAgICBkcmF3KGJ1ZmZlci0+Y29udGV4dCgpLCB0aWxlUmVjdCwgdGls
ZVJlY3QsIG9wLCBibGVuZE1vZGUsIERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUpOworICAgICAgICBkcmF3KGJ1ZmZlci0+Y29udGV4dCgpLCB0aWxlUmVj
dCwgdGlsZVJlY3QsIHsgb3B0aW9ucywgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VP
cmllbnRhdGlvbjo6Tm9uZSB9KTsKIAogICAgICAgICBzZXRJbWFnZU9ic2VydmVyKG9ic2VydmVy
KTsKICAgICAgICAgYnVmZmVyLT5jb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CkBAIC0zMTYsNyAr
MzE3LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAgIH0KIAogICAgIGN0eHQuc2V0RHJh
d0x1bWluYW5jZU1hc2soZmFsc2UpOwotICAgIG1fY2FjaGVkSW1hZ2UtPmRyYXdQYXR0ZXJuKGN0
eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJs
ZW5kTW9kZSk7CisgICAgbV9jYWNoZWRJbWFnZS0+ZHJhd1BhdHRlcm4oY3R4dCwgZGVzdFJlY3Qs
IHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0KIAogYm9v
bCBCaXRtYXBJbWFnZTo6c2hvdWxkQW5pbWF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA1YWVmNjFkN2U4OTliZGNmNWM0
ZDQ0NWFhYmM4OGI2OGYxZjA0YWQ1Li4yYWQ3ZjFjNWNlMDdkNTEzMzU0ODAzMTRiYmM3NDM3Nzgw
MWNkYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmgKQEAgLTgxLDggKzgxLDcgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPEludFBvaW50PiBo
b3RTcG90KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UtPmhvdFNwb3QoKTsgfQog
CiAgICAgLy8gRmxvYXRTaXplIGR1ZSB0byBvdmVycmlkZS4KLSAgICBGbG9hdFNpemUgc2l6ZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaXplKCk7IH0KLSAgICBJbnRTaXpl
IHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS0+c2l6
ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UtPnNpemUob3JpZW50YXRpb24pOyB9CiAgICAgQ29s
b3Igc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3Vy
Y2UtPnNpbmdsZVBpeGVsU29saWRDb2xvcigpOyB9CiAgICAgYm9vbCBmcmFtZUlzQmVpbmdEZWNv
ZGVkQW5kSXNDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KHNpemVfdCBpbmRleCwgY29uc3Qg
RGVjb2RpbmdPcHRpb25zJiBkZWNvZGluZ09wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
LT5mcmFtZUlzQmVpbmdEZWNvZGVkQW5kSXNDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KGlu
ZGV4LCBkZWNvZGluZ09wdGlvbnMpOyB9CiAgICAgRGVjb2RpbmdTdGF0dXMgZnJhbWVEZWNvZGlu
Z1N0YXR1c0F0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS0+ZnJh
bWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgoaW5kZXgpOyB9CkBAIC0xNjEsOCArMTYwLDggQEAgcHJv
dGVjdGVkOgogICAgIC8vIHxkZXN0cm95QWxsfCBhbG9uZy4KICAgICB2b2lkIGRlc3Ryb3lEZWNv
ZGVkRGF0YUlmTmVjZXNzYXJ5KGJvb2wgZGVzdHJveUFsbCA9IHRydWUpOwogCi0gICAgSW1hZ2VE
cmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUs
IERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Q29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKSBvdmVycmlk
ZTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2
b2lkIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbXBvc2l0ZU9wZXJh
dG9yKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4IGVhNjRi
MWQ5NDg5YjEwMzU3MmQwYzY5Njg5YmRkYTM0MGFjNjczM2YuLmQ0YmRiNWYyMGFhNGFkMmE1NzM2
NWEzODZjMjYwMmNkMzkzYWU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTUwLDIw
ICs1MCwyMSBAQCBzdGF0aWMgdm9pZCBkcmF3Q3Jvc3NmYWRlU3ViaW1hZ2UoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIENvbXBvcwogICAgIGJvb2wgdXNlVHJhbnNwYXJl
bmN5TGF5ZXIgPSBpbWFnZS5pc1NWR0ltYWdlKCk7CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgCi0gICAgQ29tcG9zaXRlT3BlcmF0b3Ig
ZHJhd0ltYWdlT3BlcmF0aW9uID0gb3BlcmF0aW9uOworCisgICAgSW1hZ2VQYWludGluZ09wdGlv
bnMgb3B0aW9uczsKIAogICAgIGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikgewogICAgICAgICBj
b250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcGVyYXRpb24pOwogICAgICAgICBjb250ZXh0
LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7Ci0gICAgICAgIGRyYXdJbWFnZU9wZXJh
dGlvbiA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKICAg
ICAgICAgY29udGV4dC5zZXRBbHBoYShvcGFjaXR5KTsKKyAgICAgICAgb3B0aW9ucyA9IHsgb3Bl
cmF0aW9uIH07CisgICAgfQogCiAgICAgaWYgKHRhcmdldFNpemUgIT0gaW1hZ2VTaXplKQogICAg
ICAgICBjb250ZXh0LnNjYWxlKHRhcmdldFNpemUgLyBpbWFnZVNpemUpOwogCi0gICAgY29udGV4
dC5kcmF3SW1hZ2UoaW1hZ2UsIEludFBvaW50KCksIEltYWdlUGFpbnRpbmdPcHRpb25zKGRyYXdJ
bWFnZU9wZXJhdGlvbikpOworICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBJbnRQb2ludCgp
LCBvcHRpb25zKTsKIAogICAgIGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikKICAgICAgICAgY29u
dGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwpAQCAtODYsMTAgKzg3LDEwIEBAIHZvaWQgQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KQogICAgIGNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIH0KIAotSW1hZ2VEcmF3
UmVzdWx0IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBEZWNv
ZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1bHQgQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0
ZVNhdmVyKGNvbnRleHQpOwotICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBv
c2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKG9w
dGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUoKSk7CiAgICAgY29u
dGV4dC5jbGlwKGRzdFJlY3QpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKGRzdFJlY3QubG9jYXRp
b24oKSk7CiAgICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQpAQCAtMTAw
LDcgKzEwMSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJh
dyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsCiAgICAgcmV0dXJuIEltYWdlRHJh
d1Jlc3VsdDo6RGlkRHJhdzsKIH0KIAotdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJh
d1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9k
ZSkKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBjb250ZXh0LnJl
bmRlcmluZ01vZGUoKSk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKQEAgLTExMSw3ICsxMTIsNyBA
QCB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UgogICAgIGRyYXdDcm9zc2ZhZGUoZ3JhcGhpY3NDb250
ZXh0KTsKIAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0Lgot
ICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJsZW5kTW9kZSk7
CisgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNyY1JlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0KIAogdm9pZCBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5oCmluZGV4IDIxZTEzMjM1MTg1YTRlODUyZjRkMDJkZjRjZDFmNDY5OGM3ZTFj
YzAuLjQ1NzY1YzgzMTQ1MjFlNDhhY2IwZjlkYjM5ZWEwM2Q0ZWE2ZWMzYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuaApAQCAtNDQsMTEgKzQ0LDExIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1JlbGF0
aXZlV2lkdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFz
UmVsYXRpdmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAg
RmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Nyb3NzZmFkZVNpemU7
IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlv
bjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Nyb3NzZmFkZVNpemU7IH0K
IAogcHJvdGVjdGVkOgotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24p
IG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgb3Zl
cnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25z
dCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogCiAgICAgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UoSW1hZ2UmIGZyb21JbWFnZSwgSW1hZ2UmIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRh
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgRmxvYXRTaXplJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJ
bWFnZS5jcHAKaW5kZXggZmFhMGJmMDYxNDA1OTgxMmI2NjQzNTE4ZTU4NzM3OGQwM2VhNzlkMy4u
MmZiNmZhNDRkODhiZTJjMmMzY2E3MzZkYzM4YWEyMjQ4ZjkyMGNmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKQEAg
LTE3MCwxMCArMTcwLDEwIEBAIEltYWdlRHJhd1Jlc3VsdCBDdXN0b21QYWludEltYWdlOjpkb0N1
c3RvbVBhaW50KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvCiAgICAgcmV0dXJuIElt
YWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IEN1c3RvbVBhaW50
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBj
b21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0IEN1c3RvbVBhaW50SW1hZ2U6OmRyYXcoR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsK
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZGVzdENvbnRleHQpOwot
ICAgIGRlc3RDb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCwgYmxlbmRN
b2RlKTsKKyAgICBkZXN0Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ob3B0aW9ucy5jb21w
b3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKICAgICBkZXN0Q29udGV4dC5j
bGlwKGRlc3RSZWN0KTsKICAgICBkZXN0Q29udGV4dC50cmFuc2xhdGUoZGVzdFJlY3QubG9jYXRp
b24oKSk7CiAgICAgaWYgKGRlc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKQEAgLTE4
Myw3ICsxODMsNyBAQCBJbWFnZURyYXdSZXN1bHQgQ3VzdG9tUGFpbnRJbWFnZTo6ZHJhdyhHcmFw
aGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdAogfQogCiB2b2lkIEN1c3RvbVBh
aW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0
ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQorICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBj
b25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRp
b25zKQogewogICAgIC8vIEFsbG93IHRoZSBnZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1l
cXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCiAgICAg
RmxvYXRTaXplIGFkanVzdGVkU2l6ZSA9IHNpemUoKTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lk
IEN1c3RvbVBhaW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdAogICAgIGlmIChkZXN0Q29udGV4dC5kcmF3THVtaW5hbmNlTWFz
aygpKQogICAgICAgICBidWZmZXItPmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIAotICAgIGJ1
ZmZlci0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3Qs
IGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wLCBibGVuZE1v
ZGUpOworICAgIGJ1ZmZlci0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1
c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMp
OwogICAgIGRlc3RDb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5o
CmluZGV4IDRlOGU1ODk3OTUxYTk1MTI1YjkxMzQ4MGFmOTMzMDNlYjY3OGQ3MWUuLmU3NzA3OWI4
ODI5NmVmMTIwZGYwYjYyNDQyZTg1ZTE3MjdlNmE1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DdXN0b21QYWludEltYWdlLmgKQEAgLTUyLDggKzUyLDgg
QEAgcHJpdmF0ZToKIAogICAgIEltYWdlRHJhd1Jlc3VsdCBkb0N1c3RvbVBhaW50KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYpOwogCi0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXco
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwg
SW1hZ2VPcmllbnRhdGlvbikgZmluYWw7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQ
b2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCBkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKIAogICAgIFdlYWtQdHI8
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OlBhaW50RGVmaW5pdGlvbj4gbV9wYWludERlZmluaXRp
b247CiAgICAgVmVjdG9yPFN0cmluZz4gbV9pbnB1dFByb3BlcnRpZXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAzYTg1OWMz
MWFjNGYwMmJiN2EyY2I0NjQzM2Q4ZDhhYmFlNjIxYTQxLi4zZTAxNjE0YzE0ZGVkZmM0NTU5MjNm
YTZkMjRiMTExYWIxNDRjM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKQEAgLTQwLDE1ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lk
dGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBv
dmVycmlkZTsKIAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3Jp
ZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CiAK
ICAgICAvLyBBc3N1bWUgdGhhdCBnZW5lcmF0ZWQgY29udGVudCBoYXMgbm8gZGVjb2RlZCBkYXRh
IHdlIG5lZWQgdG8gd29ycnkgYWJvdXQKICAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29s
IC8qZGVzdHJveUFsbCovID0gdHJ1ZSkgb3ZlcnJpZGUgeyB9CiAKIHByb3RlY3RlZDoKLSAgICBJ
bWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5k
TW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZSA9IDA7Ci0gICAg
dm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwKLSAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgb3ZlcnJpZGUg
PSAwOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlID0gMDsKKyAgICB2b2lkIGRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlID0gMDsKIAogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdGhpcyB0byBiZSBsZXNzIGNvbnNlcnZhdGl2ZS4KICAgICBib29sIGN1cnJl
bnRGcmFtZUtub3duVG9CZU9wYXF1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudElt
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2Uu
Y3BwCmluZGV4IDVkNGVlMjgxNjZiYjQ4OGE3OWRjYTI5NGZhYWNkZjY1YzJhNGY0MGIuLmYzZWMw
YTFhZDQ2MDQxMjg3MmQ5MjBlN2UxZTAxMTY3NjZjYTYzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCkBAIC0zOSwxMCArMzks
MTAgQEAgR3JhZGllbnRJbWFnZTo6R3JhZGllbnRJbWFnZShHcmFkaWVudCYgZ2VuZXJhdG9yLCBj
b25zdCBGbG9hdFNpemUmIHNpemUpCiAKIEdyYWRpZW50SW1hZ2U6On5HcmFkaWVudEltYWdlKCkg
PSBkZWZhdWx0OwogCi1JbWFnZURyYXdSZXN1bHQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdS
ZXN1bHQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcihkZXN0Q29udGV4dCk7Ci0gICAgZGVzdENvbnRleHQuc2V0Q29t
cG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGRlc3RDb250ZXh0
LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlv
bnMuYmxlbmRNb2RlKCkpOwogICAgIGRlc3RDb250ZXh0LmNsaXAoZGVzdFJlY3QpOwogICAgIGRl
c3RDb250ZXh0LnRyYW5zbGF0ZShkZXN0UmVjdC5sb2NhdGlvbigpKTsKICAgICBpZiAoZGVzdFJl
Y3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQpAQCAtNTMsNyArNTMsNyBAQCBJbWFnZURyYXdS
ZXN1bHQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBj
b25zdCBGbG9hdFJlYwogfQogCiB2b2lkIEdyYWRpZW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQor
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIC8vIEFsbG93IHRoZSBn
ZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJz
IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCiAgICAgRmxvYXRTaXplIGFkanVzdGVkU2l6ZSA9IHNp
emUoKTsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBHcmFkaWVudEltYWdlOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGQKICAgICBkZXN0
Q29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxzZSk7CiAKICAgICAvLyBUaWxlIHRoZSBp
bWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBtX2NhY2hlZEltYWdlLT5kcmF3UGF0
dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgYWRqdXN0ZWRQYXR0
ZXJuQ1RNLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJsZW5kTW9kZSk7CisgICAgbV9j
YWNoZWRJbWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNy
Y1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2Uu
aAppbmRleCAxZDlkZDkwOGJjMDc2MWU1NTI0ZDFhNDc4ZWE2YzVlYWZiNzg4ZWZkLi4wY2MxODQz
OWMxNDdmOTM0ZGRlMTkzMDc0OGRhNzBjM2ZiMTc1YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oCkBAIC00Niw4ICs0Niw4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgR3JhZGllbnRJbWFnZShHcmFkaWVudCYsIGNvbnN0IEZsb2F0
U2l6ZSYpOwogCi0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0
ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgZmlu
YWw7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgZmluYWw7Cisg
ICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyB9KSBmaW5hbDsKICAgICBib29sIGlzR3JhZGllbnRJbWFnZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGR1bXAoV1RGOjpUZXh0U3RyZWFtJikgY29u
c3QgZmluYWw7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCA3YWY5ZWFlMDQ3YTc5NjY1MjNlZjQ2OTUzNDU4
ZGZkM2M5ZGY5MmU5Li4zMzUxM2RmNGY4MzdmYTY4NmQzZDRiYWY0OThjMGVlODgxNTMxMGFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKQEAgLTcxNSw1NSArNzE1LDUwIEBAIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpCiAK
IEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBpbWFnZVBhaW50aW5nT3B0aW9ucykKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IEZsb2F0UmVjdCBzcmNSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2Uub3JpZ2luYWxTaXplKCkpOwot
I2Vsc2UKICAgICBGbG9hdFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50KCksIGltYWdlLnNpemUoKSk7
Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgcmV0dXJuIGRyYXdJbWFnZShpbWFnZSwgZGVzdGluYXRp
b24sIHNyY1JlY3QsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCiAgICAgaWYgKG1faW1wbCkKLSAgICAg
ICAgcmV0dXJuIG1faW1wbC0+ZHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBp
bWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgICAgIHJldHVybiBtX2ltcGwtPmRyYXdJbWFnZShp
bWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiAKLSAgICBJbnRlcnBvbGF0aW9u
UXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMs
IGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVy
biBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0
aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2JsZW5kTW9k
ZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGluZ01vZGUsIGltYWdlUGFpbnRpbmdPcHRp
b25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0
aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4gaW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24s
IHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBj
b25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFn
ZVBhaW50aW5nT3B0aW9ucykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdU
aWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBG
bG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdS
ZXN1bHQ6OkRpZE5vdGhpbmc7CiAKICAgICBpZiAobV9pbXBsKQotICAgICAgICByZXR1cm4gbV9p
bXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUs
IHNwYWNpbmcsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIG1faW1wbC0+
ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFj
aW5nLCBvcHRpb25zKTsKIAotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRl
cnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWludGluZ09wdGlvbnMu
bV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZCgqdGhp
cywgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIGltYWdlUGFpbnRpbmdP
cHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRN
b2RlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9kZSwgaW1hZ2VQYWludGluZ09w
dGlvbnMubV9vcmllbnRhdGlvbik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVy
IGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBvcHRpb25zLmludGVycG9s
YXRpb25RdWFsaXR5KCkpOworICAgIHJldHVybiBpbWFnZS5kcmF3VGlsZWQoKnRoaXMsIGRlc3Rp
bmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0KIAogSW1hZ2VE
cmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29u
c3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsCi0gICAgSW1hZ2U6OlRpbGVSdWxlIGhSdWxl
LCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFn
ZVBhaW50aW5nT3B0aW9ucykKKyAgICBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxl
UnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAg
aWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6
RGlkTm90aGluZzsKIAogICAgIGlmIChtX2ltcGwpCi0gICAgICAgIHJldHVybiBtX2ltcGwtPmRy
YXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3Is
IGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOworICAgICAgICByZXR1cm4gbV9p
bXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxl
RmFjdG9yLCBoUnVsZSwgdlJ1bGUsIG9wdGlvbnMpOwogCiAgICAgaWYgKGhSdWxlID09IEltYWdl
OjpTdHJldGNoVGlsZSAmJiB2UnVsZSA9PSBJbWFnZTo6U3RyZXRjaFRpbGUpIHsKICAgICAgICAg
Ly8gSnVzdCBkbyBhIHNjYWxlLgotICAgICAgICByZXR1cm4gZHJhd0ltYWdlKGltYWdlLCBkZXN0
aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgICAgIHJldHVybiBk
cmF3SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogICAgIH0KIAot
ICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZv
clRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVh
bGl0eSk7Ci0gICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZCgqdGhpcywgZGVzdGluYXRpb24sIHNv
dXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25z
Lm1fY29tcG9zaXRlT3BlcmF0b3IpOworICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5l
ciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBv
bGF0aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4gaW1hZ2UuZHJhd1RpbGVkKCp0aGlzLCBkZXN0
aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgb3B0aW9ucy5j
b21wb3NpdGVPcGVyYXRvcigpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9u
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC03
NzYsMTMgKzc3MSwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aQogICAgIGRyYXdJbWFnZUJ1
ZmZlcihpbWFnZSwgZGVzdGluYXRpb24sIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZsb2F0U2l6
ZShpbWFnZS5sb2dpY2FsU2l6ZSgpKSksIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWludGluZ09wdGlv
bnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgaW1hZ2UuZHJhdygqdGhpcywgZGVzdGlu
YXRpb24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9jb21wb3NpdGVPcGVyYXRvciwg
aW1hZ2VQYWludGluZ09wdGlvbnMubV9ibGVuZE1vZGUpOworICAgIEludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0
aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0
aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdl
LCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQpAQCAtODAxLDEzICs3OTYsMTMgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+IGltYWcKICAgICBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoV1RGTW92ZShpbWFn
ZSksIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2VM
b2dpY2FsU2l6ZSkpLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9u
cykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgIWltYWdlKQogICAgICAg
ICByZXR1cm47CiAgICAgCi0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVy
cG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5t
X2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhX
VEZNb3ZlKGltYWdlKSwgKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdP
cHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRN
b2RlKTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7
CisgICAgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoV1RGTW92ZShpbWFnZSksICp0aGlzLCBk
ZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmNsaXBSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCA0
NDdkN2UzZTM1NDc2MmU4MGI4ZjI3YTk1MjYyMzIyNzliNWY5MDk0Li4xM2Y1YTJmNTVkYjY3ZmIz
NjJkZDBjZThkZTZhMWYxMTliN2MxZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdl
T3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1
ZGUgIlBhdHRlcm4uaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KQEAgLTIxMCw0MyArMjExLDYgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlIHsKICNlbmRpZgogfTsKIAotc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zIHsKLSAg
ICBJbWFnZVBhaW50aW5nT3B0aW9ucyhDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRv
ciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSBibGVuZE1vZGUgPSBCbGVuZE1vZGU6
Ok5vcm1hbCwgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSA9IERlY29kaW5nTW9kZTo6U3luY2hy
b25vdXMsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpO
b25lLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSA9IEludGVycG9s
YXRpb25EZWZhdWx0KQotICAgICAgICA6IG1fY29tcG9zaXRlT3BlcmF0b3IoY29tcG9zaXRlT3Bl
cmF0b3IpCi0gICAgICAgICwgbV9ibGVuZE1vZGUoYmxlbmRNb2RlKQotICAgICAgICAsIG1fZGVj
b2RpbmdNb2RlKGRlY29kaW5nTW9kZSkKLSAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0
aW9uKQotICAgICAgICAsIG1faW50ZXJwb2xhdGlvblF1YWxpdHkoaW50ZXJwb2xhdGlvblF1YWxp
dHkpCi0gICAgewotICAgIH0KLQotICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKEltYWdlT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFs
aXR5ID0gSW50ZXJwb2xhdGlvbkRlZmF1bHQsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
ZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlIGJsZW5kTW9kZSA9IEJsZW5k
TW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2RlID0gRGVjb2RpbmdNb2RlOjpT
eW5jaHJvbm91cykKLSAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJh
dG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKLSAgICAgICAgLCBtX2RlY29k
aW5nTW9kZShkZWNvZGluZ01vZGUpCi0gICAgICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlv
bikKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5KGludGVycG9sYXRpb25RdWFsaXR5
KQotICAgIHsKLSAgICB9Ci0KLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhJbnRlcnBvbGF0aW9u
UXVhbGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlv
biA9IEltYWdlT3JpZW50YXRpb246Ok5vbmUsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
ZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlIGJsZW5kTW9kZSA9IEJsZW5k
TW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2RlID0gRGVjb2RpbmdNb2RlOjpT
eW5jaHJvbm91cykKLSAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJh
dG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKLSAgICAgICAgLCBtX2RlY29k
aW5nTW9kZShkZWNvZGluZ01vZGUpCi0gICAgICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlv
bikKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5KGludGVycG9sYXRpb25RdWFsaXR5
KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCB1c2VzRGVmYXVsdEludGVycG9sYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2ludGVycG9sYXRpb25RdWFsaXR5ID09IEludGVycG9sYXRpb25E
ZWZhdWx0OyB9Ci0KLSAgICBDb21wb3NpdGVPcGVyYXRvciBtX2NvbXBvc2l0ZU9wZXJhdG9yOwot
ICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZTsKLSAgICBEZWNvZGluZ01vZGUgbV9kZWNvZGluZ01v
ZGU7Ci0gICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwotICAgIEludGVycG9sYXRp
b25RdWFsaXR5IG1faW50ZXJwb2xhdGlvblF1YWxpdHk7Ci19OwotCiBzdHJ1Y3QgR3JhcGhpY3ND
b250ZXh0U3RhdGVDaGFuZ2UgewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKCkgPSBk
ZWZhdWx0OwogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3Mg
ZmxhZ3MpCkBAIC0zNDcsNyArMzExLDcgQEAgcHVibGljOgogICAgIGNvbnN0IEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KIAogI2lmIFVTRShD
RykgfHwgVVNFKERJUkVDVDJEKSB8fCBVU0UoQ0FJUk8pCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
IHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2Rl
ID0gQmxlbmRNb2RlOjpOb3JtYWwsIEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9u
OjpOb25lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmID0geyB9KTsKICNlbmRpZgogCiAjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQp
CkBAIC0zOTUsMjMgKzM1OSwyMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9h
dFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0gSW1hZ2VQ
YWludGluZ09wdGlvbnMoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIEltYWdlRHJh
d1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0gSW1h
Z2VQYWludGluZ09wdGlvbnMoKSk7CisgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
eyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSB9KTsKIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFn
ZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygp
KTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRT
aXplJiB0aWxlU2NhbGVGYWN0b3IsCi0gICAgICAgIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRp
bGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9u
cygpKTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZs
b2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVs
ZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBj
b25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7Ci0gICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsKLSAgICB2b2lkIGRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBh
aW50aW5nT3B0aW9ucygpKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0gICAgdm9pZCBkcmF3UGF0dGVy
bihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJs
ZW5kTW9kZTo6Tm9ybWFsKTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIHZvaWQgZHJhd0NvbnN1
bWluZ0ltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IEltYWdlUGFp
bnRpbmdPcHRpb25zKCkpOwotICAgIHZvaWQgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFn
ZVBhaW50aW5nT3B0aW9ucygpKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdDb25zdW1p
bmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFBv
aW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAg
ICB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IH0pOworICAgIHZvaWQgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KElu
dGVycG9sYXRpb25RdWFsaXR5KTsKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5pbWFnZUludGVycG9sYXRp
b25RdWFsaXR5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCmluZGV4IDk2MzY0OWY1NjlhZTM0NzcwMWQ1MWRh
ZGRmNDA3ZjVhZmZhNmMwYTIuLmNlOGUxNzJhMTYxYWU0NmFlYTI4ODI3OWViYzkwODYxM2UyY2Nl
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEltcGwuY3BwCkBAIC0zNywyNyArMzcsMjcgQEAgR3JhcGhpY3NDb250ZXh0
SW1wbDo6fkdyYXBoaWNzQ29udGV4dEltcGwoKQogewogfQogCi1JbWFnZURyYXdSZXN1bHQgR3Jh
cGhpY3NDb250ZXh0SW1wbDo6ZHJhd0ltYWdlSW1wbChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0
aW9ucykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3SW1hZ2VJbXBs
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVy
IGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIGltYWdlUGFpbnRpbmdP
cHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3KGNv
bnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9z
aXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlLCBpbWFnZVBhaW50
aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9vcmllbnRh
dGlvbik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25R
dWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHko
KSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXcoY29udGV4dCwgZGVzdGluYXRpb24sIHNvdXJjZSwg
b3B0aW9ucyk7CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3
VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29u
c3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCitJbWFnZURyYXdSZXN1
bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0
IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMp
CiB7Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFs
aXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xh
dGlvblF1YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3VGlsZWQoY29udGV4dCwgZGVzdGlu
YXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1f
Y29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlLCBpbWFn
ZVBhaW50aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9v
cmllbnRhdGlvbik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9s
YXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1
YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZChjb250ZXh0LCBkZXN0aW5hdGlv
biwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7CiB9CiAKLUltYWdlRHJhd1Jl
c3VsdCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3Rv
ciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKK0ltYWdlRHJhd1Jlc3Vs
dCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3Rvciwg
SW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChoUnVsZSA9PSBJbWFnZTo6U3Ry
ZXRjaFRpbGUgJiYgdlJ1bGUgPT0gSW1hZ2U6OlN0cmV0Y2hUaWxlKSB7CiAgICAgICAgIC8vIEp1
c3QgZG8gYSBzY2FsZS4KLSAgICAgICAgcmV0dXJuIGRyYXdJbWFnZUltcGwoY29udGV4dCwgaW1h
Z2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKKyAgICAgICAg
cmV0dXJuIGRyYXdJbWFnZUltcGwoY29udGV4dCwgaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2Us
IG9wdGlvbnMpOwogICAgIH0KIAotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBpbWFnZVBhaW50aW5nT3B0
aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICByZXR1cm4gaW1hZ2UuZHJhd1RpbGVk
KGNvbnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZS
dWxlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICBJbnRl
cnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2Nv
cGUoY29udGV4dCwgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4g
aW1hZ2UuZHJhd1RpbGVkKGNvbnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZh
Y3RvciwgaFJ1bGUsIHZSdWxlLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKaW5kZXggYjg3MzE5NGVlMjQ2MDFmZTRl
MDcxNDdhYTcxZWEzMDU4N2E4NGE0NS4uOGZiYzVlNTZjZjE1NDg1Mzc3OWM1NTQ0NTQ1ZTllNmEx
YzljODg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEltcGwuaApAQCAtNzMsOSArNzMsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6
ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVs
ZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpID0gMDsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotICAg
IHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25z
dCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3Jp
ZW50YXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpID0gMDsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9k
ZTo6Tm9ybWFsKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKIAogICAgIHZpcnR1
YWwgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBib3JkZXJUaGlja25lc3Mp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IEZsb2F0UG9pbnQmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5jcHAKaW5kZXggYjZiZGEzMDE0YTAxZGZmMzY1YzQ4OWU3ODk3ODEzMmUzNThjYjhkZC4uMTUz
MzY1NGJiMzE2ZThmYzQ3M2FmOGQyYTA0NzNjYzZjZWNjNjkwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtMTM3LDMzICsxMzcsMjggQEAgdm9pZCBJ
bWFnZTo6ZmlsbFdpdGhTb2xpZENvbG9yKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LAogICAgIGN0eHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKHByZXZpb3Vz
T3BlcmF0b3IpOwogfQogCi12b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQm
IGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgSW1hZ2U6OmRyYXdQYXR0ZXJuKEdy
YXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LCAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKCFuYXRpdmVJbWFn
ZUZvckN1cnJlbnRGcmFtZSgmY3R4dCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGN0eHQuZHJh
d1BhdHRlcm4oKnRoaXMsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIGN0eHQuZHJhd1BhdHRlcm4oKnRoaXMs
IGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9w
dGlvbnMpOwogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAgaW1hZ2VPYnNlcnZl
cigpLT5kaWREcmF3KCp0aGlzKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGls
ZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFBvaW50JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiBzY2FsZWRUaWxlU2l6ZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2Rl
IGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29u
dGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYg
c3JjUG9pbnQsIGNvbnN0IEZsb2F0U2l6ZSYgc2NhbGVkVGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAg
Q29sb3IgY29sb3IgPSBzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsKICAgICBpZiAoY29sb3IuaXNW
YWxpZCgpKSB7Ci0gICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjdHh0LCBkZXN0UmVjdCwgY29s
b3IsIG9wKTsKKyAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGN0eHQsIGRlc3RSZWN0LCBjb2xv
ciwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKICAgICAgICAgcmV0dXJuIEltYWdlRHJh
d1Jlc3VsdDo6RGlkRHJhdzsKICAgICB9CiAKICAgICBBU1NFUlQoIWlzQml0bWFwSW1hZ2UoKSB8
fCBub3RTb2xpZENvbG9yKCkpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGbG9h
dFNpemUgaW50cmluc2ljVGlsZVNpemUgPSBvcmlnaW5hbFNpemUoKTsKLSNlbHNlCiAgICAgRmxv
YXRTaXplIGludHJpbnNpY1RpbGVTaXplID0gc2l6ZSgpOwotI2VuZGlmCiAgICAgaWYgKGhhc1Jl
bGF0aXZlV2lkdGgoKSkKICAgICAgICAgaW50cmluc2ljVGlsZVNpemUuc2V0V2lkdGgoc2NhbGVk
VGlsZVNpemUud2lkdGgoKSk7CiAgICAgaWYgKGhhc1JlbGF0aXZlSGVpZ2h0KCkpCkBAIC0xODQs
NyArMTc5LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250
ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWMKICAgICAgICAgdmlzaWJsZVNyY1Jl
Y3Quc2V0WSgoZGVzdFJlY3QueSgpIC0gb25lVGlsZVJlY3QueSgpKSAvIHNjYWxlLmhlaWdodCgp
KTsKICAgICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0V2lkdGgoZGVzdFJlY3Qud2lkdGgoKSAvIHNj
YWxlLndpZHRoKCkpOwogICAgICAgICB2aXNpYmxlU3JjUmVjdC5zZXRIZWlnaHQoZGVzdFJlY3Qu
aGVpZ2h0KCkgLyBzY2FsZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiBkcmF3KGN0eHQsIGRl
c3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgZGVjb2RpbmdNb2RlLCBvcmll
bnRhdGlvbik7CisgICAgICAgIHJldHVybiBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3Jj
UmVjdCwgb3B0aW9ucyk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5
Niw3ICsxOTEsNyBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0Nv
bnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlYwogICAgICAgICAgICAgdmlzaWJs
ZVNyY1JlY3Quc2V0WSgoZGVzdFJlY3QueSgpIC0gb25lVGlsZVJlY3QueSgpKSAvIHNjYWxlLmhl
aWdodCgpKTsKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldFdpZHRoKDEpOwogICAgICAg
ICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0SGVpZ2h0KGRlc3RSZWN0LmhlaWdodCgpIC8gc2NhbGUu
aGVpZ2h0KCkpOwotICAgICAgICAgICAgcmV0dXJuIGRyYXcoY3R4dCwgZGVzdFJlY3QsIHZpc2li
bGVTcmNSZWN0LCBvcCwgQmxlbmRNb2RlOjpOb3JtYWwsIGRlY29kaW5nTW9kZSwgb3JpZW50YXRp
b24pOworICAgICAgICAgICAgcmV0dXJuIGRyYXcoY3R4dCwgZGVzdFJlY3QsIHZpc2libGVTcmNS
ZWN0LCB7IG9wdGlvbnMsIEJsZW5kTW9kZTo6Tm9ybWFsIH0pOwogICAgICAgICB9CiAgICAgICAg
IGlmIChzaXplKCkuaGVpZ2h0KCkgPT0gMSAmJiBpbnRlcnNlY3Rpb24ob25lVGlsZVJlY3QsIGRl
c3RSZWN0KS53aWR0aCgpID09IGRlc3RSZWN0LndpZHRoKCkpIHsKICAgICAgICAgICAgIEZsb2F0
UmVjdCB2aXNpYmxlU3JjUmVjdDsKQEAgLTIwNCw3ICsxOTksNyBAQCBJbWFnZURyYXdSZXN1bHQg
SW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlYwogICAgICAgICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0WSgwKTsKICAgICAgICAgICAg
IHZpc2libGVTcmNSZWN0LnNldFdpZHRoKGRlc3RSZWN0LndpZHRoKCkgLyBzY2FsZS53aWR0aCgp
KTsKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldEhlaWdodCgxKTsKLSAgICAgICAgICAg
IHJldHVybiBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgb3AsIEJsZW5kTW9k
ZTo6Tm9ybWFsLCBkZWNvZGluZ01vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgIHJldHVy
biBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgeyBvcHRpb25zLCBCbGVuZE1v
ZGU6Ok5vcm1hbCB9KTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMjM2LDcgKzIzMSw3
IEBAIEltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4
dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjCiAgICAgICAgICAgICAgICAgRmxvYXRSZWN0IGZy
b21SZWN0KHRvRmxvYXRQb2ludChjdXJyZW50VGlsZVJlY3QubG9jYXRpb24oKSAtIG9uZVRpbGVS
ZWN0LmxvY2F0aW9uKCkpLCBjdXJyZW50VGlsZVJlY3Quc2l6ZSgpKTsKICAgICAgICAgICAgICAg
ICBmcm9tUmVjdC5zY2FsZSgxIC8gc2NhbGUud2lkdGgoKSwgMSAvIHNjYWxlLmhlaWdodCgpKTsK
IAotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRyYXcoY3R4dCwgdG9SZWN0LCBmcm9tUmVjdCwg
b3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBkZWNvZGluZ01vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBkcmF3KGN0eHQsIHRvUmVjdCwgZnJvbVJlY3QsIHsgb3B0aW9u
cywgQmxlbmRNb2RlOjpOb3JtYWwgfSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBJ
bWFnZURyYXdSZXN1bHQ6OkRpZFJlcXVlc3REZWNvZGluZykKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICB0b1ggKz0gY3VycmVudFRpbGVSZWN0Lndp
ZHRoKCk7CkBAIC0yNTAsMTcgKzI0NSwxNyBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdU
aWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlYwogCiAg
ICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm0gPSBBZmZpbmVUcmFuc2Zvcm0oKS5z
Y2FsZU5vblVuaWZvcm0oc2NhbGUud2lkdGgoKSwgc2NhbGUuaGVpZ2h0KCkpOwogICAgIEZsb2F0
UmVjdCB0aWxlUmVjdChGbG9hdFBvaW50KCksIGludHJpbnNpY1RpbGVTaXplKTsKLSAgICBkcmF3
UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIG9uZVRp
bGVSZWN0LmxvY2F0aW9uKCksIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIGRyYXdQYXR0
ZXJuKGN0eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgb25lVGlsZVJl
Y3QubG9jYXRpb24oKSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgc3RhcnRBbmltYXRpb24oKTsK
ICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogfQogCiAvLyBGSVhNRTogTWVy
Z2Ugd2l0aCB0aGUgb3RoZXIgZHJhd1RpbGVkIGV2ZW50dWFsbHksIHNpbmNlIHdlIG5lZWQgYSBj
b21iaW5hdGlvbiBvZiBib3RoIGZvciBzb21lIHRoaW5ncy4KLUltYWdlRHJhd1Jlc3VsdCBJbWFn
ZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxl
RmFjdG9yLCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wKQorSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIFRpbGVSdWxlIGhSdWxlLCBUaWxlUnVs
ZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7ICAgIAogICAg
IENvbG9yIGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgaWYgKGNvbG9yLmlz
VmFsaWQoKSkgewotICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY3R4dCwgZHN0UmVjdCwgY29s
b3IsIG9wKTsKKyAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGN0eHQsIGRzdFJlY3QsIGNvbG9y
LCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3
UmVzdWx0OjpEaWREcmF3OwogICAgIH0KICAgICAKQEAgLTMzMCwxOCArMzI1LDE0IEBAIEltYWdl
RHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0CiAgICAgICAgIHZQaGFzZSAtPSAoZHN0UmVjdC5oZWlnaHQoKSAt
IHNjYWxlZFRpbGVIZWlnaHQpIC8gMjsKIAogICAgIEZsb2F0UG9pbnQgcGF0dGVyblBoYXNlKGRz
dFJlY3QueCgpIC0gaFBoYXNlLCBkc3RSZWN0LnkoKSAtIHZQaGFzZSk7Ci0gICAgZHJhd1BhdHRl
cm4oY3R4dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGF0dGVyblBoYXNl
LCBzcGFjaW5nLCBvcCk7CisgICAgZHJhd1BhdHRlcm4oY3R4dCwgZHN0UmVjdCwgc3JjUmVjdCwg
cGF0dGVyblRyYW5zZm9ybSwgcGF0dGVyblBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICBz
dGFydEFuaW1hdGlvbigpOwogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7CiB9
CiAKIHZvaWQgSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmlu
c2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1Jh
dGlvKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaW50cmluc2ljUmF0aW8gPSBv
cmlnaW5hbFNpemUoKTsKLSNlbHNlCiAgICAgaW50cmluc2ljUmF0aW8gPSBzaXplKCk7Ci0jZW5k
aWYKICAgICBpbnRyaW5zaWNXaWR0aCA9IExlbmd0aChpbnRyaW5zaWNSYXRpby53aWR0aCgpLCBG
aXhlZCk7CiAgICAgaW50cmluc2ljSGVpZ2h0ID0gTGVuZ3RoKGludHJpbnNpY1JhdGlvLmhlaWdo
dCgpLCBGaXhlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaApp
bmRleCAzNjk5N2M4MzUyMWM0NmM1Y2Q0NzU1NmQ4MTQ0ZWU5MjU1MDlhNGE3Li4zNzIyYzIyNmUw
MGViNTBmZmU0ZWU2ZGQ4NzIxZTVhM2IyMWY0OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgRmxvYXRTaXplOwogY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0SW1wbDsKIGNsYXNzIFNo
YXJlZEJ1ZmZlcjsKK3N0cnVjdCBJbWFnZVBhaW50aW5nT3B0aW9uczsKIHN0cnVjdCBMZW5ndGg7
CiAKIC8vIFRoaXMgY2xhc3MgZ2V0cyBub3RpZmllZCB3aGVuIGFuIGltYWdlIGNyZWF0ZXMgb3Ig
ZGVzdHJveXMgZGVjb2RlZCBmcmFtZXMgYW5kIHdoZW4gaXQgYWR2YW5jZXMgYW5pbWF0aW9uIGZy
YW1lcy4KQEAgLTExMCwxNiArMTExLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFz
UmVsYXRpdmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5n
dGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbyk7CiAKLSAgICB2
aXJ0dWFsIEZsb2F0U2l6ZSBzaXplKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgRmxvYXRTaXpl
IHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29u
c3QgPSAwOwogICAgIEZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gRmxvYXRSZWN0KEZs
b2F0UG9pbnQoKSwgc2l6ZSgpKTsgfQogICAgIGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4g
c2l6ZSgpLndpZHRoKCk7IH0KICAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBzaXpl
KCkuaGVpZ2h0KCk7IH0KICAgICB2aXJ0dWFsIE9wdGlvbmFsPEludFBvaW50PiBob3RTcG90KCkg
Y29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIHZpcnR1YWwgRmxvYXRTaXplIG9yaWdpbmFsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHNp
emUoKTsgfQotI2VuZGlmCi0KICAgICBXRUJDT1JFX0VYUE9SVCBFbmNvZGVkRGF0YVN0YXR1cyBz
ZXREYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQp
OwogICAgIHZpcnR1YWwgRW5jb2RlZERhdGFTdGF0dXMgZGF0YUNoYW5nZWQoYm9vbCAvKmFsbERh
dGFSZWNlaXZlZCovKSB7IHJldHVybiBFbmNvZGVkRGF0YVN0YXR1czo6VW5rbm93bjsgfQogCkBA
IC0xNzMsOCArMTcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR2RrUGl4YnVmKiBnZXRHZGtQ
aXhidWYoKSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBk
cmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRy
YW5zZm9ybSwKLSAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9y
bWFsKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9
IHsgfSk7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgdmlydHVhbCBib29sIG5vdFNvbGlk
Q29sb3IoKSB7IHJldHVybiB0cnVlOyB9CkBAIC0xOTAsOSArMTg2LDkgQEAgcHJvdGVjdGVkOgog
I2lmIFBMQVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1lTWF0Y2hpbmdTb3Vy
Y2VTaXplKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3Qg
SW50U2l6ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IpIHsgfQogI2VuZGlmCi0gICAgdmly
dHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSA9IDA7Ci0gICAgSW1h
Z2VEcmF3UmVzdWx0IGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNyY1BvaW50LCBjb25zdCBGbG9hdFNpemUmIHRp
bGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbik7Ci0gICAgSW1hZ2VEcmF3UmVz
dWx0IGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0
b3IsIFRpbGVSdWxlIGhSdWxlLCBUaWxlUnVsZSB2UnVsZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwor
ICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgPSAwOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGls
ZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFBvaW50JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRT
aXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIElt
YWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGls
ZVNjYWxlRmFjdG9yLCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAKICAgICAvLyBTdXBwb3J0aW5nIHRpbGVkIGRyYXdp
bmcKICAgICB2aXJ0dWFsIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpIGNvbnN0IHsgcmV0
dXJuIENvbG9yKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCmluZGV4IDhlZmQ1OGEyODk4MTMwZWZkYWU3MzE4MGM5NmI1YzJiMzY0YjM0ZDAu
LjE2OTgwMjZlYzI0NDBmMjgxNTBiNGIyMDNlNDZlYzVjNjRlMmExYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzM0Qu
aCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckRhdGEuaCIKKyNpbmNsdWRlICJJbWFnZVBhaW50aW5n
T3B0aW9ucy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVy
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhDbGFtcGVkQXJyYXkuaD4KQEAgLTUx
LDcgKzUyLDcgQEAgY2xhc3MgSW1hZ2VEYXRhOwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRS
ZWN0OwogY2xhc3MgSG9zdFdpbmRvdzsKLSAgICAKKwogZW51bSBCYWNraW5nU3RvcmVDb3B5IHsK
ICAgICBDb3B5QmFja2luZ1N0b3JlLCAvLyBHdWFyYW50ZWUgc3Vic2VxdWVudCBkcmF3cyBkb24n
dCBhZmZlY3QgdGhlIGNvcHkuCiAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVu
dCBkcmF3cyBtYXkgYWZmZWN0IHRoZSBjb3B5LgpAQCAtMTUxLDEwICsxNTIsMTAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGZsdXNoQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCiAgICAgCi0gICAgdm9p
ZCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLCBDb21wb3NpdGVP
cGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9y
bWFsKTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRN
b2RlOjpOb3JtYWwpOworICAgIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwg
MCwgLTEsIC0xKSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lk
IGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0gICAgc3RhdGljIHZv
aWQgZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7CisgICAgc3RhdGlj
IHZvaWQgZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmID0geyB9KTsKIAogICAgIGlubGluZSB2b2lkIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VN
YXNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUu
aAppbmRleCAyZGZlZmFlYjVkMTkzMzZkZWQyMTI1OGVlMWZmZjYzODZmNThiOTJkLi4yY2M2YjAy
YTdkMzUwMTU3MWNmMjA5MzY0YjM2ZWQyNWMxZDgzOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2RlY29kaW5nU3RhdHVzID09
IERlY29kaW5nU3RhdHVzOjpDb21wbGV0ZTsgfQogCiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3Q7
Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
IW1fb3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSA/IHNpemUoKSA6IHNpemUoKS50cmFu
c3Bvc2VkU2l6ZSgpOyB9CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlcygpIGNvbnN0IHsgcmV0dXJu
IGhhc05hdGl2ZUltYWdlKCkgPyAoc2l6ZSgpLmFyZWEoKSAqIHNpemVvZih1aW50MzJfdCkpLnVu
c2FmZUdldCgpIDogMDsgfQogICAgIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3Vic2FtcGxpbmdMZXZlbDsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZjQ1YzNmZDZkMzM4NDFiYzAzNTU1ZjA3YzkwMmM5MWQ1MTFjZGEwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGlu
Z09wdGlvbnMuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGVjb2RpbmdPcHRp
b25zLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgorI2luY2x1ZGUgIkltYWdlT3JpZW50
YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgSW1hZ2VQYWludGluZ09w
dGlvbnMgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIE9wdGlvbnM+CisgICAgSW1hZ2VQYWlu
dGluZ09wdGlvbnMoT3B0aW9ucy4uLiBvcHRpb25zKQorICAgIHsKKyAgICAgICAgc2V0T3B0aW9u
KG9wdGlvbnMuLi4pOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIE92ZXJycmlk
ZXM+CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG90aGVyLCBPdmVycnJpZGVzLi4uIG92ZXJycmlkZXMpCisgICAgICAgIDogSW1hZ2VQYWludGlu
Z09wdGlvbnMob3RoZXIpCisgICAgeworICAgICAgICBzZXRPcHRpb24ob3ZlcnJyaWRlcy4uLik7
CisgICAgfQorCisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgSW1h
Z2VQYWludGluZ09wdGlvbnMoY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IGRlZmF1bHQ7
CisKKyAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvcigpIGNvbnN0IHsgcmV0
dXJuIG1fY29tcG9zaXRlT3BlcmF0b3I7IH0KKyAgICBCbGVuZE1vZGUgYmxlbmRNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9ibGVuZE1vZGU7IH0KKyAgICBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9kZWNvZGluZ01vZGU7IH0KKyAgICBJbWFnZU9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQorICAgIEludGVy
cG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9p
bnRlcnBvbGF0aW9uUXVhbGl0eTsgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBGaXJzdCwgdHlwZW5hbWUuLi4gUmVzdD4KKyAgICB2b2lkIHNldE9wdGlvbihGaXJzdCBmaXJz
dCwgUmVzdC4uLiByZXN0KQorICAgIHsKKyAgICAgICAgc2V0T3B0aW9uKGZpcnN0KTsKKyAgICAg
ICAgc2V0T3B0aW9uKHJlc3QuLi4pOworICAgIH0KKworICAgIHZvaWQgc2V0T3B0aW9uKENvbXBv
c2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yKSB7IG1fY29tcG9zaXRlT3BlcmF0b3IgPSBj
b21wb3NpdGVPcGVyYXRvcjsgfQorICAgIHZvaWQgc2V0T3B0aW9uKEJsZW5kTW9kZSBibGVuZE1v
ZGUpIHsgbV9ibGVuZE1vZGUgPSBibGVuZE1vZGU7IH0KKyAgICB2b2lkIHNldE9wdGlvbihEZWNv
ZGluZ01vZGUgZGVjb2RpbmdNb2RlKSB7IG1fZGVjb2RpbmdNb2RlID0gZGVjb2RpbmdNb2RlOyB9
CisgICAgdm9pZCBzZXRPcHRpb24oSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29y
aWVudGF0aW9uID0gb3JpZW50YXRpb247IH0KKyAgICB2b2lkIHNldE9wdGlvbihJbWFnZU9yaWVu
dGF0aW9uOjpPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0gb3JpZW50
YXRpb247IH0KKyAgICB2b2lkIHNldE9wdGlvbihJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBv
bGF0aW9uUXVhbGl0eSkgeyBtX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJwb2xhdGlvblF1
YWxpdHk7IH0KKworICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1fY29tcG9zaXRlT3BlcmF0b3IgeyBD
b21wb3NpdGVTb3VyY2VPdmVyIH07CisgICAgQmxlbmRNb2RlIG1fYmxlbmRNb2RlIHsgQmxlbmRN
b2RlOjpOb3JtYWwgfTsKKyAgICBEZWNvZGluZ01vZGUgbV9kZWNvZGluZ01vZGUgeyBEZWNvZGlu
Z01vZGU6OlN5bmNocm9ub3VzIH07CisgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9u
IHsgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OworICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1f
aW50ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVmYXVsdCB9OworfTsKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmlu
ZGV4IDE4OTc2ZjkxOWViODFkYTM5NTY3ZjI2YTE4YmFlN2E5YWYxZDMyNDMuLmZlNzVkYzRiOTU0
NTAzMDM5ZWVhM2RkNWI2YzM3ZTgzMTg5YjNlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAgLTYzLDEwICs2Myw4IEBAIEltYWdl
U291cmNlOjpJbWFnZVNvdXJjZShOYXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlKQogCiAgICAg
bV9kZWNvZGVkU2l6ZSA9IG1fZnJhbWVzWzBdLmZyYW1lQnl0ZXMoKTsKIAotICAgIC8vIFRoZSBh
c3N1bXB0aW9uIGlzIHRoZSBtZW1vcnkgaW1hZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgd2l0aCB0aGUg
ZGVmYXVsdAotICAgIC8vIG9yaWVudGF0aW9uLiBTbyBzZXQgbV9zaXplUmVzcGVjdGluZ09yaWVu
dGF0aW9uIHRvIGJlIHRoZSBzYW1lIGFzIG1fc2l6ZS4KICAgICBtX3NpemUgPSBtX2ZyYW1lc1sw
XS5zaXplKCk7Ci0gICAgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gbV9zaXplOworICAg
IG1fb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb246Ok5vbmUp
OwogfQogCiBJbWFnZVNvdXJjZTo6fkltYWdlU291cmNlKCkKQEAgLTU1OSwyMCArNTU3LDI3IEBA
IE9wdGlvbmFsPEludFBvaW50PiBJbWFnZVNvdXJjZTo6aG90U3BvdCgpCiAgICAgcmV0dXJuIG1l
dGFkYXRhPE9wdGlvbmFsPEludFBvaW50PiwgKCZJbWFnZURlY29kZXI6OmhvdFNwb3QpPihXVEY6
Om51bGxvcHQsICZtX2hvdFNwb3QpOwogfQogCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplKCkK
K0ltYWdlT3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uKCkKIHsKKyAgICByZXR1
cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPEltYWdlT3JpZW50YXRpb24+KDAs
ICgmSW1hZ2VGcmFtZTo6b3JpZW50YXRpb24pLCAmbV9vcmllbnRhdGlvbiwgSW1hZ2VGcmFtZTo6
Q2FjaGluZzo6TWV0YWRhdGEpOworfQorCitJbnRTaXplIEltYWdlU291cmNlOjpzaXplKEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCit7CisgICAgSW50U2l6ZSBzaXplOwogI2lmICFVU0Uo
Q0cpCiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdlIGhhdmUgZGVjb2RlZCB0aGUgbWV0YWRh
dGEsIGJ1dCBub3QgZnJhbWUgY29udGVudHMgeWV0LiBJbiB0aGF0IGNhc2UgSW1hZ2VEZWNvZGVy
IGNsYWltcyB0bwogICAgIC8vIGhhdmUgdGhlIHNpemUgYXZhaWxhYmxlLCBidXQgdGhlIGZyYW1l
IGNhY2hlIGlzIGVtcHR5LiBSZXR1cm4gdGhlIGRlY29kZXIgc2l6ZSB3aXRob3V0IGNhY2hpbmcg
aW4gc3VjaCBjYXNlLgogICAgIGlmIChtX2ZyYW1lcy5pc0VtcHR5KCkgJiYgaXNEZWNvZGVyQXZh
aWxhYmxlKCkpCi0gICAgICAgIHJldHVybiBtX2RlY29kZXItPnNpemUoKTsKKyAgICAgICAgc2l6
ZSA9IG1fZGVjb2Rlci0+c2l6ZSgpOworICAgIGVsc2UKICNlbmRpZgotICAgIHJldHVybiBmcmFt
ZU1ldGFkYXRhQXRJbmRleENhY2hlSWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZyYW1lOjpz
aXplKSwgJm1fc2l6ZSwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNhbXBsaW5n
TGV2ZWw6OkRlZmF1bHQpOwotfQotCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplUmVzcGVjdGlu
Z09yaWVudGF0aW9uKCkKLXsKLSAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlm
TmVlZGVkPEludFNpemU+KDAsICgmSW1hZ2VGcmFtZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlv
biksICZtX3NpemVSZXNwZWN0aW5nT3JpZW50YXRpb24sIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1l
dGFkYXRhLCBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KTsKKyAgICAgICAgc2l6ZSA9IGZyYW1l
TWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxJbnRTaXplPigwLCAoJkltYWdlRnJhbWU6OnNp
emUpLCAmbV9zaXplLCBJbWFnZUZyYW1lOjpDYWNoaW5nOjpNZXRhZGF0YSwgU3Vic2FtcGxpbmdM
ZXZlbDo6RGVmYXVsdCk7CisgICAgCisgICAgaWYgKG9yaWVudGF0aW9uID09IEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSkKKyAgICAgICAgb3JpZW50YXRpb24gPSB0aGlzLT5vcmllbnRhdGlv
bigpOworICAgIAorICAgIHJldHVybiBvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpID8g
c2l6ZS50cmFuc3Bvc2VkU2l6ZSgpIDogc2l6ZTsKIH0KIAogQ29sb3IgSW1hZ2VTb3VyY2U6OnNp
bmdsZVBpeGVsU29saWRDb2xvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuaAppbmRleCBiYzc5MDk5MzI3OGJjYjQyNTAzODY1ZmI1MTJhYjZmMmU5
ODhlODNkLi45OThlMjdhYWEyYzAzOTJlYWQ5ZWVlNDcwMTJjYmIzMjg0OTFiMjA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTkzLDEw
ICs5MywxMCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHV0aSgpOwogICAgIFN0cmluZyBmaWxlbmFt
ZUV4dGVuc2lvbigpOwogICAgIE9wdGlvbmFsPEludFBvaW50PiBob3RTcG90KCk7CisgICAgSW1h
Z2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpOwogCiAgICAgLy8gSW1hZ2UgbWV0YWRhdGEgd2hp
Y2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBJbWFnZUZyYW1lLgotICAgIFdFQkNPUkVf
RVhQT1JUIEludFNpemUgc2l6ZSgpOwotICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRh
dGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIEludFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9u
ID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKTsKICAgICBDb2xvciBzaW5nbGVQaXhlbFNv
bGlkQ29sb3IoKTsKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1TdWJzYW1wbGluZ0xldmVs
KCk7CiAKQEAgLTE5Niw3ICsxOTYsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gSW1hZ2UgbWV0YWRh
dGEgd2hpY2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBJbWFnZUZyYW1lLgogICAgIE9w
dGlvbmFsPEludFNpemU+IG1fc2l6ZTsKLSAgICBPcHRpb25hbDxJbnRTaXplPiBtX3NpemVSZXNw
ZWN0aW5nT3JpZW50YXRpb247CisgICAgT3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlvbj4gbV9vcmll
bnRhdGlvbjsKICAgICBPcHRpb25hbDxDb2xvcj4gbV9zaW5nbGVQaXhlbFNvbGlkQ29sb3I7CiAg
ICAgT3B0aW9uYWw8U3Vic2FtcGxpbmdMZXZlbD4gbV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZElt
YWdlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcAppbmRleCA5YTZiMDE4ZDQyZmE3NDQ4N2QxNDdh
YTZjZTY0NjZhMTllZWFlYjNkLi5kM2QzZmEzOWUwNmQ4OWVhNjJjMTc5ZDk4ODdmNDViYmY2Yzhk
YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZElt
YWdlR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTQwLDExICs0MCwxMSBAQCBOYW1l
ZEltYWdlR2VuZXJhdGVkSW1hZ2U6Ok5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZShTdHJpbmcgbmFt
ZSwgY29uc3QgRmxvYXRTaXplJgogICAgIHNldENvbnRhaW5lclNpemUoc2l6ZSk7CiB9CiAKLUlt
YWdlRHJhd1Jlc3VsdCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1v
ZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBOYW1l
ZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAjaWYgVVNFKE5FV19USEVNRSkgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2
ZXIoY29udGV4dCk7Ci0gICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29tcG9zaXRl
T3AsIGJsZW5kTW9kZSk7CisgICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ob3B0aW9u
cy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKICAgICBjb250ZXh0
LmNsaXAoZHN0UmVjdCk7CiAgICAgY29udGV4dC50cmFuc2xhdGUoZHN0UmVjdC5sb2NhdGlvbigp
KTsKICAgICBpZiAoZHN0UmVjdC5zaXplKCkgIT0gc3JjUmVjdC5zaXplKCkpCkBAIC01NywxMyAr
NTcsMTIgQEAgSW1hZ2VEcmF3UmVzdWx0IE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEYKICAgICBVTlVTRURfUEFSQU0oY29udGV4
dCk7CiAgICAgVU5VU0VEX1BBUkFNKGRzdFJlY3QpOwogICAgIFVOVVNFRF9QQVJBTShzcmNSZWN0
KTsKLSAgICBVTlVTRURfUEFSQU0oY29tcG9zaXRlT3ApOwotICAgIFVOVVNFRF9QQVJBTShibGVu
ZE1vZGUpOworICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKICAgICByZXR1cm4gSW1hZ2VEcmF3
UmVzdWx0OjpEaWROb3RoaW5nOwogI2VuZGlmCiB9CiAKLXZvaWQgTmFtZWRJbWFnZUdlbmVyYXRl
ZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBG
bG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlKQordm9pZCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAjaWYgVVNFKE5FV19USEVN
RSkKICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVC
dWZmZXIoc2l6ZSgpLCBjb250ZXh0KTsKQEAgLTc0LDE2ICs3MywxNSBAQCB2b2lkIE5hbWVkSW1h
Z2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdAogICAgIFRoZW1lOjpzaW5nbGV0b24oKS5kcmF3TmFtZWRJbWFnZShtX25hbWUs
IGdyYXBoaWNzQ29udGV4dCwgRmxvYXRSZWN0KDAsIDAsIHNpemUoKS53aWR0aCgpLCBzaXplKCku
aGVpZ2h0KCkpKTsKIAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250
ZXh0LgotICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzcmNS
ZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJsZW5k
TW9kZSk7CisgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNy
Y1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShkc3RSZWN0KTsK
ICAgICBVTlVTRURfUEFSQU0oc3JjUmVjdCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhdHRlcm5UcmFu
c2Zvcm0pOwogICAgIFVOVVNFRF9QQVJBTShwaGFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHNwYWNp
bmcpOwotICAgIFVOVVNFRF9QQVJBTShkc3RSZWN0KTsKLSAgICBVTlVTRURfUEFSQU0oY29tcG9z
aXRlT3ApOwotICAgIFVOVVNFRF9QQVJBTShibGVuZE1vZGUpOworICAgIFVOVVNFRF9QQVJBTShv
cHRpb25zKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oCmluZGV4IDNlN2M5NmQ5
NDcxZjEzZjQ2OTYzMWZiNmVmNGQ1NGZmODUyNTFiMWMuLjAyODVlMWY4YjlhMmE1MTYzMmRmYzRm
MzcwYTJhMGNkNjEzZDgwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oCkBAIC0zOSw4ICszOSw4
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJh
dyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJh
dG9yLCBCbGVuZE1vZGUpIG92ZXJyaWRlOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOworICAg
IHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKIAog
ICAgIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZShTdHJpbmcgbmFtZSwgY29uc3QgRmxvYXRTaXpl
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2
ZUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5o
CmluZGV4IDVhZjQzYWEyZTkwMjA1N2YwN2EwYjYxODljNjAwNmQ2MDU4ZGFkNDUuLjhlM2FlMjE2
NjBjNTRkMzU3MGFjMmRiMTNhNmI1YjVjYjNjYjdlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaApAQCAtMjcsOCArMjcsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKLSNpbmNsdWRlICJJbWFnZU9y
aWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKIAogI2lmIFVT
RShDRykKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC02Niw3ICs2NSw3IEBAIEludFNp
emUgbmF0aXZlSW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBib29sIG5hdGl2ZUlt
YWdlSGFzQWxwaGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIENvbG9yIG5hdGl2ZUltYWdlU2lu
Z2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiAKLXZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24pOwordm9pZCBkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbnRTaXplJiwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKTsKIHZvaWQgY2xlYXJOYXRpdmVJbWFnZVN1YmltYWdlcyhjb25zdCBOYXRpdmVJ
bWFnZVB0ciYpOwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKaW5kZXggNzQ2NDBmNzA0ZWNl
NDk2ZGE0MGFmNDEzYmE2ZjRkOWJkZWFmNDE5Yi4uYTg5NWRhZGQwNDIxYjdlZDA5MTEyOGQyM2Y2
NWY1ZGQ5NDRhNDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCkBAIC0xNzksOCArMTc5LDcgQEAg
c3RhdGljIHZvaWQgZHJhd1NoYWRvd0xheWVyQnVmZmVyKFBsYXRmb3JtQ29udGV4dENhaXJvJiBw
bGF0Zm9ybUNvbnRleHQsIEltYWdlQnUKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGF1dG8g
c3VyZmFjZSA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKSB7Ci0gICAgICAg
IGRyYXdOYXRpdmVJbWFnZShwbGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UuZ2V0KCksIEZsb2F0UmVj
dChyb3VuZGVkSW50UG9pbnQobGF5ZXJPcmlnaW4pLCBsYXllclNpemUpLCBGbG9hdFJlY3QoRmxv
YXRQb2ludCgpLCBsYXllclNpemUpLCBzaGFkb3dTdGF0ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlOjpOb3JtYWwsIEltYWdlT3JpZW50YXRpb246Ok5vbmUsCi0gICAgICAgICAg
ICBJbnRlcnBvbGF0aW9uRGVmYXVsdCwgc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNoYWRvd1N0
YXRlKCkpOworICAgICAgICBkcmF3TmF0aXZlSW1hZ2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNl
LmdldCgpLCBGbG9hdFJlY3Qocm91bmRlZEludFBvaW50KGxheWVyT3JpZ2luKSwgbGF5ZXJTaXpl
KSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbGF5ZXJTaXplKSwgeyBzaGFkb3dTdGF0ZS5nbG9i
YWxDb21wb3NpdGVPcGVyYXRvciB9LCBzaGFkb3dTdGF0ZS5nbG9iYWxBbHBoYSwgU2hhZG93U3Rh
dGUoKSk7CiAgICAgfQogfQogCkBAIC0xOTIsOCArMTkxLDcgQEAgc3RhdGljIHZvaWQgZHJhd1No
YWRvd0ltYWdlKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIEltYWdlQnVm
ZmVyJgogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UtPm5h
dGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpIHsKLSAgICAgICAgZHJhd05hdGl2ZUltYWdlKHBs
YXRmb3JtQ29udGV4dCwgc3VyZmFjZS5nZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIHNoYWRvd1N0
YXRlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGU6Ok5vcm1hbCwgSW1hZ2VPcmll
bnRhdGlvbjo6Tm9uZSwKLSAgICAgICAgICAgIEludGVycG9sYXRpb25EZWZhdWx0LCBzaGFkb3dT
dGF0ZS5nbG9iYWxBbHBoYSwgU2hhZG93U3RhdGUoKSk7CisgICAgICAgIGRyYXdOYXRpdmVJbWFn
ZShwbGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCB7IHNo
YWRvd1N0YXRlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdG9yIH0sIHNoYWRvd1N0YXRlLmdsb2JhbEFs
cGhhLCBTaGFkb3dTdGF0ZSgpKTsKICAgICB9CiB9CiAKQEAgLTg3OCwzNyArODc2LDM3IEBAIHZv
aWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25z
dCBGaWxsU291cmNlJiBmaWxsU291CiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CiAKLXZvaWQg
ZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNh
aXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwg
QmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgSW50ZXJw
b2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQgZ2xvYmFsQWxw
aGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKK3ZvaWQgZHJhd05hdGl2ZUltYWdl
KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCog
c3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgZmxvYXQgZ2xvYmFsQWxw
aGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKICAgICBwbGF0Zm9ybUNvbnRl
eHQuc2F2ZSgpOwogCiAgICAgLy8gU2V0IHRoZSBjb21wb3NpdGluZyBvcGVyYXRpb24uCi0gICAg
aWYgKGNvbXBvc2l0ZU9wZXJhdG9yID09IENvbXBvc2l0ZVNvdXJjZU92ZXIgJiYgYmxlbmRNb2Rl
ID09IEJsZW5kTW9kZTo6Tm9ybWFsICYmICFjYWlyb1N1cmZhY2VIYXNBbHBoYShzdXJmYWNlKSkK
KyAgICBpZiAob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpID09IENvbXBvc2l0ZVNvdXJjZU92
ZXIgJiYgb3B0aW9ucy5ibGVuZE1vZGUoKSA9PSBCbGVuZE1vZGU6Ok5vcm1hbCAmJiAhY2Fpcm9T
dXJmYWNlSGFzQWxwaGEoc3VyZmFjZSkpCiAgICAgICAgIENhaXJvOjpTdGF0ZTo6c2V0Q29tcG9z
aXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgQ29tcG9zaXRlQ29weSwgQmxlbmRNb2RlOjpO
b3JtYWwpOwogICAgIGVsc2UKLSAgICAgICAgQ2Fpcm86OlN0YXRlOjpzZXRDb21wb3NpdGVPcGVy
YXRpb24ocGxhdGZvcm1Db250ZXh0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlKTsKKyAg
ICAgICAgQ2Fpcm86OlN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRpb24ocGxhdGZvcm1Db250ZXh0
LCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogCiAg
ICAgRmxvYXRSZWN0IGRzdCA9IGRlc3RSZWN0OwotICAgIGlmIChvcmllbnRhdGlvbiAhPSBJbWFn
ZU9yaWVudGF0aW9uOjpOb25lKSB7CisgICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKSAhPSBJ
bWFnZU9yaWVudGF0aW9uOjpOb25lKSB7CiAgICAgICAgIC8vIEltYWdlT3JpZW50YXRpb24gZXhw
ZWN0cyB0aGUgb3JpZ2luIHRvIGJlIGF0ICgwLCAwKS4KICAgICAgICAgQ2Fpcm86OnRyYW5zbGF0
ZShwbGF0Zm9ybUNvbnRleHQsIGRzdC54KCksIGRzdC55KCkpOwogICAgICAgICBkc3Quc2V0TG9j
YXRpb24oRmxvYXRQb2ludCgpKTsKLSAgICAgICAgQ2Fpcm86OmNvbmNhdENUTShwbGF0Zm9ybUNv
bnRleHQsIG9yaWVudGF0aW9uLnRyYW5zZm9ybUZyb21EZWZhdWx0KGRzdC5zaXplKCkpKTsKLSAg
ICAgICAgaWYgKG9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpIHsKKyAgICAgICAgQ2Fp
cm86OmNvbmNhdENUTShwbGF0Zm9ybUNvbnRleHQsIG9wdGlvbnMub3JpZW50YXRpb24oKS50cmFu
c2Zvcm1Gcm9tRGVmYXVsdChkc3Quc2l6ZSgpKSk7CisgICAgICAgIGlmIChvcHRpb25zLm9yaWVu
dGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkgewogICAgICAgICAgICAgLy8gVGhlIGRlc3Rp
bmF0aW9uIHJlY3RhbmdsZSB3aWxsIGhhdmUgaXRzIHdpZHRoIGFuZCBoZWlnaHQgYWxyZWFkeSBy
ZXZlcnNlZCBmb3IgdGhlIG9yaWVudGF0aW9uIG9mCiAgICAgICAgICAgICAvLyB0aGUgaW1hZ2Us
IGFzIGl0IHdhcyBuZWVkZWQgZm9yIHBhZ2UgbGF5b3V0LCBzbyB3ZSBuZWVkIHRvIHJldmVyc2Ug
aXQgYmFjayBoZXJlLgogICAgICAgICAgICAgZHN0ID0gRmxvYXRSZWN0KGRzdC54KCksIGRzdC55
KCksIGRzdC5oZWlnaHQoKSwgZHN0LndpZHRoKCkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
ZHJhd1N1cmZhY2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNlLCBkc3QsIHNyY1JlY3QsIGltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHksIGdsb2JhbEFscGhhLCBzaGFkb3dTdGF0ZSk7CisgICAgZHJh
d1N1cmZhY2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNlLCBkc3QsIHNyY1JlY3QsIG9wdGlvbnMu
aW50ZXJwb2xhdGlvblF1YWxpdHkoKSwgZ2xvYmFsQWxwaGEsIHNoYWRvd1N0YXRlKTsKICAgICBw
bGF0Zm9ybUNvbnRleHQucmVzdG9yZSgpOwogfQogCi12b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3Jt
Q29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29u
dGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIHdoeSB0aGUgc2l6ZSBoYXMgdG8gYmUg
cGFzc2VkIGluIGFzIGFuIEludFJlY3QuCi0gICAgZHJhd1BhdHRlcm5Ub0NhaXJvQ29udGV4dChw
bGF0Zm9ybUNvbnRleHQuY3IoKSwgc3VyZmFjZSwgc2l6ZSwgdGlsZVJlY3QsIHBhdHRlcm5UcmFu
c2Zvcm0sIHBoYXNlLCB0b0NhaXJvT3BlcmF0b3IoY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9k
ZSksIGRlc3RSZWN0KTsKKyAgICBkcmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KHBsYXRmb3JtQ29u
dGV4dC5jcigpLCBzdXJmYWNlLCBzaXplLCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHRvQ2Fpcm9PcGVyYXRvcihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMu
YmxlbmRNb2RlKCkpLCBkZXN0UmVjdCk7CiB9CiAKIHZvaWQgZHJhd1N1cmZhY2UoUGxhdGZvcm1D
b250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIG9yaWdpbmFsU3JjUmVj
dCwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQg
Z2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25z
LmgKaW5kZXggMDg1ZTYxYTViM2M5YzdjOTcyMTZiM2M3YmNkNmQ3NjkyNThjYzg0Zi4uNTgzNGY0
MzBmMDVkZDE1ODM3MzhlMzFlNDMzZDI3MTQwYTZjZDJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKQEAg
LTEzOCw4ICsxMzgsOCBAQCB2b2lkIGNsZWFyUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNv
bnN0IEZsb2F0UmVjdCYpOwogCiB2b2lkIGRyYXdHbHlwaHMoUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
LCBjb25zdCBGaWxsU291cmNlJiwgY29uc3QgU3Ryb2tlU291cmNlJiwgY29uc3QgU2hhZG93U3Rh
dGUmLCBjb25zdCBGbG9hdFBvaW50JiwgY2Fpcm9fc2NhbGVkX2ZvbnRfdCosIGRvdWJsZSwgY29u
c3QgVmVjdG9yPGNhaXJvX2dseXBoX3Q+JiwgZmxvYXQsIFRleHREcmF3aW5nTW9kZUZsYWdzLCBm
bG9hdCwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgQ29sb3ImKTsKIAotdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjYWlyb19zdXJmYWNlX3QqLCBjb25zdCBGbG9h
dFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQsIGNvbnN0IFNoYWRv
d1N0YXRlJik7Ci12b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9f
c3VyZmFjZV90KiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlKTsKK3ZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29u
dGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmLCBmbG9hdCwgY29uc3QgU2hhZG93
U3RhdGUmKTsKK3ZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjYWlyb19z
dXJmYWNlX3QqLCBjb25zdCBJbnRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdTdXJmYWNlKFBs
YXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0LCBjb25zdCBTaGFk
b3dTdGF0ZSYpOwogCiB2b2lkIGRyYXdSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3Qg
RmxvYXRSZWN0JiwgZmxvYXQsIGNvbnN0IENvbG9yJiwgU3Ryb2tlU3R5bGUsIGNvbnN0IENvbG9y
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggMjNmNjUzZWJlMzc1MjFmYzcy
NWFkM2JhMTkyZTM1NDBiYWMxOWVlZC4uZDUwMzliOTcyMTE2NGQyMWRiZDJkOGE1ZDc4ZDAzM2Vk
MWI1ZGZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAtMTIwLDE5ICsxMjAs
MTkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKQogICAgIENhaXJvOjpkcmF3UmVjdCgqcGxhdGZvcm1D
b250ZXh0KCksIHJlY3QsIGJvcmRlclRoaWNrbmVzcywgc3RhdGUuZmlsbENvbG9yLCBzdGF0ZS5z
dHJva2VTdHlsZSwgc3RhdGUuc3Ryb2tlQ29sb3IpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxv
YXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5k
TW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKG1faW1wbCkgewotICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwg
aW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9k
ZSwgb3JpZW50YXRpb24pOworICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwg
aW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwogICAgIGF1dG8mIHN0
YXRlID0gdGhpcy0+c3RhdGUoKTsKLSAgICBDYWlybzo6ZHJhd05hdGl2ZUltYWdlKCpwbGF0Zm9y
bUNvbnRleHQoKSwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVy
YXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOworICAgIENhaXJv
OjpkcmF3TmF0aXZlSW1hZ2UoKnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS5nZXQoKSwgZGVzdFJl
Y3QsIHNyY1JlY3QsIHsgb3B0aW9ucywgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB9
LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKIC8vIFRoaXMg
aXMgb25seSB1c2VkIHRvIGRyYXcgYm9yZGVycywgc28gd2Ugc2hvdWxkIG5vdCBkcmF3IHNoYWRv
d3MuCkBAIC02NjAsMTkgKzY2MCwxOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3RX
aXRoUm91bmRlZEhvbGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdAogICAgIENh
aXJvOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSgqcGxhdGZvcm1Db250ZXh0KCksIHJlY3QsIHJv
dW5kZWRIb2xlUmVjdCwgQ2Fpcm86OkZpbGxTb3VyY2Uoc3RhdGUpLCBDYWlybzo6U2hhZG93U3Rh
dGUoc3RhdGUpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdl
JiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxl
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1faW1wbCkg
ewotICAgICAgICBtX2ltcGwtPmRyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3NpdGVPcGVyYXRvciwgYmxl
bmRNb2RlKTsKKyAgICAgICAgbV9pbXBsLT5kcmF3UGF0dGVybihpbWFnZSwgZGVzdFJlY3QsIHRp
bGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwog
ICAgIGlmIChhdXRvIHN1cmZhY2UgPSBpbWFnZS5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgp
KQotICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4oKnBsYXRmb3JtQ29udGV4dCgpLCBzdXJmYWNl
LmdldCgpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGhhc2UsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUpOworICAgICAg
ICBDYWlybzo6ZHJhd1BhdHRlcm4oKnBsYXRmb3JtQ29udGV4dCgpLCBzdXJmYWNlLmdldCgpLCBJ
bnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9y
bSwgcGhhc2UsIG9wdGlvbnMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZv
cm1TaG91bGRBbnRpYWxpYXMoYm9vbCBlbmFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1w
bENhaXJvLmNwcAppbmRleCAwNGYyYTlmZjU0NjlhYTViYTI0ZDE0OTU2NTRiNjBmMGJjNDNkMmFi
Li44NTJhMjc2ZjdmYzY2MTZhOTkwNGFmZWViMGU5OTA5NzA4MDYyMzNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBs
Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKQEAgLTI3NiwxNyArMjc2LDE3IEBAIEltYWdlRHJh
d1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdUaWxlZEltYWdlKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvCiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdUaWxl
ZEltYWdlSW1wbChncmFwaGljc0NvbnRleHQoKSwgaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2Us
IHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVP
cGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmll
bnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBVTlVT
RURfUEFSQU0oaW1hZ2VTaXplKTsKICAgICBhdXRvJiBzdGF0ZSA9IGdyYXBoaWNzQ29udGV4dCgp
LnN0YXRlKCk7Ci0gICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShtX3BsYXRmb3JtQ29udGV4dCwg
aW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRN
b2RlLCBvcmllbnRhdGlvbiwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgc3RhdGUu
YWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOworICAgIENhaXJvOjpkcmF3TmF0aXZl
SW1hZ2UobV9wbGF0Zm9ybUNvbnRleHQsIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwg
eyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5IH0sIHN0YXRlLmFscGhh
LCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRJ
bXBsQ2Fpcm86OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBw
YXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1v
ZGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGlt
YWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKIHsKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UubmF0aXZlSW1hZ2VGb3JD
dXJyZW50RnJhbWUoKSkKLSAgICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKG1fcGxhdGZvcm1Db250
ZXh0LCBzdXJmYWNlLmdldCgpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxl
UmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1v
ZGUpOworICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4obV9wbGF0Zm9ybUNvbnRleHQsIHN1cmZh
Y2UuZ2V0KCksIEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
SW1wbENhaXJvOjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRo
aWNrbmVzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKaW5kZXggZjFiMDJkMzRh
YjJmZjI5YWRjZmI4NzQzYzg5NGMxZTQ2MDhiNjczYi4uMmY1MTlkNDU0NzdkNDM3OThiNzU5YTgx
NTM0NjJjOTgzNTM3Y2Q5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKQEAg
LTc0LDggKzc0LDggQEAgcHVibGljOgogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1h
Z2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFn
ZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9h
dFNpemUmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92
ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYsIEltYWdlOjpU
aWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92
ZXJyaWRlOwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwg
Y29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBG
bG9hdFNpemUmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlOjpOb3Jt
YWwpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdQ
YXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0
KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdMaW5lKGNv
bnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm8uY3BwCmluZGV4IGUwMWU2MGI5ZWVlN2JhMTgzOTdhNjNlZjRhMTc2NjdmZmRjNGE0NWEu
LjBmNzI2NTcwMjRlYmFjNzQwYjBlNzhmNzMyYWM5M2ZiMGRkYjdkMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm8uY3BwCkBAIC0zNDQsMjQgKzM0NCwyMyBAQCBCYWNraW5nU3RvcmVDb3B5IEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpCiAgICAgcmV0dXJuIERvbnRDb3B5QmFja2luZ1N0b3Jl
OwogfQogCi12b2lkIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEltYWdlQnVmZmVyOjpk
cmF3Q29uc3VtaW5nKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIEdy
YXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7Ci0gICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRleHQsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBvcCwgYmxlbmRNb2RlKTsKKyAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwg
ZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogfQogCi12b2lkIEltYWdlQnVmZmVyOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCYgZGVzdGluYXRpb25Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsCi0gICAgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCYgZGVzdGluYXRpb25Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsICBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0
aW9ucykKIHsKICAgICBCYWNraW5nU3RvcmVDb3B5IGNvcHlNb2RlID0gJmRlc3RpbmF0aW9uQ29u
dGV4dCA9PSAmY29udGV4dCgpID8gQ29weUJhY2tpbmdTdG9yZSA6IERvbnRDb3B5QmFja2luZ1N0
b3JlOwogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBjb3B5SW1hZ2UoY29weU1vZGUpOwotICAg
IGRlc3RpbmF0aW9uQ29udGV4dC5kcmF3SW1hZ2UoKmltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwg
SW1hZ2VQYWludGluZ09wdGlvbnMob3AsIGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlOjpTeW5jaHJv
bm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkpOworICAgIGRlc3RpbmF0aW9uQ29udGV4dC5k
cmF3SW1hZ2UoKmltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQg
SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5k
TW9kZSkKKyAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoUmVm
UHRyPEltYWdlPiBpbWFnZSA9IGNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSkpCi0gICAg
ICAgIGltYWdlLT5kcmF3UGF0dGVybihjb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wKTsKKyAgICAgICAgaW1hZ2UtPmRyYXdQYXR0
ZXJuKGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwg
c3BhY2luZywgb3B0aW9ucyk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXI6OnBsYXRmb3JtVHJhbnNm
b3JtQ29sb3JTcGFjZShjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4mIGxvb2tVcFRhYmxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0
aXZlSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9OYXRpdmVJbWFnZUNhaXJvLmNwcAppbmRleCA4MjNmZjBjN2Q3NmM4M2VhZWQ2M2VjOThmZjE0
ZjAyYTM0MGJmOWMyLi5kZTMwNGYzNWY2NTI5Y2Q2ZmQxNThlOWEwM2M5ZjEwYzNkNWJmYzI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJ
bWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9OYXRpdmVJbWFnZUNhaXJvLmNwcApAQCAtNTcsOSArNTcsOSBAQCBDb2xvciBuYXRpdmVJbWFn
ZVNpbmdsZVBpeGVsU29saWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiAgICAg
cmV0dXJuIGNvbG9yRnJvbVByZW11bHRpcGxpZWRBUkdCKCpwaXhlbCk7CiB9CiAKLXZvaWQgZHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEludFNpemUmIGltYWdlU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24pCit2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2Us
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBpbWFnZVNpemUsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIGNvbnRleHQuZHJhd05hdGl2ZUlt
YWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVyYXRv
ciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbik7CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2Uo
aW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogfQogCiB2b2lk
IGNsZWFyTmF0aXZlSW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHQzRENHLmNwcAppbmRleCA4N2M5OTA3OWJhMGZhMTQ1MzJlZjI1Mzc2YmEyNTAyNjhhYzA5
NWZiLi5jZDZiYjczMGU2MTYxOTE5M2VjZTYwYTk3ZWY4ODhkNzdlZmI2MTBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHQzRENHLmNwcApAQCAtNTM5LDcgKzUzOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnBhaW50VG9DYW52YXMoY29uc3QgdW5zaWduZWQgY2hhciogaW1hZ2VQaXhlbHMsIGNvbnN0IElu
CiAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKICAgICBjb250ZXh0LnRyYW5z
bGF0ZSgwLCAtaW1hZ2VTaXplLmhlaWdodCgpKTsKICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJw
b2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbk5vbmUpOwotICAgIGNvbnRleHQuZHJhd05hdGl2
ZUltYWdlKGNnSW1hZ2UsIGltYWdlU2l6ZSwgY2FudmFzUmVjdCwgRmxvYXRSZWN0KEZsb2F0UG9p
bnQoKSwgaW1hZ2VTaXplKSwgQ29tcG9zaXRlQ29weSk7CisgICAgY29udGV4dC5kcmF3TmF0aXZl
SW1hZ2UoY2dJbWFnZSwgaW1hZ2VTaXplLCBjYW52YXNSZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2lu
dCgpLCBpbWFnZVNpemUpLCB7IENvbXBvc2l0ZUNvcHkgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBlM2ZiMzg0ZGIzMjc5NDYyOTU5OGMyOWNi
YTUwNzMxNjM5MDE4OGI5Li5lZTI3MzhmNDIxMGM2OTJjMzViOTJhOGRlODlhZmRhMjcwYmQ4YjIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0yNzMsMTMgKzI3MywxMyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZp
Y2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1h
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGlt
YWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBpZiAobV9pbXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGlt
YWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBvcmllbnRh
dGlvbik7CisgICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUs
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMjg4LDcgKzI4OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwgY29uc3QKICNlbmRpZgogICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBzdWJJbWFnZShpbWFnZSk7CiAKLSAgICBmbG9hdCBjdXJySGVp
Z2h0ID0gb3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSA/IENHSW1hZ2VHZXRXaWR0aChz
dWJJbWFnZS5nZXQoKSkgOiBDR0ltYWdlR2V0SGVpZ2h0KHN1YkltYWdlLmdldCgpKTsKKyAgICBm
bG9hdCBjdXJySGVpZ2h0ID0gb3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0
KCkgPyBDR0ltYWdlR2V0V2lkdGgoc3ViSW1hZ2UuZ2V0KCkpIDogQ0dJbWFnZUdldEhlaWdodChz
dWJJbWFnZS5nZXQoKSk7CiAgICAgaWYgKGN1cnJIZWlnaHQgPD0gc3JjUmVjdC55KCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMzU4LDE1ICszNTgsMTUgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25z
dAogICAgIGFkanVzdGVkRGVzdFJlY3QgPSByb3VuZFRvRGV2aWNlUGl4ZWxzKGFkanVzdGVkRGVz
dFJlY3QpOwogI2VuZGlmCiAKLSAgICBzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9wZXJhdGlvbihvcCwg
YmxlbmRNb2RlKTsKKyAgICBzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9wZXJhdGlvbihvcHRpb25zLmNv
bXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogCiAgICAgLy8gSW1hZ2VP
cmllbnRhdGlvbiBleHBlY3RzIHRoZSBvcmlnaW4gdG8gYmUgYXQgKDAsIDApCiAgICAgQ0dDb250
ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIGFkanVzdGVkRGVzdFJlY3QueCgpLCBhZGp1c3RlZERl
c3RSZWN0LnkoKSk7CiAgICAgYWRqdXN0ZWREZXN0UmVjdC5zZXRMb2NhdGlvbihGbG9hdFBvaW50
KCkpOwogCi0gICAgaWYgKG9yaWVudGF0aW9uICE9IEltYWdlT3JpZW50YXRpb246Ok5vbmUpIHsK
LSAgICAgICAgQ0dDb250ZXh0Q29uY2F0Q1RNKGNvbnRleHQsIG9yaWVudGF0aW9uLnRyYW5zZm9y
bUZyb21EZWZhdWx0KGFkanVzdGVkRGVzdFJlY3Quc2l6ZSgpKSk7Ci0gICAgICAgIGlmIChvcmll
bnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKSB7CisgICAgaWYgKG9wdGlvbnMub3JpZW50YXRp
b24oKSAhPSBJbWFnZU9yaWVudGF0aW9uOjpOb25lKSB7CisgICAgICAgIENHQ29udGV4dENvbmNh
dENUTShjb250ZXh0LCBvcHRpb25zLm9yaWVudGF0aW9uKCkudHJhbnNmb3JtRnJvbURlZmF1bHQo
YWRqdXN0ZWREZXN0UmVjdC5zaXplKCkpKTsKKyAgICAgICAgaWYgKG9wdGlvbnMub3JpZW50YXRp
b24oKS51c2VzV2lkdGhBc0hlaWdodCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgZGVzdGluYXRp
b24gcmVjdCB3aWxsIGhhdmUgaXQncyB3aWR0aCBhbmQgaGVpZ2h0IGFscmVhZHkgcmV2ZXJzZWQg
Zm9yIHRoZSBvcmllbnRhdGlvbiBvZgogICAgICAgICAgICAgLy8gdGhlIGltYWdlLCBhcyBpdCB3
YXMgbmVlZGVkIGZvciBwYWdlIGxheW91dCwgc28gd2UgbmVlZCB0byByZXZlcnNlIGl0IGJhY2sg
aGVyZS4KICAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3QgPSBGbG9hdFJlY3QoYWRqdXN0ZWRE
ZXN0UmVjdC54KCksIGFkanVzdGVkRGVzdFJlY3QueSgpLCBhZGp1c3RlZERlc3RSZWN0LmhlaWdo
dCgpLCBhZGp1c3RlZERlc3RSZWN0LndpZHRoKCkpOwpAQCAtNDA4LDEzICs0MDgsMTMgQEAgc3Rh
dGljIHZvaWQgcGF0dGVyblJlbGVhc2VDYWxsYmFjayh2b2lkKiBpbmZvKQogICAgIH0pOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBj
b25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUg
YmxlbmRNb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFwYXR0ZXJu
VHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9p
bXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxl
UmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOwor
ICAgICAgICBtX2ltcGwtPmRyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0CiAg
ICAgQ0dDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogICAgIENHQ29udGV4
dENsaXBUb1JlY3QoY29udGV4dCwgZGVzdFJlY3QpOwogCi0gICAgc2V0UGxhdGZvcm1Db21wb3Np
dGVPcGVyYXRpb24ob3AsIGJsZW5kTW9kZSk7CisgICAgc2V0UGxhdGZvcm1Db21wb3NpdGVPcGVy
YXRpb24ob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsK
IAogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCBkZXN0UmVjdC54KCksIGRlc3RS
ZWN0LnkoKSArIGRlc3RSZWN0LmhlaWdodCgpKTsKICAgICBDR0NvbnRleHRTY2FsZUNUTShjb250
ZXh0LCAxLCAtMSk7CkBAIC00MzksMTEgKzQzOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
CiAgICAgZmxvYXQgaCA9IENHSW1hZ2VHZXRIZWlnaHQodGlsZUltYWdlLmdldCgpKTsKIAogICAg
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBzdWJJbWFnZTsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUgPSBpbWFnZS5vcmlnaW5hbFNpemUoKTsKLSNlbHNl
CiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLnNpemUoKTsKLSNlbmRpZgogICAgIGlm
ICh0aWxlUmVjdC5zaXplKCkgPT0gaW1hZ2VTaXplKQogICAgICAgICBzdWJJbWFnZSA9IHRpbGVJ
bWFnZTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggZDM1ZmYwZWZmOTcxOTUwZWVkMWUzZmQw
MjZiY2RhOWVhZmEzNGU0Ni4uODM3Yjg3NzNmNmUzOWMyNzk1NDMzNjYyNzIwOTgwNGI2M2NlZmU5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDRy5jcHAKQEAgLTMzNCwxMSArMzM0LDExIEBAIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2
aW9yCiAgICAgcmV0dXJuIGltYWdlOwogfQogCi12b2lkIEltYWdlQnVmZmVyOjpkcmF3Q29uc3Vt
aW5nKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIEdyYXBoaWNzQ29u
dGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUp
Cit2b2lkIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4gaW1hZ2VCdWZmZXIsIEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFD
S0lOR19TVE9SRSkKICAgICBpZiAoIWltYWdlQnVmZmVyLT5tX2RhdGEuc3VyZmFjZSkgewotICAg
ICAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIG9w
LCBibGVuZE1vZGUpOworICAgICAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwgZGVz
dFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApA
QCAtMzUxLDEzICszNTEsMTMgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyLCBHcmFwaGkKICAgICAKICAgICBG
bG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKICAgICBhZGp1c3RlZFNyY1JlY3Qu
c2NhbGUocmVzb2x1dGlvblNjYWxlKTsKLSAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2Uo
aW1hZ2UuZ2V0KCksIGJhY2tpbmdTdG9yZVNpemUsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3Qs
IG9wLCBibGVuZE1vZGUpOworICAgIGRlc3RDb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZS5n
ZXQoKSwgYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgb3B0aW9u
cyk7CiAjZWxzZQotICAgIGltYWdlQnVmZmVyLT5kcmF3KGRlc3RDb250ZXh0LCBkZXN0UmVjdCwg
c3JjUmVjdCwgb3AsIGJsZW5kTW9kZSk7CisgICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRl
eHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKICNlbmRpZgogfQogCi12b2lkIEltYWdl
QnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7
CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlOwogICAgIGlmICgmZGVzdENvbnRleHQg
PT0gJmNvbnRleHQoKSB8fCBkZXN0Q29udGV4dC5pc0FjY2VsZXJhdGVkQ29udGV4dCgpKQpAQCAt
MzY3LDEwICszNjcsMTAgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQm
IGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogCiAgICAgRmxvYXRSZWN0
IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CiAgICAgYWRqdXN0ZWRTcmNSZWN0LnNjYWxlKG1f
cmVzb2x1dGlvblNjYWxlKTsKLSAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2Uu
Z2V0KCksIG1fZGF0YS5iYWNraW5nU3RvcmVTaXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0
LCBvcCwgYmxlbmRNb2RlKTsKKyAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2Uu
Z2V0KCksIG1fZGF0YS5iYWNraW5nU3RvcmVTaXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0
LCBvcHRpb25zKTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBJbWFnZUJ1ZmZlcjo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9h
dFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewog
ICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OwogICAgIGFkanVzdGVkU3Jj
UmVjdC5zY2FsZShtX3Jlc29sdXRpb25TY2FsZSk7CkBAIC0zNzgsMTQgKzM3OCwxNCBAQCB2b2lk
IEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlcwogICAgIGlmICghY29udGV4dCgpLmlzQWNjZWxlcmF0ZWRDb250
ZXh0KCkpIHsKICAgICAgICAgaWYgKCZkZXN0Q29udGV4dCA9PSAmY29udGV4dCgpIHx8IGRlc3RD
b250ZXh0LmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkpIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8
SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSkpIC8vIERyYXdpbmcgaW50
byBvdXIgb3duIGJ1ZmZlciwgbmVlZCB0byBkZWVwIGNvcHkuCi0gICAgICAgICAgICAgICAgY29w
eS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKKyAgICAgICAg
ICAgICAgICBjb3B5LT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVk
U3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKFJlZlB0cjxJbWFnZT4gaW1hZ2VGb3JSZW5k
ZXJpbmcgPSBjb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpKQotICAgICAgICAgICAgICAg
IGltYWdlRm9yUmVuZGVyaW5nLT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFk
anVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVu
ZE1vZGUpOworICAgICAgICAgICAgICAgIGltYWdlRm9yUmVuZGVyaW5nLT5kcmF3UGF0dGVybihk
ZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwg
cGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgaWYgKFJlZlB0cjxJbWFnZT4gY29weSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3JlKSkK
LSAgICAgICAgICAgIGNvcHktPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRq
dXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJsZW5k
TW9kZSk7CisgICAgICAgICAgICBjb3B5LT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJl
Y3QsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9w
dGlvbnMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcAppbmRleCBmMDJkNWQ1NjYwYTZjOGExMTFkNWJj
ODIxMGY2ZDVkOWZlYWQzYmQ4Li44Mjk0MTE2NjFlOTg3MDYwZTAzYjNmMDNlMGU2ZGJjMWU3ZDIw
NDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9OYXRp
dmVJbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9O
YXRpdmVJbWFnZUNHLmNwcApAQCAtNjksNyArNjksNyBAQCBDb2xvciBuYXRpdmVJbWFnZVNpbmds
ZVBpeGVsU29saWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiAgICAgcmV0dXJu
IENvbG9yKHBpeGVsWzBdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzFdICogMjU1IC8gcGl4ZWxb
M10sIHBpeGVsWzJdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzNdKTsKIH0KIAotdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5k
TW9kZSBtb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQordm9pZCBkcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgLy8gU3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4gdXMgYW4gaW1hZ2UgdGhh
dCBpcyBzbWFsbGVyIHRoYW4gc2l6ZSgpLgogICAgIEludFNpemUgc3Vic2FtcGxlZEltYWdlU2l6
ZSA9IG5hdGl2ZUltYWdlU2l6ZShpbWFnZSk7CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zCiAgICAgaWYgKHN1YnNhbXBsZWRJbWFnZVNpemUgIT0gc3JjU2l6ZSkKICAg
ICAgICAgYWRqdXN0ZWRTcmNSZWN0ID0gbWFwUmVjdChzcmNSZWN0LCBGbG9hdFJlY3QoeyB9LCBz
cmNTaXplKSwgRmxvYXRSZWN0KHsgfSwgc3Vic2FtcGxlZEltYWdlU2l6ZSkpOwogCi0gICAgY29u
dGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0
LCBhZGp1c3RlZFNyY1JlY3QsIG9wLCBtb2RlLCBvcmllbnRhdGlvbik7CisgICAgY29udGV4dC5k
cmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBhZGp1
c3RlZFNyY1JlY3QsIG9wdGlvbnMpOwogfQogCiB2b2lkIGNsZWFyTmF0aXZlSW1hZ2VTdWJpbWFn
ZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcAppbmRleCAzZDQz
Y2ZiNDExMWU3YjhiZjFkZmIxYjBlNzgzMzJmNjZhMmIxNDk2Li44MGY2YjE4NzI1MjI5NjhlYTdk
OTU3NmI3ZTAwNTYzMzMyNTg4MjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcApAQCAtNjYsNyArNjYsNyBA
QCBTdHJpbmcgUERGRG9jdW1lbnRJbWFnZTo6ZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdAogICAg
IHJldHVybiAicGRmIjsKIH0KIAotRmxvYXRTaXplIFBERkRvY3VtZW50SW1hZ2U6OnNpemUoKSBj
b25zdAorRmxvYXRTaXplIFBERkRvY3VtZW50SW1hZ2U6OnNpemUoSW1hZ2VPcmllbnRhdGlvbikg
Y29uc3QKIHsKICAgICBGbG9hdFNpemUgZXhwYW5kZWRDcm9wQm94U2l6ZSA9IEZsb2F0U2l6ZShl
eHBhbmRlZEludFNpemUobV9jcm9wQm94LnNpemUoKSkpOwogCkBAIC0yNTcsNyArMjU3LDcgQEAg
dm9pZCBQREZEb2N1bWVudEltYWdlOjp1cGRhdGVDYWNoZWRJbWFnZUlmTmVlZGVkKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QKICAgICBkZWNvZGVkU2l6ZUNoYW5nZWQoaW50ZXJuYWxT
aXplLnVuY2xhbXBlZEFyZWEoKSAqIDQpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgUERGRG9jdW1l
bnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwg
QmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1
bHQgUERGRG9jdW1lbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1f
aGFzUGFnZSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKQEAg
LTI2Niw3ICsyNjYsNyBAQCBJbWFnZURyYXdSZXN1bHQgUERGRG9jdW1lbnRJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdAogCiAgICAgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgICAg
IGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKG9wKTsKKyAgICAgICAgY29udGV4dC5zZXRD
b21wb3NpdGVPcGVyYXRpb24ob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKIAogICAgICAg
ICBpZiAobV9jYWNoZWRJbWFnZUJ1ZmZlcikgewogICAgICAgICAgICAgLy8gRHJhdyB0aGUgSW1h
Z2VCdWZmZXIgJ21fY2FjaGVkSW1hZ2VCdWZmZXInIHRvIHRoZSByZWN0YW5nbGUgJ21fY2FjaGVk
SW1hZ2VSZWN0JwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5oCmluZGV4IDliZjE2N2M0NTU0MjAxNjBiOGIwZjg5NzNhN2Qx
Nzk1NGY2NjE3NTUuLmVkOWQxNmQyODVhMTMyZjY3MGZmMDg0Y2UxMzAwN2YzZDQ1NGY1OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1
bWVudEltYWdlLmgKQEAgLTc2LDkgKzc2LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lE
ZWNvZGVkRGF0YShib29sIC8qZGVzdHJveUFsbCovID0gdHJ1ZSkgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExl
bmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBvdmVycmlk
ZTsKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIEZsb2F0U2l6ZSBz
aXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikg
b3ZlcnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoaXMgdG8gYmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAgICAgYm9vbCBjdXJyZW50RnJh
bWVLbm93blRvQmVPcGFxdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IGI3MTNlODVlZmM0ODZhZTFhZTFl
MGQ3MzAzNjFkOWE1NGIyOGM4ODcuLmQzOWI2NjJhNGFhOGFiNjQ2YjMzMTcwMTAyZGI2ZmM4Y2Q4
MmExNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTQ4Nyw3ICs0
ODcsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29u
c3QgRHJhd1RpbGVkU2NhbGVkSW1hZ2UmIGl0ZW0pCiB9CiAKICNpZiBVU0UoQ0cpIHx8IFVTRShD
QUlSTykgfHwgVVNFKERJUkVDVDJEKQotRHJhd05hdGl2ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKK0RyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2
ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd05h
dGl2ZUltYWdlKQogI2lmIFVTRShDRykKICAgICAvLyBGSVhNRTogTmVlZCB0byBzdG9yZSBhbiBp
bWFnZSBmb3IgQ2Fpcm8uCkBAIC00OTYsMjMgKzQ5NiwxNyBAQCBEcmF3TmF0aXZlSW1hZ2U6OkRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaQogICAgICwgbV9pbWFnZVNpemUoaW1hZ2VTaXplKQogICAgICwgbV9kZXN0aW5hdGlvbihk
ZXN0UmVjdCkKICAgICAsIG1fc3JjUmVjdChzcmNSZWN0KQotI2lmIFVTRShDRykKLSAgICAsIG1f
b3Aob3ApCi0gICAgLCBtX2JsZW5kTW9kZShibGVuZE1vZGUpCi0jZW5kaWYKLSAgICAsIG1fb3Jp
ZW50YXRpb24ob3JpZW50YXRpb24pCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKIHsKICNpZiAh
VVNFKENHKQogICAgIFVOVVNFRF9QQVJBTShpbWFnZSk7Ci0gICAgVU5VU0VEX1BBUkFNKG9wKTsK
LSAgICBVTlVTRURfUEFSQU0oYmxlbmRNb2RlKTsKICNlbmRpZgogfQogCiB2b2lkIERyYXdOYXRp
dmVJbWFnZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewogI2lmIFVT
RShDRykKLSAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShtX2ltYWdlLCBtX2ltYWdlU2l6ZSwg
bV9kZXN0aW5hdGlvbiwgbV9zcmNSZWN0LCBtX29wLCBtX2JsZW5kTW9kZSwgbV9vcmllbnRhdGlv
bik7CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobV9pbWFnZSwgbV9pbWFnZVNpemUsIG1f
ZGVzdGluYXRpb24sIG1fc3JjUmVjdCwgbV9vcHRpb25zKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKGNvbnRleHQpOwogI2VuZGlmCkBAIC01MjgsNyArNTIyLDcgQEAgc3RhdGljIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdOYXRpdmVJbWFnZSYgaXRl
bSkKIH0KICNlbmRpZgogCi1EcmF3UGF0dGVybjo6RHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlKQorRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKICAgICA6IERyYXdpbmdJdGVtKEl0ZW1UeXBlOjpEcmF3UGF0dGVybikKICAg
ICAsIG1faW1hZ2UoaW1hZ2UpCiAgICAgLCBtX3BhdHRlcm5UcmFuc2Zvcm0ocGF0dGVyblRyYW5z
Zm9ybSkKQEAgLTUzNiwxNCArNTMwLDEzIEBAIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihJbWFn
ZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjCiAgICAg
LCBtX2Rlc3RpbmF0aW9uKGRlc3RSZWN0KQogICAgICwgbV9waGFzZShwaGFzZSkKICAgICAsIG1f
c3BhY2luZyhzcGFjaW5nKQotICAgICwgbV9vcChvcCkKLSAgICAsIG1fYmxlbmRNb2RlKGJsZW5k
TW9kZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogewogfQogCiB2b2lkIERyYXdQYXR0ZXJu
OjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7Ci0gICAgY29udGV4dC5k
cmF3UGF0dGVybihtX2ltYWdlLmdldCgpLCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3Bh
dHRlcm5UcmFuc2Zvcm0sIG1fcGhhc2UsIG1fc3BhY2luZywgbV9vcCwgbV9ibGVuZE1vZGUpOwor
ICAgIGNvbnRleHQuZHJhd1BhdHRlcm4obV9pbWFnZS5nZXQoKSwgbV9kZXN0aW5hdGlvbiwgbV90
aWxlUmVjdCwgbV9wYXR0ZXJuVHJhbnNmb3JtLCBtX3BoYXNlLCBtX3NwYWNpbmcsIG1fb3B0aW9u
cyk7CiB9CiAKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEcmF3UGF0dGVybiYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmlu
ZGV4IDhiY2NlMTliMjRlMWZmNWY2NWI2YmY0OGM5NDE3MGM5YjdlMDFmYjguLmNmM2NmOTI5MzBj
NDZkYmU2YzcyOTdhNWE5MWNlMjUxMjVjYmE3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuaApAQCAtNjQxLDE2ICs2NDEsMTYgQEAgcHJpdmF0ZToKICNpZiBVU0UoQ0cpIHx8IFVT
RShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogY2xhc3MgRHJhd05hdGl2ZUltYWdlIDogcHVibGlj
IERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERyYXdOYXRpdmVJbWFnZT4g
Y3JlYXRlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50
YXRpb24gb3JpZW50YXRpb24pCisgICAgc3RhdGljIFJlZjxEcmF3TmF0aXZlSW1hZ2U+IGNyZWF0
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0
LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbikpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wdGlvbnMpKTsKICAgICB9CiAKICAgICBGbG9hdFJlY3Qgc291cmNlKCkgY29u
c3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CiAgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbjsgfQogCiBwcml2YXRlOgotICAgIERyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbik7CisgICAgRHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRl
eHQmKSBjb25zdCBvdmVycmlkZTsKIApAQCAtNjYyLDE5ICs2NjIsMTUgQEAgcHJpdmF0ZToKICAg
ICBGbG9hdFNpemUgbV9pbWFnZVNpemU7CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb247CiAg
ICAgRmxvYXRSZWN0IG1fc3JjUmVjdDsKLSNpZiBVU0UoQ0cpCi0gICAgQ29tcG9zaXRlT3BlcmF0
b3IgbV9vcDsKLSAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGU7Ci0jZW5kaWYKLSAgICBJbWFnZU9y
aWVudGF0aW9uIG1fb3JpZW50YXRpb247CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRp
b25zOwogfTsKICNlbmRpZgogCiBjbGFzcyBEcmF3UGF0dGVybiA6IHB1YmxpYyBEcmF3aW5nSXRl
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEcmF3UGF0dGVybj4gY3JlYXRlKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBv
cCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBzdGF0aWMgUmVmPERyYXdQYXR0ZXJuPiBjcmVh
dGUoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRy
YW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0
dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpKTsKICAgICB9CiAKICAgICBj
b25zdCBJbWFnZSYgaW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CkBAIC02
ODUsNyArNjgxLDcgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBzcGFjaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9zcGFjaW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgRHJhd1BhdHRlcm4oSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5v
cm1hbCk7CisgICAgRHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4
dCYpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC02OTcsOCArNjkzLDcgQEAgcHJpdmF0ZToKICAgICBG
bG9hdFJlY3QgbV9kZXN0aW5hdGlvbjsKICAgICBGbG9hdFBvaW50IG1fcGhhc2U7CiAgICAgRmxv
YXRTaXplIG1fc3BhY2luZzsKLSAgICBDb21wb3NpdGVPcGVyYXRvciBtX29wOwotICAgIEJsZW5k
TW9kZSBtX2JsZW5kTW9kZTsKKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX29wdGlvbnM7CiB9
OwogCiAvLyBJcyBEcmF3aW5nSXRlbSBiZWNhdXNlIHRoZSBzaXplIG9mIHRoZSB0cmFuc3BhcmVu
Y3kgbGF5ZXIgaXMgaW1wbGljaXRseSB0aGUgY2xpcCBib3VuZHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggZTc5N2E3ZmQ0Mjg3MThkMzk3MDgwMjU0YTJm
ZmQ2MTYyM2NhNjU0ZS4uZTIwZjNlZDEzY2I2ZTU1Zjc4MmU4YzlhZGMxMzA4NzJkZTZlZjEzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMTI3LDE2ICsx
MjcsMTYgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXQKIH0KIAogI2lmIFVTRShDRykgfHwgVVNF
KENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi12b2lkIFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKK3ZvaWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNh
c3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0oRHJhd05hdGl2ZUltYWdlOjpjcmVhdGUoaW1hZ2Us
IGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIG9yaWVudGF0aW9u
KSkpOworICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFw
cGVuZEl0ZW0oRHJhd05hdGl2ZUltYWdlOjpjcmVhdGUoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJl
Y3QsIHNyY1JlY3QsIG9wdGlvbnMpKSk7CiAgICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsK
IH0KICNlbmRpZgogCi12b2lkIFJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5k
TW9kZSBibGVuZE1vZGUpCit2b2lkIFJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3
aW5nSXRlbT4oYXBwZW5kSXRlbShEcmF3UGF0dGVybjo6Y3JlYXRlKGltYWdlLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2Rl
KSkpOworICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFw
cGVuZEl0ZW0oRHJhd1BhdHRlcm46OmNyZWF0ZShpbWFnZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucykpKTsKICAgICB1cGRhdGVJ
dGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaAppbmRleCAzMTc5OGMxYjJkNDc0Mzc0OThmYzMxNWFjMTYzZDM1ZTQ2NzUzN2YwLi41MTZk
NGRmOGM3ZmQ5ZWI1ZjI5OTc1NjU4ZGQ3NjNkMTgwMGMzY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTkyLDkgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBJbWFn
ZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNp
emUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29u
c3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1h
Z2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi0gICAgdm9pZCBk
cmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNl
bGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24pIG92ZXJy
aWRlOworICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29u
c3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9h
dFJlY3QmLCBmbG9hdCBib3JkZXJUaGlja25lc3MpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xp
bmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3Bw
CmluZGV4IGJlZjNhZDkwNzFlZThjNDUwZDkxZjliZjk4MjQ4NTU1ODBlMWY0MTcuLmU0ZDcyOTU3
YjBjZGU4N2YxN2ZmOTcyZmNiNzE5N2M5NTlmMzMwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcApAQCAtNzAsNyArNzAs
NyBAQCB2b2lkIEZFQmxlbmQ6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIsIGRy
YXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAg
ZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVnaW9u
T2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgp
LCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIEltYWdlUGFpbnRpbmdPcHRpb25zKENvbXBv
c2l0ZVNvdXJjZU92ZXIsIG1fbW9kZSkpOworICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVm
ZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQ
YWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXpl
KCkpLCB7IENvbXBvc2l0ZVNvdXJjZU92ZXIsIG1fbW9kZSB9KTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9z
aXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuY3BwCmluZGV4IDUzMjNiZWRhYTU3MGE0YjIxMjQxNjhjNDY1YjQ5NTFjMDQxZjQzOWEu
LmQ1NmRiNDBjMDQ5NGRiMTczZjAwMTc0NGI1YzFiYzRkMmMxYTVhMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUu
Y3BwCkBAIC0yNzAsOCArMjcwLDggQEAgdm9pZCBGRUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNv
ZnR3YXJlKCkKICAgICAgICAgSW50UmVjdCBhZGp1c3RlZERlc3RpbmF0aW9uUmVjdCA9IGRlc3Rp
bmF0aW9uUmVjdCAtIGFic29sdXRlUGFpbnRSZWN0KCkubG9jYXRpb24oKTsKICAgICAgICAgSW50
UmVjdCBzb3VyY2VSZWN0ID0gZGVzdGluYXRpb25SZWN0IC0gaW4tPmFic29sdXRlUGFpbnRSZWN0
KCkubG9jYXRpb24oKTsKICAgICAgICAgSW50UmVjdCBzb3VyY2UyUmVjdCA9IGRlc3RpbmF0aW9u
UmVjdCAtIGluMi0+YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigpOwotICAgICAgICBmaWx0
ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIyLCBhZGp1c3RlZERlc3RpbmF0
aW9uUmVjdCwgc291cmNlMlJlY3QpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1
ZmZlcigqaW1hZ2VCdWZmZXIsIGFkanVzdGVkRGVzdGluYXRpb25SZWN0LCBzb3VyY2VSZWN0LCBD
b21wb3NpdGVTb3VyY2VJbik7CisgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVy
KCppbWFnZUJ1ZmZlcjIsIEZsb2F0UmVjdChhZGp1c3RlZERlc3RpbmF0aW9uUmVjdCksIEZsb2F0
UmVjdChzb3VyY2UyUmVjdCkpOworICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZl
cigqaW1hZ2VCdWZmZXIsIEZsb2F0UmVjdChhZGp1c3RlZERlc3RpbmF0aW9uUmVjdCksIEZsb2F0
UmVjdChzb3VyY2VSZWN0KSwgeyBDb21wb3NpdGVTb3VyY2VJbiB9KTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1JfT1VUOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IDM1ZDZh
ZTk4OTY3NzgwZGE5MWIzYzUwNjBkZGI2MmU0ODczYWVkMDIuLjU4MWNhMjZmMDBmMDU2NGVhY2E2
OTVmM2M1YTQ4OWFhNzFiZjlhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTg4NSwxNSArODg1LDExIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hCiAgICAgaWYgKCFHU1RfSVNfU0FNUExFKG1fc2FtcGxlLmdldCgpKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFpbnRpbmdPcHRp
b25zKENvbXBvc2l0ZUNvcHkpOwotICAgIGlmIChtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQp
Ci0gICAgICAgIHBhaW50aW5nT3B0aW9ucy5tX29yaWVudGF0aW9uID0gbV92aWRlb1NvdXJjZU9y
aWVudGF0aW9uOwotCiAgICAgYXV0byBnc3RJbWFnZSA9IEltYWdlR1N0cmVhbWVyOjpjcmVhdGVJ
bWFnZShtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKCFnc3RJbWFnZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgY29udGV4dC5kcmF3SW1hZ2UoZ3N0SW1hZ2UtPmltYWdlKCksIHJlY3QsIGdzdElt
YWdlLT5yZWN0KCksIHBhaW50aW5nT3B0aW9ucyk7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoZ3N0
SW1hZ2UtPmltYWdlKCksIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIHsgQ29tcG9zaXRlQ29weSwg
bV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkID8gbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uIDog
SW1hZ2VPcmllbnRhdGlvbigpIH0pOwogfQogCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmlj
b3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAK
aW5kZXggNTBlMGMzYzdkOTc2ODI2YmE3YmI4MTg1ZDFlZTE0MjEyOWFkYTAyYy4uMWQyYWY2OWZk
NmZhNzgzZjBmYzE2NjFhODY4MGMyYjEwNjhjMTZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25S
ZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAKQEAgLTU0OSwxNCArNTQ5
LDE0IEBAIEltYWdlRHJhd1Jlc3VsdCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3VGlsZWRJ
bWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0CiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dEltcGw6OmRyYXdUaWxlZEltYWdlSW1wbChncmFwaGljc0NvbnRleHQoKSwgaW1hZ2UsIGRlc3Rp
bmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBhaW50
aW5nT3B0aW9ucyk7CiB9CiAKLXZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIENhaXJvT3BlcmF0aW9uUmVj
b3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQog
ewotICAgIHN0cnVjdCBEcmF3TmF0aXZlSW1hZ2UgZmluYWwgOiBQYWludGluZ09wZXJhdGlvbiwg
T3BlcmF0aW9uRGF0YTxSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiwgRmxvYXRSZWN0LCBGbG9hdFJl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24sIEludGVy
cG9sYXRpb25RdWFsaXR5LCBmbG9hdCwgQ2Fpcm86OlNoYWRvd1N0YXRlPiB7CisgICAgc3RydWN0
IERyYXdOYXRpdmVJbWFnZSBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRh
PFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+LCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgSW1hZ2VQYWlu
dGluZ09wdGlvbnMsIGZsb2F0LCBDYWlybzo6U2hhZG93U3RhdGU+IHsKICAgICAgICAgdmlydHVh
bCB+RHJhd05hdGl2ZUltYWdlKCkgPSBkZWZhdWx0OwogCiAgICAgICAgIHZvaWQgZXhlY3V0ZShQ
YWludGluZ09wZXJhdGlvblJlcGxheSYgcmVwbGF5ZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29udGV4dEZvclJlcGxheShyZXBsYXll
ciksIGFyZzwwPigpLmdldCgpLCBhcmc8MT4oKSwgYXJnPDI+KCksIGFyZzwzPigpLCBhcmc8ND4o
KSwgYXJnPDU+KCksIGFyZzw2PigpLCBhcmc8Nz4oKSwgYXJnPDg+KCkpOworICAgICAgICAgICAg
Q2Fpcm86OmRyYXdOYXRpdmVJbWFnZShjb250ZXh0Rm9yUmVwbGF5KHJlcGxheWVyKSwgYXJnPDA+
KCkuZ2V0KCksIGFyZzwxPigpLCBhcmc8Mj4oKSwgYXJnPDM+KCksIGFyZzw0PigpLCBhcmc8NT4o
KSk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMpIG92ZXJy
aWRlCkBAIC01NjcsMTcgKzU2NywxNyBAQCB2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0CiAKICAgICBV
TlVTRURfUEFSQU0oaW1hZ2VTaXplKTsKICAgICBhdXRvJiBzdGF0ZSA9IGdyYXBoaWNzQ29udGV4
dCgpLnN0YXRlKCk7Ci0gICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd05hdGl2ZUltYWdlPihS
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PihpbWFnZS5nZXQoKSksIGRlc3RSZWN0LCBzcmNSZWN0LCBj
b21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgc3RhdGUuaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkp
KTsKKyAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3TmF0aXZlSW1hZ2U+KFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+KGltYWdlLmdldCgpKSwgZGVzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRp
bmdPcHRpb25zKG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpLCBzdGF0
ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSkpOwogfQogCi12b2lkIENhaXJvT3Bl
cmF0aW9uUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxv
YXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1BhdHRl
cm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIHN0cnVjdCBEcmF3UGF0dGVybiBm
aW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+LCBJbnRTaXplLCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgQWZmaW5lVHJhbnNmb3JtLCBG
bG9hdFBvaW50LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlPiB7CisgICAgc3RydWN0IERy
YXdQYXR0ZXJuIGZpbmFsIDogUGFpbnRpbmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4sIEludFNpemUsIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBBZmZpbmVU
cmFuc2Zvcm0sIEZsb2F0UG9pbnQsIEltYWdlUGFpbnRpbmdPcHRpb25zPiB7CiAgICAgICAgIHZp
cnR1YWwgfkRyYXdQYXR0ZXJuKCkgPSBkZWZhdWx0OwogCiAgICAgICAgIHZvaWQgZXhlY3V0ZShQ
YWludGluZ09wZXJhdGlvblJlcGxheSYgcmVwbGF5ZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIENhaXJvOjpkcmF3UGF0dGVybihjb250ZXh0Rm9yUmVwbGF5KHJlcGxheWVyKSwg
YXJnPDA+KCkuZ2V0KCksIGFyZzwxPigpLCBhcmc8Mj4oKSwgYXJnPDM+KCksIGFyZzw0PigpLCBh
cmc8NT4oKSwgYXJnPDY+KCksIGFyZzw3PigpKTsKKyAgICAgICAgICAgIENhaXJvOjpkcmF3UGF0
dGVybihjb250ZXh0Rm9yUmVwbGF5KHJlcGxheWVyKSwgYXJnPDA+KCkuZ2V0KCksIGFyZzwxPigp
LCBhcmc8Mj4oKSwgYXJnPDM+KCksIGFyZzw0PigpLCBhcmc8NT4oKSwgYXJnPDY+KCkpOwogICAg
ICAgICB9CiAKICAgICAgICAgdm9pZCBkdW1wKFRleHRTdHJlYW0mIHRzKSBvdmVycmlkZQpAQCAt
NTg4LDcgKzU4OCw3IEBAIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1BhdHRlcm4o
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0CiAKICAgICBVTlVTRURfUEFS
QU0oc3BhY2luZyk7CiAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IGltYWdlLm5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkpCi0gICAgICAgIGFwcGVuZChjcmVhdGVDb21tYW5kPERyYXdQYXR0ZXJu
PihXVEZNb3ZlKHN1cmZhY2UpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxl
UmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1v
ZGUpKTsKKyAgICAgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd1BhdHRlcm4+KFdURk1vdmUo
c3VyZmFjZSksIEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucykpOwogfQogCiB2b2lkIENhaXJvT3BlcmF0aW9u
UmVjb3JkZXI6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgYm9yZGVyVGhp
Y2tuZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25S
ZWNvcmRlci5oCmluZGV4IGRiZDY3MjMxNDg0ZjkxODcyMWNjMGJmZGQ4NjM4NWU3ZmU1Yjg5Zjku
LjgyNjBjNDhhZDc5ODY4NGM2ZTU3YzFkNjZkZmJlNmQwMTAxYzFmNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJv
T3BlcmF0aW9uUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKQEAgLTY3LDgg
KzY3LDggQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdl
KFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVy
cmlkZTsKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoV2ViQ29y
ZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAg
ICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoV2ViQ29yZTo6SW1hZ2Um
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpJbWFnZTo6VGlsZVJ1bGUsIFdlYkNv
cmU6OkltYWdlOjpUaWxlUnVsZSwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRp
dmVJbWFnZVB0ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9w
ZXJhdG9yLCBXZWJDb3JlOjpCbGVuZE1vZGUsIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb24pIG92
ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3IsIFdlYkNvcmU6OkJs
ZW5kTW9kZSA9IFdlYkNvcmU6OkJsZW5kTW9kZTo6Tm9ybWFsKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRyYXdOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBm
bG9hdCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TGluZShjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRp
b25zLmNwcAppbmRleCAyNjYxOGU3ZjM1ZjZkNjJmN2I3ZGUxZjZiZjZhMmY2NGM3OTZlNGNmLi5j
YzlmOWQxMjI3ZmI1YTVhNjZmNzM2YWNiMjZmNGU4MzdkZjUzMjVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRp
b25zLmNwcApAQCAtNzUwLDcgKzc1MCw3IEBAIHZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRl
eHREaXJlY3QyRCYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGaWxsU291cmNlJiBmaWxsCiB9CiAK
IAotdm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3Jt
Q29udGV4dCwgSVdJQ0JpdG1hcCogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgb3JpZ2luYWxJbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGlt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dT
dGF0ZSYgc2hhZG93U3RhdGUpCit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRE
aXJlY3QyRCYgcGxhdGZvcm1Db250ZXh0LCBJV0lDQml0bWFwKiBpbWFnZSwgY29uc3QgRmxvYXRT
aXplJiBvcmlnaW5hbEltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywg
ZmxvYXQgZ2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKICAg
ICBhdXRvIG5hdGl2ZUltYWdlU2l6ZSA9IGJpdG1hcFNpemUoaW1hZ2UpOwogICAgIENPTVB0cjxJ
RDJEMUJpdG1hcD4gZGV2aWNlQml0bWFwOwpAQCAtNzU5LDEwICs3NTksMTAgQEAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgSVdJ
Q0JpdG1hcCogaW1hZ2UKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBpbWFnZVNpemUgPSBi
aXRtYXBTaXplKGRldmljZUJpdG1hcC5nZXQoKSk7Ci0gICAgZHJhd05hdGl2ZUltYWdlKHBsYXRm
b3JtQ29udGV4dCwgZGV2aWNlQml0bWFwLmdldCgpLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSwgZ2xvYmFsQWxwaGEsIHNoYWRvd1N0YXRlKTsKKyAgICBkcmF3TmF0
aXZlSW1hZ2UocGxhdGZvcm1Db250ZXh0LCBkZXZpY2VCaXRtYXAuZ2V0KCksIGltYWdlU2l6ZSwg
ZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMsIGdsb2JhbEFscGhhLCBzaGFkb3dTdGF0ZSk7CiB9
CiAKLXZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9y
bUNvbnRleHQsIElEMkQxQml0bWFwKiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIElt
YWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYg
c2hhZG93U3RhdGUpCit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHREaXJlY3Qy
RCYgcGxhdGZvcm1Db250ZXh0LCBJRDJEMUJpdG1hcCogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYg
aW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBmbG9hdCBnbG9iYWxB
bHBoYSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQogewogICAgIGF1dG8gYml0bWFw
U2l6ZSA9IGltYWdlLT5HZXRTaXplKCk7CiAKQEAgLTc5NCwxNiArNzk0LDE2IEBAIHZvaWQgZHJh
d05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9ybUNvbnRleHQsIElE
MkQxQml0bWFwKiBpbWFnCiAgICAgaWYgKCFzaG91bGRVc2VTdWJpbWFnZSAmJiBjdXJySGVpZ2h0
IDwgaW1hZ2VTaXplLmhlaWdodCgpKQogICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNldEhlaWdo
dChhZGp1c3RlZERlc3RSZWN0LmhlaWdodCgpICogY3VyckhlaWdodCAvIGltYWdlU2l6ZS5oZWln
aHQoKSk7CiAKLSAgICBTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4
dCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSk7CisgICAgU3RhdGU6OnNldENvbXBvc2l0
ZU9wZXJhdGlvbihwbGF0Zm9ybUNvbnRleHQsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwg
b3B0aW9ucy5ibGVuZE1vZGUoKSk7CiAKICAgICAvLyBJbWFnZU9yaWVudGF0aW9uIGV4cGVjdHMg
dGhlIG9yaWdpbiB0byBiZSBhdCAoMCwgMCkuCiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShhZGp1
c3RlZERlc3RSZWN0LngoKSwgYWRqdXN0ZWREZXN0UmVjdC55KCkpOwogICAgIGNvbnRleHQtPlNl
dFRyYW5zZm9ybSh0cmFuc2Zvcm0pOwogICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0TG9jYXRpb24o
RmxvYXRQb2ludCgpKTsKIAotICAgIGlmIChvcmllbnRhdGlvbiAhPSBJbWFnZU9yaWVudGF0aW9u
OjpOb25lKSB7Ci0gICAgICAgIGNvbmNhdENUTShwbGF0Zm9ybUNvbnRleHQsIG9yaWVudGF0aW9u
LnRyYW5zZm9ybUZyb21EZWZhdWx0KGFkanVzdGVkRGVzdFJlY3Quc2l6ZSgpKSk7Ci0gICAgICAg
IGlmIChvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKSB7CisgICAgaWYgKG9wdGlvbnMu
b3JpZW50YXRpb24oKSAhPSBJbWFnZU9yaWVudGF0aW9uOjpOb25lKSB7CisgICAgICAgIGNvbmNh
dENUTShwbGF0Zm9ybUNvbnRleHQsIG9wdGlvbnMub3JpZW50YXRpb24oKS50cmFuc2Zvcm1Gcm9t
RGVmYXVsdChhZGp1c3RlZERlc3RSZWN0LnNpemUoKSkpOworICAgICAgICBpZiAob3B0aW9ucy5v
cmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpIHsKICAgICAgICAgICAgIC8vIFRoZSBk
ZXN0aW5hdGlvbiByZWN0IHdpbGwgaGF2ZSBpdCdzIHdpZHRoIGFuZCBoZWlnaHQgYWxyZWFkeSBy
ZXZlcnNlZCBmb3IgdGhlIG9yaWVudGF0aW9uIG9mCiAgICAgICAgICAgICAvLyB0aGUgaW1hZ2Us
IGFzIGl0IHdhcyBuZWVkZWQgZm9yIHBhZ2UgbGF5b3V0LCBzbyB3ZSBuZWVkIHRvIHJldmVyc2Ug
aXQgYmFjayBoZXJlLgogICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdCA9IEZsb2F0UmVjdChh
ZGp1c3RlZERlc3RSZWN0LngoKSwgYWRqdXN0ZWREZXN0UmVjdC55KCksIGFkanVzdGVkRGVzdFJl
Y3QuaGVpZ2h0KCksIGFkanVzdGVkRGVzdFJlY3Qud2lkdGgoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVj
dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0SW1wbERpcmVjdDJELmgKaW5kZXggNmJiNjQ0YTJiNjVlMjM0YzE1ZmUzY2ZmZjllYjczOTE5
NDRkNDFjMS4uNDQyNWZkMjZhYmU4NTQ1MWQyYzAzMmYzNmEyNmE1N2VlMzFlMmIwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dEltcGxEaXJlY3QyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9HcmFwaGljc0NvbnRleHRJbXBsRGlyZWN0MkQuaApAQCAtNzEsOCArNzEsOCBAQCBwdWJsaWM6
CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7
CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0U2l6
ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3
UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRTaXplJiwgSW1hZ2U6OlRpbGVSdWxlLCBJbWFnZTo6VGlsZVJ1
bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRN
b2RlLCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25z
dCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxv
YXQpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9JbWFnZUNHV2luLmNwcAppbmRleCAxNDExOWViZjVhMjlhZjY4Y2Q1NmQ5
ZmIwNzM5ZDY5Yzk2NjU0MjIyLi45MzIzZGE3MjQ4ZjZmNDk5ODFlNDU5MzgzNjgzMjg3OWRkMWRl
MmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1h
Z2VDR1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0lt
YWdlQ0dXaW4uY3BwCkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRN
QVBPZlNpemUoSEJJVE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAgICAgaWYgKHNpemUp
CiAgICAgICAgIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShnYywgRmxvYXRSZWN0KDAuMGYs
IDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksICpzaXplLCBDb21wb3Np
dGVDb3B5KTsKICAgICBlbHNlCi0gICAgICAgIGRyYXcoZ2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBm
LCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWlnaHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4w
ZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIENvbXBvc2l0ZUNvcHks
IEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVu
dGF0aW9uOjpOb25lKTsKKyAgICAgICAgZHJhdyhnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJt
cEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBp
bWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBDb21wb3NpdGVDb3B5IH0p
OwogCiAgICAgLy8gRG8gY2xlYW51cAogICAgIENHQ29udGV4dFJlbGVhc2UoY2dDb250ZXh0KTsK
QEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3Vy
Y2VTaXplKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXQKICAgICAgICAgaWYgKGlt
YWdlICYmIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UpID09IHN0YXRpY19jYXN0PHNpemVfdD4oc3Jj
U2l6ZS5oZWlnaHQoKSkgJiYgQ0dJbWFnZUdldFdpZHRoKGltYWdlKSA9PSBzdGF0aWNfY2FzdDxz
aXplX3Q+KHNyY1NpemUud2lkdGgoKSkpIHsKICAgICAgICAgICAgIHNpemVfdCBjdXJyZW50RnJh
bWUgPSBtX2N1cnJlbnRGcmFtZTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lID0gaTsKLSAg
ICAgICAgICAgIGRyYXcoY3R4dCwgZHN0UmVjdCwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIHNyY1Np
emUud2lkdGgoKSwgc3JjU2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5v
cm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7
CisgICAgICAgICAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBz
cmNTaXplLndpZHRoKCksIHNyY1NpemUuaGVpZ2h0KCkpLCB7IGNvbXBvc2l0ZU9wIH0pOwogICAg
ICAgICAgICAgbV9jdXJyZW50RnJhbWUgPSBjdXJyZW50RnJhbWU7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3
RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9h
dAogCiAgICAgLy8gTm8gaW1hZ2Ugb2YgdGhlIGNvcnJlY3Qgc2l6ZSB3YXMgZm91bmQsIGZhbGxi
YWNrIHRvIGRyYXdpbmcgdGhlIGN1cnJlbnQgZnJhbWUKICAgICBGbG9hdFNpemUgaW1hZ2VTaXpl
ID0gQml0bWFwSW1hZ2U6OnNpemUoKTsKLSAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgY29t
cG9zaXRlT3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJ
bWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBj
b21wb3NpdGVPcCB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwCmlu
ZGV4IDI0ZWM1YmMxZDhjMmJiOTI4ZmEwNTg1NmUzMzM0MjJhYzZmNWM4YjIuLjY4YmYzOTdkZWZi
MThlZDA3NzhlODNmNjQyY2Q5ZjJhNWRmNmRiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNhaXJvV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAKQEAgLTgxLDcgKzgx
LDcgQEAgYm9vbCBCaXRtYXBJbWFnZTo6Z2V0SEJJVE1BUE9mU2l6ZShIQklUTUFQIGJtcCwgY29u
c3QgSW50U2l6ZSogc2l6ZSkKICAgICBpZiAoc2l6ZSkKICAgICAgICAgZHJhd0ZyYW1lTWF0Y2hp
bmdTb3VyY2VTaXplKGdjLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBi
bXBJbmZvLmJtSGVpZ2h0KSwgKnNpemUsIENvbXBvc2l0ZUNvcHkpOwogICAgIGVsc2UKLSAgICAg
ICAgZHJhdyhnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5m
by5ibUhlaWdodCksIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1h
Z2VTaXplLmhlaWdodCgpKSwgQ29tcG9zaXRlQ29weSwgQmxlbmRNb2RlOjpOb3JtYWwsIERlY29k
aW5nTW9kZTo6U3luY2hyb25vdXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUpOworICAgICAgICBk
cmF3KGdjLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJt
SGVpZ2h0KSwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNp
emUuaGVpZ2h0KCkpLCB7IENvbXBvc2l0ZUNvcHkgfSk7CiAKICAgICAvLyBEbyBjbGVhbnVwCiAg
ICAgY2Fpcm9fZGVzdHJveSh0YXJnZXRSZWYpOwpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgQml0
bWFwSW1hZ2U6OmRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmIGN0
eHQsIGNvbnN0IEZsb2F0CiAgICAgICAgIGlmIChjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWln
aHQoc3VyZmFjZS5nZXQoKSkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzcmNTaXplLmhlaWdodCgp
KSAmJiBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzdXJmYWNlLmdldCgpKSA9PSBzdGF0
aWNfY2FzdDxzaXplX3Q+KHNyY1NpemUud2lkdGgoKSkpIHsKICAgICAgICAgICAgIHNpemVfdCBj
dXJyZW50RnJhbWUgPSBtX2N1cnJlbnRGcmFtZTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1l
ID0gaTsKLSAgICAgICAgICAgIGRyYXcoY3R4dCwgZHN0UmVjdCwgRmxvYXRSZWN0KDAuMGYsIDAu
MGYsIHNyY1NpemUud2lkdGgoKSwgc3JjU2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVu
ZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlv
bjo6Tm9uZSk7CisgICAgICAgICAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBm
LCAwLjBmLCBzcmNTaXplLndpZHRoKCksIHNyY1NpemUuaGVpZ2h0KCkpLCB7IGNvbXBvc2l0ZU9w
IH0pOwogICAgICAgICAgICAgbV9jdXJyZW50RnJhbWUgPSBjdXJyZW50RnJhbWU7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIEJpdG1hcElt
YWdlOjpkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBj
b25zdCBGbG9hdAogCiAgICAgLy8gTm8gaW1hZ2Ugb2YgdGhlIGNvcnJlY3Qgc2l6ZSB3YXMgZm91
bmQsIGZhbGxiYWNrIHRvIGRyYXdpbmcgdGhlIGN1cnJlbnQgZnJhbWUKICAgICBGbG9hdFNpemUg
aW1hZ2VTaXplID0gQml0bWFwSW1hZ2U6OnNpemUoKTsKLSAgICBkcmF3KGN0eHQsIGRzdFJlY3Qs
IEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdo
dCgpKSwgY29tcG9zaXRlT3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNo
cm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBkcmF3KGN0eHQsIGRzdFJlY3Qs
IEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdo
dCgpKSwgeyBjb21wb3NpdGVPcCB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdl
RGlyZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2
ZUltYWdlRGlyZWN0MkQuY3BwCmluZGV4IGRmNGM1MzliZTZhNTViMGRlZmRmM2NkNmE2ZjU3NTEw
ZjZjNzA2ZDYuLmRkYWY2MjQ3NDEzOTMyNzQ1MDFhYjBhM2RlZTNkYmM4MTMzN2RlNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURp
cmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0
aXZlSW1hZ2VEaXJlY3QyRC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgQ29sb3IgbmF0aXZlSW1hZ2VT
aW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogICAgIHJl
dHVybiBDb2xvcigpOwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXpl
LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1h
Z2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUm
IHNyY1NpemUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKIHsKICAgICBhdXRvIHBsYXRm
b3JtQ29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCmluZGV4IDE0N2MyZDBiNWIzZmU5ODExMGIw
ZmMzYWM4MWY2YmJkNzZmYThhZGQuLjUwMjc5OTBjZTU1ZTQ2MWIyZGQ4MmI5YzMyOWU5ZDlhMzJm
ODBlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQpA
QCAtOTYsNyArOTYsNyBAQCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKElt
YWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbgogICAgICAgICBHcmFwaGlj
c0NvbnRleHQgY29udGV4dChyZW5kZXJlckNvbnRleHQuQ0dDb250ZXh0KTsKICAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUoMCwgaW1hZ2VTaXplLmhlaWdodCk7CiAgICAgICAgIGNvbnRleHQuc2Nh
bGUoeyBhZGp1c3RlZEltYWdlU2NhbGUsIC1hZGp1c3RlZEltYWdlU2NhbGUgfSk7Ci0gICAgICAg
IGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRQb2ludCgpLCBJbWFnZVBhaW50aW5nT3B0
aW9ucyhvcmllbnRhdGlvbikpOworICAgICAgICBjb250ZXh0LmRyYXdJbWFnZSgqaW1hZ2UsIEZs
b2F0UG9pbnQoKSwgeyBvcmllbnRhdGlvbiB9KTsKICAgICB9XTsKICAgICByZXR1cm4gaW1hZ2VD
b3B5LkNHSW1hZ2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1h
Yy5tbQppbmRleCA4ZWJlMDA3NmE4Y2M2NmVhYmZlMDQyOTFmYWVmZjU5NGZmMDkxODBlLi44NTJk
NTA1MjY0MmZjNmY0YTRhYzUwN2YyZWY2NzJhOWExNTdjYmMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTk0LDM5ICs5NCwzNyBAQCBSZXRhaW5Q
dHI8TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdl
PiBpbWFnZSwgZmxvYXQgZAogICAgICAgICAKIFJldGFpblB0cjxOU0ltYWdlPiBjcmVhdGVEcmFn
SW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQogewotICAgIEZsb2F0U2l6ZSBzaXplID0gaW1hZ2UtPnNpemUoKTsKLQogICAgIGlmIChpczxC
aXRtYXBJbWFnZT4oKmltYWdlKSkgewogICAgICAgICBCaXRtYXBJbWFnZSYgYml0bWFwSW1hZ2Ug
PSBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKTsKLSAgICAgICAgSW50U2l6ZSBzaXplUmVz
cGVjdGluZ09yaWVudGF0aW9uID0gYml0bWFwSW1hZ2Uuc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlv
bigpOwogCiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2UpCiAgICAgICAgICAgICBvcmllbnRhdGlvbiA9IGJpdG1hcEltYWdlLm9yaWVudGF0aW9u
Rm9yQ3VycmVudEZyYW1lKCk7CiAKICAgICAgICAgaWYgKG9yaWVudGF0aW9uICE9IEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUpIHsKICAgICAgICAgICAgIC8vIENvbnN0cnVjdCBhIGNvcnJlY3RseS1y
b3RhdGVkIGNvcHkgb2YgdGhlIGltYWdlIHRvIHVzZSBhcyB0aGUgZHJhZyBpbWFnZS4KLSAgICAg
ICAgICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIHNpemVSZXNwZWN0aW5nT3Jp
ZW50YXRpb24pOworICAgICAgICAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLT5zaXpl
KG9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU0ltYWdlPiByb3RhdGVkRHJh
Z0ltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTooTlNTaXplKShp
bWFnZVNpemUpXSk7CiAKLSAgICAgICAgICAgIFJldGFpblB0cjxOU0ltYWdlPiByb3RhdGVkRHJh
Z0ltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTooTlNTaXplKShz
aXplUmVzcGVjdGluZ09yaWVudGF0aW9uKV0pOwogICAgICAgICAgICAgW3JvdGF0ZWREcmFnSW1h
Z2UgbG9ja0ZvY3VzXTsKIAogICAgICAgICAgICAgLy8gSW1hZ2VPcmllbnRhdGlvbiB1c2VzIHRv
cC1sZWZ0IGNvb3JkaW5hdGVzLCBuZWVkIHRvIGZsaXAgdG8gYm90dG9tLWxlZnQsIGFwcGx5Li4u
Ci0gICAgICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5z
Zm9ybU1ha2VUcmFuc2xhdGlvbigwLCBkZXN0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgICAgICBD
R0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VUcmFuc2xh
dGlvbigwLCBpbWFnZVNpemUuaGVpZ2h0KCkpOwogICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dB
ZmZpbmVUcmFuc2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIDEsIC0xKTsKLSAgICAgICAgICAgIHRyYW5z
Zm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG9yaWVudGF0aW9uLnRyYW5zZm9ybUZyb21E
ZWZhdWx0KHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pLCB0cmFuc2Zvcm0pOworICAgICAgICAg
ICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQob3JpZW50YXRpb24udHJhbnNm
b3JtRnJvbURlZmF1bHQoaW1hZ2VTaXplKSwgdHJhbnNmb3JtKTsKIAogICAgICAgICAgICAgaWYg
KG9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCi0gICAgICAgICAgICAgICAgZGVzdFJl
Y3QgPSBGbG9hdFJlY3QoZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCksIGRlc3RSZWN0LmhlaWdo
dCgpLCBkZXN0UmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAgICAgICBpbWFnZVNpemUgPSBpbWFn
ZVNpemUudHJhbnNwb3NlZFNpemUoKTsKIAogICAgICAgICAgICAgLy8gLi4uYW5kIGZsaXAgYmFj
ay4KLSAgICAgICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtVHJhbnNsYXRlKHRy
YW5zZm9ybSwgMCwgZGVzdFJlY3QuaGVpZ2h0KCkpOworICAgICAgICAgICAgdHJhbnNmb3JtID0g
Q0dBZmZpbmVUcmFuc2Zvcm1UcmFuc2xhdGUodHJhbnNmb3JtLCAwLCBpbWFnZVNpemUuaGVpZ2h0
KCkpOwogICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZSh0cmFu
c2Zvcm0sIDEsIC0xKTsKIAogICAgICAgICAgICAgUmV0YWluUHRyPE5TQWZmaW5lVHJhbnNmb3Jt
PiBjb2NvYVRyYW5zZm9ybSA9IGFkb3B0TlMoW1tOU0FmZmluZVRyYW5zZm9ybSBhbGxvY10gaW5p
dF0pOwogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtIHNldFRyYW5zZm9ybVN0cnVjdDoqKE5T
QWZmaW5lVHJhbnNmb3JtU3RydWN0KikmdHJhbnNmb3JtXTsKICAgICAgICAgICAgIFtjb2NvYVRy
YW5zZm9ybSBjb25jYXRdOwogCi0gICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgp
IGRyYXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNl
T3ZlciBmcmFjdGlvbjoxLjBdOworICAgICAgICAgICAgRmxvYXRSZWN0IGltYWdlUmVjdChGbG9h
dFBvaW50KCksIGltYWdlU2l6ZSk7CisgICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFn
ZSgpIGRyYXdJblJlY3Q6aW1hZ2VSZWN0IGZyb21SZWN0OmltYWdlUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKIAogICAgICAgICAg
ICAgW3JvdGF0ZWREcmFnSW1hZ2UgdW5sb2NrRm9jdXNdOwogCkBAIC0xMzQsOCArMTMyLDkgQEAg
UmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2Us
IEltYWdlT3JpZW50YXRpb24gb3JpZW4KICAgICAgICAgfQogICAgIH0KIAorICAgIEZsb2F0U2l6
ZSBpbWFnZVNpemUgPSBpbWFnZS0+c2l6ZSgpOwogICAgIGF1dG8gZHJhZ0ltYWdlID0gaW1hZ2Ut
PnNuYXBzaG90TlNJbWFnZSgpOwotICAgIFtkcmFnSW1hZ2Ugc2V0U2l6ZTooTlNTaXplKXNpemVd
OworICAgIFtkcmFnSW1hZ2Ugc2V0U2l6ZTooTlNTaXplKWltYWdlU2l6ZV07CiAgICAgcmV0dXJu
IGRyYWdJbWFnZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDkwMWM0MTEwZTFjNTZiYTYwYTRkZDNiYTdiOTNm
YWFmNjA0MWNiMzMuLmI3YjQ3N2MyODc5MzJkM2MyMDMwNDg5MDQ5ZjZlMjIyYTVlMTA0NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cApAQCAtOTQ3LDE1ICs5NDcsMjEgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRG
aWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICAgICAg
Z2VvbWV0cnkuY2xpcChMYXlvdXRSZWN0KHBpeGVsU25hcHBlZFJlY3QpKTsKICAgICAgICAgUmVm
UHRyPEltYWdlPiBpbWFnZTsKICAgICAgICAgaWYgKCFnZW9tZXRyeS5kZXN0UmVjdCgpLmlzRW1w
dHkoKSAmJiAoaW1hZ2UgPSBiZ0ltYWdlLT5pbWFnZShiYWNrZ3JvdW5kT2JqZWN0ID8gYmFja2dy
b3VuZE9iamVjdCA6IHRoaXMsIGdlb21ldHJ5LnRpbGVTaXplKCkpKSkgewotICAgICAgICAgICAg
YXV0byBjb21wb3NpdGVPcCA9IG9wID09IENvbXBvc2l0ZVNvdXJjZU92ZXIgPyBiZ0xheWVyLmNv
bXBvc2l0ZSgpIDogb3A7CiAgICAgICAgICAgICBjb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNr
KGJnTGF5ZXIubWFza1NvdXJjZVR5cGUoKSA9PSBNYXNrU291cmNlVHlwZTo6THVtaW5hbmNlKTsK
IAogICAgICAgICAgICAgaWYgKGlzPEJpdG1hcEltYWdlPihpbWFnZSkpCiAgICAgICAgICAgICAg
ICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKHNldHRp
bmdzKCkpOwogCi0gICAgICAgICAgICBhdXRvIGludGVycG9sYXRpb24gPSBjaG9vc2VJbnRlcnBv
bGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsICZiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6
ZSgpKTsKLSAgICAgICAgICAgIGF1dG8gZGVjb2RpbmdNb2RlID0gZGVjb2RpbmdNb2RlRm9ySW1h
Z2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKTsKLSAgICAgICAgICAgIGF1dG8gZHJhd1Jlc3VsdCA9
IGNvbnRleHQuZHJhd1RpbGVkSW1hZ2UoKmltYWdlLCBnZW9tZXRyeS5kZXN0UmVjdCgpLCB0b0xh
eW91dFBvaW50KGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSksIGdlb21ldHJ5LnRpbGVTaXplKCks
IGdlb21ldHJ5LnNwYWNlU2l6ZSgpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb21wb3NpdGVPcCwg
YmdMYXllci5ibGVuZE1vZGUoKSwgZGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uOjpOb25l
LCBpbnRlcnBvbGF0aW9uKSk7CisgICAgICAgICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRp
b25zID0geworICAgICAgICAgICAgICAgIG9wID09IENvbXBvc2l0ZVNvdXJjZU92ZXIgPyBiZ0xh
eWVyLmNvbXBvc2l0ZSgpIDogb3AsCisgICAgICAgICAgICAgICAgYmdMYXllci5ibGVuZE1vZGUo
KSwKKyAgICAgICAgICAgICAgICBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXcoKmltYWdlLCBwYWlu
dEluZm8pLAorICAgICAgICAgICAgICAgIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSwKKyAg
ICAgICAgICAgICAgICBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2Us
ICZiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6ZSgpKQorICAgICAgICAgICAgfTsKKworICAgICAg
ICAgICAgYXV0byBkcmF3UmVzdWx0ID0gY29udGV4dC5kcmF3VGlsZWRJbWFnZSgqaW1hZ2UsIGdl
b21ldHJ5LmRlc3RSZWN0KCksIHRvTGF5b3V0UG9pbnQoZ2VvbWV0cnkucmVsYXRpdmVQaGFzZSgp
KSwgZ2VvbWV0cnkudGlsZVNpemUoKSwgZ2VvbWV0cnkuc3BhY2VTaXplKCksIG9wdGlvbnMpOwor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoZHJhd1Jlc3VsdCA9PSBJbWFnZURyYXdSZXN1
bHQ6OkRpZFJlcXVlc3REZWNvZGluZykgewogICAgICAgICAgICAgICAgIEFTU0VSVChiZ0ltYWdl
LT5pc0NhY2hlZEltYWdlKCkpOwogICAgICAgICAgICAgICAgIGJnSW1hZ2UtPmNhY2hlZEltYWdl
KCktPmFkZENsaWVudFdhaXRpbmdGb3JBc3luY0RlY29kaW5nKCp0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCAxYjExZTJlM2YxY2QxZWE0N2Y4
NjdhMGVkMGRkMDgwYmE4Yzk3MmNhLi4yMjBiMWE2NzM1OTBlNmJhN2MyOGZmYmIxOTBjMTA4NTBl
YTQ2ZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBA
IC0yMDM5LDE2ICsyMDM5LDcgQEAgYm9vbCBSZW5kZXJFbGVtZW50OjpjaGVja0ZvclJlcGFpbnRE
dXJpbmdMYXlvdXQoKSBjb25zdAogCiBJbWFnZU9yaWVudGF0aW9uIFJlbmRlckVsZW1lbnQ6Omlt
YWdlT3JpZW50YXRpb24oKSBjb25zdAogewotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBV
U0UoRElSRUNUMkQpCi0gICAgLy8gVGhpcyBjYW4gb25seSBiZSBlbmFibGVkIGZvciBwb3J0cyB3
aGljaCBob25vciB0aGUgb3JpZW50YXRpb24gZmxhZyBpbiB0aGVpciBkcmF3aW5nIGNvZGUuCi0g
ICAgaWYgKGRvY3VtZW50KCkuaXNJbWFnZURvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBJbWFn
ZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2U7Ci0jZW5kaWYKLSAgICAvLyBSZXNwZWN0IHRoZSBpbWFn
ZSdzIG9yaWVudGF0aW9uIGlmIGl0J3MgYmVpbmcgdXNlZCBhcyBhIGZ1bGwtcGFnZSBpbWFnZSBv
ciBpdCdzCi0gICAgLy8gYW4gPGltZz4gYW5kIHRoZSBzZXR0aW5nIHRvIHJlc3BlY3QgaXQgZXZl
cnl3aGVyZSBpcyBzZXQuCi0gICAgaWYgKHNldHRpbmdzKCkuc2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24oKSAmJiBpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkpKQotICAgICAgICBy
ZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOwotICAgIHJldHVybiBzdHlsZSgpLmlt
YWdlT3JpZW50YXRpb24oKTsKKyAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdl
OwogfQogCiB2b2lkIFJlbmRlckVsZW1lbnQ6OmFkanVzdEZyYWdtZW50ZWRGbG93U3RhdGVPbkNv
bnRhaW5pbmdCbG9ja0NoYW5nZUlmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDkxM2JiNDEzYjk0MmYxZTA2MjZj
ZjU4YzE0NWFiMzI2YjcxY2MyOTYuLjdhYzA0YjhiYTRmNDE1MTNiM2ZjYmFmMTkzMWJjZjQ0ODA1
Yzk0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OnBhaW50U25hcHNob3RJbWFnZShQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0CiAg
ICAgICAgIHJldHVybjsKIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb24g
PSBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCBpbWFnZSwgJmltYWdlLCBhbGln
bmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBhbGlnbmVkUmVj
dCwgSW1hZ2VQYWludGluZ09wdGlvbnMoaW1hZ2VPcmllbnRhdGlvbigpLCBpbnRlcnBvbGF0aW9u
KSk7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIGFsaWduZWRSZWN0LCB7IGltYWdlT3Jp
ZW50YXRpb24oKSwgaW50ZXJwb2xhdGlvbiB9KTsKIH0KIAogdm9pZCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9p
bnQmIHBhaW50T2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
aW5kZXggZjUxZTJmZWIzN2UxZmNmMGZkMGU3OTFhZTY0ZjAzZWU4OGEyYTdjOC4uMTQ3NTQ3NjEz
MmFmN2IxODZhZmZlMDI1NmZkYzYyM2E0MzZmYTY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwCkBAIC00NjksNyArNDY5LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6
cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2YKICAgICAgICAgICAgICAgICAgICAgY2VudGVyWSA9IDA7CiAgICAgICAgICAgICAgICAg
aW1hZ2VPZmZzZXQgPSBMYXlvdXRTaXplKGxlZnRCb3JkZXIgKyBsZWZ0UGFkICsgY2VudGVyWCAr
IG1pc3NpbmdJbWFnZUJvcmRlcldpZHRoLCB0b3BCb3JkZXIgKyB0b3BQYWQgKyBjZW50ZXJZICsg
bWlzc2luZ0ltYWdlQm9yZGVyV2lkdGgpOwogCi0gICAgICAgICAgICAgICAgY29udGV4dC5kcmF3
SW1hZ2UoKmltYWdlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKExheW91dFJlY3QocGFpbnRPZmZz
ZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VTaXplKSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBpbWFnZU9y
aWVudGF0aW9uKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwg
c25hcFJlY3RUb0RldmljZVBpeGVscyhMYXlvdXRSZWN0KHBhaW50T2Zmc2V0ICsgaW1hZ2VPZmZz
ZXQsIGltYWdlU2l6ZSksIGRldmljZVNjYWxlRmFjdG9yKSwgeyBpbWFnZU9yaWVudGF0aW9uKCkg
fSk7CiAgICAgICAgICAgICAgICAgZXJyb3JQaWN0dXJlRHJhd24gPSB0cnVlOwogICAgICAgICAg
ICAgfQogCkBAIC02MTcsMTEgKzYxNyw5IEBAIEltYWdlRHJhd1Jlc3VsdCBSZW5kZXJJbWFnZTo6
cGFpbnRJbnRvUmVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0CiAgICAg
ICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKICAgICBIVE1MSW1hZ2VF
bGVtZW50KiBpbWFnZUVsZW1lbnQgPSBpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkpID8g
ZG93bmNhc3Q8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCgpKSA6IG51bGxwdHI7Ci0gICAgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBpbWFnZUVsZW1lbnQgPyBpbWFnZUVs
ZW1lbnQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3NpdGVTb3VyY2VPdmVyOwogCiAgICAg
Ly8gRklYTUU6IERvY3VtZW50IHdoZW4gaW1hZ2UgIT0gaW1nLmdldCgpLgogICAgIEltYWdlKiBp
bWFnZSA9IGltYWdlUmVzb3VyY2UoKS5pbWFnZSgpLmdldCgpOwotICAgIEludGVycG9sYXRpb25R
dWFsaXR5IGludGVycG9sYXRpb24gPSBpbWFnZSA/IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5
KHBhaW50SW5mby5jb250ZXh0KCksICppbWFnZSwgaW1hZ2UsIExheW91dFNpemUocmVjdC5zaXpl
KCkpKSA6IEludGVycG9sYXRpb25EZWZhdWx0OwogCiAjaWYgVVNFKENHKQogICAgIGlmIChpczxQ
REZEb2N1bWVudEltYWdlPihpbWFnZSkpCkBAIC02MzEsOCArNjI5LDE1IEBAIEltYWdlRHJhd1Jl
c3VsdCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgRmxvYXRSZWN0CiAgICAgaWYgKGlzPEJpdG1hcEltYWdlPihpbWFnZSkpCiAgICAgICAgIGRv
d25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpLnVwZGF0ZUZyb21TZXR0aW5ncyhzZXR0aW5ncygp
KTsKIAotICAgIGF1dG8gZGVjb2RpbmdNb2RlID0gZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCpp
bWFnZSwgcGFpbnRJbmZvKTsKLSAgICBhdXRvIGRyYXdSZXN1bHQgPSBwYWludEluZm8uY29udGV4
dCgpLmRyYXdJbWFnZSgqaW1nLCByZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb21wb3NpdGVP
cGVyYXRvciwgQmxlbmRNb2RlOjpOb3JtYWwsIGRlY29kaW5nTW9kZSwgaW1hZ2VPcmllbnRhdGlv
bigpLCBpbnRlcnBvbGF0aW9uKSk7CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucyA9
IHsKKyAgICAgICAgaW1hZ2VFbGVtZW50ID8gaW1hZ2VFbGVtZW50LT5jb21wb3NpdGVPcGVyYXRv
cigpIDogQ29tcG9zaXRlU291cmNlT3ZlciwKKyAgICAgICAgZGVjb2RpbmdNb2RlRm9ySW1hZ2VE
cmF3KCppbWFnZSwgcGFpbnRJbmZvKSwKKyAgICAgICAgaW1hZ2VPcmllbnRhdGlvbigpLAorICAg
ICAgICBpbWFnZSA/IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KHBhaW50SW5mby5jb250ZXh0
KCksICppbWFnZSwgaW1hZ2UsIExheW91dFNpemUocmVjdC5zaXplKCkpKSA6IEludGVycG9sYXRp
b25EZWZhdWx0CisgICAgfTsKKworICAgIGF1dG8gZHJhd1Jlc3VsdCA9IHBhaW50SW5mby5jb250
ZXh0KCkuZHJhd0ltYWdlKCppbWcsIHJlY3QsIG9wdGlvbnMpOworCiAgICAgaWYgKGRyYXdSZXN1
bHQgPT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZXF1ZXN0RGVjb2RpbmcpCiAgICAgICAgIGltYWdl
UmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpLT5hZGRDbGllbnRXYWl0aW5nRm9yQXN5bmNEZWNvZGlu
ZygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDBkZmUyODI3NjRmNDA4YjYyMGJlZjVkOWY1OGU4OGE2
Y2M3NmMwODQuLjRmZTg1ODYyNWM5MjlkODBiZWNhZmVhNjZmMDY0ZTM0MjE4MTI1Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBh
aW50U25hcHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAgICAgICAg
IHJldHVybjsKIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb24gPSBjaG9v
c2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVj
dC5zaXplKCkpOwotICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgYWxpZ25lZFJlY3QsIElt
YWdlUGFpbnRpbmdPcHRpb25zKGltYWdlT3JpZW50YXRpb24oKSwgaW50ZXJwb2xhdGlvbikpOwor
ICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgYWxpZ25lZFJlY3QsIHsgaW1hZ2VPcmllbnRh
dGlvbigpLCBpbnRlcnBvbGF0aW9uIH0pOwogfQogCiBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OmdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEN1cnNv
ciYgb3ZlcnJpZGVDdXJzb3IpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KaW5kZXggNDRjYjIwMDFjMGJlOGFiNDI3NzZmNTU3NTZlMTQ0MDM3NWMwMTdi
YS4uYTQyY2U2ZWMyZDY5MzljMDAxNjFmMTc5YmUyNjQ0ZTEyNDI5MjQ3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjI3OCw3ICsyMjc4LDcgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXkoY29uc3Qg
UmVuZGVyT2JqZWN0JiByZW5kZXJlciwKICAgICBpZiAoYWxpZ25lZFBsdWdpblJlY3Qud2lkdGgo
KSA8PSAwIHx8IGFsaWduZWRQbHVnaW5SZWN0LmhlaWdodCgpIDw9IDApCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgY29udGV4dC5kcmF3SW1hZ2UoKnNuYXBzaG90LCBhbGlnbmVkUGx1Z2lu
UmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoKnNuYXBz
aG90LCBhbGlnbmVkUGx1Z2luUmVjdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCA2YmQ5MTI0YWU0OGIxMDdhNjAz
MTg5OTJmZjM2Zjc3MmU2MTU5OGZmLi41MjM3ZWRlMjNjMWQ5M2VhYjEyZmRjYWQ4YWE2Y2RkODg5
NTk4ZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTE3
OSw3ICsxNzksNyBAQCBJbnRTaXplIFNWR0ltYWdlOjpjb250YWluZXJTaXplKCkgY29uc3QKIH0K
IAogSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRTaXplIGNvbnRhaW5lclNpemUsIGZsb2F0IGNvbnRh
aW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdtZW50VVJMLCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsCi0gICAgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlm
ICghbV9wYWdlKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwpA
QCAtMjAzLDcgKzIwMyw3IEBAIEltYWdlRHJhd1Jlc3VsdCBTVkdJbWFnZTo6ZHJhd0ZvckNvbnRh
aW5lcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0CiAKICAgICBmcmFtZVZp
ZXcoKS0+c2Nyb2xsVG9GcmFnbWVudChpbml0aWFsRnJhZ21lbnRVUkwpOwogCi0gICAgSW1hZ2VE
cmF3UmVzdWx0IHJlc3VsdCA9IGRyYXcoY29udGV4dCwgZHN0UmVjdCwgc2NhbGVkU3JjLCBjb21w
b3NpdGVPcCwgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVu
dGF0aW9uOjpOb25lKTsKKyAgICBJbWFnZURyYXdSZXN1bHQgcmVzdWx0ID0gZHJhdyhjb250ZXh0
LCBkc3RSZWN0LCBzY2FsZWRTcmMsIG9wdGlvbnMpOwogCiAgICAgc2V0SW1hZ2VPYnNlcnZlcihv
YnNlcnZlcik7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIyMiw3ICsyMjIsNyBAQCBOYXRpdmVJ
bWFnZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29uc3QgR3JhcGhp
Y3NDb250ZXh0KikKICAgICBpZiAoIWJ1ZmZlcikgLy8gZmFpbGVkIHRvIGFsbG9jYXRlIGltYWdl
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgZHJhdyhidWZmZXItPmNvbnRleHQoKSwg
cmVjdCgpLCByZWN0KCksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZTo6Tm9ybWFsLCBE
ZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBk
cmF3KGJ1ZmZlci0+Y29udGV4dCgpLCByZWN0KCksIHJlY3QoKSk7CiAKICAgICAvLyBGSVhNRTog
V0soQnVnIDExMzY1Nyk6IFdlIHNob3VsZCB1c2UgRG9udENvcHlCYWNraW5nU3RvcmUgaGVyZS4K
ICAgICByZXR1cm4gYnVmZmVyLT5jb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSktPm5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgTmF0aXZlSW1hZ2VQdHIg
U1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4
dCkKICNlbmRpZgogCiB2b2lkIFNWR0ltYWdlOjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxv
YXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwKLSAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3Qs
IEJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewogICAgIEZsb2F0UmVjdCB6b29tZWRDb250YWluZXJSZWN0ID0gRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgY29udGFpbmVyU2l6ZSk7CiAgICAgem9vbWVkQ29udGFpbmVyUmVj
dC5zY2FsZShjb250YWluZXJab29tKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFNWR0ltYWdl
OjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0U2l6ZQogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoZXhwYW5kZWRJbnRTaXplKGltYWdlQnVm
ZmVyU2l6ZS5zaXplKCkpLCAxLCBDb2xvclNwYWNlU1JHQiwgY29udGV4dCk7CiAgICAgaWYgKCFi
dWZmZXIpIC8vIEZhaWxlZCB0byBhbGxvY2F0ZSBidWZmZXIuCiAgICAgICAgIHJldHVybjsKLSAg
ICBkcmF3Rm9yQ29udGFpbmVyKGJ1ZmZlci0+Y29udGV4dCgpLCBjb250YWluZXJTaXplLCBjb250
YWluZXJab29tLCBpbml0aWFsRnJhZ21lbnRVUkwsIGltYWdlQnVmZmVyU2l6ZSwgem9vbWVkQ29u
dGFpbmVyUmVjdCwgQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlOjpOb3JtYWwpOworICAg
IGRyYXdGb3JDb250YWluZXIoYnVmZmVyLT5jb250ZXh0KCksIGNvbnRhaW5lclNpemUsIGNvbnRh
aW5lclpvb20sIGluaXRpYWxGcmFnbWVudFVSTCwgaW1hZ2VCdWZmZXJTaXplLCB6b29tZWRDb250
YWluZXJSZWN0KTsKICAgICBpZiAoY29udGV4dC5kcmF3THVtaW5hbmNlTWFzaygpKQogICAgICAg
ICBidWZmZXItPmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIApAQCAtMjk3LDEwICsyOTcsMTAg
QEAgdm9pZCBTVkdJbWFnZTo6ZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFNpemUKICAgICB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0u
c2NhbGUoMSAvIGltYWdlQnVmZmVyU2NhbGUud2lkdGgoKSwgMSAvIGltYWdlQnVmZmVyU2NhbGUu
aGVpZ2h0KCkpOwogCiAgICAgY29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxzZSk7Ci0g
ICAgaW1hZ2UtPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNjYWxlZFNyY1JlY3QsIHVu
c2NhbGVkUGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wLCBibGVu
ZE1vZGUpOworICAgIGltYWdlLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzY2FsZWRT
cmNSZWN0LCB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25z
KTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBE
ZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6
OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1
bHQ6OkRpZE5vdGhpbmc7CkBAIC0zMDksMTEgKzMwOSwxMSBAQCBJbWFnZURyYXdSZXN1bHQgU1ZH
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlYwogICAgIEFTU0VSVCh2aWV3KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihj
b21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlv
bihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogICAg
IGNvbnRleHQuY2xpcChlbmNsb3NpbmdJbnRSZWN0KGRzdFJlY3QpKTsKIAogICAgIGZsb2F0IGFs
cGhhID0gY29udGV4dC5hbHBoYSgpOwotICAgIGJvb2wgY29tcG9zaXRpbmdSZXF1aXJlc1RyYW5z
cGFyZW5jeUxheWVyID0gY29tcG9zaXRlT3AgIT0gQ29tcG9zaXRlU291cmNlT3ZlciB8fCBibGVu
ZE1vZGUgIT0gQmxlbmRNb2RlOjpOb3JtYWwgfHwgYWxwaGEgPCAxOworICAgIGJvb2wgY29tcG9z
aXRpbmdSZXF1aXJlc1RyYW5zcGFyZW5jeUxheWVyID0gb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRv
cigpICE9IENvbXBvc2l0ZVNvdXJjZU92ZXIgfHwgb3B0aW9ucy5ibGVuZE1vZGUoKSAhPSBCbGVu
ZE1vZGU6Ok5vcm1hbCB8fCBhbHBoYSA8IDE7CiAgICAgaWYgKGNvbXBvc2l0aW5nUmVxdWlyZXNU
cmFuc3BhcmVuY3lMYXllcikgewogICAgICAgICBjb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXIoYWxwaGEpOwogICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3Np
dGVTb3VyY2VPdmVyLCBCbGVuZE1vZGU6Ok5vcm1hbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5oCmluZGV4IDA3NTQyNGZjNzVkYmRlMDk5MTcwZmYzZjZlYmE2ZTZjNzFmZDJl
MTUuLjlhZDkzNThjNzExYmEyMjFjMmQ5MmE1YTc5NTk5ZGI1NDJiNzg1ZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldygpIGNvbnN0OwogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1h
Z2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgZmluYWw7CiAKQEAgLTk0LDEwICs5NCw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydEFuaW1hdGlvblRpbWVyRmlyZWQoKTsKIAogICAgIGV4cGxpY2l0IFNWR0ltYWdl
KEltYWdlT2JzZXJ2ZXImKTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRvUmVjdCwg
Q29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0
aW9uKSBmaW5hbDsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ZvckNvbnRhaW5lcihHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFNpemUgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVy
Wm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRN
b2RlKTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29u
c3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywKLSAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVj
dCYsIEJsZW5kTW9kZSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVz
dWx0IGRyYXdGb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplIGNv
bnRhaW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdt
ZW50VVJMLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdQYXR0
ZXJuRm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFp
bmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRV
UkwsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAogICAgIFJlZlB0
cjxTVkdTVkdFbGVtZW50PiByb290RWxlbWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcAppbmRleCBjZjhj
YzNlNWNlYzhlODEyZGU2OWE5ZjQ0YWRiYjdiMDVjNTVjMDA1Li5lYWVmYzMxZTQ3ZDAyMTUxZDY5
MGM1Y2Q2NWY1ZTgzMWIzMWFmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAKQEAgLTI3LDIzICsyNywyMiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZsb2F0U2l6ZSBTVkdJbWFnZUZvckNvbnRhaW5lcjo6c2l6
ZSgpIGNvbnN0CitGbG9hdFNpemUgU1ZHSW1hZ2VGb3JDb250YWluZXI6OnNpemUoSW1hZ2VPcmll
bnRhdGlvbikgY29uc3QKIHsKICAgICBGbG9hdFNpemUgc2NhbGVkQ29udGFpbmVyU2l6ZShtX2Nv
bnRhaW5lclNpemUpOwogICAgIHNjYWxlZENvbnRhaW5lclNpemUuc2NhbGUobV9jb250YWluZXJa
b29tKTsKICAgICByZXR1cm4gRmxvYXRTaXplKHJvdW5kZWRJbnRTaXplKHNjYWxlZENvbnRhaW5l
clNpemUpKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlRm9yQ29udGFpbmVyOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LAotICAg
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3As
IEJsZW5kTW9kZSBibGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0lt
YWdlRHJhd1Jlc3VsdCBTVkdJbWFnZUZvckNvbnRhaW5lcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4g
bV9pbWFnZS0+ZHJhd0ZvckNvbnRhaW5lcihjb250ZXh0LCBtX2NvbnRhaW5lclNpemUsIG1fY29u
dGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkwsIGRzdFJlY3QsIHNyY1JlY3QsIGNvbXBv
c2l0ZU9wLCBibGVuZE1vZGUpOworICAgIHJldHVybiBtX2ltYWdlLT5kcmF3Rm9yQ29udGFpbmVy
KGNvbnRleHQsIG1fY29udGFpbmVyU2l6ZSwgbV9jb250YWluZXJab29tLCBtX2luaXRpYWxGcmFn
bWVudFVSTCwgZHN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgU1ZHSW1hZ2VG
b3JDb250YWluZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVP
cCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKLSAgICBtX2ltYWdlLT5kcmF3UGF0dGVybkZvckNvbnRhaW5lcihjb250ZXh0LCBtX2Nv
bnRhaW5lclNpemUsIG1fY29udGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkwsIHNyY1Jl
Y3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3NpdGVPcCwgZHN0UmVj
dCwgYmxlbmRNb2RlKTsKKyAgICBtX2ltYWdlLT5kcmF3UGF0dGVybkZvckNvbnRhaW5lcihjb250
ZXh0LCBtX2NvbnRhaW5lclNpemUsIG1fY29udGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRV
UkwsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBkc3RSZWN0LCBv
cHRpb25zKTsKIH0KIAogTmF0aXZlSW1hZ2VQdHIgU1ZHSW1hZ2VGb3JDb250YWluZXI6Om5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFp
bmVyLmgKaW5kZXggODY5ZDA5NzFjNWIyZmU1ZDQ5NTFkZDYwMzQwYWUzNjNjZjc3NmYwNC4uZTY0
NGY3YWNmMzBlYzIyNGRmODUxNWQ4N2Y3MmMyYWUxYmIzNGE1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKQEAgLTQzLDcgKzQz
LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBGbG9h
dFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdl
KSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgdXNlc0NvbnRhaW5lclNpemUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2ltYWdlLT51c2VzQ29udGFpbmVyU2l6ZSgpOyB9CiAgICAgYm9vbCBoYXNS
ZWxhdGl2ZVdpZHRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbWFnZS0+aGFzUmVsYXRpdmVX
aWR0aCgpOyB9CkBAIC01Myw5ICs1Myw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9pbWFnZS0+Y29t
cHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwg
aW50cmluc2ljUmF0aW8pOwogICAgIH0KIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0
ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgZmlu
YWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
eyB9KSBmaW5hbDsKIAotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwg
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yLCBC
bGVuZE1vZGUpIGZpbmFsOworICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMg
dG8gYmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAgICAgYm9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVP
cGFxdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA0MDAwMmNmOTMw
ZmNiYzFkMmRmNTM1ZmYzMzYwNTAwOWI3ODhmZmEyLi43NWJhYjFjMjA0OGRlYTY5ZGFiODVkNGFi
ZjdmYmMyYTAyYzIzZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgc3RhdGljIHZvaWQg
aW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IEludGUKICAgICBpZiAoIWdyYXBoaWNzQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoKmltYWdlLCBGbG9hdFJlY3QoMCwgMCwg
Yml0bWFwU2l6ZS53aWR0aCgpLCBiaXRtYXBTaXplLmhlaWdodCgpKSwgcmVuZGVySW1hZ2UuaW1h
Z2VPcmllbnRhdGlvbigpKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZSgqaW1hZ2Us
IEZsb2F0UmVjdCgwLCAwLCBiaXRtYXBTaXplLndpZHRoKCksIGJpdG1hcFNpemUuaGVpZ2h0KCkp
LCB7IHJlbmRlckltYWdlLmltYWdlT3JpZW50YXRpb24oKSB9KTsKICAgICBpbmZvLmltYWdlID0g
c2hhcmVkQml0bWFwOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDQzZjZjODdiOGJkNzlhNTQzNTcyOGIwMzg0ZTQ4
ZWE0YWYzYzJiYi4uOTA2OGE1MzkxOGQ1MzAyYjQ1NzlhNWRmNjA4NzY5ZjZmNjU1ZTkxOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTI3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRVhJRiBvcmllbnRhdGlvbiBzaG91bGQgYmUg
cmVzcGVjdGVkIHdoZW4gcmVuZGVyaW5nIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgYXJlIG1hZGUgcmVmLXRlc3Rz
LiBOZXcgdGVzdHMgd2VyZSBhZGRlZCB0byBjb3ZlciBtb3JlCisgICAgICAgIGNhc2VzIGZvciBk
cmF3aW5nIGltYWdlcy4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24t
Y29tcG9zaXRlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVu
dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1pbWFnZS1kb2N1bWVudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWltYWdlLW9iamVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3Zn
LWZlaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9uczoKKwogMjAxOS0wOC0yNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgogCiAgICAgICAgIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGlzIGZpcmVkIHR3
aWNlIHdoZW4gZXhpdGluZyBwaWN0dXJlIGluIHBpY3R1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmIxNThiZWM1NmMxOWUy
Njk4NWRlMDI4NDg0NmM0OTIyNWRhZjJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24t
Y29tcG9zaXRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1U
aGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIHRlc3RSdW5uZXIgKG9yIGJ5IG1h
bnVhbGx5IHNldHRpbmcgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gdG8gdHJ1
ZSkuCi0KLQotRmxpcHBlZCBob3Jpem9udGFsbHkgCi1Sb3RhdGVkIDE4MMKwIAotRmxpcHBlZCB2
ZXJ0aWNhbGx5IAotCi1Sb3RhdGVkIDkwwrAgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1S
b3RhdGVkIDkwwrAgQ0NXIAotUm90YXRlZCA5MMKwIENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkg
IAotUm90YXRlZCA5MMKwIENXIAotaW1nMSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMiBzaXpl
ID0gMTAwcHggYnkgNTBweAotaW1nMyBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNCBzaXplID0g
NTBweCBieSAxMDBweAotaW1nNSBzaXplID0gNTBweCBieSAxMDBweAotaW1nNiBzaXplID0gNTBw
eCBieSAxMDBweAotaW1nNyBzaXplID0gNTBweCBieSAxMDBweApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThjZmYwOWE0NzJmNGI5MTBjMWY5ZWRlNTY1MGVl
YmEyMzA1MmRlMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKHRydWUpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLQotZnVuY3Rpb24gbG9nKHN0cikgewot
ICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hp
bGQobGkpOwotfQotCi1mdW5jdGlvbiBpbWFnZVNpemUoZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRT
dHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKLSAgICByZXR1cm4gY29tcHV0ZWRT
dHlsZS53aWR0aCArICIgYnkgIiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0
aW9uIGxvYWQoKSB7Ci0gICAgZm9yKHZhciBpID0gMTsgaSA8PSA3OyBpKyspCi0gICAgICAgIGxv
ZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VTaXplKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpbWciICsgaSkpKQotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7IC13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9Ci1kaXYgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMHB4OyB2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJs
b2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWly
IEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gd2l0aCB0ZXN0UnVu
bmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uIHRvIHRydWUpLjwvYj48YnI+PGJyPgotPGRpdj48aW1nIGlkPSJpbWcxIiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj48YnI+RmxpcHBlZCBob3Jpem9udGFs
bHk8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0zLWxyLmpwZyI+PGJyPlJvdGF0ZWQgMTgwJmRlZzs8L2Rpdj4KLTxkaXY+PGltZyBpZD0i
aW1nMyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciPjxicj5GbGlw
cGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxicj4KLTxkaXY+PGltZyBpZD0iaW1nNCIgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc1IiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IEND
VzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTctcmwuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2Fs
bHkgPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tOC1sbG8uanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+Ci08dWwg
aWQ9ImNvbnNvbGUiPjwvdWw+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwMjI0NWI2MGJiYjhkMmQxMTllOWUwN2U4MzA1
YmQ2MzExODU2MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotTm9uZSBvZiB0aGUgaW1hZ2VzIHNo
b3VsZCBiZSByb3RhdGVkLiBUaGlzIHRlc3QgaXMgb25seSB2YWxpZCB3aGVuIHJ1biB3aXRoIHRl
c3RSdW5uZXIgKG9yIHdpdGggV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gbWFu
dWFsbHkgc2V0IHRvIHRydWUpLgotCi0KLU5vcm1hbCAKLUZsaXBwZWQgaG9yaXpvbnRhbGx5IAot
Um90YXRlZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQotUm90YXRlZCA5MMKwIENDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBD
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENXIAotCi1Sb3RhdGVkIDkw
wrAgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ0NXIAotUm90YXRl
ZCA5MMKwIENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ1cgCi0KLVVu
ZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkgCi1pbWcxIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWcy
IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWczIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc0IHNp
emUgPSAxMDBweCBieSA1MHB4Ci1pbWc1IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc2IHNpemUg
PSAxMDBweCBieSA1MHB4Ci1pbWc3IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc4IHNpemUgPSAx
MDBweCBieSA1MHB4Ci1pbWc5IHNpemUgPSAxMDBweCBieSAxMDBweAotaW1nMTAgc2l6ZSA9IDEw
MHB4IGJ5IDEwMHB4Ci1pbWcxMSBzaXplID0gMTAwcHggYnkgMTAwcHgKLWltZzEyIHNpemUgPSAx
MDBweCBieSAxMDBweAotaW1nMTMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3NDE3ZjU1ODkyMTMzNjQ2ZDM4NjZhMGJhZWViMzYxNjgyZWIxZmJj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw1NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbih0cnVlKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIgbGkgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKLX0KLQotZnVu
Y3Rpb24gaW1hZ2VTaXplKGVsKSB7Ci0gICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShlbCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5
ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKLX0KLQotCi1mdW5jdGlvbiBsb2FkKCkgewotICAg
IGZvcih2YXIgaSA9IDE7IGkgPD0gMTM7IGkrKykKLSAgICAgICAgbG9nKCJpbWciICsgaSArICIg
c2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIgKyBpKSkp
Ci19Ci0KLTwvc2NyaXB0PgotPHN0eWxlPgotZGl2LmltYWdlIHsgZGlzcGxheTogaW5saW5lLWJs
b2NrOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgfQotZGl2LmNvbnRhaW5lciB7IGRpc3BsYXk6
IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3
aWR0aDogMTAwcHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KLWltZyB7IHdpZHRoOiAxMDBweDsg
aGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLTxiPk5vbmUgb2YgdGhlIGltYWdlcyBz
aG91bGQgYmUgcm90YXRlZC4gVGhpcyB0ZXN0IGlzIG9ubHkgdmFsaWQgd2hlbiBydW4gd2l0aCB0
ZXN0UnVubmVyIChvciB3aXRoIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIG1h
bnVhbGx5IHNldCB0byB0cnVlKS48L2I+PGJyPjxicj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWcxIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnKSI+PC9kaXY+PGJyPk5vcm1hbDwvZGl2PgotPGRp
diBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzIiIHN0eWxlPSJj
b250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rpdj48
YnI+RmxpcHBlZCBob3Jpem9udGFsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRp
diBjbGFzcz0iaW1hZ2UiIGlkPSJpbWczIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTMtbHIuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgMTgwJmRlZzs8L2Rp
dj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc0IiBz
dHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyki
PjwvZGl2Pjxicj5GbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxicj4KLTxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc1IiBzdHlsZT0iY29udGVudDogdXJs
KHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzYiIHN0eWxlPSJjb250ZW50OiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCA5
MCZkZWc7IENDVzwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFn
ZSIgaWQ9ImltZzciIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tNy1ybC5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2Ui
IGlkPSJpbWc4IiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nOSIgc3R5bGU9ImJhY2tncm91bmQtaW1h
Z2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZykiPjwvaW1nPjxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTAiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1
cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGcpIj48L2ltZz48YnI+Um90YXRl
ZCA5MCZkZWc7IENDVzwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48aW1nIGlkPSJpbWcx
MSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZykiPjwvaW1nPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVy
dGljYWxseTwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48aW1nIGlkPSJpbWcxMiIgc3R5
bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxs
by5qcGcpIj48L2ltZz48YnI+Um90YXRlZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+Ci08ZGl2IGNs
YXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMTMiIHN0eWxlPSJjb250
ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZykiPjwvZGl2Pjxicj5V
bmRlZmluZWQgKGludmFsaWQgdmFsdWUpPC9kaXY+Ci08YnI+Ci08dWwgaWQ9ImNvbnNvbGUiPjwv
dWw+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2V4aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkZjQ4ODMyM2Y0OTRhMDZiNzQ5MGFmNjAzOTdkMTRmOTIwMWFlM2FkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMg
KzAsMCBAQAotVGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVY
SUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gd2l0aCB0ZXN0UnVubmVy
IChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uIHRvIHRydWUpLgotCi0KLU5vcm1hbCAKLUZsaXBwZWQgaG9yaXpvbnRhbGx5IAotUm90YXRl
ZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQotUm90YXRlZCA5MMKwIENDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5ICAKLVJvdGF0ZWQgOTDCsCBDVyAKLQotVW5kZWZpbmVkIChpbnZh
bGlkIHZhbHVlKSAKLWltZzEgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6ZSA9IDEwMHB4
IGJ5IDUwcHgKLWltZzMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9IDEwMHB4IGJ5
IDUwcHgKLWltZzUgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzYgc2l6ZSA9IDUwcHggYnkgMTAw
cHgKLWltZzcgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzggc2l6ZSA9IDUwcHggYnkgMTAwcHgK
LWltZzkgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVudC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MzEzYmU1MjM0ZjVlMjg2
N2FkNGQ1NjAwNmE1MzVlMGVmYzZmNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1p
bWFnZS1kb2N1bWVudC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LVRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVu
dGF0aW9uLiBJbiBpbWFnZSBkb2N1bWVudHMsIHRoaXMgaGFwcGVucyBpbmRlcGVuZGVudCBvZiBX
ZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbi4KLQotICAgIAotICAgIAotIAotUEFT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1p
bWFnZS1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi1pbWFnZS1kb2N1bWVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
MjFiM2U1NThiOTQ0MDI4ZmE2ZDBmYTU5NDllNTg3NjYwYWEwOGQxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4
aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgLy8gTm90ZSB0aGF0IHRoaXMgdGVzdCBvbmx5IHBhc3NlcyBpbiBEUlQuIEluIGJy
b3dzZXJzLCB0aGUgY3Jvc3MtaWZyYW1lIGRvbSBpbnNwZWN0aW9uIHVzdWFsbHkgY2F1c2VzIGEg
c2VjdXJpdHkgZXhjZXB0aW9uLgotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLX0K
LQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3Ry
KSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
OwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5jdGlvbiBpbWFnZVNpemUo
bmFtZSkgewotICAgIHZhciBpbWcgPSB3aW5kb3cuZnJhbWVzW25hbWVdLmRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ2ltZycpOwotICAgIHJldHVybiBbaW1nLm9mZnNldFdpZHRoLCBpbWcub2Zmc2V0
SGVpZ2h0XTsKLX0KLQotCi1mdW5jdGlvbiBsb2FkKCkgewotICAgIHZhciBleHBlY3RlZCA9IFsK
LSAgICAgIFsxMDAsIDUwXSwgWzEwMCwgNTBdLCBbMTAwLCA1MF0sIFsxMDAsIDUwXSwgCi0gICAg
ICBbNTAsIDEwMF0sIFs1MCwgMTAwXSwgWzUwLCAxMDBdLCBbNTAsIDEwMF0sIAotICAgICAgWzEw
MCwgNTBdLAotICAgIF07Ci0gICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICAgIGZvcih2YXIgaSA9
IDE7IGkgPD0gOTsgaSsrKSB7Ci0gICAgICAgIHZhciBzID0gaW1hZ2VTaXplKCJpbWciICsgaSk7
Ci0gICAgICAgIGlmIChzWzBdICE9PSBleHBlY3RlZFtpIC0gMV1bMF0gfHwgc1sxXSAhPT0gZXhw
ZWN0ZWRbaSAtIDFdWzFdKQotICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgIH0KLSAg
ICBsb2coc3VjY2VzcyA/ICJQQVNTIiA6ICJGQUlMIik7Ci19Ci0KLTwvc2NyaXB0PgotPHN0eWxl
PgotaWZyYW1lIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIwcHg7IG1h
cmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiAxMTBweDsgdmVydGljYWwt
YWxpZ246IHRvcDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci08Yj5UaGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVk
IHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi4gSW4gaW1hZ2UgZG9jdW1lbnRzLCB0
aGlzIGhhcHBlbnMgaW5kZXBlbmRlbnQgb2YgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24uPC9iPjxicj48YnI+Ci08aWZyYW1lIG5hbWU9ImltZzEiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08aWZyYW1l
IG5hbWU9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciIGZy
YW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08aWZyYW1lIG5hbWU9ImltZzMiIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08aWZy
YW1lIG5hbWU9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBn
IiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGJyPgotPGlmcmFtZSBuYW1lPSJpbWc1IiBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZy
YW1lPgotPGlmcmFtZSBuYW1lPSJpbWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTYtcnUuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWc3IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIiBmcmFtZWJvcmRlcj0wPjwv
aWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWc4IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTgtbGxvLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTxpZnJhbWUgbmFt
ZT0iaW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIiBmcmFtZWJv
cmRlcj0wPjwvaWZyYW1lPgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5Pgot
PC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVu
dGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkOGM4M2IwZDVmM2VkNWRlOTMwOWI4
NjI3NGZlMTcxNGJmMDVhOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotCi1mdW5jdGlvbiBsb2coc3RyKSB7Ci0gICAg
dmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAgICBsaS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2YXIgY29uc29sZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0gICAgY29uc29sZS5hcHBlbmRDaGlsZChs
aSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewotICAgIHZhciBjb21wdXRlZFN0eWxl
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAgIHJldHVybiBjb21wdXRlZFN0eWxl
LndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7Ci19Ci0KLQotZnVuY3Rpb24g
bG9hZCgpIHsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykKLSAgICAgICAgbG9nKCJp
bWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImltZyIgKyBpKSkpCi19Ci0KLTwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7IH0KLWRpdiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0
OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDogMTAwcHg7IHZlcnRpY2FsLWFsaWdu
OiB0b3A7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci08Yj5U
aGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIHRlc3RSdW5uZXIgKG9yIGJ5IG1h
bnVhbGx5IHNldHRpbmcgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gdG8gdHJ1
ZSkuPC9iPjxicj48YnI+Ci08ZGl2PjxpbWcgaWQ9ImltZzEiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciPjxicj5Ob3JtYWw8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1n
MiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+PGJyPkZsaXBwZWQg
aG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzMiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjxicj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+Ci08ZGl2
PjxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBn
Ij48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+Ci08ZGl2PjxpbWcgaWQ9ImltZzUi
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciPjxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1n
NiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyI+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNyIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi03LXJsLmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5IDwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc4IiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVzwvZGl2Pgot
PGJyPgotPGRpdj48aW1nIGlkPSJpbWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTktdS5qcGciPjxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpPC9kaXY+Ci08YnI+Ci08dWwg
aWQ9ImNvbnNvbGUiPjwvdWw+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5k
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc1NjZiMGFkNjMwNGM5ZTUxNDAxMGUyNjdlZTJm
MTJkNmRjMTA0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAg
ICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAg
ICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OworICAgIH0KKyAgICBp
bWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgdHJhbnNmb3Jt
LW9yaWdpbjogY2VudGVyOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgY3Nz
IGJhY2tncm91bmQgaW1hZ2VzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVY
SUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8
YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5S
b3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxi
cj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0i
dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0x
KTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5k
IGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
dHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9
InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVko
LTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxp
ZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMzk5MTlmZWExYjlhYjVmOTBjYTI1MDQ5ZTc0YjY2MTNlZDM0ZGY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3Vu
ZC5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBk
aXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0
OworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3
aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJv
ZHk+CisgICAgPGI+VGhlIGNzcyBiYWNrZ3JvdW5kIGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQg
cmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdl
IGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imlt
YWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9y
aXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6
IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZykiPjwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+
PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1h
Z2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0i
YmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBn
KSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVy
dGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNy1ybC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Ug
aG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFs
aWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRlZTBhZTk2ZDJjZDE5YTBjMzExYjZmMTEwYWMyOGNkMzNiMmUzNTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1jYW52YXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJs
b2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9t
OiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246
IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJs
b2NrOworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
ICAgbWFyZ2luLWJvdHRvbTogNnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOworICAg
IH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZHJh
d0ltYWdlKCkgc2hvdWxkIHJlc3BlY3QgdGhlIGltYWdlIEVYSUYgb3JpZW50YXRpb24uPC9iPgor
ICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAg
PGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9
InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFs
bHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zv
cm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2Fs
ZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1
cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAy
NXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFn
ZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3
MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAg
ICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkNzExZWQzYjRlMTI4ZmMwMDkxZjFlYWY1NmRm
ZmQ4NTI4NTAzODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c3R5bGU+CisgICAgZGl2IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEw
cHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsK
KyAgICB9CisgICAgY2FudmFzIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWln
aHQ6IDUwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBj
YW52YXMuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0
OiA1MHB4OworICAgIH0KKyAgICBjYW52YXMudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBw
eDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAg
PGI+Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSgpIHNob3VsZCByZXNwZWN0IHRo
ZSBpbWFnZSBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxk
aXY+CisgICAgICAgIDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXMxIj48L2Nh
bnZhcz4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAg
IDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXMyIj48L2NhbnZhcz4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAg
ICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczMiPjwvY2FudmFzPgorICAg
ICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAg
IDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXM0Ij48L2NhbnZhcz4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
PgorICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczUiPjwvY2FudmFz
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5
CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGNhbnZhcyBjbGFzcz0idmVydGljYWwi
IGlkPSJjYW52YXM2Ij48L2NhbnZhcz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIg
aWQ9ImNhbnZhczciPjwvY2FudmFzPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8Y2Fu
dmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczgiPjwvY2FudmFzPgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXY+CisgICAg
ICAgIDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXM5Ij48L2NhbnZhcz4KKyAg
ICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIG5hbWVzID0gWworICAgICAgICAgICAgICAgIHsg
cmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIsICBpZCA6ICJj
YW52YXMxIiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0yLXVyLmpwZyIsICBpZCA6ICJjYW52YXMyIiB9LAorICAgICAgICAgICAgICAg
IHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyIsICBpZCA6
ICJjYW52YXMzIiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi00LWxvbC5qcGciLCBpZCA6ICJjYW52YXM0IiB9LAorICAgICAgICAgICAg
ICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyIsICBp
ZCA6ICJjYW52YXM1IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIsICBpZCA6ICJjYW52YXM2IiB9LAorICAgICAgICAg
ICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyIs
ICBpZCA6ICJjYW52YXM3IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciLCBpZCA6ICJjYW52YXM4IiB9LAorICAgICAg
ICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBn
IiwgICBpZCA6ICJjYW52YXM5IiB9CisgICAgICAgICAgICBdOworCisgICAgICAgICAgICB2YXIg
ZHJhd0NvdW50ID0gMDsKKworICAgICAgICAgICAgbmFtZXMuZm9yRWFjaChmdW5jdGlvbihuYW1l
KSB7CisgICAgICAgICAgICAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlOworICAgICAgICAgICAg
ICAgIGltYWdlLnNyYyA9IG5hbWUucmVzb3VyY2U7CisgICAgICAgICAgICAgICAgaW1hZ2UuZGVj
b2RlKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChuYW1lLmlkKTsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFz
LndpZHRoID0gaW1hZ2Uud2lkdGg7CisgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQg
PSBpbWFnZS5oZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFz
LmdldENvbnRleHQoIjJkIik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdl
KGltYWdlLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoKytkcmF3Q291bnQgPT0gbmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
IDwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNv
bnRlbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGIwOWFiNDU5MWY3MzJiYjk3MTkxZTMy
N2Y5NzhmMDdmMmYwNDYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNzEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAg
ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisg
ICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAg
ICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAg
ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CisgICAgfQorICAg
IGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB0cmFuc2Zv
cm0tb3JpZ2luOiBjZW50ZXI7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBj
c3MgY29udGVudCBpbWFnZXMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJ
RiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciPgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDxi
cj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJy
PkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAg
ICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0
cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0
cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0i
dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgt
MSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5k
IGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
dHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlk
IHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZjI1
ODM4ZTQwOTQ0NTBmMjQxZmE1NmExMjc1MDU5MGZiYTZjMzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5l
ciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0
OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5pbWFnZSB7
CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgYm9yZGVyOiAxcHggc29s
aWQgYmxhY2s7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEw
MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7Cisg
ICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5
bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgY3NzIGNvbnRlbnQgaW1hZ2VzIHNob3VsZCBiZSByZW5k
ZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Ug
aG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0yLXVyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTMtbHIuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVy
dGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVy
bChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZykiPjwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Ug
dmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
Ni1ydS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJp
bWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi03LXJsLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImNvbnRlbnQ6
IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcpIj48L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFs
IiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGcp
Ij48L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rp
dj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9y
aWVudGF0aW9uLWRvY3VtZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUy
NTE2NmExMjdlNzg0ZTM0NDEzYjBmZDQwYWU5NjM5MzAwNmE4MDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAg
IGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAg
IG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAg
ICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0K
KyAgICBkaXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAg
IHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBtYXJnaW4tYm90
dG9tOiA2cHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7CisgICAgfQorPC9zdHlsZT4K
Kzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgSW1hZ2VEb2N1bWVudHMgc2hvdWxkIGJlIHJl
bmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+Tm9ybWFs
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRl
KDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90
YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2
PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkg
cm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7
Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0
ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5
bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2
PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8YnI+VW5k
ZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWRvY3Vt
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1
bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNDQzYjY3MzhhODZmNzlmMGYxNWEwMWYyOGU4YzY1NTVl
NmE3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1kb2N1bWVudC5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHN0eWxlPgorICAgIGRpdiB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAg
ICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owor
ICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAg
fQorICAgIGlmcmFtZSB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAg
bWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAg
ICB9CisgICAgaWZyYW1lLmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgaWZyYW1lLnZlcnRpY2FsIHsKKyAgICAgICAg
d2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxi
b2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgSW1hZ2VEb2N1bWVudHMgc2hvdWxkIGJlIHJlbmRl
cmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAg
IDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxv
YWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxk
aXY+CisgICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxv
YWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjwvaWZy
YW1lPgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2PgorICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVM
b2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj48L2lm
cmFtZT4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
PgorICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2Fk
KHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PC9pZnJh
bWU+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+
CisgICAgPGRpdj4KKyAgICAgICAgPGlmcmFtZSBjbGFzcz0idmVydGljYWwiIG9ubG9hZD0ib25G
cmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGci
PjwvaWZyYW1lPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlmcmFtZSBjbGFzcz0i
dmVydGljYWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tNi1ydS5qcGciPjwvaWZyYW1lPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpZnJhbWUgY2xhc3M9InZl
cnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTctcmwuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAg
ICAgPGlmcmFtZSBjbGFzcz0idmVydGljYWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj48L2lmcmFtZT4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
PgorICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2Fk
KHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciPjwvaWZyYW1l
PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAg
IDxicj4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgIHZh
ciBpRnJhbWVMb2FkZWRDb3VudCA9IDA7CisKKyAgICAgICAgIGZ1bmN0aW9uIG9uRnJhbWVMb2Fk
KCkgeworICAgICAgICAgICAgaWYgKCsraUZyYW1lTG9hZGVkQ291bnQgPT0gOSkgeworICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM2NjI5YzFjNmYzODRhYjIxNTk4ZGNiM2Y3M2JjN2M1Y2FkZTgyM2MK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTog
aW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJn
aW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGlj
YWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAgZGlzcGxheTog
aW5saW5lLWJsb2NrOworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAg
ICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2Vu
dGVyOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtv
YmplY3QmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVY
SUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8
YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5S
b3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxi
cj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNs
YXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
MjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAg
ICA8L2Rpdj4KKyAgICA8YnI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRjNWIwZmFjMTI4OGU5OTk2NjgyZTZjMGY5MDBmNzQ5ZWZhODMxMmMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1v
YmplY3QuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAg
ICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAg
ICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9Cisg
ICAgb2JqZWN0IHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9z
dHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O29iamVjdCZndDsgZWxlbWVu
dHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48
L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIj48L29iamVjdD4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxvYmplY3QgdHlwZT0iaW1h
Z2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjwvb2Jq
ZWN0PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWci
IGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj48L29iamVjdD4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDxicj5G
bGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pw
ZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj48L29iamVjdD4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj48L29iamVjdD4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFn
ZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciPjwvb2Jq
ZWN0PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxvYmplY3QgdHlwZT0iaW1h
Z2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyI+PC9vYmpl
Y3Q+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1pbWctZWxlbWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MjE2NWI3MDdhYzMxODVlYmIxOWNiMDdlY2Q3YTFhMGJmMGI4YzhhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4K
KyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAg
ICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAK
KyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAg
ICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwor
ICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgbWFy
Z2luLWJvdHRvbTogNnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBz
b2xpZCBibGFjazsKKyAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOworICAgIH0KKzwv
c3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcmZ3Q7IGVsZW1lbnRz
IHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9i
PgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGltZyBpZD0iaW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyI+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8aW1nIGlkPSJpbWcyIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAg
IDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxpbWcgaWQ9ImltZzMiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGltZyBpZD0iaW1nNCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUo
MTgwZGVnKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVw
eCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4
LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9Imlt
ZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1n
OCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIGlkPSJpbWc5IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPGJyPlVu
ZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPHVsIGlk
PSJjb25zb2xlIj48L3VsPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIp
IHsKKyAgICAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Cisg
ICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsK
KyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisK
KyAgICAgICAgIGZ1bmN0aW9uIGltYWdlU2l6ZShpbmRleCkgeworICAgICAgICAgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIiArIGluZGV4KTsKKyAgICAgICAg
ICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7
CisgICAgICAgICAgICBpZiAoZWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlu
cygidmVydGljYWwiKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS5oZWln
aHQgKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLndpZHRoOworICAgICAgICAgICAgcmV0dXJuIGNv
bXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKKyAgICAg
ICAgfQorCisgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkg
PT4geworICAgICAgICAgICAgZm9yKHZhciBpID0gMTsgaSA8PSA5OyBpKyspCisgICAgICAgICAg
ICAgICAgbG9nKCJpbWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoaSkpOworICAgICAg
ICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1p
bWctZWxlbWVudC1vYmplY3QtZml0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0LWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWQ1YzgyZjdjZTQyZjZmZmUzYjhlMDJhYWQwMDEyZDA4Yjg5Y2ZkNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAg
ICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owor
ICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgfQorICAgIGRpdi5pbWFnZSB7CisgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICAg
ICAgbWFyZ2luLWJvdHRvbTogNHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAg
ICBpbWcgeworICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7CisgICAgfQorPC9zdHls
ZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVudHMgd2l0
aCBvYmplY3QtZml0IHByb3BlcnR5IHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWly
IEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAy
NXB4KSBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBo
b3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgw
LCAyNXB4KSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0
ZSgwLCAyNXB4KSBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZ
KC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
dHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoMCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwg
MjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoMCwgMjVweCk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRl
ZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmpl
Y3QtZml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1p
bWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI4YzFjOGE5M2FhNDNhYTUw
OWRhOTA4MzA2YWM1MTc4YTFhN2E2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQuaHRtbApA
QCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYgeworICAg
ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsg
CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjog
dG9wOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgb2JqZWN0LWZpdDog
Y29udGFpbjsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHls
ZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVudHMgd2l0
aCBvYmplY3QtZml0IHByb3BlcnR5IHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWly
IEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAg
ICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+CisgICAgICAgIDxicj5GbGlw
cGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyI+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+CisgICAgICAgIDxicj5GbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXY+CisgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02
LXJ1LmpwZyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+Cisg
ICAgPGRpdj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTct
cmwuanBnIj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0
aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRl
ZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdj4KKyAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciPgorICAgICAgICA8YnI+VW5kZWZp
bmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODUwZjg3NGY0YWYyZmI5MWEyYzdhNjQ2NDg1ODc4OTZhNmE2ZWYyMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltZy1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
c3R5bGU+CisgICAgZGl2IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAg
ICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAg
ICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9
CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9z
dHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVudHMg
c2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+
CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1nIGlkPSJpbWcxIiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPGJyPk5v
cm1hbAorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9ImltZzIiIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPgorICAgICAgICA8YnI+RmxpcHBl
ZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1nIGlkPSJp
bWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1n
IGlkPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+Cisg
ICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PGRpdj4KKyAgICAgICAgPGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi01LWx1LmpwZyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8aW1nIGlkPSJp
bWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8
aW1nIGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXY+CisgICAgICAgIDxpbWcgaWQ9
ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyI+CisgICAgICAg
IDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgorICAg
IDx1bCBpZD0iY29uc29sZSI+PC91bD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBs
b2coc3RyKSB7CisgICAgICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJs
aSIpOworICAgICAgICAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
c3RyKSk7CisgICAgICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIik7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICAg
ICAgfQorCisgICAgICAgICAgZnVuY3Rpb24gaW1hZ2VTaXplKGVsKSB7CisgICAgICAgICAgICB2
YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKKyAgICAgICAg
ICAgIHJldHVybiBjb21wdXRlZFN0eWxlLndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5o
ZWlnaHQ7CisgICAgICAgIH0KKworICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGZvcih2YXIgaSA9IDE7IGkgPD0gOTsgaSsr
KQorICAgICAgICAgICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VTaXpl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKTsKKyAgICAgICAgfSk7CisgICAg
PC9zY3JpcHQ+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2Ut
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LXN2Zy1mZWltYWdlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGNhMTk3NGQxMzNhNzlhNmY1
NmU5MGMxMjBmYmFiOGY2MDYzNTU4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5l
ciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0
OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAx
MDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5pbWFn
ZSB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgd2lkdGg6IDUwcHg7
CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsKKyAg
ICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAg
IHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAg
PGI+VGhlIGltYWdlcyBvZiBTVkcgJmx0O2ZlaW1hZ2UmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSBy
ZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4K
KyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPGJyPk5vcm1h
bAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0
ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJv
dGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgp
IHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImltYWdlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rp
dj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPGJyPlVu
ZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmct
ZmVpbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
c3ZnLWZlaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzcyZTk0MTBiMGI2NjAxN2ZkNDNkNjA1MGY3
OGM2YWZiZGFmNjRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UuaHRtbApAQCAtMCwwICsxLDExMCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0
b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246
IHRvcDsKKyAgICB9CisgICAgc3ZnIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7
CisgICAgfQorICAgIHN2Zy5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIHN2Zy52ZXJ0aWNhbCB7CisgICAgICAgIHdp
ZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9k
eT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIFNWRyAmbHQ7ZmVpbWFnZSZndDsgZWxlbWVudHMgc2hv
dWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+Cisg
ICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzEiPgorICAgICAgICAgICAgICAgIDxm
ZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+CisgICAgICAgICAgICA8L2ZpbHRlcj4K
KyAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0
ZXI6dXJsKCNpbWcxKTsiLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5Ob3JtYWwKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAg
ICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzIiPgorICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9
IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTItdXIuanBnIi8+CisgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAgICAg
ICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNp
bWcyKTsiLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwi
PgorICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nMyI+CisgICAgICAgICAgICAgICAgPGZlaW1h
Z2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciLz4KKyAgICAgICAgICAgIDwvZmlsdGVyPgorICAg
ICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1
cmwoI2ltZzMpOyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRl
ZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzQiPgorICAgICAgICAgICAgICAgIDxmZWlt
YWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIvPgorICAgICAgICAgICAgPC9maWx0ZXI+Cisg
ICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVy
OnVybCgjaW1nNCk7Ii8+CisgICAgICAgIDwvc3ZnPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0
aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xh
c3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzUiPgorICAgICAgICAg
ICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhy
ZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIi8+CisgICAgICAgICAgICA8
L2ZpbHRlcj4KKyAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0
eWxlPSJmaWx0ZXI6dXJsKCNpbWc1KTsiLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Zmls
dGVyIGlkPSJpbWc2Ij4KKyAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02
LXJ1LmpwZyIvPgorICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICA8cmVjdCB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVybCgjaW1nNik7Ii8+CisgICAg
ICAgIDwvc3ZnPgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2Pgor
ICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxm
aWx0ZXIgaWQ9ImltZzciPgorICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdp
ZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTctcmwuanBnIi8+CisgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAgICAgICAgIDxyZWN0IHdp
ZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc3KTsiLz4KKyAg
ICAgICAgPC9zdmc+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzgiPgorICAgICAgICAgICAgICAg
IDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyIvPgorICAgICAgICAgICAgPC9maWx0
ZXI+CisgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0i
ZmlsdGVyOnVybCgjaW1nOCk7Ii8+CisgICAgICAgIDwvc3ZnPgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXY+CisgICAgICAgIDxz
dmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nOSI+Cisg
ICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0i
MTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyIvPgorICAgICAg
ICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIx
MDAlIiBzdHlsZT0iZmlsdGVyOnVybCgjaW1nOSk7Ii8+CisgICAgICAgIDwvc3ZnPgorICAgICAg
ICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLXN2Zy1pbWFnZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRmNDU5
ZGY3ZGQxNWI2MzI1NGNkMGI5NzEwMzg2ZjMzOTE1YWM1OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAg
ICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAg
ICBkaXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIHdp
ZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBtYXJnaW4tYm90dG9t
OiA2cHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNr
OworICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7CisgICAgfQorPC9zdHlsZT4KKzxi
b2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgU1ZHICZsdDtpbWFnZSZndDsgZWxlbWVudHMgc2hv
dWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+Cisg
ICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8
YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0i
dHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxl
WCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQor
ICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVw
eCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0
ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaW1hZ2UiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1
cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdl
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcw
ZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVwor
ICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAg
ICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLXN2Zy1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24tc3ZnLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdiYjVlNTJkM2MxZmQxNThlODRkYzgz
NGRiY2U2MGI4ZTIzODE3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdiB7CisgICAgICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90
dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWdu
OiB0b3A7CisgICAgfQorICAgIHN2ZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNr
OworICAgIH0KKyAgICBzdmcuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBzdmcudmVydGljYWwgeworICAgICAgICB3
aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJv
ZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBTVkcgJmx0O2ltYWdlJmd0OyBlbGVtZW50cyBzaG91
bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAg
ICA8YnI+CisgICAgPGJyPgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250
YWwiPgorICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+CisgICAgICAgIDwvc3ZnPgor
ICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdo
dD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciLz4KKyAg
ICAgICAgPC9zdmc+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2
PgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9zdmc+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPHN2ZyBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAw
JSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIi8+CisgICAgICAg
IDwvc3ZnPgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAg
PGJyPgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAg
ICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi01LWx1LmpwZyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWFn
ZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi02LXJ1LmpwZyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJl
Zj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciLz4KKyAgICAgICAgPC9zdmc+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQor
ICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAg
ICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciLz4KKyAgICAgICAgPC9zdmc+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdj4K
KyAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1hZ2Ugd2lk
dGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
OS11LmpwZyIvPgorICAgICAgICA8L3N2Zz4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxp
ZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEyODllZTZjMThiZDU4MTdmZGEzYzdhMDFh
YTM0OTM5M2U2MDdjOGIuLjBjYzY1YWFlZjE0ZGNiN2EwYWRjYmYwODIwZGU5YzFjNjlhYTBkYjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTI1LDgg
KzI5MjUsNiBAQCB3ZWJraXQub3JnL2IvMTIwNTk2IGNzczMvbWFza2luZy9tYXNrLXJlcGVhdC1z
cGFjZS1jb250ZW50Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdQogCiB3ZWJraXQub3JnL2IvMTIwODM5
IGxlZ2FjeS1hbmltYXRpb24tZW5naW5lL2FuaW1hdGlvbnMvY3Jvc3MtZmFkZS1iYWNrZ3JvdW5k
LWltYWdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzEyMTkwNSBm
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9y
Zy9iLzE4MDU4MSBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1tYXJnaW4t
MDAxLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODA1ODEgY3NzMy9zaGFwZXMvc2hh
cGUtb3V0c2lkZS92YWx1ZXMvc2hhcGUtb3V0c2lkZS1jaXJjbGUtMDA0Lmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8xODA1ODEgY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS92YWx1ZXMv
c2hhcGUtb3V0c2lkZS1jaXJjbGUtMDA1Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzNiZjZiNzYzODA2ZjMwZTlhN2YzMmYx
MTAyZTU4Y2YxMmZjMzU4NS4uZDM1MDQ3YTAzNzM0YmYyMzdjMjAzMzg0ZjYxYzcwY2U3MzQ1Mjdj
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI4MTEs
MTEgKzI4MTEsOSBAQCBmYXN0L2hpc3RvcnkvbG9jYXRpb24tcmVwbGFjZS1oYXNoLmh0bWwgWyBT
a2lwIF0KIGZhc3QvaGlzdG9yeS9zYXZlcy1zdGF0ZS1hZnRlci1mcmFnbWVudC1uYXYuaHRtbCBb
IFNraXAgXQogCiBmYXN0L2ltYWdlcy9pbWFnZS1jb250cm9scy1iYXNpYy5odG1sIFsgRmFpbHVy
ZSBdCi1mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbCBbIEZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzE0MDUxNiBbIERlYnVnIF0gZmFzdC9pbWFnZXMvbGFyZ2Utc2l6
ZS1pbWFnZS1jcmFzaC5odG1sIFsgU2tpcCBdICAjIENyYXNoaW5nCiBmYXN0L2ltYWdlcy9wZGYt
YXMtaW1hZ2Utd2l0aC1hbm5vdGF0aW9ucy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0
L2ltYWdlcy9zdXBwb3J0LWJyb2tlbi1pbWFnZS1kZWxlZ2F0ZS5odG1sIFsgRmFpbHVyZSBdCi1m
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAogZmFzdC9pbmxp
bmUvcG9zaXRpb25lZExpZmV0aW1lLmh0bWwgWyBGYWlsdXJlIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377428</attachid>
            <date>2019-08-27 23:04:23 -0700</date>
            <delta_ts>2019-08-28 08:38:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201123-20190827230422.patch</filename>
            <type>text/plain</type>
            <size>263414</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY3NzY2YmNjYTI4OWMz
OWQyODhmYTkyOWI4NzkzYjU2NTBjMWJiMS4uZjlkNzNiMWQ0NjFiZDE3MzY1NThhNWU1MWZjODQy
ODU3OTE2MjY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1MiBAQAorMjAxOS0wOC0yNyAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEVYSUYg
b3JpZW50YXRpb24gc2hvdWxkIGJlIHJlc3BlY3RlZCB3aGVuIHJlbmRlcmluZyBpbWFnZXMgCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDExMjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtLSBJbWFnZTo6
c2l6ZSgpIHdpbGwgcmV0dXJuIHRoZSByZW5kZXJlZCBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZQor
ICAgICAgICAgICBvcmllbnRhdGlvbi4gVGhlIGxvdyBsZXZlbCBBUElzIG1pZ2h0IHRyYW5zcG9z
ZSB0aGUgc2l6ZSBqdXN0IGJlZm9yZQorICAgICAgICAgICBjYWxsaW5nIHRoZSBzeXN0ZW0gQVBJ
IHRvIGRyYXcgdGhlIGltYWdlLgorCisgICAgICAgIC0tIFJlbmRlckVsZW1lbnQ6OmltYWdlT3Jp
ZW50YXRpb24oKSB3aWxsIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UKKyAgICAg
ICAgICAgZm9yIGFsbCBpbWFnZXMgYW5kIGZvciBhbGwgcG9ydHMgdGlsbCB0aGUgY3NzIGltYWdl
LW9yaWVudGF0aW9uIHNwZWNzCisgICAgICAgICAgIGlzIGZpbmFsaXplZC4KKworICAgICAgICAt
LSBUaGUgZGVmYXVsdCBvZiBJbWFnZU9yZWluZXRhdGlvbiBhcmd1bWVudCBvZiBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZSgpCisgICAgICAgICAgIHdpbGwgYmUgY2hhbmdlZCB0byB7IEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZSB9LgorCisgICAgICAgIC0tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoK
KyAgICAgICAgICAgRnJvbUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3
VGlsZWRJbWFnZSgpLgorCisgICAgICAgIC0tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmRyYXdJbWFnZSgpIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoKKyAgICAgICAgICAgRnJv
bUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KKworICAg
ICAgICBUZXN0czogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVu
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFn
ZS1vYmplY3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbAorCisgICAgICAg
ICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VG
cmFtZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemVS
ZXNwZWN0aW5nT3JpZW50YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9j
dW1lbnRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpzaXpl
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjppbWFnZU9y
aWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAq
IHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFn
ZUZvckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUZvckNvbnRhaW5l
cjo6c2l6ZSBjb25zdCk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFp
bmVyLmg6CisKKzIwMTktMDgtMjcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFw
cGxlLmNvbT4KKworICAgICAgICBBbGwgaW1hZ2UgZHJhd2luZyBmdW5jdGlvbnMgc2hvdWxkIHRh
a2UgYW4gYXJndW1lbnQgb2YgdHlwZSBJbWFnZVBhaW50aW5nT3B0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMDU5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaDoKKyAgICAg
ICAgLS0gQWxsIHRoZSBpbWFnZSBkcmF3aW5nIGZ1bmN0aW9uIHdpbGwgdGFrZSBhbiBhcmd1bWVu
dCBvZiB0eXBlCisgICAgICAgICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIGluc3RlYWQgb2YgcGFz
c2luZyBpbmRpdmlkdWFsIG9wdGlvbnMuCisKKyAgICAgICAgLS0gSW1hZ2VQYWludGluZ09wdGlv
bnMgaXMgbWFkZSBsaWtlIGEgc2V0IG9mIG9wdGlvbnMuIEl0IGNhbiBiZQorICAgICAgICAgICBp
bml0aWFsaXplZCB3aXRoIGFueSBudW1iZXIgb2Ygb3B0aW9ucyBhbmQgdGhlIG9yZGVyIGRvZXMg
bm90IG1hdHRlcgorCisgICAgICAgIC0tIEltYWdlOjpvcmlnaW5hbFNpemUoKSBpcyBkZWxldGVk
IGJlY2F1c2UgaXQgcmV0dXJucyBzaXplKCkgYW5kIG5vbmUKKyAgICAgICAgICAgb2YgdGhlIElt
YWdlIGNvbmNyZXRlIGNsYXNzZXMgb3ZlcnJpZGVzIHRoaXMgaW1wbGVtZW50YXRpb24uCisKKyAg
ICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQml0bWFwOjpjcmVhdGVQcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQml0bWFwOjpjcmVhdGVGcm9tQnVmZmVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpkcmF3
SW1hZ2VUb0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3UGF0dGVybik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkcmF3Q3Jvc3NmYWRlU3ViaW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0N1
c3RvbVBhaW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tUGFpbnRJbWFnZTo6
ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21QYWludEltYWdlOjpkcmF3UGF0dGVybik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHZW5lcmF0ZWRJbWFnZTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0ZWRJbWFn
ZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnRJbWFnZTo6ZHJhdyk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFkaWVudEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxl
ZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0lt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVBhaW50aW5nT3B0aW9uczo6SW1hZ2VQYWludGluZ09wdGlvbnMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OnVzZXNEZWZhdWx0SW50ZXJw
b2xhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJ
bXBsOjpkcmF3SW1hZ2VJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dElt
cGw6OmRyYXdUaWxlZEltYWdlSW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZTo6ZHJhd1RpbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpjb21wdXRl
SW50cmluc2ljRGltZW5zaW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhd1RpbGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpvcmlnaW5hbFNpemUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6
ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1p
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OkltYWdlUGFp
bnRpbmdPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zOjpj
b21wb3NpdGVPcGVyYXRvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9uczo6YmxlbmRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zOjpkZWNvZGluZ01vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnM6Om9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlUGFpbnRpbmdPcHRpb25zOjppbnRlcnBvbGF0aW9uUXVhbGl0eSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9uczo6c2V0T3B0aW9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpk
cmF3U2hhZG93TGF5ZXJCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdTaGFk
b3dJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZHJhd05hdGl2ZUltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhaXJvOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFn
ZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6ZHJhd0NvbnN1bWluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZE
b2N1bWVudEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBERkRvY3VtZW50SW1hZ2U6OmRy
YXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpE
cmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRp
dmVJbWFnZTo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdQYXR0ZXJuOjpEcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd1BhdHRlcm46OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3UGF0dGVybjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3UGF0dGVybjo6RHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFQmxlbmQ6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
RUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJl
Y29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRp
b25SZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpcmVjdDJEOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGly
ZWN0MkQ6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRGly
ZWN0MkRPcGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dEltcGxEaXJlY3QyRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9JbWFnZUNHV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpnZXRIQklU
TUFQT2ZTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRj
aGluZ1NvdXJjZVNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNh
aXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpnZXRIQklUTUFQT2ZT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRjaGluZ1Nv
dXJjZVNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURp
cmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEZpbGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50
U25hcHNob3RJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckltYWdlOjpwYWludEludG9SZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFNu
YXBzaG90dGVkUGx1Z2luT3ZlcmxheSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkcmF3Rm9yQ29udGFpbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHSW1hZ2U6OmRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ltYWdlOjpkcmF3KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKKyAg
ICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHSW1hZ2VGb3JDb250YWluZXI6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VGb3JDb250YWluZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBzdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaDoKKwogMjAxOS0wOC0yNyAgUGVuZyBMaXUgIDxwZW5n
LmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2Vk
IGlzIGZpcmVkIHR3aWNlIHdoZW4gZXhpdGluZyBwaWN0dXJlIGluIHBpY3R1cmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZjE5ZGYzMGM2Mjk3YjJiMzc0ODlkZWU0M2Y0YzNmZTA4MDNiMGZhZC4uOGI1ZGE5NWVlODg2
NGI4ZWVlZWUwMzg0OTU0MTZjM2ViYTMzM2U0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wOC0yNyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgor
CisgICAgICAgIEFsbCBpbWFnZSBkcmF3aW5nIGZ1bmN0aW9ucyBzaG91bGQgdGFrZSBhbiBhcmd1
bWVudCBvZiB0eXBlIEltYWdlUGFpbnRpbmdPcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSgpIG5v
dyB0YWtlcyBhbiBJbWFnZVBhaW50aW5nT3B0aW9ucy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6aW1hZ2VQb3NpdGlv
bkluZm9ybWF0aW9uKToKKwogMjAxOS0wOC0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgRG8gbm90IGNsZWFyIHRoZSBwZW5kaW5nIGFwaSBy
ZXF1ZXN0IHdoZW4gdGhlcmUncyBubyBuYXZpZ2F0aW9uIElECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRl
eCA1ZDk2MTZhNDU2MjZmNTU2YzAwMTZlMmEzNDI0ZDRmNGU5MDQyNDYyLi5iZTg1NjRlYTg3MmMy
MWMyMTNiYTliMWQyYWMyZmJkMGE0YmE0MmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwNjQs
NiArMTA2NCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZU9ic2VydmVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlVHlwZXMu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg4
YTZiOGM1ZGE3Y2I5YTY3NWIxNzZmMDhkMjI5OGUxNzE3ZGE5YWUuLjVlZTFmYTU4NGFmZDJmMmFk
NjlkNzA5YmQzMDNlMjNmNGVlYjJlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwODQsNiArMjA4NCw3IEBACiAJCTcyMTQ0
MzMyMjIzRUM4NUYwMEYxMkZGNyAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzIxNDQzMzMyMjNFQzhCMDAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MzIyM0IyQTI0MDBGQkE5NDQg
LyogU1ZHUHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MjE0NDMzNDIyM0VDOTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjAy
MjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjI4M0YwRTIzMEIyNjhDMDBGNUQ4Mjgg
LyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5n
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRDMzMDFBM0E4QjIz
MDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9OwogCQk3MjRFRTU1MDFEQzgwRDdG
MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RjFE
QzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk0MTgsNiArOTQxOSw3
IEBACiAJCTcyN0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlUGFpbnRpbmdPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyRTQxNzYxMUEyRThEMkYwMDRDNTYyQSAvKiBKU0VYVHNSR0IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFWFRzUkdCLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjIxQTJFOEQyRjAwNEM1NjJBIC8qIEpTRVhU
c1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VYVHNSR0IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJGMUFEOUYxQTM5MDRDMzAwMDE0RTE4IC8qIEVY
VEZyYWdEZXB0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFWFRG
cmFnRGVwdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQ1NTYsNiArMjQ1
NTgsNyBAQAogCQkJCTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggKi8s
CiAJCQkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLywKIAkJ
CQlBODc0OEQ2NjEyQ0MzNzYzMDAxRkJBNDEgLyogSW1hZ2VPcmllbnRhdGlvbi5oICovLAorCQkJ
CTcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovLAog
CQkJCTQ5MjkxRTRBMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCAqLywK
IAkJCQk1NTQ2NzU3NzFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VTb3VyY2UuY3BwICovLAogCQkJ
CTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJjZS5oICovLApAQCAtMjk1NzUs
NiArMjk1NzgsNyBAQAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RjQ0QTgwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENUE1OTMxMTUyNTI1RDAwMDM2RUU1MSAv
KiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjI4M0YwRTIzMEIyNjhD
MDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1
MUEyRjNGMTdEN0QzQUUwMDcyNTE3QSAvKiBJbWFnZVF1YWxpdHlDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdN
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDI3QUU1MDIyQTk4Njg3MDA5NDdGRjkgLyogSW1h
Z2VSb3RhdGlvblNlc3Npb25WVC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDYwNCw2ICszMDYwOCw3
IEBACiAJCQkJODQ3MzBEOTExMjQ4RjBCMzAwRDNBOUM5IC8qIExpZ2h0U291cmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMjIyNzk2NTBEMDBCRjIyMDA3MUI3ODIgLyogTGluZWFyR3JhZGllbnRB
dHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQjMxQzkxRTEwQUUxQjhFMDAwQzdCOTIg
LyogTGluZUNsYW1wVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0ODRBMzNFMjMwNTUzMjUw
MDlBREU2QSAvKiBMaW5lTGF5b3V0SW50ZXJmYWNlVGV4dEJveGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGluZUxheW91dFN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0MDcxMDkgLyogTGluZVdpZHRoLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0MDAwNTY3NUMgLyogTGlua0hlYWRlci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMTkyMiw3ICszMTkyNyw2IEBACiAJCQkJQjJDM0RBM0UwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdF
RjVFNjAxRDIwQzgzOTAwMTcxRTYwIC8qIFRleHRDb2RlY1JlcGxhY2VtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmlu
ZWQuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0ODRBMzNFMjMwNTUzMjUwMDlBREU2QSAvKiBMaW5l
TGF5b3V0SW50ZXJmYWNlVGV4dEJveGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MjBE
MDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNDJCOTdDQTEzMTM4OTQzMDA4QkVGNEIgLyogVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VC
aXRtYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKaW5kZXggNjMx
ZmFlNzJiMTAzMWE2NTIwNGU3OWZjYmE1YzM2YzZkOWIwOTA1My4uNmIwYzdhM2Q2N2NkYzdhNWJi
NWRlMjk4NGNkMmJhNTVkZjMwMjcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUJpdG1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAK
QEAgLTMyMywxMCArMzIzLDcgQEAgdm9pZCBJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQKICAgICB9CiAKICAg
ICBGbG9hdFJlY3QgZGVzdFJlY3QoRmxvYXRQb2ludCgpLCBvdXRwdXRTaXplKTsKLSAgICBJbWFn
ZVBhaW50aW5nT3B0aW9ucyBwYWludGluZ09wdGlvbnM7Ci0gICAgcGFpbnRpbmdPcHRpb25zLm1f
aW50ZXJwb2xhdGlvblF1YWxpdHkgPSBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6ZVF1YWxp
dHkob3B0aW9ucy5yZXNpemVRdWFsaXR5KTsKLQotICAgIGJpdG1hcERhdGEtPmNvbnRleHQoKS5k
cmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwgc291cmNlUmVjdGFuZ2xlLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpLCBwYWludGluZ09wdGlvbnMpOworICAgIGJpdG1hcERhdGEtPmNvbnRl
eHQoKS5kcmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwgc291cmNlUmVjdGFuZ2xl
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCB7IGludGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVh
bGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpIH0pOwogCiAgICAgLy8gNy4gQ3JlYXRlIGEgbmV3
IEltYWdlQml0bWFwIG9iamVjdC4KICAgICBhdXRvIGltYWdlQml0bWFwID0gY3JlYXRlKFdURk1v
dmUoYml0bWFwRGF0YSkpOwpAQCAtMzczLDEwICszNzAsNyBAQCB2b2lkIEltYWdlQml0bWFwOjpj
cmVhdGVQcm9taXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8SFRNTENhbnZhc0Vs
ZW1lbgogICAgIH0KIAogICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIG91dHB1
dFNpemUpOwotICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIHBhaW50aW5nT3B0aW9uczsKLSAgICBw
YWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSA9IGludGVycG9sYXRpb25RdWFs
aXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpOwotCi0gICAgYml0bWFw
RGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0LCBzb3Vy
Y2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHBhaW50aW5nT3B0aW9ucyk7CisgICAg
Yml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0
LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHsgaW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0eSkgfSk7CiAKICAgICAv
LyAzLiBDcmVhdGUgYSBuZXcgSW1hZ2VCaXRtYXAgb2JqZWN0LgogICAgIGF1dG8gaW1hZ2VCaXRt
YXAgPSBjcmVhdGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7CkBAIC00ODQsMTAgKzQ3OCw3IEBAIHZv
aWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJl
ZlB0cjxJbWFnZUJpdG1hcD4mIGV4CiAgICAgYXV0byBpbWFnZUZvclJlbmRlciA9IGV4aXN0aW5n
SW1hZ2VCaXRtYXAtPmJ1ZmZlcigpLT5jb3B5SW1hZ2UoKTsKIAogICAgIEZsb2F0UmVjdCBkZXN0
UmVjdChGbG9hdFBvaW50KCksIG91dHB1dFNpemUpOwotICAgIEltYWdlUGFpbnRpbmdPcHRpb25z
IHBhaW50aW5nT3B0aW9uczsKLSAgICBwYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVh
bGl0eSA9IGludGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6
ZVF1YWxpdHkpOwotCi0gICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgqaW1hZ2VG
b3JSZW5kZXIsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCks
IHBhaW50aW5nT3B0aW9ucyk7CisgICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgq
aW1hZ2VGb3JSZW5kZXIsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZh
bHVlKCksIHsgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVz
aXplUXVhbGl0eSkgfSk7CiAKICAgICAvLyAzLiBDcmVhdGUgYSBuZXcgSW1hZ2VCaXRtYXAgb2Jq
ZWN0LgogICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBjcmVhdGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7
CkBAIC02NTEsMTAgKzY0Miw3IEBAIHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZUZyb21CdWZmZXIo
CiAgICAgfQogCiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0KEZsb2F0UG9pbnQoKSwgb3V0cHV0U2l6
ZSk7Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFpbnRpbmdPcHRpb25zOwotICAgIHBhaW50
aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJwb2xhdGlvblF1YWxpdHlG
b3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0eSk7Ci0KLSAgICBiaXRtYXBEYXRh
LT5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSwgcGFpbnRpbmdPcHRpb25zKTsKKyAgICBiaXRtYXBEYXRhLT5j
b250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5yZWxl
YXNlUmV0dXJuVmFsdWUoKSwgeyBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6ZVF1YWxpdHko
b3B0aW9ucy5yZXNpemVRdWFsaXR5KSB9KTsKIAogICAgIGF1dG8gaW1hZ2VCaXRtYXAgPSBjcmVh
dGUoV1RGTW92ZShiaXRtYXBEYXRhKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggNTNj
OWM1NjYwNDI3YzQ4NmUzMmFiYzBjMmQ2NTRjY2M1NmMwMjhhMy4uYzM1NTBhZjEwZjczYjM1NzI0
YjEwMzVmMWU0ODI0OGM4NTBlNTBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKQEAgLTE1NzMs
MTggKzE1NzMsMjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6ZHJhd0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgQ2EKICAgICBpZiAoaW1hZ2UtPmlz
Qml0bWFwSW1hZ2UoKSkKICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBk
YXRlRnJvbVNldHRpbmdzKGRvY3VtZW50LnNldHRpbmdzKCkpOwogCisgICAgSW1hZ2VQYWludGlu
Z09wdGlvbnMgb3B0aW9ucyA9IHsgb3AsIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbjo6RnJv
bUltYWdlIH07CisKICAgICBpZiAocmVjdENvbnRhaW5zQ2FudmFzKG5vcm1hbGl6ZWREc3RSZWN0
KSkgewotICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9y
bWFsaXplZFNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wLCBibGVuZE1vZGUpKTsKKyAg
ICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRT
cmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0g
ZWxzZSBpZiAoaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShvcCkpIHsKICAgICAgICAgZnVsbENh
bnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFs
aXplZFNyY1JlY3QsIG9wKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0g
ZWxzZSBpZiAob3AgPT0gQ29tcG9zaXRlQ29weSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwot
ICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFsaXpl
ZFNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wLCBibGVuZE1vZGUpKTsKKyAgICAgICAg
Yy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0
LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxp
emVkU3JjUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMob3AsIGJsZW5kTW9kZSkpOworICAgICAg
ICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1Jl
Y3QsIG9wdGlvbnMpOwogICAgICAgICBkaWREcmF3KG5vcm1hbGl6ZWREc3RSZWN0KTsKICAgICB9
CiAgICAgCkBAIC0xNjMyLDcgKzE2MzQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoSFRNTENhbnZhc0VsZW1lbnQmIHNvdQogI2Vu
ZGlmCiAKICAgICBpZiAocmVjdENvbnRhaW5zQ2FudmFzKGRzdFJlY3QpKSB7Ci0gICAgICAgIGMt
PmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBhaW50aW5n
T3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCkpOwor
ICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBz
dGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAg
ZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxzZSBpZiAoaXNGdWxsQ2FudmFzQ29tcG9z
aXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkpIHsKICAgICAgICAgZnVsbENhbnZhc0Nv
bXBvc2l0ZWREcmF3SW1hZ2UoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgc3RhdGUoKS5nbG9i
YWxDb21wb3NpdGUpOwpAQCAtMTY0MSwxNSArMTY0MywxNSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoSFRNTENhbnZhc0VsZW1lbnQm
IHNvdQogICAgICAgICBpZiAoJnNvdXJjZUNhbnZhcyA9PSAmY2FudmFzQmFzZSgpKSB7CiAgICAg
ICAgICAgICBpZiAoYXV0byBjb3B5ID0gYnVmZmVyLT5jb3B5UmVjdFRvQnVmZmVyKHNyY1JlY3Qs
IENvbG9yU3BhY2VTUkdCLCAqYykpIHsKICAgICAgICAgICAgICAgICBjbGVhckNhbnZhcygpOwot
ICAgICAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqY29weSwgZHN0UmVjdCwgeyB7IH0s
IHNyY1JlY3Quc2l6ZSgpIH0sIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29t
cG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgICAgICAgICAgYy0+ZHJhd0lt
YWdlQnVmZmVyKCpjb3B5LCBkc3RSZWN0LCB7IHsgfSwgc3JjUmVjdC5zaXplKCkgfSwgeyBzdGF0
ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNsZWFyQ2FudmFzKCk7Ci0gICAgICAg
ICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgSW1hZ2VQ
YWludGluZ09wdGlvbnMoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxl
bmQpKTsKKyAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBz
cmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kIH0p
OwogICAgICAgICB9CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwg
SW1hZ2VQYWludGluZ09wdGlvbnMoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xv
YmFsQmxlbmQpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3Qs
IHNyY1JlY3QsIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFsQmxlbmQg
fSk7CiAgICAgICAgIGRpZERyYXcoZHN0UmVjdCk7CiAgICAgfQogCkBAIC0xNzMwLDE3ICsxNzMy
LDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRy
YXdJbWFnZShJbWFnZUJpdG1hcCYgaW1hZ2VCaXRtCiAgICAgY2hlY2tPcmlnaW4oJmltYWdlQml0
bWFwKTsKIAogICAgIGlmIChyZWN0Q29udGFpbnNDYW52YXMoZHN0UmVjdCkpIHsKLSAgICAgICAg
Yy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRp
bmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7
CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7
IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kIH0pOwogICAgICAg
ICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlmIChpc0Z1bGxDYW52YXNDb21w
b3NpdGVNb2RlKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlKSkgewogICAgICAgICBmdWxsQ2FudmFz
Q29tcG9zaXRlZERyYXdJbWFnZSgqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBzdGF0ZSgpLmds
b2JhbENvbXBvc2l0ZSk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVs
c2UgaWYgKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZUNvcHkpIHsKICAgICAg
ICAgY2xlYXJDYW52YXMoKTsKLSAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRz
dFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9z
aXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigq
YnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0
ZSgpLmdsb2JhbEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAg
fSBlbHNlIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRzdFJlY3QsIHNy
Y1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0
ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBk
c3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlLCBzdGF0ZSgpLmdsb2Jh
bEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3KGRzdFJlY3QpOwogICAgIH0KIApAQCAtMTgyOSwx
NCArMTgzMSwxNCBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNvbXBvc2l0
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbgogICAgIGMtPnJlc3RvcmUoKTsK
IH0KIAotc3RhdGljIHZvaWQgZHJhd0ltYWdlVG9Db250ZXh0KEltYWdlJiBpbWFnZSwgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK3N0YXRpYyB2b2lkIGRyYXdJbWFnZVRvQ29u
dGV4dChJbWFnZSYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7Ci0gICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIGRlc3QsIHNyYywg
b3ApOworICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBkZXN0LCBzcmMsIG9wdGlvbnMpOwog
fQogCi1zdGF0aWMgdm9pZCBkcmF3SW1hZ2VUb0NvbnRleHQoSW1hZ2VCdWZmZXImIGltYWdlQnVm
ZmVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQorc3RhdGljIHZvaWQgZHJh
d0ltYWdlVG9Db250ZXh0KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBjb250ZXh0LmRyYXdJ
bWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgZGVzdCwgc3JjLCBvcCk7CisgICAgY29udGV4dC5kcmF3
SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIGRlc3QsIHNyYywgb3B0aW9ucyk7CiB9CiAKIHRlbXBs
YXRlPGNsYXNzIFQ+IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZnVsbENhbnZh
c0NvbXBvc2l0ZWREcmF3SW1hZ2UoVCYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQpAQCAtMTg2NSw3ICsxODY3
LDcgQEAgdGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
OjpmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWEKICAgICBidWZmZXItPmNvbnRleHQoKS50cmFu
c2xhdGUoLXRyYW5zZm9ybWVkQWRqdXN0ZWRSZWN0LmxvY2F0aW9uKCkpOwogICAgIGJ1ZmZlci0+
Y29udGV4dCgpLnRyYW5zbGF0ZShjcm9wcGVkT2Zmc2V0KTsKICAgICBidWZmZXItPmNvbnRleHQo
KS5jb25jYXRDVE0oZWZmZWN0aXZlVHJhbnNmb3JtKTsKLSAgICBkcmF3SW1hZ2VUb0NvbnRleHQo
aW1hZ2UsIGJ1ZmZlci0+Y29udGV4dCgpLCBhZGp1c3RlZERlc3QsIHNyYywgQ29tcG9zaXRlU291
cmNlT3Zlcik7CisgICAgZHJhd0ltYWdlVG9Db250ZXh0KGltYWdlLCBidWZmZXItPmNvbnRleHQo
KSwgYWRqdXN0ZWREZXN0LCBzcmMsIHsgQ29tcG9zaXRlU291cmNlT3ZlciB9KTsKIAogICAgIGNv
bXBvc2l0ZUJ1ZmZlcigqYnVmZmVyLCBidWZmZXJSZWN0LCBvcCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRleCBlZjkzYjM1MWU3OTFkNTI3ZGFl
ODBmODdjNTI1YTdkYzE0ZTdlNDIwLi5jZWZiZTMyYjU2YTZkZWNhNWM5MTEzNDhlYWIxMGIxMDY2
YzllZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAK
QEAgLTI4MCwxMyArMjgwLDEwIEBAIEZsb2F0U2l6ZSBDYWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9y
UmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFNpemVUCiAgICAgaWYgKCFt
X2ltYWdlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYgKGlzPEJpdG1hcEltYWdlPigq
bV9pbWFnZSkgJiYgcmVuZGVyZXIgJiYgcmVuZGVyZXItPmltYWdlT3JpZW50YXRpb24oKSA9PSBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxCaXRt
YXBJbWFnZT4oKm1faW1hZ2UpLnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKLQogICAgIGlm
IChpczxTVkdJbWFnZT4oKm1faW1hZ2UpICYmIHNpemVUeXBlID09IFVzZWRTaXplKQogICAgICAg
ICByZXR1cm4gbV9zdmdJbWFnZUNhY2hlLT5pbWFnZVNpemVGb3JSZW5kZXJlcihyZW5kZXJlcik7
CiAKLSAgICByZXR1cm4gbV9pbWFnZS0+c2l6ZSgpOworICAgIHJldHVybiBtX2ltYWdlLT5zaXpl
KHJlbmRlcmVyID8gcmVuZGVyZXItPmltYWdlT3JpZW50YXRpb24oKSA6IEltYWdlT3JpZW50YXRp
b24oSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSk7CiB9CiAKIExheW91dFNpemUgQ2FjaGVk
SW1hZ2U6OmltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVy
LCBmbG9hdCBtdWx0aXBsaWVyLCBTaXplVHlwZSBzaXplVHlwZSkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBiMmJkNDdj
YjE2MTRjZGFlNWQ4OWVlYTE3YjQyYzQ3ODZiYzJkOWIxLi42MjY1MDQwNzhiNzkwMzdjODhjMmU1
ZDA3OGEwZTFhZjhiMTVmMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgRW5jb2RlZERhdGFTdGF0
dXMgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKQogICAgIG1f
Y3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZDsKICAg
ICByZXR1cm4gbV9zb3VyY2UtPmRhdGFDaGFuZ2VkKGRhdGEoKSwgYWxsRGF0YVJlY2VpdmVkKTsK
IH0KLSAgICAKKwogdm9pZCBCaXRtYXBJbWFnZTo6c2V0Q3VycmVudEZyYW1lRGVjb2RpbmdTdGF0
dXNJZk5lY2Vzc2FyeShEZWNvZGluZ1N0YXR1cyBkZWNvZGluZ1N0YXR1cykKIHsKICAgICAvLyBX
aGVuIG5ldyBkYXRhIGlzIHJlY2VpdmVkLCBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzIGlz
IHNldCB0byBEZWNvZGluZ1N0YXR1czo6SW52YWxpZApAQCAtMTgzLDcgKzE4Myw3IEBAIGJvb2wg
Qml0bWFwSW1hZ2U6Om5vdFNvbGlkQ29sb3IoKQogfQogI2VuZGlmCiAKLUltYWdlRHJhd1Jlc3Vs
dCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0
b3Igb3AsIEJsZW5kTW9kZSBtb2RlLCBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2RlLCBJbWFnZU9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKICAgICBpZiAoZGVzdFJlY3QuaXNFbXB0eSgpIHx8IHNyY1JlY3QuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwpAQCAtMTk2LDcgKzE5
Niw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgTE9HKEltYWdlcywgIkJpdG1hcElt
YWdlOjolcyAtICVwIC0gdXJsOiAlcyBbc3Vic2FtcGxpbmdMZXZlbCA9ICVkIHNjYWxlRmFjdG9y
Rm9yRHJhd2luZyA9ICglLjRmLCAlLjRmKV0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVS
TCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4obV9jdXJyZW50U3Vi
c2FtcGxpbmdMZXZlbCksIHNjYWxlRmFjdG9yRm9yRHJhd2luZy53aWR0aCgpLCBzY2FsZUZhY3Rv
ckZvckRyYXdpbmcuaGVpZ2h0KCkpOwogCiAgICAgTmF0aXZlSW1hZ2VQdHIgaW1hZ2U7Ci0gICAg
aWYgKGRlY29kaW5nTW9kZSA9PSBEZWNvZGluZ01vZGU6OkFzeW5jaHJvbm91cykgeworICAgIGlm
IChvcHRpb25zLmRlY29kaW5nTW9kZSgpID09IERlY29kaW5nTW9kZTo6QXN5bmNocm9ub3VzKSB7
CiAgICAgICAgIEFTU0VSVCghY2FuQW5pbWF0ZSgpKTsKICAgICAgICAgQVNTRVJUKCFtX2N1cnJl
bnRGcmFtZSB8fCBtX2FuaW1hdGlvbkZpbmlzaGVkKTsKIApAQCAtMjE2LDcgKzIxNiw3IEBAIElt
YWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAKICAgICAgICAgaWYgKCFmcmFtZUhhc0RlY29kZWROYXRp
dmVJbWFnZUNvbXBhdGlibGVXaXRoT3B0aW9uc0F0SW5kZXgobV9jdXJyZW50RnJhbWUsIG1fY3Vy
cmVudFN1YnNhbXBsaW5nTGV2ZWwsIERlY29kaW5nT3B0aW9ucyhEZWNvZGluZ01vZGU6OkFzeW5j
aHJvbm91cykpKSB7CiAgICAgICAgICAgICBpZiAobV9zaG93RGVidWdCYWNrZ3JvdW5kKQotICAg
ICAgICAgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29sb3Io
Q29sb3I6OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3ApOworICAgICAgICAgICAgICAg
IGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29sb3IoQ29sb3I6OnllbGxv
dykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIApAQCAtMjI3LDcgKzIyNyw3IEBA
IEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAgICAgIEFTU0VSVF9JTVBMSUVTKHN0YXR1cyA9
PSBTdGFydEFuaW1hdGlvblN0YXR1czo6RGVjb2RpbmdBY3RpdmUsICghbV9jdXJyZW50RnJhbWUg
JiYgIW1fcmVwZXRpdGlvbnNDb21wbGV0ZSkgfHwgZnJhbWVIYXNGdWxsU2l6ZU5hdGl2ZUltYWdl
QXRJbmRleChtX2N1cnJlbnRGcmFtZSwgbV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCkpOwogCiAg
ICAgICAgIGlmIChzdGF0dXMgPT0gU3RhcnRBbmltYXRpb25TdGF0dXM6OkRlY29kaW5nQWN0aXZl
ICYmIG1fc2hvd0RlYnVnQmFja2dyb3VuZCkgewotICAgICAgICAgICAgZmlsbFdpdGhTb2xpZENv
bG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVsbG93KS5jb2xvcldpdGhBbHBo
YSgwLjUpLCBvcCk7CisgICAgICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVz
dFJlY3QsIENvbG9yKENvbG9yOjp5ZWxsb3cpLmNvbG9yV2l0aEFscGhhKDAuNSksIG9wdGlvbnMu
Y29tcG9zaXRlT3BlcmF0b3IoKSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9CiAgICAgICAgIApAQCAtMjQ1LDcgKzI0NSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJ
bWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
CiAgICAgICAgIH0gZWxzZSBpZiAoZnJhbWVJc0JlaW5nRGVjb2RlZCkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IGluc3RlYWQgb2Ygc2hvd2luZyB0aGUgeWVsbG93IHJlY3RhbmdsZSBhbmQgcmV0
dXJuaW5nIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhpcyBmcmFtZSB0byBmaW5pc2ggZGVjb2Rpbmcu
CiAgICAgICAgICAgICBpZiAobV9zaG93RGVidWdCYWNrZ3JvdW5kKSB7Ci0gICAgICAgICAgICAg
ICAgZmlsbFdpdGhTb2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVs
bG93KS5jb2xvcldpdGhBbHBoYSgwLjUpLCBvcCk7CisgICAgICAgICAgICAgICAgZmlsbFdpdGhT
b2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVsbG93KS5jb2xvcldp
dGhBbHBoYSgwLjUpLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogICAgICAgICAgICAg
ICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDogJXMgW3dhaXRpbmcg
Zm9yIGFzeW5jIGRlY29kaW5nIHRvIGZpbmlzaF0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJj
ZVVSTCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkUmVxdWVzdERlY29kaW5nOwpAQCAtMjY0LDE0
ICsyNjQsMTUgQEAgSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXMKICAgICBBU1NFUlQoaW1hZ2UpOwog
ICAgIENvbG9yIGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgaWYgKGNvbG9y
LmlzVmFsaWQoKSkgewotICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVzdFJl
Y3QsIGNvbG9yLCBvcCk7CisgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0
UmVjdCwgY29sb3IsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSk7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogCi0gICAgaWYgKG9yaWVudGF0aW9uID09IEltYWdlT3JpZW50YXRp
b246OkZyb21JbWFnZSkKLSAgICAgICAgb3JpZW50YXRpb24gPSBmcmFtZU9yaWVudGF0aW9uQXRJ
bmRleChtX2N1cnJlbnRGcmFtZSk7CisgICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKSA9PSBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCisgICAgICAgIGRyYXdOYXRpdmVJbWFnZShpbWFn
ZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNpemUoc2l6ZSgpKSwgeyBvcHRpb25z
LCBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSkgfSk7CisgICAgZWxzZQor
ICAgICAgICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0
LCBJbnRTaXplKHNpemUoKSksIG9wdGlvbnMpOwogCi0gICAgZHJhd05hdGl2ZUltYWdlKGltYWdl
LCBjb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgSW50U2l6ZShzaXplKCkpLCBvcCwgbW9kZSwg
b3JpZW50YXRpb24pOwogICAgIG1fY3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBmcmFtZURl
Y29kaW5nU3RhdHVzQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CiAKICAgICBpZiAoaW1hZ2VPYnNl
cnZlcigpKQpAQCAtMjgwLDcgKzI4MSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJbWFnZTo6
ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhp
Y3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0
b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAodGlsZVJlY3QuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CkBAIC0yOTAsNyArMjkxLDcgQEAgdm9pZCBCaXRtYXBJbWFn
ZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LAogICAgICAgICBpZiAobV9jdXJyZW50RnJhbWVEZWNvZGluZ1N0YXR1cyA9PSBEZWNv
ZGluZ1N0YXR1czo6SW52YWxpZCkKICAgICAgICAgICAgIG1fc291cmNlLT5kZXN0cm95SW5jb21w
bGV0ZURlY29kZWREYXRhKCk7CiAgICAgICAgIAotICAgICAgICBJbWFnZTo6ZHJhd1BhdHRlcm4o
Y3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwg
YmxlbmRNb2RlKTsKKyAgICAgICAgSW1hZ2U6OmRyYXdQYXR0ZXJuKGN0eHQsIGRlc3RSZWN0LCB0
aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgICAgIG1f
Y3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleCht
X2N1cnJlbnRGcmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMDUsNyArMzA2LDcg
QEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAgICAgICAvLyBUZW1wb3JhcmlseSByZXNldCBp
bWFnZSBvYnNlcnZlciwgd2UgZG9uJ3Qgd2FudCB0byByZWNlaXZlIGFueSBjaGFuZ2VJblJlY3Qo
KSBjYWxscyBkdWUgdG8gdGhpcyByZWxheW91dC4KICAgICAgICAgc2V0SW1hZ2VPYnNlcnZlcihu
dWxscHRyKTsKIAotICAgICAgICBkcmF3KGJ1ZmZlci0+Y29udGV4dCgpLCB0aWxlUmVjdCwgdGls
ZVJlY3QsIG9wLCBibGVuZE1vZGUsIERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUpOworICAgICAgICBkcmF3KGJ1ZmZlci0+Y29udGV4dCgpLCB0aWxlUmVj
dCwgdGlsZVJlY3QsIHsgb3B0aW9ucywgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VP
cmllbnRhdGlvbjo6Tm9uZSB9KTsKIAogICAgICAgICBzZXRJbWFnZU9ic2VydmVyKG9ic2VydmVy
KTsKICAgICAgICAgYnVmZmVyLT5jb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CkBAIC0zMTYsNyAr
MzE3LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAgIH0KIAogICAgIGN0eHQuc2V0RHJh
d0x1bWluYW5jZU1hc2soZmFsc2UpOwotICAgIG1fY2FjaGVkSW1hZ2UtPmRyYXdQYXR0ZXJuKGN0
eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJs
ZW5kTW9kZSk7CisgICAgbV9jYWNoZWRJbWFnZS0+ZHJhd1BhdHRlcm4oY3R4dCwgZGVzdFJlY3Qs
IHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0KIAogYm9v
bCBCaXRtYXBJbWFnZTo6c2hvdWxkQW5pbWF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA1YWVmNjFkN2U4OTliZGNmNWM0
ZDQ0NWFhYmM4OGI2OGYxZjA0YWQ1Li4yYWQ3ZjFjNWNlMDdkNTEzMzU0ODAzMTRiYmM3NDM3Nzgw
MWNkYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmgKQEAgLTgxLDggKzgxLDcgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPEludFBvaW50PiBo
b3RTcG90KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UtPmhvdFNwb3QoKTsgfQog
CiAgICAgLy8gRmxvYXRTaXplIGR1ZSB0byBvdmVycmlkZS4KLSAgICBGbG9hdFNpemUgc2l6ZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaXplKCk7IH0KLSAgICBJbnRTaXpl
IHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS0+c2l6
ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UtPnNpemUob3JpZW50YXRpb24pOyB9CiAgICAgQ29s
b3Igc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3Vy
Y2UtPnNpbmdsZVBpeGVsU29saWRDb2xvcigpOyB9CiAgICAgYm9vbCBmcmFtZUlzQmVpbmdEZWNv
ZGVkQW5kSXNDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KHNpemVfdCBpbmRleCwgY29uc3Qg
RGVjb2RpbmdPcHRpb25zJiBkZWNvZGluZ09wdGlvbnMpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
LT5mcmFtZUlzQmVpbmdEZWNvZGVkQW5kSXNDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KGlu
ZGV4LCBkZWNvZGluZ09wdGlvbnMpOyB9CiAgICAgRGVjb2RpbmdTdGF0dXMgZnJhbWVEZWNvZGlu
Z1N0YXR1c0F0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS0+ZnJh
bWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgoaW5kZXgpOyB9CkBAIC0xNjEsOCArMTYwLDggQEAgcHJv
dGVjdGVkOgogICAgIC8vIHxkZXN0cm95QWxsfCBhbG9uZy4KICAgICB2b2lkIGRlc3Ryb3lEZWNv
ZGVkRGF0YUlmTmVjZXNzYXJ5KGJvb2wgZGVzdHJveUFsbCA9IHRydWUpOwogCi0gICAgSW1hZ2VE
cmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUs
IERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Q29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKSBvdmVycmlk
ZTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2
b2lkIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbXBvc2l0ZU9wZXJh
dG9yKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCmluZGV4IGVhNjRi
MWQ5NDg5YjEwMzU3MmQwYzY5Njg5YmRkYTM0MGFjNjczM2YuLmQ0YmRiNWYyMGFhNGFkMmE1NzM2
NWEzODZjMjYwMmNkMzkzYWU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTUwLDIw
ICs1MCwyMSBAQCBzdGF0aWMgdm9pZCBkcmF3Q3Jvc3NmYWRlU3ViaW1hZ2UoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIENvbXBvcwogICAgIGJvb2wgdXNlVHJhbnNwYXJl
bmN5TGF5ZXIgPSBpbWFnZS5pc1NWR0ltYWdlKCk7CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgCi0gICAgQ29tcG9zaXRlT3BlcmF0b3Ig
ZHJhd0ltYWdlT3BlcmF0aW9uID0gb3BlcmF0aW9uOworCisgICAgSW1hZ2VQYWludGluZ09wdGlv
bnMgb3B0aW9uczsKIAogICAgIGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikgewogICAgICAgICBj
b250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcGVyYXRpb24pOwogICAgICAgICBjb250ZXh0
LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIob3BhY2l0eSk7Ci0gICAgICAgIGRyYXdJbWFnZU9wZXJh
dGlvbiA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKICAg
ICAgICAgY29udGV4dC5zZXRBbHBoYShvcGFjaXR5KTsKKyAgICAgICAgb3B0aW9ucyA9IHsgb3Bl
cmF0aW9uIH07CisgICAgfQogCiAgICAgaWYgKHRhcmdldFNpemUgIT0gaW1hZ2VTaXplKQogICAg
ICAgICBjb250ZXh0LnNjYWxlKHRhcmdldFNpemUgLyBpbWFnZVNpemUpOwogCi0gICAgY29udGV4
dC5kcmF3SW1hZ2UoaW1hZ2UsIEludFBvaW50KCksIEltYWdlUGFpbnRpbmdPcHRpb25zKGRyYXdJ
bWFnZU9wZXJhdGlvbikpOworICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBJbnRQb2ludCgp
LCBvcHRpb25zKTsKIAogICAgIGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikKICAgICAgICAgY29u
dGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwpAQCAtODYsMTAgKzg3LDEwIEBAIHZvaWQgQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KQogICAgIGNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKIH0KIAotSW1hZ2VEcmF3
UmVzdWx0IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBEZWNv
ZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1bHQgQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0
ZVNhdmVyKGNvbnRleHQpOwotICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBv
c2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKG9w
dGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUoKSk7CiAgICAgY29u
dGV4dC5jbGlwKGRzdFJlY3QpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKGRzdFJlY3QubG9jYXRp
b24oKSk7CiAgICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQpAQCAtMTAw
LDcgKzEwMSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJh
dyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsCiAgICAgcmV0dXJuIEltYWdlRHJh
d1Jlc3VsdDo6RGlkRHJhdzsKIH0KIAotdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJh
d1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9k
ZSkKK3ZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBjb250ZXh0LnJl
bmRlcmluZ01vZGUoKSk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKQEAgLTExMSw3ICsxMTIsNyBA
QCB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UgogICAgIGRyYXdDcm9zc2ZhZGUoZ3JhcGhpY3NDb250
ZXh0KTsKIAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0Lgot
ICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJsZW5kTW9kZSk7
CisgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNyY1JlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0KIAogdm9pZCBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5oCmluZGV4IDIxZTEzMjM1MTg1YTRlODUyZjRkMDJkZjRjZDFmNDY5OGM3ZTFj
YzAuLjQ1NzY1YzgzMTQ1MjFlNDhhY2IwZjlkYjM5ZWEwM2Q0ZWE2ZWMzYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuaApAQCAtNDQsMTEgKzQ0LDExIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1JlbGF0
aXZlV2lkdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFz
UmVsYXRpdmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAg
RmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Nyb3NzZmFkZVNpemU7
IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlv
bjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Nyb3NzZmFkZVNpemU7IH0K
IAogcHJvdGVjdGVkOgotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24p
IG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgb3Zl
cnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25z
dCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogCiAgICAgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UoSW1hZ2UmIGZyb21JbWFnZSwgSW1hZ2UmIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRh
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgRmxvYXRTaXplJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJ
bWFnZS5jcHAKaW5kZXggZmFhMGJmMDYxNDA1OTgxMmI2NjQzNTE4ZTU4NzM3OGQwM2VhNzlkMy4u
MmZiNmZhNDRkODhiZTJjMmMzY2E3MzZkYzM4YWEyMjQ4ZjkyMGNmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKQEAg
LTE3MCwxMCArMTcwLDEwIEBAIEltYWdlRHJhd1Jlc3VsdCBDdXN0b21QYWludEltYWdlOjpkb0N1
c3RvbVBhaW50KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvCiAgICAgcmV0dXJuIElt
YWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IEN1c3RvbVBhaW50
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBj
b21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0IEN1c3RvbVBhaW50SW1hZ2U6OmRyYXcoR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsK
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZGVzdENvbnRleHQpOwot
ICAgIGRlc3RDb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCwgYmxlbmRN
b2RlKTsKKyAgICBkZXN0Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ob3B0aW9ucy5jb21w
b3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKICAgICBkZXN0Q29udGV4dC5j
bGlwKGRlc3RSZWN0KTsKICAgICBkZXN0Q29udGV4dC50cmFuc2xhdGUoZGVzdFJlY3QubG9jYXRp
b24oKSk7CiAgICAgaWYgKGRlc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKQEAgLTE4
Myw3ICsxODMsNyBAQCBJbWFnZURyYXdSZXN1bHQgQ3VzdG9tUGFpbnRJbWFnZTo6ZHJhdyhHcmFw
aGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdAogfQogCiB2b2lkIEN1c3RvbVBh
aW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0
ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQorICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBj
b25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRp
b25zKQogewogICAgIC8vIEFsbG93IHRoZSBnZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1l
cXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCiAgICAg
RmxvYXRTaXplIGFkanVzdGVkU2l6ZSA9IHNpemUoKTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lk
IEN1c3RvbVBhaW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdAogICAgIGlmIChkZXN0Q29udGV4dC5kcmF3THVtaW5hbmNlTWFz
aygpKQogICAgICAgICBidWZmZXItPmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIAotICAgIGJ1
ZmZlci0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3Qs
IGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wLCBibGVuZE1v
ZGUpOworICAgIGJ1ZmZlci0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1
c3RlZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMp
OwogICAgIGRlc3RDb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5o
CmluZGV4IDRlOGU1ODk3OTUxYTk1MTI1YjkxMzQ4MGFmOTMzMDNlYjY3OGQ3MWUuLmU3NzA3OWI4
ODI5NmVmMTIwZGYwYjYyNDQyZTg1ZTE3MjdlNmE1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DdXN0b21QYWludEltYWdlLmgKQEAgLTUyLDggKzUyLDgg
QEAgcHJpdmF0ZToKIAogICAgIEltYWdlRHJhd1Jlc3VsdCBkb0N1c3RvbVBhaW50KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYpOwogCi0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXco
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwg
SW1hZ2VPcmllbnRhdGlvbikgZmluYWw7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQ
b2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCBkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBmaW5hbDsKIAogICAgIFdlYWtQdHI8
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OlBhaW50RGVmaW5pdGlvbj4gbV9wYWludERlZmluaXRp
b247CiAgICAgVmVjdG9yPFN0cmluZz4gbV9pbnB1dFByb3BlcnRpZXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAzYTg1OWMz
MWFjNGYwMmJiN2EyY2I0NjQzM2Q4ZDhhYmFlNjIxYTQxLi4zZTAxNjE0YzE0ZGVkZmM0NTU5MjNm
YTZkMjRiMTExYWIxNDRjM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKQEAgLTQwLDE1ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lk
dGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBv
dmVycmlkZTsKIAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3Jp
ZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CiAK
ICAgICAvLyBBc3N1bWUgdGhhdCBnZW5lcmF0ZWQgY29udGVudCBoYXMgbm8gZGVjb2RlZCBkYXRh
IHdlIG5lZWQgdG8gd29ycnkgYWJvdXQKICAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29s
IC8qZGVzdHJveUFsbCovID0gdHJ1ZSkgb3ZlcnJpZGUgeyB9CiAKIHByb3RlY3RlZDoKLSAgICBJ
bWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5k
TW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZSA9IDA7Ci0gICAg
dm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwKLSAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgb3ZlcnJpZGUg
PSAwOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlID0gMDsKKyAgICB2b2lkIGRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlID0gMDsKIAogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdGhpcyB0byBiZSBsZXNzIGNvbnNlcnZhdGl2ZS4KICAgICBib29sIGN1cnJl
bnRGcmFtZUtub3duVG9CZU9wYXF1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudElt
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2Uu
Y3BwCmluZGV4IDVkNGVlMjgxNjZiYjQ4OGE3OWRjYTI5NGZhYWNkZjY1YzJhNGY0MGIuLmYzZWMw
YTFhZDQ2MDQxMjg3MmQ5MjBlN2UxZTAxMTY3NjZjYTYzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCkBAIC0zOSwxMCArMzks
MTAgQEAgR3JhZGllbnRJbWFnZTo6R3JhZGllbnRJbWFnZShHcmFkaWVudCYgZ2VuZXJhdG9yLCBj
b25zdCBGbG9hdFNpemUmIHNpemUpCiAKIEdyYWRpZW50SW1hZ2U6On5HcmFkaWVudEltYWdlKCkg
PSBkZWZhdWx0OwogCi1JbWFnZURyYXdSZXN1bHQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdS
ZXN1bHQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcihkZXN0Q29udGV4dCk7Ci0gICAgZGVzdENvbnRleHQuc2V0Q29t
cG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGRlc3RDb250ZXh0
LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlv
bnMuYmxlbmRNb2RlKCkpOwogICAgIGRlc3RDb250ZXh0LmNsaXAoZGVzdFJlY3QpOwogICAgIGRl
c3RDb250ZXh0LnRyYW5zbGF0ZShkZXN0UmVjdC5sb2NhdGlvbigpKTsKICAgICBpZiAoZGVzdFJl
Y3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgpKQpAQCAtNTMsNyArNTMsNyBAQCBJbWFnZURyYXdS
ZXN1bHQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBj
b25zdCBGbG9hdFJlYwogfQogCiB2b2lkIEdyYWRpZW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQor
ICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIC8vIEFsbG93IHRoZSBn
ZW5lcmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJz
IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCiAgICAgRmxvYXRTaXplIGFkanVzdGVkU2l6ZSA9IHNp
emUoKTsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBHcmFkaWVudEltYWdlOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGQKICAgICBkZXN0
Q29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxzZSk7CiAKICAgICAvLyBUaWxlIHRoZSBp
bWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBtX2NhY2hlZEltYWdlLT5kcmF3UGF0
dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgYWRqdXN0ZWRQYXR0
ZXJuQ1RNLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJsZW5kTW9kZSk7CisgICAgbV9j
YWNoZWRJbWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNy
Y1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2Uu
aAppbmRleCAxZDlkZDkwOGJjMDc2MWU1NTI0ZDFhNDc4ZWE2YzVlYWZiNzg4ZWZkLi4wY2MxODQz
OWMxNDdmOTM0ZGRlMTkzMDc0OGRhNzBjM2ZiMTc1YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oCkBAIC00Niw4ICs0Niw4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgR3JhZGllbnRJbWFnZShHcmFkaWVudCYsIGNvbnN0IEZsb2F0
U2l6ZSYpOwogCi0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0
ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgZmlu
YWw7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgZmluYWw7Cisg
ICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyB9KSBmaW5hbDsKICAgICBib29sIGlzR3JhZGllbnRJbWFnZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGR1bXAoV1RGOjpUZXh0U3RyZWFtJikgY29u
c3QgZmluYWw7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCA3YWY5ZWFlMDQ3YTc5NjY1MjNlZjQ2OTUzNDU4
ZGZkM2M5ZGY5MmU5Li4zMzUxM2RmNGY4MzdmYTY4NmQzZDRiYWY0OThjMGVlODgxNTMxMGFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKQEAgLTcxNSw1NSArNzE1LDUwIEBAIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpCiAK
IEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBpbWFnZVBhaW50aW5nT3B0aW9ucykKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IEZsb2F0UmVjdCBzcmNSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2Uub3JpZ2luYWxTaXplKCkpOwot
I2Vsc2UKICAgICBGbG9hdFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50KCksIGltYWdlLnNpemUoKSk7
Ci0jZW5kaWYKLSAgICAgICAgCiAgICAgcmV0dXJuIGRyYXdJbWFnZShpbWFnZSwgZGVzdGluYXRp
b24sIHNyY1JlY3QsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCiAgICAgaWYgKG1faW1wbCkKLSAgICAg
ICAgcmV0dXJuIG1faW1wbC0+ZHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBp
bWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgICAgIHJldHVybiBtX2ltcGwtPmRyYXdJbWFnZShp
bWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiAKLSAgICBJbnRlcnBvbGF0aW9u
UXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMs
IGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVy
biBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0
aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2JsZW5kTW9k
ZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGluZ01vZGUsIGltYWdlUGFpbnRpbmdPcHRp
b25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0
aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4gaW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24s
IHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdUaWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBj
b25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFn
ZVBhaW50aW5nT3B0aW9ucykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdU
aWxlZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29u
c3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBG
bG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdS
ZXN1bHQ6OkRpZE5vdGhpbmc7CiAKICAgICBpZiAobV9pbXBsKQotICAgICAgICByZXR1cm4gbV9p
bXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUs
IHNwYWNpbmcsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIG1faW1wbC0+
ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFj
aW5nLCBvcHRpb25zKTsKIAotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRl
cnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWludGluZ09wdGlvbnMu
bV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZCgqdGhp
cywgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIGltYWdlUGFpbnRpbmdP
cHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRN
b2RlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9kZSwgaW1hZ2VQYWludGluZ09w
dGlvbnMubV9vcmllbnRhdGlvbik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVy
IGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBvcHRpb25zLmludGVycG9s
YXRpb25RdWFsaXR5KCkpOworICAgIHJldHVybiBpbWFnZS5kcmF3VGlsZWQoKnRoaXMsIGRlc3Rp
bmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0KIAogSW1hZ2VE
cmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29u
c3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsCi0gICAgSW1hZ2U6OlRpbGVSdWxlIGhSdWxl
LCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFn
ZVBhaW50aW5nT3B0aW9ucykKKyAgICBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxl
UnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAg
aWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6
RGlkTm90aGluZzsKIAogICAgIGlmIChtX2ltcGwpCi0gICAgICAgIHJldHVybiBtX2ltcGwtPmRy
YXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3Is
IGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOworICAgICAgICByZXR1cm4gbV9p
bXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxl
RmFjdG9yLCBoUnVsZSwgdlJ1bGUsIG9wdGlvbnMpOwogCiAgICAgaWYgKGhSdWxlID09IEltYWdl
OjpTdHJldGNoVGlsZSAmJiB2UnVsZSA9PSBJbWFnZTo6U3RyZXRjaFRpbGUpIHsKICAgICAgICAg
Ly8gSnVzdCBkbyBhIHNjYWxlLgotICAgICAgICByZXR1cm4gZHJhd0ltYWdlKGltYWdlLCBkZXN0
aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CisgICAgICAgIHJldHVybiBk
cmF3SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogICAgIH0KIAot
ICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZv
clRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVh
bGl0eSk7Ci0gICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZCgqdGhpcywgZGVzdGluYXRpb24sIHNv
dXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25z
Lm1fY29tcG9zaXRlT3BlcmF0b3IpOworICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5l
ciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0aW9ucy5pbnRlcnBv
bGF0aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4gaW1hZ2UuZHJhd1RpbGVkKCp0aGlzLCBkZXN0
aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgb3B0aW9ucy5j
b21wb3NpdGVPcGVyYXRvcigpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9u
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC03
NzYsMTMgKzc3MSwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aQogICAgIGRyYXdJbWFnZUJ1
ZmZlcihpbWFnZSwgZGVzdGluYXRpb24sIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZsb2F0U2l6
ZShpbWFnZS5sb2dpY2FsU2l6ZSgpKSksIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWludGluZ09wdGlv
bnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgaW1hZ2UuZHJhdygqdGhpcywgZGVzdGlu
YXRpb24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9jb21wb3NpdGVPcGVyYXRvciwg
aW1hZ2VQYWludGluZ09wdGlvbnMubV9ibGVuZE1vZGUpOworICAgIEludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgb3B0
aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICBpbWFnZS5kcmF3KCp0aGlzLCBkZXN0
aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdl
LCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIGltYWdlUGFpbnRpbmdPcHRpb25zKQpAQCAtODAxLDEzICs3OTYsMTMgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+IGltYWcKICAgICBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoV1RGTW92ZShpbWFn
ZSksIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2VM
b2dpY2FsU2l6ZSkpLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9u
cykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgIWltYWdlKQogICAgICAg
ICByZXR1cm47CiAgICAgCi0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVy
cG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5t
X2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhX
VEZNb3ZlKGltYWdlKSwgKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdP
cHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRN
b2RlKTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1
YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7
CisgICAgSW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcoV1RGTW92ZShpbWFnZSksICp0aGlzLCBk
ZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmNsaXBSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCA0
NDdkN2UzZTM1NDc2MmU4MGI4ZjI3YTk1MjYyMzIyNzliNWY5MDk0Li4xM2Y1YTJmNTVkYjY3ZmIz
NjJkZDBjZThkZTZhMWYxMTliN2MxZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdl
T3JpZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1
ZGUgIlBhdHRlcm4uaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KQEAgLTIxMCw0MyArMjExLDYgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlIHsKICNlbmRpZgogfTsKIAotc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zIHsKLSAg
ICBJbWFnZVBhaW50aW5nT3B0aW9ucyhDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRv
ciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSBibGVuZE1vZGUgPSBCbGVuZE1vZGU6
Ok5vcm1hbCwgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSA9IERlY29kaW5nTW9kZTo6U3luY2hy
b25vdXMsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpO
b25lLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSA9IEludGVycG9s
YXRpb25EZWZhdWx0KQotICAgICAgICA6IG1fY29tcG9zaXRlT3BlcmF0b3IoY29tcG9zaXRlT3Bl
cmF0b3IpCi0gICAgICAgICwgbV9ibGVuZE1vZGUoYmxlbmRNb2RlKQotICAgICAgICAsIG1fZGVj
b2RpbmdNb2RlKGRlY29kaW5nTW9kZSkKLSAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0
aW9uKQotICAgICAgICAsIG1faW50ZXJwb2xhdGlvblF1YWxpdHkoaW50ZXJwb2xhdGlvblF1YWxp
dHkpCi0gICAgewotICAgIH0KLQotICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKEltYWdlT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFs
aXR5ID0gSW50ZXJwb2xhdGlvbkRlZmF1bHQsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
ZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlIGJsZW5kTW9kZSA9IEJsZW5k
TW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2RlID0gRGVjb2RpbmdNb2RlOjpT
eW5jaHJvbm91cykKLSAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJh
dG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKLSAgICAgICAgLCBtX2RlY29k
aW5nTW9kZShkZWNvZGluZ01vZGUpCi0gICAgICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlv
bikKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5KGludGVycG9sYXRpb25RdWFsaXR5
KQotICAgIHsKLSAgICB9Ci0KLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhJbnRlcnBvbGF0aW9u
UXVhbGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlv
biA9IEltYWdlT3JpZW50YXRpb246Ok5vbmUsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
ZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlIGJsZW5kTW9kZSA9IEJsZW5k
TW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2RlID0gRGVjb2RpbmdNb2RlOjpT
eW5jaHJvbm91cykKLSAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJh
dG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKLSAgICAgICAgLCBtX2RlY29k
aW5nTW9kZShkZWNvZGluZ01vZGUpCi0gICAgICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlv
bikKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5KGludGVycG9sYXRpb25RdWFsaXR5
KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCB1c2VzRGVmYXVsdEludGVycG9sYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2ludGVycG9sYXRpb25RdWFsaXR5ID09IEludGVycG9sYXRpb25E
ZWZhdWx0OyB9Ci0KLSAgICBDb21wb3NpdGVPcGVyYXRvciBtX2NvbXBvc2l0ZU9wZXJhdG9yOwot
ICAgIEJsZW5kTW9kZSBtX2JsZW5kTW9kZTsKLSAgICBEZWNvZGluZ01vZGUgbV9kZWNvZGluZ01v
ZGU7Ci0gICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwotICAgIEludGVycG9sYXRp
b25RdWFsaXR5IG1faW50ZXJwb2xhdGlvblF1YWxpdHk7Ci19OwotCiBzdHJ1Y3QgR3JhcGhpY3ND
b250ZXh0U3RhdGVDaGFuZ2UgewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKCkgPSBk
ZWZhdWx0OwogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlKGNvbnN0IEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBzdGF0ZSwgR3JhcGhpY3NDb250ZXh0U3RhdGU6OlN0YXRlQ2hhbmdlRmxhZ3Mg
ZmxhZ3MpCkBAIC0zNDcsNyArMzExLDcgQEAgcHVibGljOgogICAgIGNvbnN0IEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KIAogI2lmIFVTRShD
RykgfHwgVVNFKERJUkVDVDJEKSB8fCBVU0UoQ0FJUk8pCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
IHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2Rl
ID0gQmxlbmRNb2RlOjpOb3JtYWwsIEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9u
OjpOb25lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBO
YXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmID0geyB9KTsKICNlbmRpZgogCiAjaWYgVVNFKENHKSB8fCBVU0UoRElSRUNUMkQp
CkBAIC0zOTUsMjMgKzM1OSwyMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9h
dFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0gSW1hZ2VQ
YWludGluZ09wdGlvbnMoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIEltYWdlRHJh
d1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0gSW1h
Z2VQYWludGluZ09wdGlvbnMoKSk7CisgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
eyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRy
YXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSB9KTsKIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFn
ZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygp
KTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRT
aXplJiB0aWxlU2NhbGVGYWN0b3IsCi0gICAgICAgIEltYWdlOjpUaWxlUnVsZSwgSW1hZ2U6OlRp
bGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9u
cygpKTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZs
b2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVs
ZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBj
b25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7Ci0gICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1h
Z2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsKLSAgICB2b2lkIGRyYXdJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBh
aW50aW5nT3B0aW9ucygpKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIHZvaWQgZHJhd0ltYWdlQnVmZmVyKEltYWdl
QnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0gICAgdm9pZCBkcmF3UGF0dGVy
bihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJs
ZW5kTW9kZTo6Tm9ybWFsKTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIHZvaWQgZHJhd0NvbnN1
bWluZ0ltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IEltYWdlUGFp
bnRpbmdPcHRpb25zKCkpOwotICAgIHZvaWQgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFn
ZVBhaW50aW5nT3B0aW9ucygpKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdDb25zdW1p
bmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFBv
aW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAg
ICB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgPSB7IH0pOworICAgIHZvaWQgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KElu
dGVycG9sYXRpb25RdWFsaXR5KTsKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5pbWFnZUludGVycG9sYXRp
b25RdWFsaXR5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dEltcGwuY3BwCmluZGV4IDk2MzY0OWY1NjlhZTM0NzcwMWQ1MWRh
ZGRmNDA3ZjVhZmZhNmMwYTIuLmNlOGUxNzJhMTYxYWU0NmFlYTI4ODI3OWViYzkwODYxM2UyY2Nl
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEltcGwuY3BwCkBAIC0zNywyNyArMzcsMjcgQEAgR3JhcGhpY3NDb250ZXh0
SW1wbDo6fkdyYXBoaWNzQ29udGV4dEltcGwoKQogewogfQogCi1JbWFnZURyYXdSZXN1bHQgR3Jh
cGhpY3NDb250ZXh0SW1wbDo6ZHJhd0ltYWdlSW1wbChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0
aW9ucykKK0ltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3SW1hZ2VJbXBs
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVy
IGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIGltYWdlUGFpbnRpbmdP
cHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3KGNv
bnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9z
aXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlLCBpbWFnZVBhaW50
aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9vcmllbnRh
dGlvbik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25R
dWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHko
KSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXcoY29udGV4dCwgZGVzdGluYXRpb24sIHNvdXJjZSwg
b3B0aW9ucyk7CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3
VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29u
c3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCitJbWFnZURyYXdSZXN1
bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBj
b25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0
IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMp
CiB7Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFs
aXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xh
dGlvblF1YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3VGlsZWQoY29udGV4dCwgZGVzdGlu
YXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1f
Y29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlLCBpbWFn
ZVBhaW50aW5nT3B0aW9ucy5tX2RlY29kaW5nTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9v
cmllbnRhdGlvbik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9s
YXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1
YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZChjb250ZXh0LCBkZXN0aW5hdGlv
biwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7CiB9CiAKLUltYWdlRHJhd1Jl
c3VsdCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24s
IGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3Rv
ciwgSW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKK0ltYWdlRHJhd1Jlc3Vs
dCBHcmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3Rvciwg
SW1hZ2U6OlRpbGVSdWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChoUnVsZSA9PSBJbWFnZTo6U3Ry
ZXRjaFRpbGUgJiYgdlJ1bGUgPT0gSW1hZ2U6OlN0cmV0Y2hUaWxlKSB7CiAgICAgICAgIC8vIEp1
c3QgZG8gYSBzY2FsZS4KLSAgICAgICAgcmV0dXJuIGRyYXdJbWFnZUltcGwoY29udGV4dCwgaW1h
Z2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zKTsKKyAgICAgICAg
cmV0dXJuIGRyYXdJbWFnZUltcGwoY29udGV4dCwgaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2Us
IG9wdGlvbnMpOwogICAgIH0KIAotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBp
bnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBpbWFnZVBhaW50aW5nT3B0
aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICByZXR1cm4gaW1hZ2UuZHJhd1RpbGVk
KGNvbnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZS
dWxlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICBJbnRl
cnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2Nv
cGUoY29udGV4dCwgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4g
aW1hZ2UuZHJhd1RpbGVkKGNvbnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZh
Y3RvciwgaFJ1bGUsIHZSdWxlLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKaW5kZXggYjg3MzE5NGVlMjQ2MDFmZTRl
MDcxNDdhYTcxZWEzMDU4N2E4NGE0NS4uOGZiYzVlNTZjZjE1NDg1Mzc3OWM1NTQ0NTQ1ZTllNmEx
YzljODg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEltcGwuaApAQCAtNzMsOSArNzMsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6
ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSA9IDA7CiAgICAgdmlydHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVs
ZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpID0gMDsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotICAg
IHZpcnR1YWwgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25z
dCBGbG9hdFNpemUmIHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3Jp
ZW50YXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpID0gMDsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9k
ZTo6Tm9ybWFsKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpID0gMDsKIAogICAgIHZpcnR1
YWwgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBib3JkZXJUaGlja25lc3Mp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IEZsb2F0UG9pbnQmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5jcHAKaW5kZXggYjZiZGEzMDE0YTAxZGZmMzY1YzQ4OWU3ODk3ODEzMmUzNThjYjhkZC4uMTUz
MzY1NGJiMzE2ZThmYzQ3M2FmOGQyYTA0NzNjYzZjZWNjNjkwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtMTM3LDMzICsxMzcsMjggQEAgdm9pZCBJ
bWFnZTo6ZmlsbFdpdGhTb2xpZENvbG9yKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LAogICAgIGN0eHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKHByZXZpb3Vz
T3BlcmF0b3IpOwogfQogCi12b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQm
IGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgSW1hZ2U6OmRyYXdQYXR0ZXJuKEdy
YXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LCAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKCFuYXRpdmVJbWFn
ZUZvckN1cnJlbnRGcmFtZSgmY3R4dCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGN0eHQuZHJh
d1BhdHRlcm4oKnRoaXMsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIGN0eHQuZHJhd1BhdHRlcm4oKnRoaXMs
IGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9w
dGlvbnMpOwogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAgaW1hZ2VPYnNlcnZl
cigpLT5kaWREcmF3KCp0aGlzKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGls
ZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFBvaW50JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiBzY2FsZWRUaWxlU2l6ZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2Rl
IGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29u
dGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYg
c3JjUG9pbnQsIGNvbnN0IEZsb2F0U2l6ZSYgc2NhbGVkVGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAg
Q29sb3IgY29sb3IgPSBzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsKICAgICBpZiAoY29sb3IuaXNW
YWxpZCgpKSB7Ci0gICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjdHh0LCBkZXN0UmVjdCwgY29s
b3IsIG9wKTsKKyAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGN0eHQsIGRlc3RSZWN0LCBjb2xv
ciwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKICAgICAgICAgcmV0dXJuIEltYWdlRHJh
d1Jlc3VsdDo6RGlkRHJhdzsKICAgICB9CiAKICAgICBBU1NFUlQoIWlzQml0bWFwSW1hZ2UoKSB8
fCBub3RTb2xpZENvbG9yKCkpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGbG9h
dFNpemUgaW50cmluc2ljVGlsZVNpemUgPSBvcmlnaW5hbFNpemUoKTsKLSNlbHNlCiAgICAgRmxv
YXRTaXplIGludHJpbnNpY1RpbGVTaXplID0gc2l6ZSgpOwotI2VuZGlmCiAgICAgaWYgKGhhc1Jl
bGF0aXZlV2lkdGgoKSkKICAgICAgICAgaW50cmluc2ljVGlsZVNpemUuc2V0V2lkdGgoc2NhbGVk
VGlsZVNpemUud2lkdGgoKSk7CiAgICAgaWYgKGhhc1JlbGF0aXZlSGVpZ2h0KCkpCkBAIC0xODQs
NyArMTc5LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250
ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWMKICAgICAgICAgdmlzaWJsZVNyY1Jl
Y3Quc2V0WSgoZGVzdFJlY3QueSgpIC0gb25lVGlsZVJlY3QueSgpKSAvIHNjYWxlLmhlaWdodCgp
KTsKICAgICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0V2lkdGgoZGVzdFJlY3Qud2lkdGgoKSAvIHNj
YWxlLndpZHRoKCkpOwogICAgICAgICB2aXNpYmxlU3JjUmVjdC5zZXRIZWlnaHQoZGVzdFJlY3Qu
aGVpZ2h0KCkgLyBzY2FsZS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiBkcmF3KGN0eHQsIGRl
c3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgZGVjb2RpbmdNb2RlLCBvcmll
bnRhdGlvbik7CisgICAgICAgIHJldHVybiBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3Jj
UmVjdCwgb3B0aW9ucyk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE5
Niw3ICsxOTEsNyBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0Nv
bnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlYwogICAgICAgICAgICAgdmlzaWJs
ZVNyY1JlY3Quc2V0WSgoZGVzdFJlY3QueSgpIC0gb25lVGlsZVJlY3QueSgpKSAvIHNjYWxlLmhl
aWdodCgpKTsKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldFdpZHRoKDEpOwogICAgICAg
ICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0SGVpZ2h0KGRlc3RSZWN0LmhlaWdodCgpIC8gc2NhbGUu
aGVpZ2h0KCkpOwotICAgICAgICAgICAgcmV0dXJuIGRyYXcoY3R4dCwgZGVzdFJlY3QsIHZpc2li
bGVTcmNSZWN0LCBvcCwgQmxlbmRNb2RlOjpOb3JtYWwsIGRlY29kaW5nTW9kZSwgb3JpZW50YXRp
b24pOworICAgICAgICAgICAgcmV0dXJuIGRyYXcoY3R4dCwgZGVzdFJlY3QsIHZpc2libGVTcmNS
ZWN0LCB7IG9wdGlvbnMsIEJsZW5kTW9kZTo6Tm9ybWFsIH0pOwogICAgICAgICB9CiAgICAgICAg
IGlmIChzaXplKCkuaGVpZ2h0KCkgPT0gMSAmJiBpbnRlcnNlY3Rpb24ob25lVGlsZVJlY3QsIGRl
c3RSZWN0KS53aWR0aCgpID09IGRlc3RSZWN0LndpZHRoKCkpIHsKICAgICAgICAgICAgIEZsb2F0
UmVjdCB2aXNpYmxlU3JjUmVjdDsKQEAgLTIwNCw3ICsxOTksNyBAQCBJbWFnZURyYXdSZXN1bHQg
SW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlYwogICAgICAgICAgICAgdmlzaWJsZVNyY1JlY3Quc2V0WSgwKTsKICAgICAgICAgICAg
IHZpc2libGVTcmNSZWN0LnNldFdpZHRoKGRlc3RSZWN0LndpZHRoKCkgLyBzY2FsZS53aWR0aCgp
KTsKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldEhlaWdodCgxKTsKLSAgICAgICAgICAg
IHJldHVybiBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgb3AsIEJsZW5kTW9k
ZTo6Tm9ybWFsLCBkZWNvZGluZ01vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgIHJldHVy
biBkcmF3KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgeyBvcHRpb25zLCBCbGVuZE1v
ZGU6Ok5vcm1hbCB9KTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMjM2LDcgKzIzMSw3
IEBAIEltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4
dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjCiAgICAgICAgICAgICAgICAgRmxvYXRSZWN0IGZy
b21SZWN0KHRvRmxvYXRQb2ludChjdXJyZW50VGlsZVJlY3QubG9jYXRpb24oKSAtIG9uZVRpbGVS
ZWN0LmxvY2F0aW9uKCkpLCBjdXJyZW50VGlsZVJlY3Quc2l6ZSgpKTsKICAgICAgICAgICAgICAg
ICBmcm9tUmVjdC5zY2FsZSgxIC8gc2NhbGUud2lkdGgoKSwgMSAvIHNjYWxlLmhlaWdodCgpKTsK
IAotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRyYXcoY3R4dCwgdG9SZWN0LCBmcm9tUmVjdCwg
b3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBkZWNvZGluZ01vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBkcmF3KGN0eHQsIHRvUmVjdCwgZnJvbVJlY3QsIHsgb3B0aW9u
cywgQmxlbmRNb2RlOjpOb3JtYWwgfSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBJ
bWFnZURyYXdSZXN1bHQ6OkRpZFJlcXVlc3REZWNvZGluZykKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICB0b1ggKz0gY3VycmVudFRpbGVSZWN0Lndp
ZHRoKCk7CkBAIC0yNTAsMTcgKzI0NSwxNyBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdU
aWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlYwogCiAg
ICAgQWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm0gPSBBZmZpbmVUcmFuc2Zvcm0oKS5z
Y2FsZU5vblVuaWZvcm0oc2NhbGUud2lkdGgoKSwgc2NhbGUuaGVpZ2h0KCkpOwogICAgIEZsb2F0
UmVjdCB0aWxlUmVjdChGbG9hdFBvaW50KCksIGludHJpbnNpY1RpbGVTaXplKTsKLSAgICBkcmF3
UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIG9uZVRp
bGVSZWN0LmxvY2F0aW9uKCksIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIGRyYXdQYXR0
ZXJuKGN0eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgb25lVGlsZVJl
Y3QubG9jYXRpb24oKSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAgc3RhcnRBbmltYXRpb24oKTsK
ICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogfQogCiAvLyBGSVhNRTogTWVy
Z2Ugd2l0aCB0aGUgb3RoZXIgZHJhd1RpbGVkIGV2ZW50dWFsbHksIHNpbmNlIHdlIG5lZWQgYSBj
b21iaW5hdGlvbiBvZiBib3RoIGZvciBzb21lIHRoaW5ncy4KLUltYWdlRHJhd1Jlc3VsdCBJbWFn
ZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxl
RmFjdG9yLCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wKQorSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIFRpbGVSdWxlIGhSdWxlLCBUaWxlUnVs
ZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7ICAgIAogICAg
IENvbG9yIGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgaWYgKGNvbG9yLmlz
VmFsaWQoKSkgewotICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY3R4dCwgZHN0UmVjdCwgY29s
b3IsIG9wKTsKKyAgICAgICAgZmlsbFdpdGhTb2xpZENvbG9yKGN0eHQsIGRzdFJlY3QsIGNvbG9y
LCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3
UmVzdWx0OjpEaWREcmF3OwogICAgIH0KICAgICAKQEAgLTMzMCwxOCArMzI1LDE0IEBAIEltYWdl
RHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0CiAgICAgICAgIHZQaGFzZSAtPSAoZHN0UmVjdC5oZWlnaHQoKSAt
IHNjYWxlZFRpbGVIZWlnaHQpIC8gMjsKIAogICAgIEZsb2F0UG9pbnQgcGF0dGVyblBoYXNlKGRz
dFJlY3QueCgpIC0gaFBoYXNlLCBkc3RSZWN0LnkoKSAtIHZQaGFzZSk7Ci0gICAgZHJhd1BhdHRl
cm4oY3R4dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGF0dGVyblBoYXNl
LCBzcGFjaW5nLCBvcCk7CisgICAgZHJhd1BhdHRlcm4oY3R4dCwgZHN0UmVjdCwgc3JjUmVjdCwg
cGF0dGVyblRyYW5zZm9ybSwgcGF0dGVyblBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICBz
dGFydEFuaW1hdGlvbigpOwogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7CiB9
CiAKIHZvaWQgSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmlu
c2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1Jh
dGlvKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaW50cmluc2ljUmF0aW8gPSBv
cmlnaW5hbFNpemUoKTsKLSNlbHNlCiAgICAgaW50cmluc2ljUmF0aW8gPSBzaXplKCk7Ci0jZW5k
aWYKICAgICBpbnRyaW5zaWNXaWR0aCA9IExlbmd0aChpbnRyaW5zaWNSYXRpby53aWR0aCgpLCBG
aXhlZCk7CiAgICAgaW50cmluc2ljSGVpZ2h0ID0gTGVuZ3RoKGludHJpbnNpY1JhdGlvLmhlaWdo
dCgpLCBGaXhlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaApp
bmRleCAzNjk5N2M4MzUyMWM0NmM1Y2Q0NzU1NmQ4MTQ0ZWU5MjU1MDlhNGE3Li4zNzIyYzIyNmUw
MGViNTBmZmU0ZWU2ZGQ4NzIxZTVhM2IyMWY0OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgRmxvYXRTaXplOwogY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0SW1wbDsKIGNsYXNzIFNo
YXJlZEJ1ZmZlcjsKK3N0cnVjdCBJbWFnZVBhaW50aW5nT3B0aW9uczsKIHN0cnVjdCBMZW5ndGg7
CiAKIC8vIFRoaXMgY2xhc3MgZ2V0cyBub3RpZmllZCB3aGVuIGFuIGltYWdlIGNyZWF0ZXMgb3Ig
ZGVzdHJveXMgZGVjb2RlZCBmcmFtZXMgYW5kIHdoZW4gaXQgYWR2YW5jZXMgYW5pbWF0aW9uIGZy
YW1lcy4KQEAgLTExMCwxNiArMTExLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFz
UmVsYXRpdmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5n
dGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbyk7CiAKLSAgICB2
aXJ0dWFsIEZsb2F0U2l6ZSBzaXplKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgRmxvYXRTaXpl
IHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29u
c3QgPSAwOwogICAgIEZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gRmxvYXRSZWN0KEZs
b2F0UG9pbnQoKSwgc2l6ZSgpKTsgfQogICAgIGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4g
c2l6ZSgpLndpZHRoKCk7IH0KICAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBzaXpl
KCkuaGVpZ2h0KCk7IH0KICAgICB2aXJ0dWFsIE9wdGlvbmFsPEludFBvaW50PiBob3RTcG90KCkg
Y29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIHZpcnR1YWwgRmxvYXRTaXplIG9yaWdpbmFsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHNp
emUoKTsgfQotI2VuZGlmCi0KICAgICBXRUJDT1JFX0VYUE9SVCBFbmNvZGVkRGF0YVN0YXR1cyBz
ZXREYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQp
OwogICAgIHZpcnR1YWwgRW5jb2RlZERhdGFTdGF0dXMgZGF0YUNoYW5nZWQoYm9vbCAvKmFsbERh
dGFSZWNlaXZlZCovKSB7IHJldHVybiBFbmNvZGVkRGF0YVN0YXR1czo6VW5rbm93bjsgfQogCkBA
IC0xNzMsOCArMTcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR2RrUGl4YnVmKiBnZXRHZGtQ
aXhidWYoKSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBk
cmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRy
YW5zZm9ybSwKLSAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9y
bWFsKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNl
LCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9
IHsgfSk7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgdmlydHVhbCBib29sIG5vdFNvbGlk
Q29sb3IoKSB7IHJldHVybiB0cnVlOyB9CkBAIC0xOTAsOSArMTg2LDkgQEAgcHJvdGVjdGVkOgog
I2lmIFBMQVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0ZyYW1lTWF0Y2hpbmdTb3Vy
Y2VTaXplKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3Qg
SW50U2l6ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IpIHsgfQogI2VuZGlmCi0gICAgdmly
dHVhbCBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSA9IDA7Ci0gICAgSW1h
Z2VEcmF3UmVzdWx0IGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNyY1BvaW50LCBjb25zdCBGbG9hdFNpemUmIHRp
bGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbik7Ci0gICAgSW1hZ2VEcmF3UmVz
dWx0IGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0
b3IsIFRpbGVSdWxlIGhSdWxlLCBUaWxlUnVsZSB2UnVsZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwor
ICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgPSAwOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGls
ZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFBvaW50JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRT
aXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOworICAgIElt
YWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGls
ZVNjYWxlRmFjdG9yLCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAKICAgICAvLyBTdXBwb3J0aW5nIHRpbGVkIGRyYXdp
bmcKICAgICB2aXJ0dWFsIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpIGNvbnN0IHsgcmV0
dXJuIENvbG9yKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCmluZGV4IDhlZmQ1OGEyODk4MTMwZWZkYWU3MzE4MGM5NmI1YzJiMzY0YjM0ZDAu
LjE2OTgwMjZlYzI0NDBmMjgxNTBiNGIyMDNlNDZlYzVjNjRlMmExYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzM0Qu
aCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckRhdGEuaCIKKyNpbmNsdWRlICJJbWFnZVBhaW50aW5n
T3B0aW9ucy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVy
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhDbGFtcGVkQXJyYXkuaD4KQEAgLTUx
LDcgKzUyLDcgQEAgY2xhc3MgSW1hZ2VEYXRhOwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRS
ZWN0OwogY2xhc3MgSG9zdFdpbmRvdzsKLSAgICAKKwogZW51bSBCYWNraW5nU3RvcmVDb3B5IHsK
ICAgICBDb3B5QmFja2luZ1N0b3JlLCAvLyBHdWFyYW50ZWUgc3Vic2VxdWVudCBkcmF3cyBkb24n
dCBhZmZlY3QgdGhlIGNvcHkuCiAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVu
dCBkcmF3cyBtYXkgYWZmZWN0IHRoZSBjb3B5LgpAQCAtMTUxLDEwICsxNTIsMTAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGZsdXNoQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCiAgICAgCi0gICAgdm9p
ZCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLCBDb21wb3NpdGVP
cGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9y
bWFsKTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRN
b2RlOjpOb3JtYWwpOworICAgIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwg
MCwgLTEsIC0xKSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lk
IGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCi0gICAgc3RhdGljIHZv
aWQgZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7CisgICAgc3RhdGlj
IHZvaWQgZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgLTEsIC0xKSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmID0geyB9KTsKIAogICAgIGlubGluZSB2b2lkIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VN
YXNrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUu
aAppbmRleCAyZGZlZmFlYjVkMTkzMzZkZWQyMTI1OGVlMWZmZjYzODZmNThiOTJkLi4yY2M2YjAy
YTdkMzUwMTU3MWNmMjA5MzY0YjM2ZWQyNWMxZDgzOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2RlY29kaW5nU3RhdHVzID09
IERlY29kaW5nU3RhdHVzOjpDb21wbGV0ZTsgfQogCiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3Q7
Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
IW1fb3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSA/IHNpemUoKSA6IHNpemUoKS50cmFu
c3Bvc2VkU2l6ZSgpOyB9CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlcygpIGNvbnN0IHsgcmV0dXJu
IGhhc05hdGl2ZUltYWdlKCkgPyAoc2l6ZSgpLmFyZWEoKSAqIHNpemVvZih1aW50MzJfdCkpLnVu
c2FmZUdldCgpIDogMDsgfQogICAgIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3Vic2FtcGxpbmdMZXZlbDsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZjQ1YzNmZDZkMzM4NDFiYzAzNTU1ZjA3YzkwMmM5MWQ1MTFjZGEwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGlu
Z09wdGlvbnMuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRGVjb2RpbmdPcHRp
b25zLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgorI2luY2x1ZGUgIkltYWdlT3JpZW50
YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgSW1hZ2VQYWludGluZ09w
dGlvbnMgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIE9wdGlvbnM+CisgICAgSW1hZ2VQYWlu
dGluZ09wdGlvbnMoT3B0aW9ucy4uLiBvcHRpb25zKQorICAgIHsKKyAgICAgICAgc2V0T3B0aW9u
KG9wdGlvbnMuLi4pOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIE92ZXJycmlk
ZXM+CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
IG90aGVyLCBPdmVycnJpZGVzLi4uIG92ZXJycmlkZXMpCisgICAgICAgIDogSW1hZ2VQYWludGlu
Z09wdGlvbnMob3RoZXIpCisgICAgeworICAgICAgICBzZXRPcHRpb24ob3ZlcnJyaWRlcy4uLik7
CisgICAgfQorCisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgSW1h
Z2VQYWludGluZ09wdGlvbnMoY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IGRlZmF1bHQ7
CisKKyAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvcigpIGNvbnN0IHsgcmV0
dXJuIG1fY29tcG9zaXRlT3BlcmF0b3I7IH0KKyAgICBCbGVuZE1vZGUgYmxlbmRNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9ibGVuZE1vZGU7IH0KKyAgICBEZWNvZGluZ01vZGUgZGVjb2RpbmdNb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9kZWNvZGluZ01vZGU7IH0KKyAgICBJbWFnZU9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQorICAgIEludGVy
cG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9p
bnRlcnBvbGF0aW9uUXVhbGl0eTsgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBGaXJzdCwgdHlwZW5hbWUuLi4gUmVzdD4KKyAgICB2b2lkIHNldE9wdGlvbihGaXJzdCBmaXJz
dCwgUmVzdC4uLiByZXN0KQorICAgIHsKKyAgICAgICAgc2V0T3B0aW9uKGZpcnN0KTsKKyAgICAg
ICAgc2V0T3B0aW9uKHJlc3QuLi4pOworICAgIH0KKworICAgIHZvaWQgc2V0T3B0aW9uKENvbXBv
c2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yKSB7IG1fY29tcG9zaXRlT3BlcmF0b3IgPSBj
b21wb3NpdGVPcGVyYXRvcjsgfQorICAgIHZvaWQgc2V0T3B0aW9uKEJsZW5kTW9kZSBibGVuZE1v
ZGUpIHsgbV9ibGVuZE1vZGUgPSBibGVuZE1vZGU7IH0KKyAgICB2b2lkIHNldE9wdGlvbihEZWNv
ZGluZ01vZGUgZGVjb2RpbmdNb2RlKSB7IG1fZGVjb2RpbmdNb2RlID0gZGVjb2RpbmdNb2RlOyB9
CisgICAgdm9pZCBzZXRPcHRpb24oSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29y
aWVudGF0aW9uID0gb3JpZW50YXRpb247IH0KKyAgICB2b2lkIHNldE9wdGlvbihJbWFnZU9yaWVu
dGF0aW9uOjpPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0gb3JpZW50
YXRpb247IH0KKyAgICB2b2lkIHNldE9wdGlvbihJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBv
bGF0aW9uUXVhbGl0eSkgeyBtX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJwb2xhdGlvblF1
YWxpdHk7IH0KKworICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1fY29tcG9zaXRlT3BlcmF0b3IgeyBD
b21wb3NpdGVTb3VyY2VPdmVyIH07CisgICAgQmxlbmRNb2RlIG1fYmxlbmRNb2RlIHsgQmxlbmRN
b2RlOjpOb3JtYWwgfTsKKyAgICBEZWNvZGluZ01vZGUgbV9kZWNvZGluZ01vZGUgeyBEZWNvZGlu
Z01vZGU6OlN5bmNocm9ub3VzIH07CisgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9u
IHsgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OworICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1f
aW50ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVmYXVsdCB9OworfTsKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmlu
ZGV4IDE4OTc2ZjkxOWViODFkYTM5NTY3ZjI2YTE4YmFlN2E5YWYxZDMyNDMuLmZlNzVkYzRiOTU0
NTAzMDM5ZWVhM2RkNWI2YzM3ZTgzMTg5YjNlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAgLTYzLDEwICs2Myw4IEBAIEltYWdl
U291cmNlOjpJbWFnZVNvdXJjZShOYXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlKQogCiAgICAg
bV9kZWNvZGVkU2l6ZSA9IG1fZnJhbWVzWzBdLmZyYW1lQnl0ZXMoKTsKIAotICAgIC8vIFRoZSBh
c3N1bXB0aW9uIGlzIHRoZSBtZW1vcnkgaW1hZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgd2l0aCB0aGUg
ZGVmYXVsdAotICAgIC8vIG9yaWVudGF0aW9uLiBTbyBzZXQgbV9zaXplUmVzcGVjdGluZ09yaWVu
dGF0aW9uIHRvIGJlIHRoZSBzYW1lIGFzIG1fc2l6ZS4KICAgICBtX3NpemUgPSBtX2ZyYW1lc1sw
XS5zaXplKCk7Ci0gICAgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gbV9zaXplOworICAg
IG1fb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb246Ok5vbmUp
OwogfQogCiBJbWFnZVNvdXJjZTo6fkltYWdlU291cmNlKCkKQEAgLTU1OSwyMCArNTU3LDI3IEBA
IE9wdGlvbmFsPEludFBvaW50PiBJbWFnZVNvdXJjZTo6aG90U3BvdCgpCiAgICAgcmV0dXJuIG1l
dGFkYXRhPE9wdGlvbmFsPEludFBvaW50PiwgKCZJbWFnZURlY29kZXI6OmhvdFNwb3QpPihXVEY6
Om51bGxvcHQsICZtX2hvdFNwb3QpOwogfQogCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplKCkK
K0ltYWdlT3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uKCkKIHsKKyAgICByZXR1
cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPEltYWdlT3JpZW50YXRpb24+KDAs
ICgmSW1hZ2VGcmFtZTo6b3JpZW50YXRpb24pLCAmbV9vcmllbnRhdGlvbiwgSW1hZ2VGcmFtZTo6
Q2FjaGluZzo6TWV0YWRhdGEpOworfQorCitJbnRTaXplIEltYWdlU291cmNlOjpzaXplKEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCit7CisgICAgSW50U2l6ZSBzaXplOwogI2lmICFVU0Uo
Q0cpCiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdlIGhhdmUgZGVjb2RlZCB0aGUgbWV0YWRh
dGEsIGJ1dCBub3QgZnJhbWUgY29udGVudHMgeWV0LiBJbiB0aGF0IGNhc2UgSW1hZ2VEZWNvZGVy
IGNsYWltcyB0bwogICAgIC8vIGhhdmUgdGhlIHNpemUgYXZhaWxhYmxlLCBidXQgdGhlIGZyYW1l
IGNhY2hlIGlzIGVtcHR5LiBSZXR1cm4gdGhlIGRlY29kZXIgc2l6ZSB3aXRob3V0IGNhY2hpbmcg
aW4gc3VjaCBjYXNlLgogICAgIGlmIChtX2ZyYW1lcy5pc0VtcHR5KCkgJiYgaXNEZWNvZGVyQXZh
aWxhYmxlKCkpCi0gICAgICAgIHJldHVybiBtX2RlY29kZXItPnNpemUoKTsKKyAgICAgICAgc2l6
ZSA9IG1fZGVjb2Rlci0+c2l6ZSgpOworICAgIGVsc2UKICNlbmRpZgotICAgIHJldHVybiBmcmFt
ZU1ldGFkYXRhQXRJbmRleENhY2hlSWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZyYW1lOjpz
aXplKSwgJm1fc2l6ZSwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNhbXBsaW5n
TGV2ZWw6OkRlZmF1bHQpOwotfQotCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplUmVzcGVjdGlu
Z09yaWVudGF0aW9uKCkKLXsKLSAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlm
TmVlZGVkPEludFNpemU+KDAsICgmSW1hZ2VGcmFtZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlv
biksICZtX3NpemVSZXNwZWN0aW5nT3JpZW50YXRpb24sIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1l
dGFkYXRhLCBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KTsKKyAgICAgICAgc2l6ZSA9IGZyYW1l
TWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxJbnRTaXplPigwLCAoJkltYWdlRnJhbWU6OnNp
emUpLCAmbV9zaXplLCBJbWFnZUZyYW1lOjpDYWNoaW5nOjpNZXRhZGF0YSwgU3Vic2FtcGxpbmdM
ZXZlbDo6RGVmYXVsdCk7CisgICAgCisgICAgaWYgKG9yaWVudGF0aW9uID09IEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSkKKyAgICAgICAgb3JpZW50YXRpb24gPSB0aGlzLT5vcmllbnRhdGlv
bigpOworICAgIAorICAgIHJldHVybiBvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpID8g
c2l6ZS50cmFuc3Bvc2VkU2l6ZSgpIDogc2l6ZTsKIH0KIAogQ29sb3IgSW1hZ2VTb3VyY2U6OnNp
bmdsZVBpeGVsU29saWRDb2xvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuaAppbmRleCBiYzc5MDk5MzI3OGJjYjQyNTAzODY1ZmI1MTJhYjZmMmU5
ODhlODNkLi45OThlMjdhYWEyYzAzOTJlYWQ5ZWVlNDcwMTJjYmIzMjg0OTFiMjA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTkzLDEw
ICs5MywxMCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHV0aSgpOwogICAgIFN0cmluZyBmaWxlbmFt
ZUV4dGVuc2lvbigpOwogICAgIE9wdGlvbmFsPEludFBvaW50PiBob3RTcG90KCk7CisgICAgSW1h
Z2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpOwogCiAgICAgLy8gSW1hZ2UgbWV0YWRhdGEgd2hp
Y2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBJbWFnZUZyYW1lLgotICAgIFdFQkNPUkVf
RVhQT1JUIEludFNpemUgc2l6ZSgpOwotICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRh
dGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIEludFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9u
ID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKTsKICAgICBDb2xvciBzaW5nbGVQaXhlbFNv
bGlkQ29sb3IoKTsKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1TdWJzYW1wbGluZ0xldmVs
KCk7CiAKQEAgLTE5Niw3ICsxOTYsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gSW1hZ2UgbWV0YWRh
dGEgd2hpY2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBJbWFnZUZyYW1lLgogICAgIE9w
dGlvbmFsPEludFNpemU+IG1fc2l6ZTsKLSAgICBPcHRpb25hbDxJbnRTaXplPiBtX3NpemVSZXNw
ZWN0aW5nT3JpZW50YXRpb247CisgICAgT3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlvbj4gbV9vcmll
bnRhdGlvbjsKICAgICBPcHRpb25hbDxDb2xvcj4gbV9zaW5nbGVQaXhlbFNvbGlkQ29sb3I7CiAg
ICAgT3B0aW9uYWw8U3Vic2FtcGxpbmdMZXZlbD4gbV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZElt
YWdlR2VuZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcAppbmRleCA5YTZiMDE4ZDQyZmE3NDQ4N2QxNDdh
YTZjZTY0NjZhMTllZWFlYjNkLi5kM2QzZmEzOWUwNmQ4OWVhNjJjMTc5ZDk4ODdmNDViYmY2Yzhk
YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZElt
YWdlR2VuZXJhdGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAKQEAgLTQwLDExICs0MCwxMSBAQCBOYW1l
ZEltYWdlR2VuZXJhdGVkSW1hZ2U6Ok5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZShTdHJpbmcgbmFt
ZSwgY29uc3QgRmxvYXRTaXplJgogICAgIHNldENvbnRhaW5lclNpemUoc2l6ZSk7CiB9CiAKLUlt
YWdlRHJhd1Jlc3VsdCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1v
ZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBOYW1l
ZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAjaWYgVVNFKE5FV19USEVNRSkgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2
ZXIoY29udGV4dCk7Ci0gICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29tcG9zaXRl
T3AsIGJsZW5kTW9kZSk7CisgICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ob3B0aW9u
cy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKICAgICBjb250ZXh0
LmNsaXAoZHN0UmVjdCk7CiAgICAgY29udGV4dC50cmFuc2xhdGUoZHN0UmVjdC5sb2NhdGlvbigp
KTsKICAgICBpZiAoZHN0UmVjdC5zaXplKCkgIT0gc3JjUmVjdC5zaXplKCkpCkBAIC01NywxMyAr
NTcsMTIgQEAgSW1hZ2VEcmF3UmVzdWx0IE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEYKICAgICBVTlVTRURfUEFSQU0oY29udGV4
dCk7CiAgICAgVU5VU0VEX1BBUkFNKGRzdFJlY3QpOwogICAgIFVOVVNFRF9QQVJBTShzcmNSZWN0
KTsKLSAgICBVTlVTRURfUEFSQU0oY29tcG9zaXRlT3ApOwotICAgIFVOVVNFRF9QQVJBTShibGVu
ZE1vZGUpOworICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKICAgICByZXR1cm4gSW1hZ2VEcmF3
UmVzdWx0OjpEaWROb3RoaW5nOwogI2VuZGlmCiB9CiAKLXZvaWQgTmFtZWRJbWFnZUdlbmVyYXRl
ZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBG
bG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlKQordm9pZCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5z
Zm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAjaWYgVVNFKE5FV19USEVN
RSkKICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVC
dWZmZXIoc2l6ZSgpLCBjb250ZXh0KTsKQEAgLTc0LDE2ICs3MywxNSBAQCB2b2lkIE5hbWVkSW1h
Z2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGbG9hdAogICAgIFRoZW1lOjpzaW5nbGV0b24oKS5kcmF3TmFtZWRJbWFnZShtX25hbWUs
IGdyYXBoaWNzQ29udGV4dCwgRmxvYXRSZWN0KDAsIDAsIHNpemUoKS53aWR0aCgpLCBzaXplKCku
aGVpZ2h0KCkpKTsKIAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250
ZXh0LgotICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzcmNS
ZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJsZW5k
TW9kZSk7CisgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNy
Y1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShkc3RSZWN0KTsK
ICAgICBVTlVTRURfUEFSQU0oc3JjUmVjdCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhdHRlcm5UcmFu
c2Zvcm0pOwogICAgIFVOVVNFRF9QQVJBTShwaGFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHNwYWNp
bmcpOwotICAgIFVOVVNFRF9QQVJBTShkc3RSZWN0KTsKLSAgICBVTlVTRURfUEFSQU0oY29tcG9z
aXRlT3ApOwotICAgIFVOVVNFRF9QQVJBTShibGVuZE1vZGUpOworICAgIFVOVVNFRF9QQVJBTShv
cHRpb25zKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oCmluZGV4IDNlN2M5NmQ5
NDcxZjEzZjQ2OTYzMWZiNmVmNGQ1NGZmODUyNTFiMWMuLjAyODVlMWY4YjlhMmE1MTYzMmRmYzRm
MzcwYTJhMGNkNjEzZDgwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oCkBAIC0zOSw4ICszOSw4
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJh
dyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJh
dG9yLCBCbGVuZE1vZGUpIG92ZXJyaWRlOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOworICAg
IHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKIAog
ICAgIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZShTdHJpbmcgbmFtZSwgY29uc3QgRmxvYXRTaXpl
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2
ZUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5o
CmluZGV4IDVhZjQzYWEyZTkwMjA1N2YwN2EwYjYxODljNjAwNmQ2MDU4ZGFkNDUuLjhlM2FlMjE2
NjBjNTRkMzU3MGFjMmRiMTNhNmI1YjVjYjNjYjdlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaApAQCAtMjcsOCArMjcsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKLSNpbmNsdWRlICJJbWFnZU9y
aWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKIAogI2lmIFVT
RShDRykKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC02Niw3ICs2NSw3IEBAIEludFNp
emUgbmF0aXZlSW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBib29sIG5hdGl2ZUlt
YWdlSGFzQWxwaGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKIENvbG9yIG5hdGl2ZUltYWdlU2lu
Z2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiAKLXZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24pOwordm9pZCBkcmF3TmF0aXZlSW1h
Z2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbnRTaXplJiwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKTsKIHZvaWQgY2xlYXJOYXRpdmVJbWFnZVN1YmltYWdlcyhjb25zdCBOYXRpdmVJ
bWFnZVB0ciYpOwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKaW5kZXggNzQ2NDBmNzA0ZWNl
NDk2ZGE0MGFmNDEzYmE2ZjRkOWJkZWFmNDE5Yi4uYTg5NWRhZGQwNDIxYjdlZDA5MTEyOGQyM2Y2
NWY1ZGQ5NDRhNDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCkBAIC0xNzksOCArMTc5LDcgQEAg
c3RhdGljIHZvaWQgZHJhd1NoYWRvd0xheWVyQnVmZmVyKFBsYXRmb3JtQ29udGV4dENhaXJvJiBw
bGF0Zm9ybUNvbnRleHQsIEltYWdlQnUKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGF1dG8g
c3VyZmFjZSA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKSB7Ci0gICAgICAg
IGRyYXdOYXRpdmVJbWFnZShwbGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UuZ2V0KCksIEZsb2F0UmVj
dChyb3VuZGVkSW50UG9pbnQobGF5ZXJPcmlnaW4pLCBsYXllclNpemUpLCBGbG9hdFJlY3QoRmxv
YXRQb2ludCgpLCBsYXllclNpemUpLCBzaGFkb3dTdGF0ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlOjpOb3JtYWwsIEltYWdlT3JpZW50YXRpb246Ok5vbmUsCi0gICAgICAgICAg
ICBJbnRlcnBvbGF0aW9uRGVmYXVsdCwgc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNoYWRvd1N0
YXRlKCkpOworICAgICAgICBkcmF3TmF0aXZlSW1hZ2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNl
LmdldCgpLCBGbG9hdFJlY3Qocm91bmRlZEludFBvaW50KGxheWVyT3JpZ2luKSwgbGF5ZXJTaXpl
KSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbGF5ZXJTaXplKSwgeyBzaGFkb3dTdGF0ZS5nbG9i
YWxDb21wb3NpdGVPcGVyYXRvciB9LCBzaGFkb3dTdGF0ZS5nbG9iYWxBbHBoYSwgU2hhZG93U3Rh
dGUoKSk7CiAgICAgfQogfQogCkBAIC0xOTIsOCArMTkxLDcgQEAgc3RhdGljIHZvaWQgZHJhd1No
YWRvd0ltYWdlKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIEltYWdlQnVm
ZmVyJgogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UtPm5h
dGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpIHsKLSAgICAgICAgZHJhd05hdGl2ZUltYWdlKHBs
YXRmb3JtQ29udGV4dCwgc3VyZmFjZS5nZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIHNoYWRvd1N0
YXRlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGU6Ok5vcm1hbCwgSW1hZ2VPcmll
bnRhdGlvbjo6Tm9uZSwKLSAgICAgICAgICAgIEludGVycG9sYXRpb25EZWZhdWx0LCBzaGFkb3dT
dGF0ZS5nbG9iYWxBbHBoYSwgU2hhZG93U3RhdGUoKSk7CisgICAgICAgIGRyYXdOYXRpdmVJbWFn
ZShwbGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCB7IHNo
YWRvd1N0YXRlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdG9yIH0sIHNoYWRvd1N0YXRlLmdsb2JhbEFs
cGhhLCBTaGFkb3dTdGF0ZSgpKTsKICAgICB9CiB9CiAKQEAgLTg3OCwzNyArODc2LDM3IEBAIHZv
aWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25z
dCBGaWxsU291cmNlJiBmaWxsU291CiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CiAKLXZvaWQg
ZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNh
aXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwg
QmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgSW50ZXJw
b2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQgZ2xvYmFsQWxw
aGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKK3ZvaWQgZHJhd05hdGl2ZUltYWdl
KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCog
c3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywgZmxvYXQgZ2xvYmFsQWxw
aGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKICAgICBwbGF0Zm9ybUNvbnRl
eHQuc2F2ZSgpOwogCiAgICAgLy8gU2V0IHRoZSBjb21wb3NpdGluZyBvcGVyYXRpb24uCi0gICAg
aWYgKGNvbXBvc2l0ZU9wZXJhdG9yID09IENvbXBvc2l0ZVNvdXJjZU92ZXIgJiYgYmxlbmRNb2Rl
ID09IEJsZW5kTW9kZTo6Tm9ybWFsICYmICFjYWlyb1N1cmZhY2VIYXNBbHBoYShzdXJmYWNlKSkK
KyAgICBpZiAob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpID09IENvbXBvc2l0ZVNvdXJjZU92
ZXIgJiYgb3B0aW9ucy5ibGVuZE1vZGUoKSA9PSBCbGVuZE1vZGU6Ok5vcm1hbCAmJiAhY2Fpcm9T
dXJmYWNlSGFzQWxwaGEoc3VyZmFjZSkpCiAgICAgICAgIENhaXJvOjpTdGF0ZTo6c2V0Q29tcG9z
aXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgQ29tcG9zaXRlQ29weSwgQmxlbmRNb2RlOjpO
b3JtYWwpOwogICAgIGVsc2UKLSAgICAgICAgQ2Fpcm86OlN0YXRlOjpzZXRDb21wb3NpdGVPcGVy
YXRpb24ocGxhdGZvcm1Db250ZXh0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlKTsKKyAg
ICAgICAgQ2Fpcm86OlN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRpb24ocGxhdGZvcm1Db250ZXh0
LCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogCiAg
ICAgRmxvYXRSZWN0IGRzdCA9IGRlc3RSZWN0OwotICAgIGlmIChvcmllbnRhdGlvbiAhPSBJbWFn
ZU9yaWVudGF0aW9uOjpOb25lKSB7CisgICAgaWYgKG9wdGlvbnMub3JpZW50YXRpb24oKSAhPSBJ
bWFnZU9yaWVudGF0aW9uOjpOb25lKSB7CiAgICAgICAgIC8vIEltYWdlT3JpZW50YXRpb24gZXhw
ZWN0cyB0aGUgb3JpZ2luIHRvIGJlIGF0ICgwLCAwKS4KICAgICAgICAgQ2Fpcm86OnRyYW5zbGF0
ZShwbGF0Zm9ybUNvbnRleHQsIGRzdC54KCksIGRzdC55KCkpOwogICAgICAgICBkc3Quc2V0TG9j
YXRpb24oRmxvYXRQb2ludCgpKTsKLSAgICAgICAgQ2Fpcm86OmNvbmNhdENUTShwbGF0Zm9ybUNv
bnRleHQsIG9yaWVudGF0aW9uLnRyYW5zZm9ybUZyb21EZWZhdWx0KGRzdC5zaXplKCkpKTsKLSAg
ICAgICAgaWYgKG9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpIHsKKyAgICAgICAgQ2Fp
cm86OmNvbmNhdENUTShwbGF0Zm9ybUNvbnRleHQsIG9wdGlvbnMub3JpZW50YXRpb24oKS50cmFu
c2Zvcm1Gcm9tRGVmYXVsdChkc3Quc2l6ZSgpKSk7CisgICAgICAgIGlmIChvcHRpb25zLm9yaWVu
dGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkgewogICAgICAgICAgICAgLy8gVGhlIGRlc3Rp
bmF0aW9uIHJlY3RhbmdsZSB3aWxsIGhhdmUgaXRzIHdpZHRoIGFuZCBoZWlnaHQgYWxyZWFkeSBy
ZXZlcnNlZCBmb3IgdGhlIG9yaWVudGF0aW9uIG9mCiAgICAgICAgICAgICAvLyB0aGUgaW1hZ2Us
IGFzIGl0IHdhcyBuZWVkZWQgZm9yIHBhZ2UgbGF5b3V0LCBzbyB3ZSBuZWVkIHRvIHJldmVyc2Ug
aXQgYmFjayBoZXJlLgogICAgICAgICAgICAgZHN0ID0gRmxvYXRSZWN0KGRzdC54KCksIGRzdC55
KCksIGRzdC5oZWlnaHQoKSwgZHN0LndpZHRoKCkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
ZHJhd1N1cmZhY2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNlLCBkc3QsIHNyY1JlY3QsIGltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHksIGdsb2JhbEFscGhhLCBzaGFkb3dTdGF0ZSk7CisgICAgZHJh
d1N1cmZhY2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNlLCBkc3QsIHNyY1JlY3QsIG9wdGlvbnMu
aW50ZXJwb2xhdGlvblF1YWxpdHkoKSwgZ2xvYmFsQWxwaGEsIHNoYWRvd1N0YXRlKTsKICAgICBw
bGF0Zm9ybUNvbnRleHQucmVzdG9yZSgpOwogfQogCi12b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3Jt
Q29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29u
dGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIHdoeSB0aGUgc2l6ZSBoYXMgdG8gYmUg
cGFzc2VkIGluIGFzIGFuIEludFJlY3QuCi0gICAgZHJhd1BhdHRlcm5Ub0NhaXJvQ29udGV4dChw
bGF0Zm9ybUNvbnRleHQuY3IoKSwgc3VyZmFjZSwgc2l6ZSwgdGlsZVJlY3QsIHBhdHRlcm5UcmFu
c2Zvcm0sIHBoYXNlLCB0b0NhaXJvT3BlcmF0b3IoY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9k
ZSksIGRlc3RSZWN0KTsKKyAgICBkcmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KHBsYXRmb3JtQ29u
dGV4dC5jcigpLCBzdXJmYWNlLCBzaXplLCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHRvQ2Fpcm9PcGVyYXRvcihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMu
YmxlbmRNb2RlKCkpLCBkZXN0UmVjdCk7CiB9CiAKIHZvaWQgZHJhd1N1cmZhY2UoUGxhdGZvcm1D
b250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIG9yaWdpbmFsU3JjUmVj
dCwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQg
Z2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25z
LmgKaW5kZXggMDg1ZTYxYTViM2M5YzdjOTcyMTZiM2M3YmNkNmQ3NjkyNThjYzg0Zi4uNTgzNGY0
MzBmMDVkZDE1ODM3MzhlMzFlNDMzZDI3MTQwYTZjZDJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKQEAg
LTEzOCw4ICsxMzgsOCBAQCB2b2lkIGNsZWFyUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNv
bnN0IEZsb2F0UmVjdCYpOwogCiB2b2lkIGRyYXdHbHlwaHMoUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
LCBjb25zdCBGaWxsU291cmNlJiwgY29uc3QgU3Ryb2tlU291cmNlJiwgY29uc3QgU2hhZG93U3Rh
dGUmLCBjb25zdCBGbG9hdFBvaW50JiwgY2Fpcm9fc2NhbGVkX2ZvbnRfdCosIGRvdWJsZSwgY29u
c3QgVmVjdG9yPGNhaXJvX2dseXBoX3Q+JiwgZmxvYXQsIFRleHREcmF3aW5nTW9kZUZsYWdzLCBm
bG9hdCwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgQ29sb3ImKTsKIAotdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjYWlyb19zdXJmYWNlX3QqLCBjb25zdCBGbG9h
dFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQsIGNvbnN0IFNoYWRv
d1N0YXRlJik7Ci12b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9f
c3VyZmFjZV90KiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlKTsKK3ZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29u
dGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmLCBmbG9hdCwgY29uc3QgU2hhZG93
U3RhdGUmKTsKK3ZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjYWlyb19z
dXJmYWNlX3QqLCBjb25zdCBJbnRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdTdXJmYWNlKFBs
YXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0LCBjb25zdCBTaGFk
b3dTdGF0ZSYpOwogCiB2b2lkIGRyYXdSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3Qg
RmxvYXRSZWN0JiwgZmxvYXQsIGNvbnN0IENvbG9yJiwgU3Ryb2tlU3R5bGUsIGNvbnN0IENvbG9y
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggMjNmNjUzZWJlMzc1MjFmYzcy
NWFkM2JhMTkyZTM1NDBiYWMxOWVlZC4uZDUwMzliOTcyMTE2NGQyMWRiZDJkOGE1ZDc4ZDAzM2Vk
MWI1ZGZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAtMTIwLDE5ICsxMjAs
MTkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKQogICAgIENhaXJvOjpkcmF3UmVjdCgqcGxhdGZvcm1D
b250ZXh0KCksIHJlY3QsIGJvcmRlclRoaWNrbmVzcywgc3RhdGUuZmlsbENvbG9yLCBzdGF0ZS5z
dHJva2VTdHlsZSwgc3RhdGUuc3Ryb2tlQ29sb3IpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxv
YXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5k
TW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwg
Y29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKG1faW1wbCkgewotICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwg
aW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9k
ZSwgb3JpZW50YXRpb24pOworICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwg
aW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwogICAgIGF1dG8mIHN0
YXRlID0gdGhpcy0+c3RhdGUoKTsKLSAgICBDYWlybzo6ZHJhd05hdGl2ZUltYWdlKCpwbGF0Zm9y
bUNvbnRleHQoKSwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVy
YXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOworICAgIENhaXJv
OjpkcmF3TmF0aXZlSW1hZ2UoKnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS5nZXQoKSwgZGVzdFJl
Y3QsIHNyY1JlY3QsIHsgb3B0aW9ucywgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB9
LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKIC8vIFRoaXMg
aXMgb25seSB1c2VkIHRvIGRyYXcgYm9yZGVycywgc28gd2Ugc2hvdWxkIG5vdCBkcmF3IHNoYWRv
d3MuCkBAIC02NjAsMTkgKzY2MCwxOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3RX
aXRoUm91bmRlZEhvbGUoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdAogICAgIENh
aXJvOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSgqcGxhdGZvcm1Db250ZXh0KCksIHJlY3QsIHJv
dW5kZWRIb2xlUmVjdCwgQ2Fpcm86OkZpbGxTb3VyY2Uoc3RhdGUpLCBDYWlybzo6U2hhZG93U3Rh
dGUoc3RhdGUpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdl
JiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxl
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1faW1wbCkg
ewotICAgICAgICBtX2ltcGwtPmRyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3NpdGVPcGVyYXRvciwgYmxl
bmRNb2RlKTsKKyAgICAgICAgbV9pbXBsLT5kcmF3UGF0dGVybihpbWFnZSwgZGVzdFJlY3QsIHRp
bGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwog
ICAgIGlmIChhdXRvIHN1cmZhY2UgPSBpbWFnZS5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgp
KQotICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4oKnBsYXRmb3JtQ29udGV4dCgpLCBzdXJmYWNl
LmdldCgpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGhhc2UsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUpOworICAgICAg
ICBDYWlybzo6ZHJhd1BhdHRlcm4oKnBsYXRmb3JtQ29udGV4dCgpLCBzdXJmYWNlLmdldCgpLCBJ
bnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9y
bSwgcGhhc2UsIG9wdGlvbnMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZv
cm1TaG91bGRBbnRpYWxpYXMoYm9vbCBlbmFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1w
bENhaXJvLmNwcAppbmRleCAwNGYyYTlmZjU0NjlhYTViYTI0ZDE0OTU2NTRiNjBmMGJjNDNkMmFi
Li44NTJhMjc2ZjdmYzY2MTZhOTkwNGFmZWViMGU5OTA5NzA4MDYyMzNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBs
Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKQEAgLTI3NiwxNyArMjc2LDE3IEBAIEltYWdlRHJh
d1Jlc3VsdCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdUaWxlZEltYWdlKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvCiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdUaWxl
ZEltYWdlSW1wbChncmFwaGljc0NvbnRleHQoKSwgaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2Us
IHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
TmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVP
cGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmll
bnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUm
IGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBVTlVT
RURfUEFSQU0oaW1hZ2VTaXplKTsKICAgICBhdXRvJiBzdGF0ZSA9IGdyYXBoaWNzQ29udGV4dCgp
LnN0YXRlKCk7Ci0gICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShtX3BsYXRmb3JtQ29udGV4dCwg
aW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRN
b2RlLCBvcmllbnRhdGlvbiwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgc3RhdGUu
YWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOworICAgIENhaXJvOjpkcmF3TmF0aXZl
SW1hZ2UobV9wbGF0Zm9ybUNvbnRleHQsIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwg
eyBvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5IH0sIHN0YXRlLmFscGhh
LCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHRJ
bXBsQ2Fpcm86OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBw
YXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1v
ZGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGlt
YWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKIHsKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UubmF0aXZlSW1hZ2VGb3JD
dXJyZW50RnJhbWUoKSkKLSAgICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKG1fcGxhdGZvcm1Db250
ZXh0LCBzdXJmYWNlLmdldCgpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxl
UmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1v
ZGUpOworICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4obV9wbGF0Zm9ybUNvbnRleHQsIHN1cmZh
Y2UuZ2V0KCksIEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
SW1wbENhaXJvOjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRo
aWNrbmVzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKaW5kZXggZjFiMDJkMzRh
YjJmZjI5YWRjZmI4NzQzYzg5NGMxZTQ2MDhiNjczYi4uMmY1MTlkNDU0NzdkNDM3OThiNzU5YTgx
NTM0NjJjOTgzNTM3Y2Q5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmgKQEAg
LTc0LDggKzc0LDggQEAgcHVibGljOgogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1h
Z2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFn
ZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9h
dFNpemUmLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92
ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYsIEltYWdlOjpU
aWxlUnVsZSwgSW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92
ZXJyaWRlOwotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwg
Y29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBG
bG9hdFNpemUmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlOjpOb3Jt
YWwpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdQ
YXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0
KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdMaW5lKGNv
bnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm8uY3BwCmluZGV4IGUwMWU2MGI5ZWVlN2JhMTgzOTdhNjNlZjRhMTc2NjdmZmRjNGE0NWEu
LjBmNzI2NTcwMjRlYmFjNzQwYjBlNzhmNzMyYWM5M2ZiMGRkYjdkMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm8uY3BwCkBAIC0zNDQsMjQgKzM0NCwyMyBAQCBCYWNraW5nU3RvcmVDb3B5IEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpCiAgICAgcmV0dXJuIERvbnRDb3B5QmFja2luZ1N0b3Jl
OwogfQogCi12b2lkIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEltYWdlQnVmZmVyOjpk
cmF3Q29uc3VtaW5nKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIEdy
YXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7Ci0gICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRleHQsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBvcCwgYmxlbmRNb2RlKTsKKyAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwg
ZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogfQogCi12b2lkIEltYWdlQnVmZmVyOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCYgZGVzdGluYXRpb25Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsCi0gICAgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCYgZGVzdGluYXRpb25Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsICBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0
aW9ucykKIHsKICAgICBCYWNraW5nU3RvcmVDb3B5IGNvcHlNb2RlID0gJmRlc3RpbmF0aW9uQ29u
dGV4dCA9PSAmY29udGV4dCgpID8gQ29weUJhY2tpbmdTdG9yZSA6IERvbnRDb3B5QmFja2luZ1N0
b3JlOwogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBjb3B5SW1hZ2UoY29weU1vZGUpOwotICAg
IGRlc3RpbmF0aW9uQ29udGV4dC5kcmF3SW1hZ2UoKmltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwg
SW1hZ2VQYWludGluZ09wdGlvbnMob3AsIGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlOjpTeW5jaHJv
bm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkpOworICAgIGRlc3RpbmF0aW9uQ29udGV4dC5k
cmF3SW1hZ2UoKmltYWdlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQg
SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5k
TW9kZSkKKyAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoUmVm
UHRyPEltYWdlPiBpbWFnZSA9IGNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSkpCi0gICAg
ICAgIGltYWdlLT5kcmF3UGF0dGVybihjb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wKTsKKyAgICAgICAgaW1hZ2UtPmRyYXdQYXR0
ZXJuKGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwg
c3BhY2luZywgb3B0aW9ucyk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXI6OnBsYXRmb3JtVHJhbnNm
b3JtQ29sb3JTcGFjZShjb25zdCBzdGQ6OmFycmF5PHVpbnQ4X3QsIDI1Nj4mIGxvb2tVcFRhYmxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vTmF0
aXZlSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9OYXRpdmVJbWFnZUNhaXJvLmNwcAppbmRleCA4MjNmZjBjN2Q3NmM4M2VhZWQ2M2VjOThmZjE0
ZjAyYTM0MGJmOWMyLi5kZTMwNGYzNWY2NTI5Y2Q2ZmQxNThlOWEwM2M5ZjEwYzNkNWJmYzI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJ
bWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9OYXRpdmVJbWFnZUNhaXJvLmNwcApAQCAtNTcsOSArNTcsOSBAQCBDb2xvciBuYXRpdmVJbWFn
ZVNpbmdsZVBpeGVsU29saWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiAgICAg
cmV0dXJuIGNvbG9yRnJvbVByZW11bHRpcGxpZWRBUkdCKCpwaXhlbCk7CiB9CiAKLXZvaWQgZHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEludFNpemUmIGltYWdlU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24pCit2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2Us
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBpbWFnZVNpemUsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIGNvbnRleHQuZHJhd05hdGl2ZUlt
YWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVyYXRv
ciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbik7CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2Uo
aW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogfQogCiB2b2lk
IGNsZWFyTmF0aXZlSW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHQzRENHLmNwcAppbmRleCA4N2M5OTA3OWJhMGZhMTQ1MzJlZjI1Mzc2YmEyNTAyNjhhYzA5
NWZiLi5jZDZiYjczMGU2MTYxOTE5M2VjZTYwYTk3ZWY4ODhkNzdlZmI2MTBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHQzRENHLmNwcApAQCAtNTM5LDcgKzUzOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnBhaW50VG9DYW52YXMoY29uc3QgdW5zaWduZWQgY2hhciogaW1hZ2VQaXhlbHMsIGNvbnN0IElu
CiAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKICAgICBjb250ZXh0LnRyYW5z
bGF0ZSgwLCAtaW1hZ2VTaXplLmhlaWdodCgpKTsKICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJw
b2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbk5vbmUpOwotICAgIGNvbnRleHQuZHJhd05hdGl2
ZUltYWdlKGNnSW1hZ2UsIGltYWdlU2l6ZSwgY2FudmFzUmVjdCwgRmxvYXRSZWN0KEZsb2F0UG9p
bnQoKSwgaW1hZ2VTaXplKSwgQ29tcG9zaXRlQ29weSk7CisgICAgY29udGV4dC5kcmF3TmF0aXZl
SW1hZ2UoY2dJbWFnZSwgaW1hZ2VTaXplLCBjYW52YXNSZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2lu
dCgpLCBpbWFnZVNpemUpLCB7IENvbXBvc2l0ZUNvcHkgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBlM2ZiMzg0ZGIzMjc5NDYyOTU5OGMyOWNi
YTUwNzMxNjM5MDE4OGI5Li5lZTI3MzhmNDIxMGM2OTJjMzViOTJhOGRlODlhZmRhMjcwYmQ4YjIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0yNzMsMTMgKzI3MywxMyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZp
Y2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1h
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGlt
YWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBpZiAobV9pbXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGlt
YWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBvcmllbnRh
dGlvbik7CisgICAgICAgIG1faW1wbC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUs
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMjg4LDcgKzI4OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwgY29uc3QKICNlbmRpZgogICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiBzdWJJbWFnZShpbWFnZSk7CiAKLSAgICBmbG9hdCBjdXJySGVp
Z2h0ID0gb3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSA/IENHSW1hZ2VHZXRXaWR0aChz
dWJJbWFnZS5nZXQoKSkgOiBDR0ltYWdlR2V0SGVpZ2h0KHN1YkltYWdlLmdldCgpKTsKKyAgICBm
bG9hdCBjdXJySGVpZ2h0ID0gb3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0
KCkgPyBDR0ltYWdlR2V0V2lkdGgoc3ViSW1hZ2UuZ2V0KCkpIDogQ0dJbWFnZUdldEhlaWdodChz
dWJJbWFnZS5nZXQoKSk7CiAgICAgaWYgKGN1cnJIZWlnaHQgPD0gc3JjUmVjdC55KCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMzU4LDE1ICszNTgsMTUgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25z
dAogICAgIGFkanVzdGVkRGVzdFJlY3QgPSByb3VuZFRvRGV2aWNlUGl4ZWxzKGFkanVzdGVkRGVz
dFJlY3QpOwogI2VuZGlmCiAKLSAgICBzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9wZXJhdGlvbihvcCwg
YmxlbmRNb2RlKTsKKyAgICBzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9wZXJhdGlvbihvcHRpb25zLmNv
bXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogCiAgICAgLy8gSW1hZ2VP
cmllbnRhdGlvbiBleHBlY3RzIHRoZSBvcmlnaW4gdG8gYmUgYXQgKDAsIDApCiAgICAgQ0dDb250
ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIGFkanVzdGVkRGVzdFJlY3QueCgpLCBhZGp1c3RlZERl
c3RSZWN0LnkoKSk7CiAgICAgYWRqdXN0ZWREZXN0UmVjdC5zZXRMb2NhdGlvbihGbG9hdFBvaW50
KCkpOwogCi0gICAgaWYgKG9yaWVudGF0aW9uICE9IEltYWdlT3JpZW50YXRpb246Ok5vbmUpIHsK
LSAgICAgICAgQ0dDb250ZXh0Q29uY2F0Q1RNKGNvbnRleHQsIG9yaWVudGF0aW9uLnRyYW5zZm9y
bUZyb21EZWZhdWx0KGFkanVzdGVkRGVzdFJlY3Quc2l6ZSgpKSk7Ci0gICAgICAgIGlmIChvcmll
bnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKSB7CisgICAgaWYgKG9wdGlvbnMub3JpZW50YXRp
b24oKSAhPSBJbWFnZU9yaWVudGF0aW9uOjpOb25lKSB7CisgICAgICAgIENHQ29udGV4dENvbmNh
dENUTShjb250ZXh0LCBvcHRpb25zLm9yaWVudGF0aW9uKCkudHJhbnNmb3JtRnJvbURlZmF1bHQo
YWRqdXN0ZWREZXN0UmVjdC5zaXplKCkpKTsKKyAgICAgICAgaWYgKG9wdGlvbnMub3JpZW50YXRp
b24oKS51c2VzV2lkdGhBc0hlaWdodCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgZGVzdGluYXRp
b24gcmVjdCB3aWxsIGhhdmUgaXQncyB3aWR0aCBhbmQgaGVpZ2h0IGFscmVhZHkgcmV2ZXJzZWQg
Zm9yIHRoZSBvcmllbnRhdGlvbiBvZgogICAgICAgICAgICAgLy8gdGhlIGltYWdlLCBhcyBpdCB3
YXMgbmVlZGVkIGZvciBwYWdlIGxheW91dCwgc28gd2UgbmVlZCB0byByZXZlcnNlIGl0IGJhY2sg
aGVyZS4KICAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3QgPSBGbG9hdFJlY3QoYWRqdXN0ZWRE
ZXN0UmVjdC54KCksIGFkanVzdGVkRGVzdFJlY3QueSgpLCBhZGp1c3RlZERlc3RSZWN0LmhlaWdo
dCgpLCBhZGp1c3RlZERlc3RSZWN0LndpZHRoKCkpOwpAQCAtNDA4LDEzICs0MDgsMTMgQEAgc3Rh
dGljIHZvaWQgcGF0dGVyblJlbGVhc2VDYWxsYmFjayh2b2lkKiBpbmZvKQogICAgIH0pOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBj
b25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUg
YmxlbmRNb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFwYXR0ZXJu
VHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9p
bXBsKSB7Ci0gICAgICAgIG1faW1wbC0+ZHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxl
UmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOwor
ICAgICAgICBtX2ltcGwtPmRyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0CiAg
ICAgQ0dDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogICAgIENHQ29udGV4
dENsaXBUb1JlY3QoY29udGV4dCwgZGVzdFJlY3QpOwogCi0gICAgc2V0UGxhdGZvcm1Db21wb3Np
dGVPcGVyYXRpb24ob3AsIGJsZW5kTW9kZSk7CisgICAgc2V0UGxhdGZvcm1Db21wb3NpdGVPcGVy
YXRpb24ob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsK
IAogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCBkZXN0UmVjdC54KCksIGRlc3RS
ZWN0LnkoKSArIGRlc3RSZWN0LmhlaWdodCgpKTsKICAgICBDR0NvbnRleHRTY2FsZUNUTShjb250
ZXh0LCAxLCAtMSk7CkBAIC00MzksMTEgKzQzOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
CiAgICAgZmxvYXQgaCA9IENHSW1hZ2VHZXRIZWlnaHQodGlsZUltYWdlLmdldCgpKTsKIAogICAg
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBzdWJJbWFnZTsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUgPSBpbWFnZS5vcmlnaW5hbFNpemUoKTsKLSNlbHNl
CiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLnNpemUoKTsKLSNlbmRpZgogICAgIGlm
ICh0aWxlUmVjdC5zaXplKCkgPT0gaW1hZ2VTaXplKQogICAgICAgICBzdWJJbWFnZSA9IHRpbGVJ
bWFnZTsKICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggZDM1ZmYwZWZmOTcxOTUwZWVkMWUzZmQw
MjZiY2RhOWVhZmEzNGU0Ni4uODM3Yjg3NzNmNmUzOWMyNzk1NDMzNjYyNzIwOTgwNGI2M2NlZmU5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDRy5jcHAKQEAgLTMzNCwxMSArMzM0LDExIEBAIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2
aW9yCiAgICAgcmV0dXJuIGltYWdlOwogfQogCi12b2lkIEltYWdlQnVmZmVyOjpkcmF3Q29uc3Vt
aW5nKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIEdyYXBoaWNzQ29u
dGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUp
Cit2b2lkIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4gaW1hZ2VCdWZmZXIsIEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFD
S0lOR19TVE9SRSkKICAgICBpZiAoIWltYWdlQnVmZmVyLT5tX2RhdGEuc3VyZmFjZSkgewotICAg
ICAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIG9w
LCBibGVuZE1vZGUpOworICAgICAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4dCwgZGVz
dFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApA
QCAtMzUxLDEzICszNTEsMTMgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyLCBHcmFwaGkKICAgICAKICAgICBG
bG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKICAgICBhZGp1c3RlZFNyY1JlY3Qu
c2NhbGUocmVzb2x1dGlvblNjYWxlKTsKLSAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2Uo
aW1hZ2UuZ2V0KCksIGJhY2tpbmdTdG9yZVNpemUsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3Qs
IG9wLCBibGVuZE1vZGUpOworICAgIGRlc3RDb250ZXh0LmRyYXdOYXRpdmVJbWFnZShpbWFnZS5n
ZXQoKSwgYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgb3B0aW9u
cyk7CiAjZWxzZQotICAgIGltYWdlQnVmZmVyLT5kcmF3KGRlc3RDb250ZXh0LCBkZXN0UmVjdCwg
c3JjUmVjdCwgb3AsIGJsZW5kTW9kZSk7CisgICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRl
eHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKICNlbmRpZgogfQogCi12b2lkIEltYWdl
QnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7
CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlOwogICAgIGlmICgmZGVzdENvbnRleHQg
PT0gJmNvbnRleHQoKSB8fCBkZXN0Q29udGV4dC5pc0FjY2VsZXJhdGVkQ29udGV4dCgpKQpAQCAt
MzY3LDEwICszNjcsMTAgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQm
IGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogCiAgICAgRmxvYXRSZWN0
IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CiAgICAgYWRqdXN0ZWRTcmNSZWN0LnNjYWxlKG1f
cmVzb2x1dGlvblNjYWxlKTsKLSAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2Uu
Z2V0KCksIG1fZGF0YS5iYWNraW5nU3RvcmVTaXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0
LCBvcCwgYmxlbmRNb2RlKTsKKyAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2Uu
Z2V0KCksIG1fZGF0YS5iYWNraW5nU3RvcmVTaXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0
LCBvcHRpb25zKTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBJbWFnZUJ1ZmZlcjo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9h
dFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewog
ICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OwogICAgIGFkanVzdGVkU3Jj
UmVjdC5zY2FsZShtX3Jlc29sdXRpb25TY2FsZSk7CkBAIC0zNzgsMTQgKzM3OCwxNCBAQCB2b2lk
IEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlcwogICAgIGlmICghY29udGV4dCgpLmlzQWNjZWxlcmF0ZWRDb250
ZXh0KCkpIHsKICAgICAgICAgaWYgKCZkZXN0Q29udGV4dCA9PSAmY29udGV4dCgpIHx8IGRlc3RD
b250ZXh0LmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkpIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8
SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSkpIC8vIERyYXdpbmcgaW50
byBvdXIgb3duIGJ1ZmZlciwgbmVlZCB0byBkZWVwIGNvcHkuCi0gICAgICAgICAgICAgICAgY29w
eS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKKyAgICAgICAg
ICAgICAgICBjb3B5LT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVk
U3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKFJlZlB0cjxJbWFnZT4gaW1hZ2VGb3JSZW5k
ZXJpbmcgPSBjb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpKQotICAgICAgICAgICAgICAg
IGltYWdlRm9yUmVuZGVyaW5nLT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFk
anVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVu
ZE1vZGUpOworICAgICAgICAgICAgICAgIGltYWdlRm9yUmVuZGVyaW5nLT5kcmF3UGF0dGVybihk
ZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwg
cGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgaWYgKFJlZlB0cjxJbWFnZT4gY29weSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3JlKSkK
LSAgICAgICAgICAgIGNvcHktPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRq
dXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJsZW5k
TW9kZSk7CisgICAgICAgICAgICBjb3B5LT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJl
Y3QsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9w
dGlvbnMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9OYXRpdmVJbWFnZUNHLmNwcAppbmRleCBmMDJkNWQ1NjYwYTZjOGExMTFkNWJj
ODIxMGY2ZDVkOWZlYWQzYmQ4Li44Mjk0MTE2NjFlOTg3MDYwZTAzYjNmMDNlMGU2ZGJjMWU3ZDIw
NDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9OYXRp
dmVJbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9O
YXRpdmVJbWFnZUNHLmNwcApAQCAtNjksNyArNjksNyBAQCBDb2xvciBuYXRpdmVJbWFnZVNpbmds
ZVBpeGVsU29saWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UpCiAgICAgcmV0dXJu
IENvbG9yKHBpeGVsWzBdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzFdICogMjU1IC8gcGl4ZWxb
M10sIHBpeGVsWzJdICogMjU1IC8gcGl4ZWxbM10sIHBpeGVsWzNdKTsKIH0KIAotdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5k
TW9kZSBtb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQordm9pZCBkcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgLy8gU3Vic2FtcGxpbmcgbWF5IGhhdmUgZ2l2ZW4gdXMgYW4gaW1hZ2UgdGhh
dCBpcyBzbWFsbGVyIHRoYW4gc2l6ZSgpLgogICAgIEludFNpemUgc3Vic2FtcGxlZEltYWdlU2l6
ZSA9IG5hdGl2ZUltYWdlU2l6ZShpbWFnZSk7CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgZHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zCiAgICAgaWYgKHN1YnNhbXBsZWRJbWFnZVNpemUgIT0gc3JjU2l6ZSkKICAg
ICAgICAgYWRqdXN0ZWRTcmNSZWN0ID0gbWFwUmVjdChzcmNSZWN0LCBGbG9hdFJlY3QoeyB9LCBz
cmNTaXplKSwgRmxvYXRSZWN0KHsgfSwgc3Vic2FtcGxlZEltYWdlU2l6ZSkpOwogCi0gICAgY29u
dGV4dC5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0
LCBhZGp1c3RlZFNyY1JlY3QsIG9wLCBtb2RlLCBvcmllbnRhdGlvbik7CisgICAgY29udGV4dC5k
cmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHN1YnNhbXBsZWRJbWFnZVNpemUsIGRlc3RSZWN0LCBhZGp1
c3RlZFNyY1JlY3QsIG9wdGlvbnMpOwogfQogCiB2b2lkIGNsZWFyTmF0aXZlSW1hZ2VTdWJpbWFn
ZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcAppbmRleCAzZDQz
Y2ZiNDExMWU3YjhiZjFkZmIxYjBlNzgzMzJmNjZhMmIxNDk2Li44MGY2YjE4NzI1MjI5NjhlYTdk
OTU3NmI3ZTAwNTYzMzMyNTg4MjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcApAQCAtNjYsNyArNjYsNyBA
QCBTdHJpbmcgUERGRG9jdW1lbnRJbWFnZTo6ZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdAogICAg
IHJldHVybiAicGRmIjsKIH0KIAotRmxvYXRTaXplIFBERkRvY3VtZW50SW1hZ2U6OnNpemUoKSBj
b25zdAorRmxvYXRTaXplIFBERkRvY3VtZW50SW1hZ2U6OnNpemUoSW1hZ2VPcmllbnRhdGlvbikg
Y29uc3QKIHsKICAgICBGbG9hdFNpemUgZXhwYW5kZWRDcm9wQm94U2l6ZSA9IEZsb2F0U2l6ZShl
eHBhbmRlZEludFNpemUobV9jcm9wQm94LnNpemUoKSkpOwogCkBAIC0yNTcsNyArMjU3LDcgQEAg
dm9pZCBQREZEb2N1bWVudEltYWdlOjp1cGRhdGVDYWNoZWRJbWFnZUlmTmVlZGVkKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QKICAgICBkZWNvZGVkU2l6ZUNoYW5nZWQoaW50ZXJuYWxT
aXplLnVuY2xhbXBlZEFyZWEoKSAqIDQpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgUERGRG9jdW1l
bnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwg
QmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1
bHQgUERGRG9jdW1lbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1f
aGFzUGFnZSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKQEAg
LTI2Niw3ICsyNjYsNyBAQCBJbWFnZURyYXdSZXN1bHQgUERGRG9jdW1lbnRJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdAogCiAgICAgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Ci0gICAgICAg
IGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKG9wKTsKKyAgICAgICAgY29udGV4dC5zZXRD
b21wb3NpdGVPcGVyYXRpb24ob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKIAogICAgICAg
ICBpZiAobV9jYWNoZWRJbWFnZUJ1ZmZlcikgewogICAgICAgICAgICAgLy8gRHJhdyB0aGUgSW1h
Z2VCdWZmZXIgJ21fY2FjaGVkSW1hZ2VCdWZmZXInIHRvIHRoZSByZWN0YW5nbGUgJ21fY2FjaGVk
SW1hZ2VSZWN0JwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5oCmluZGV4IDliZjE2N2M0NTU0MjAxNjBiOGIwZjg5NzNhN2Qx
Nzk1NGY2NjE3NTUuLmVkOWQxNmQyODVhMTMyZjY3MGZmMDg0Y2UxMzAwN2YzZDQ1NGY1OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1
bWVudEltYWdlLmgKQEAgLTc2LDkgKzc2LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lE
ZWNvZGVkRGF0YShib29sIC8qZGVzdHJveUFsbCovID0gdHJ1ZSkgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExl
bmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBvdmVycmlk
ZTsKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIEZsb2F0U2l6ZSBz
aXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikg
b3ZlcnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoaXMgdG8gYmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAgICAgYm9vbCBjdXJyZW50RnJh
bWVLbm93blRvQmVPcGFxdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IGI3MTNlODVlZmM0ODZhZTFhZTFl
MGQ3MzAzNjFkOWE1NGIyOGM4ODcuLmQzOWI2NjJhNGFhOGFiNjQ2YjMzMTcwMTAyZGI2ZmM4Y2Q4
MmExNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTQ4Nyw3ICs0
ODcsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29u
c3QgRHJhd1RpbGVkU2NhbGVkSW1hZ2UmIGl0ZW0pCiB9CiAKICNpZiBVU0UoQ0cpIHx8IFVTRShD
QUlSTykgfHwgVVNFKERJUkVDVDJEKQotRHJhd05hdGl2ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKK0RyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2
ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd05h
dGl2ZUltYWdlKQogI2lmIFVTRShDRykKICAgICAvLyBGSVhNRTogTmVlZCB0byBzdG9yZSBhbiBp
bWFnZSBmb3IgQ2Fpcm8uCkBAIC00OTYsMjMgKzQ5NiwxNyBAQCBEcmF3TmF0aXZlSW1hZ2U6OkRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaQogICAgICwgbV9pbWFnZVNpemUoaW1hZ2VTaXplKQogICAgICwgbV9kZXN0aW5hdGlvbihk
ZXN0UmVjdCkKICAgICAsIG1fc3JjUmVjdChzcmNSZWN0KQotI2lmIFVTRShDRykKLSAgICAsIG1f
b3Aob3ApCi0gICAgLCBtX2JsZW5kTW9kZShibGVuZE1vZGUpCi0jZW5kaWYKLSAgICAsIG1fb3Jp
ZW50YXRpb24ob3JpZW50YXRpb24pCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKIHsKICNpZiAh
VVNFKENHKQogICAgIFVOVVNFRF9QQVJBTShpbWFnZSk7Ci0gICAgVU5VU0VEX1BBUkFNKG9wKTsK
LSAgICBVTlVTRURfUEFSQU0oYmxlbmRNb2RlKTsKICNlbmRpZgogfQogCiB2b2lkIERyYXdOYXRp
dmVJbWFnZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewogI2lmIFVT
RShDRykKLSAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZShtX2ltYWdlLCBtX2ltYWdlU2l6ZSwg
bV9kZXN0aW5hdGlvbiwgbV9zcmNSZWN0LCBtX29wLCBtX2JsZW5kTW9kZSwgbV9vcmllbnRhdGlv
bik7CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobV9pbWFnZSwgbV9pbWFnZVNpemUsIG1f
ZGVzdGluYXRpb24sIG1fc3JjUmVjdCwgbV9vcHRpb25zKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKGNvbnRleHQpOwogI2VuZGlmCkBAIC01MjgsNyArNTIyLDcgQEAgc3RhdGljIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdOYXRpdmVJbWFnZSYgaXRl
bSkKIH0KICNlbmRpZgogCi1EcmF3UGF0dGVybjo6RHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBo
YXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlKQorRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKICAgICA6IERyYXdpbmdJdGVtKEl0ZW1UeXBlOjpEcmF3UGF0dGVybikKICAg
ICAsIG1faW1hZ2UoaW1hZ2UpCiAgICAgLCBtX3BhdHRlcm5UcmFuc2Zvcm0ocGF0dGVyblRyYW5z
Zm9ybSkKQEAgLTUzNiwxNCArNTMwLDEzIEBAIERyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihJbWFn
ZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjCiAgICAg
LCBtX2Rlc3RpbmF0aW9uKGRlc3RSZWN0KQogICAgICwgbV9waGFzZShwaGFzZSkKICAgICAsIG1f
c3BhY2luZyhzcGFjaW5nKQotICAgICwgbV9vcChvcCkKLSAgICAsIG1fYmxlbmRNb2RlKGJsZW5k
TW9kZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogewogfQogCiB2b2lkIERyYXdQYXR0ZXJu
OjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7Ci0gICAgY29udGV4dC5k
cmF3UGF0dGVybihtX2ltYWdlLmdldCgpLCBtX2Rlc3RpbmF0aW9uLCBtX3RpbGVSZWN0LCBtX3Bh
dHRlcm5UcmFuc2Zvcm0sIG1fcGhhc2UsIG1fc3BhY2luZywgbV9vcCwgbV9ibGVuZE1vZGUpOwor
ICAgIGNvbnRleHQuZHJhd1BhdHRlcm4obV9pbWFnZS5nZXQoKSwgbV9kZXN0aW5hdGlvbiwgbV90
aWxlUmVjdCwgbV9wYXR0ZXJuVHJhbnNmb3JtLCBtX3BoYXNlLCBtX3NwYWNpbmcsIG1fb3B0aW9u
cyk7CiB9CiAKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBEcmF3UGF0dGVybiYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmlu
ZGV4IDhiY2NlMTliMjRlMWZmNWY2NWI2YmY0OGM5NDE3MGM5YjdlMDFmYjguLmNmM2NmOTI5MzBj
NDZkYmU2YzcyOTdhNWE5MWNlMjUxMjVjYmE3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuaApAQCAtNjQxLDE2ICs2NDEsMTYgQEAgcHJpdmF0ZToKICNpZiBVU0UoQ0cpIHx8IFVT
RShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogY2xhc3MgRHJhd05hdGl2ZUltYWdlIDogcHVibGlj
IERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERyYXdOYXRpdmVJbWFnZT4g
Y3JlYXRlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50
YXRpb24gb3JpZW50YXRpb24pCisgICAgc3RhdGljIFJlZjxEcmF3TmF0aXZlSW1hZ2U+IGNyZWF0
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0
LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbikpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wdGlvbnMpKTsKICAgICB9CiAKICAgICBGbG9hdFJlY3Qgc291cmNlKCkgY29u
c3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9CiAgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvbjsgfQogCiBwcml2YXRlOgotICAgIERyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbik7CisgICAgRHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRl
eHQmKSBjb25zdCBvdmVycmlkZTsKIApAQCAtNjYyLDE5ICs2NjIsMTUgQEAgcHJpdmF0ZToKICAg
ICBGbG9hdFNpemUgbV9pbWFnZVNpemU7CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb247CiAg
ICAgRmxvYXRSZWN0IG1fc3JjUmVjdDsKLSNpZiBVU0UoQ0cpCi0gICAgQ29tcG9zaXRlT3BlcmF0
b3IgbV9vcDsKLSAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGU7Ci0jZW5kaWYKLSAgICBJbWFnZU9y
aWVudGF0aW9uIG1fb3JpZW50YXRpb247CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgbV9vcHRp
b25zOwogfTsKICNlbmRpZgogCiBjbGFzcyBEcmF3UGF0dGVybiA6IHB1YmxpYyBEcmF3aW5nSXRl
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEcmF3UGF0dGVybj4gY3JlYXRlKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBv
cCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBzdGF0aWMgUmVmPERyYXdQYXR0ZXJuPiBjcmVh
dGUoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRy
YW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRHJhd1BhdHRlcm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0
dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpKTsKICAgICB9CiAKICAgICBj
b25zdCBJbWFnZSYgaW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CkBAIC02
ODUsNyArNjgxLDcgQEAgcHVibGljOgogICAgIEZsb2F0U2l6ZSBzcGFjaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9zcGFjaW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgRHJhd1BhdHRlcm4oSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5v
cm1hbCk7CisgICAgRHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAKICAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4
dCYpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC02OTcsOCArNjkzLDcgQEAgcHJpdmF0ZToKICAgICBG
bG9hdFJlY3QgbV9kZXN0aW5hdGlvbjsKICAgICBGbG9hdFBvaW50IG1fcGhhc2U7CiAgICAgRmxv
YXRTaXplIG1fc3BhY2luZzsKLSAgICBDb21wb3NpdGVPcGVyYXRvciBtX29wOwotICAgIEJsZW5k
TW9kZSBtX2JsZW5kTW9kZTsKKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX29wdGlvbnM7CiB9
OwogCiAvLyBJcyBEcmF3aW5nSXRlbSBiZWNhdXNlIHRoZSBzaXplIG9mIHRoZSB0cmFuc3BhcmVu
Y3kgbGF5ZXIgaXMgaW1wbGljaXRseSB0aGUgY2xpcCBib3VuZHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggZTc5N2E3ZmQ0Mjg3MThkMzk3MDgwMjU0YTJm
ZmQ2MTYyM2NhNjU0ZS4uZTIwZjNlZDEzY2I2ZTU1Zjc4MmU4YzlhZGMxMzA4NzJkZTZlZjEzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMTI3LDE2ICsx
MjcsMTYgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlY29yZGVyOjpkcmF3VGlsZWRJbWFnZShJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXQKIH0KIAogI2lmIFVTRShDRykgfHwgVVNF
KENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi12b2lkIFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKK3ZvaWQgUmVjb3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNh
c3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0oRHJhd05hdGl2ZUltYWdlOjpjcmVhdGUoaW1hZ2Us
IGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIG9yaWVudGF0aW9u
KSkpOworICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFw
cGVuZEl0ZW0oRHJhd05hdGl2ZUltYWdlOjpjcmVhdGUoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJl
Y3QsIHNyY1JlY3QsIG9wdGlvbnMpKSk7CiAgICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsK
IH0KICNlbmRpZgogCi12b2lkIFJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5k
TW9kZSBibGVuZE1vZGUpCit2b2lkIFJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3
aW5nSXRlbT4oYXBwZW5kSXRlbShEcmF3UGF0dGVybjo6Y3JlYXRlKGltYWdlLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2Rl
KSkpOworICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0gZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFw
cGVuZEl0ZW0oRHJhd1BhdHRlcm46OmNyZWF0ZShpbWFnZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucykpKTsKICAgICB1cGRhdGVJ
dGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaAppbmRleCAzMTc5OGMxYjJkNDc0Mzc0OThmYzMxNWFjMTYzZDM1ZTQ2NzUzN2YwLi41MTZk
NGRmOGM3ZmQ5ZWI1ZjI5OTc1NjU4ZGQ3NjNkMTgwMGMzY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTkyLDkgKzkyLDkgQEAgcHJpdmF0ZToKICAgICBJbWFn
ZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNp
emUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29u
c3QgRmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1h
Z2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi0gICAgdm9pZCBk
cmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNl
bGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24pIG92ZXJy
aWRlOworICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29u
c3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9h
dFJlY3QmLCBmbG9hdCBib3JkZXJUaGlja25lc3MpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xp
bmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3Bw
CmluZGV4IGJlZjNhZDkwNzFlZThjNDUwZDkxZjliZjk4MjQ4NTU1ODBlMWY0MTcuLmU0ZDcyOTU3
YjBjZGU4N2YxN2ZmOTcyZmNiNzE5N2M5NTlmMzMwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcApAQCAtNzAsNyArNzAs
NyBAQCB2b2lkIEZFQmxlbmQ6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIsIGRy
YXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAg
ZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVnaW9u
T2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2ludCgp
LCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIEltYWdlUGFpbnRpbmdPcHRpb25zKENvbXBv
c2l0ZVNvdXJjZU92ZXIsIG1fbW9kZSkpOworICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVm
ZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQ
YWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXpl
KCkpLCB7IENvbXBvc2l0ZVNvdXJjZU92ZXIsIG1fbW9kZSB9KTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9z
aXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuY3BwCmluZGV4IDUzMjNiZWRhYTU3MGE0YjIxMjQxNjhjNDY1YjQ5NTFjMDQxZjQzOWEu
LmQ1NmRiNDBjMDQ5NGRiMTczZjAwMTc0NGI1YzFiYzRkMmMxYTVhMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUu
Y3BwCkBAIC0yNzAsOCArMjcwLDggQEAgdm9pZCBGRUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNv
ZnR3YXJlKCkKICAgICAgICAgSW50UmVjdCBhZGp1c3RlZERlc3RpbmF0aW9uUmVjdCA9IGRlc3Rp
bmF0aW9uUmVjdCAtIGFic29sdXRlUGFpbnRSZWN0KCkubG9jYXRpb24oKTsKICAgICAgICAgSW50
UmVjdCBzb3VyY2VSZWN0ID0gZGVzdGluYXRpb25SZWN0IC0gaW4tPmFic29sdXRlUGFpbnRSZWN0
KCkubG9jYXRpb24oKTsKICAgICAgICAgSW50UmVjdCBzb3VyY2UyUmVjdCA9IGRlc3RpbmF0aW9u
UmVjdCAtIGluMi0+YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigpOwotICAgICAgICBmaWx0
ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIyLCBhZGp1c3RlZERlc3RpbmF0
aW9uUmVjdCwgc291cmNlMlJlY3QpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1
ZmZlcigqaW1hZ2VCdWZmZXIsIGFkanVzdGVkRGVzdGluYXRpb25SZWN0LCBzb3VyY2VSZWN0LCBD
b21wb3NpdGVTb3VyY2VJbik7CisgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVy
KCppbWFnZUJ1ZmZlcjIsIEZsb2F0UmVjdChhZGp1c3RlZERlc3RpbmF0aW9uUmVjdCksIEZsb2F0
UmVjdChzb3VyY2UyUmVjdCkpOworICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZl
cigqaW1hZ2VCdWZmZXIsIEZsb2F0UmVjdChhZGp1c3RlZERlc3RpbmF0aW9uUmVjdCksIEZsb2F0
UmVjdChzb3VyY2VSZWN0KSwgeyBDb21wb3NpdGVTb3VyY2VJbiB9KTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1JfT1VUOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IDM1ZDZh
ZTk4OTY3NzgwZGE5MWIzYzUwNjBkZGI2MmU0ODczYWVkMDIuLjU4MWNhMjZmMDBmMDU2NGVhY2E2
OTVmM2M1YTQ4OWFhNzFiZjlhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTg4NSwxNSArODg1LDExIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hCiAgICAgaWYgKCFHU1RfSVNfU0FNUExFKG1fc2FtcGxlLmdldCgpKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFpbnRpbmdPcHRp
b25zKENvbXBvc2l0ZUNvcHkpOwotICAgIGlmIChtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQp
Ci0gICAgICAgIHBhaW50aW5nT3B0aW9ucy5tX29yaWVudGF0aW9uID0gbV92aWRlb1NvdXJjZU9y
aWVudGF0aW9uOwotCiAgICAgYXV0byBnc3RJbWFnZSA9IEltYWdlR1N0cmVhbWVyOjpjcmVhdGVJ
bWFnZShtX3NhbXBsZS5nZXQoKSk7CiAgICAgaWYgKCFnc3RJbWFnZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgY29udGV4dC5kcmF3SW1hZ2UoZ3N0SW1hZ2UtPmltYWdlKCksIHJlY3QsIGdzdElt
YWdlLT5yZWN0KCksIHBhaW50aW5nT3B0aW9ucyk7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoZ3N0
SW1hZ2UtPmltYWdlKCksIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIHsgQ29tcG9zaXRlQ29weSwg
bV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkID8gbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uIDog
SW1hZ2VPcmllbnRhdGlvbigpIH0pOwogfQogCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmlj
b3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAK
aW5kZXggNTBlMGMzYzdkOTc2ODI2YmE3YmI4MTg1ZDFlZTE0MjEyOWFkYTAyYy4uMWQyYWY2OWZk
NmZhNzgzZjBmYzE2NjFhODY4MGMyYjEwNjhjMTZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25S
ZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAKQEAgLTU0OSwxNCArNTQ5
LDE0IEBAIEltYWdlRHJhd1Jlc3VsdCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3VGlsZWRJ
bWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0CiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4
dEltcGw6OmRyYXdUaWxlZEltYWdlSW1wbChncmFwaGljc0NvbnRleHQoKSwgaW1hZ2UsIGRlc3Rp
bmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBpbWFnZVBhaW50
aW5nT3B0aW9ucyk7CiB9CiAKLXZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIENhaXJvT3BlcmF0aW9uUmVj
b3JkZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0
IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQog
ewotICAgIHN0cnVjdCBEcmF3TmF0aXZlSW1hZ2UgZmluYWwgOiBQYWludGluZ09wZXJhdGlvbiwg
T3BlcmF0aW9uRGF0YTxSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiwgRmxvYXRSZWN0LCBGbG9hdFJl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24sIEludGVy
cG9sYXRpb25RdWFsaXR5LCBmbG9hdCwgQ2Fpcm86OlNoYWRvd1N0YXRlPiB7CisgICAgc3RydWN0
IERyYXdOYXRpdmVJbWFnZSBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRh
PFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+LCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgSW1hZ2VQYWlu
dGluZ09wdGlvbnMsIGZsb2F0LCBDYWlybzo6U2hhZG93U3RhdGU+IHsKICAgICAgICAgdmlydHVh
bCB+RHJhd05hdGl2ZUltYWdlKCkgPSBkZWZhdWx0OwogCiAgICAgICAgIHZvaWQgZXhlY3V0ZShQ
YWludGluZ09wZXJhdGlvblJlcGxheSYgcmVwbGF5ZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29udGV4dEZvclJlcGxheShyZXBsYXll
ciksIGFyZzwwPigpLmdldCgpLCBhcmc8MT4oKSwgYXJnPDI+KCksIGFyZzwzPigpLCBhcmc8ND4o
KSwgYXJnPDU+KCksIGFyZzw2PigpLCBhcmc8Nz4oKSwgYXJnPDg+KCkpOworICAgICAgICAgICAg
Q2Fpcm86OmRyYXdOYXRpdmVJbWFnZShjb250ZXh0Rm9yUmVwbGF5KHJlcGxheWVyKSwgYXJnPDA+
KCkuZ2V0KCksIGFyZzwxPigpLCBhcmc8Mj4oKSwgYXJnPDM+KCksIGFyZzw0PigpLCBhcmc8NT4o
KSk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMpIG92ZXJy
aWRlCkBAIC01NjcsMTcgKzU2NywxNyBAQCB2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0CiAKICAgICBV
TlVTRURfUEFSQU0oaW1hZ2VTaXplKTsKICAgICBhdXRvJiBzdGF0ZSA9IGdyYXBoaWNzQ29udGV4
dCgpLnN0YXRlKCk7Ci0gICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd05hdGl2ZUltYWdlPihS
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PihpbWFnZS5nZXQoKSksIGRlc3RSZWN0LCBzcmNSZWN0LCBj
b21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgc3RhdGUuaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkp
KTsKKyAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3TmF0aXZlSW1hZ2U+KFJlZlB0cjxjYWly
b19zdXJmYWNlX3Q+KGltYWdlLmdldCgpKSwgZGVzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRp
bmdPcHRpb25zKG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkpLCBzdGF0
ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSkpOwogfQogCi12b2lkIENhaXJvT3Bl
cmF0aW9uUmVjb3JkZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxv
YXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1BhdHRl
cm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIHN0cnVjdCBEcmF3UGF0dGVybiBm
aW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+LCBJbnRTaXplLCBGbG9hdFJlY3QsIEZsb2F0UmVjdCwgQWZmaW5lVHJhbnNmb3JtLCBG
bG9hdFBvaW50LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlPiB7CisgICAgc3RydWN0IERy
YXdQYXR0ZXJuIGZpbmFsIDogUGFpbnRpbmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4sIEludFNpemUsIEZsb2F0UmVjdCwgRmxvYXRSZWN0LCBBZmZpbmVU
cmFuc2Zvcm0sIEZsb2F0UG9pbnQsIEltYWdlUGFpbnRpbmdPcHRpb25zPiB7CiAgICAgICAgIHZp
cnR1YWwgfkRyYXdQYXR0ZXJuKCkgPSBkZWZhdWx0OwogCiAgICAgICAgIHZvaWQgZXhlY3V0ZShQ
YWludGluZ09wZXJhdGlvblJlcGxheSYgcmVwbGF5ZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIENhaXJvOjpkcmF3UGF0dGVybihjb250ZXh0Rm9yUmVwbGF5KHJlcGxheWVyKSwg
YXJnPDA+KCkuZ2V0KCksIGFyZzwxPigpLCBhcmc8Mj4oKSwgYXJnPDM+KCksIGFyZzw0PigpLCBh
cmc8NT4oKSwgYXJnPDY+KCksIGFyZzw3PigpKTsKKyAgICAgICAgICAgIENhaXJvOjpkcmF3UGF0
dGVybihjb250ZXh0Rm9yUmVwbGF5KHJlcGxheWVyKSwgYXJnPDA+KCkuZ2V0KCksIGFyZzwxPigp
LCBhcmc8Mj4oKSwgYXJnPDM+KCksIGFyZzw0PigpLCBhcmc8NT4oKSwgYXJnPDY+KCkpOwogICAg
ICAgICB9CiAKICAgICAgICAgdm9pZCBkdW1wKFRleHRTdHJlYW0mIHRzKSBvdmVycmlkZQpAQCAt
NTg4LDcgKzU4OCw3IEBAIHZvaWQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRlcjo6ZHJhd1BhdHRlcm4o
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0CiAKICAgICBVTlVTRURfUEFS
QU0oc3BhY2luZyk7CiAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IGltYWdlLm5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkpCi0gICAgICAgIGFwcGVuZChjcmVhdGVDb21tYW5kPERyYXdQYXR0ZXJu
PihXVEZNb3ZlKHN1cmZhY2UpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0aWxl
UmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1v
ZGUpKTsKKyAgICAgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd1BhdHRlcm4+KFdURk1vdmUo
c3VyZmFjZSksIEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucykpOwogfQogCiB2b2lkIENhaXJvT3BlcmF0aW9u
UmVjb3JkZXI6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgYm9yZGVyVGhp
Y2tuZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25S
ZWNvcmRlci5oCmluZGV4IGRiZDY3MjMxNDg0ZjkxODcyMWNjMGJmZGQ4NjM4NWU3ZmU1Yjg5Zjku
LjgyNjBjNDhhZDc5ODY4NGM2ZTU3YzFkNjZkZmJlNmQwMTAxYzFmNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJv
T3BlcmF0aW9uUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKQEAgLTY3LDgg
KzY3LDggQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdl
KFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVy
cmlkZTsKICAgICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoV2ViQ29y
ZTo6SW1hZ2UmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAg
ICBXZWJDb3JlOjpJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoV2ViQ29yZTo6SW1hZ2Um
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBXZWJDb3JlOjpJbWFnZTo6VGlsZVJ1bGUsIFdlYkNv
cmU6OkltYWdlOjpUaWxlUnVsZSwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnMm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRp
dmVJbWFnZVB0ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9w
ZXJhdG9yLCBXZWJDb3JlOjpCbGVuZE1vZGUsIFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb24pIG92
ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6SW1hZ2UmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3IsIFdlYkNvcmU6OkJs
ZW5kTW9kZSA9IFdlYkNvcmU6OkJsZW5kTW9kZTo6Tm9ybWFsKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRyYXdOYXRpdmVJbWFnZShjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBkcmF3UGF0dGVybihXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OkFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBm
bG9hdCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TGluZShjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRp
b25zLmNwcAppbmRleCAyNjYxOGU3ZjM1ZjZkNjJmN2I3ZGUxZjZiZjZhMmY2NGM3OTZlNGNmLi5j
YzlmOWQxMjI3ZmI1YTVhNjZmNzM2YWNiMjZmNGU4MzdkZjUzMjVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRp
b25zLmNwcApAQCAtNzUwLDcgKzc1MCw3IEBAIHZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRl
eHREaXJlY3QyRCYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGaWxsU291cmNlJiBmaWxsCiB9CiAK
IAotdm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3Jt
Q29udGV4dCwgSVdJQ0JpdG1hcCogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgb3JpZ2luYWxJbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGlt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dT
dGF0ZSYgc2hhZG93U3RhdGUpCit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRE
aXJlY3QyRCYgcGxhdGZvcm1Db250ZXh0LCBJV0lDQml0bWFwKiBpbWFnZSwgY29uc3QgRmxvYXRT
aXplJiBvcmlnaW5hbEltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywg
ZmxvYXQgZ2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKICAg
ICBhdXRvIG5hdGl2ZUltYWdlU2l6ZSA9IGJpdG1hcFNpemUoaW1hZ2UpOwogICAgIENPTVB0cjxJ
RDJEMUJpdG1hcD4gZGV2aWNlQml0bWFwOwpAQCAtNzU5LDEwICs3NTksMTAgQEAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgSVdJ
Q0JpdG1hcCogaW1hZ2UKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBpbWFnZVNpemUgPSBi
aXRtYXBTaXplKGRldmljZUJpdG1hcC5nZXQoKSk7Ci0gICAgZHJhd05hdGl2ZUltYWdlKHBsYXRm
b3JtQ29udGV4dCwgZGV2aWNlQml0bWFwLmdldCgpLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSwgZ2xvYmFsQWxwaGEsIHNoYWRvd1N0YXRlKTsKKyAgICBkcmF3TmF0
aXZlSW1hZ2UocGxhdGZvcm1Db250ZXh0LCBkZXZpY2VCaXRtYXAuZ2V0KCksIGltYWdlU2l6ZSwg
ZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMsIGdsb2JhbEFscGhhLCBzaGFkb3dTdGF0ZSk7CiB9
CiAKLXZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9y
bUNvbnRleHQsIElEMkQxQml0bWFwKiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIElt
YWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYg
c2hhZG93U3RhdGUpCit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHREaXJlY3Qy
RCYgcGxhdGZvcm1Db250ZXh0LCBJRDJEMUJpdG1hcCogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYg
aW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zLCBmbG9hdCBnbG9iYWxB
bHBoYSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQogewogICAgIGF1dG8gYml0bWFw
U2l6ZSA9IGltYWdlLT5HZXRTaXplKCk7CiAKQEAgLTc5NCwxNiArNzk0LDE2IEBAIHZvaWQgZHJh
d05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9ybUNvbnRleHQsIElE
MkQxQml0bWFwKiBpbWFnCiAgICAgaWYgKCFzaG91bGRVc2VTdWJpbWFnZSAmJiBjdXJySGVpZ2h0
IDwgaW1hZ2VTaXplLmhlaWdodCgpKQogICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNldEhlaWdo
dChhZGp1c3RlZERlc3RSZWN0LmhlaWdodCgpICogY3VyckhlaWdodCAvIGltYWdlU2l6ZS5oZWln
aHQoKSk7CiAKLSAgICBTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4
dCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSk7CisgICAgU3RhdGU6OnNldENvbXBvc2l0
ZU9wZXJhdGlvbihwbGF0Zm9ybUNvbnRleHQsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwg
b3B0aW9ucy5ibGVuZE1vZGUoKSk7CiAKICAgICAvLyBJbWFnZU9yaWVudGF0aW9uIGV4cGVjdHMg
dGhlIG9yaWdpbiB0byBiZSBhdCAoMCwgMCkuCiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShhZGp1
c3RlZERlc3RSZWN0LngoKSwgYWRqdXN0ZWREZXN0UmVjdC55KCkpOwogICAgIGNvbnRleHQtPlNl
dFRyYW5zZm9ybSh0cmFuc2Zvcm0pOwogICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0TG9jYXRpb24o
RmxvYXRQb2ludCgpKTsKIAotICAgIGlmIChvcmllbnRhdGlvbiAhPSBJbWFnZU9yaWVudGF0aW9u
OjpOb25lKSB7Ci0gICAgICAgIGNvbmNhdENUTShwbGF0Zm9ybUNvbnRleHQsIG9yaWVudGF0aW9u
LnRyYW5zZm9ybUZyb21EZWZhdWx0KGFkanVzdGVkRGVzdFJlY3Quc2l6ZSgpKSk7Ci0gICAgICAg
IGlmIChvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKSB7CisgICAgaWYgKG9wdGlvbnMu
b3JpZW50YXRpb24oKSAhPSBJbWFnZU9yaWVudGF0aW9uOjpOb25lKSB7CisgICAgICAgIGNvbmNh
dENUTShwbGF0Zm9ybUNvbnRleHQsIG9wdGlvbnMub3JpZW50YXRpb24oKS50cmFuc2Zvcm1Gcm9t
RGVmYXVsdChhZGp1c3RlZERlc3RSZWN0LnNpemUoKSkpOworICAgICAgICBpZiAob3B0aW9ucy5v
cmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpIHsKICAgICAgICAgICAgIC8vIFRoZSBk
ZXN0aW5hdGlvbiByZWN0IHdpbGwgaGF2ZSBpdCdzIHdpZHRoIGFuZCBoZWlnaHQgYWxyZWFkeSBy
ZXZlcnNlZCBmb3IgdGhlIG9yaWVudGF0aW9uIG9mCiAgICAgICAgICAgICAvLyB0aGUgaW1hZ2Us
IGFzIGl0IHdhcyBuZWVkZWQgZm9yIHBhZ2UgbGF5b3V0LCBzbyB3ZSBuZWVkIHRvIHJldmVyc2Ug
aXQgYmFjayBoZXJlLgogICAgICAgICAgICAgYWRqdXN0ZWREZXN0UmVjdCA9IEZsb2F0UmVjdChh
ZGp1c3RlZERlc3RSZWN0LngoKSwgYWRqdXN0ZWREZXN0UmVjdC55KCksIGFkanVzdGVkRGVzdFJl
Y3QuaGVpZ2h0KCksIGFkanVzdGVkRGVzdFJlY3Qud2lkdGgoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVj
dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0SW1wbERpcmVjdDJELmgKaW5kZXggNmJiNjQ0YTJiNjVlMjM0YzE1ZmUzY2ZmZjllYjczOTE5
NDRkNDFjMS4uNDQyNWZkMjZhYmU4NTQ1MWQyYzAzMmYzNmEyNmE1N2VlMzFlMmIwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dEltcGxEaXJlY3QyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9HcmFwaGljc0NvbnRleHRJbXBsRGlyZWN0MkQuaApAQCAtNzEsOCArNzEsOCBAQCBwdWJsaWM6
CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7
CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0U2l6
ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3
UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRTaXplJiwgSW1hZ2U6OlRpbGVSdWxlLCBJbWFnZTo6VGlsZVJ1
bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRN
b2RlLCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25z
dCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxv
YXQpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9JbWFnZUNHV2luLmNwcAppbmRleCAxNDExOWViZjVhMjlhZjY4Y2Q1NmQ5
ZmIwNzM5ZDY5Yzk2NjU0MjIyLi45MzIzZGE3MjQ4ZjZmNDk5ODFlNDU5MzgzNjgzMjg3OWRkMWRl
MmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1h
Z2VDR1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0lt
YWdlQ0dXaW4uY3BwCkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRN
QVBPZlNpemUoSEJJVE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAgICAgaWYgKHNpemUp
CiAgICAgICAgIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShnYywgRmxvYXRSZWN0KDAuMGYs
IDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksICpzaXplLCBDb21wb3Np
dGVDb3B5KTsKICAgICBlbHNlCi0gICAgICAgIGRyYXcoZ2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBm
LCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWlnaHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4w
ZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIENvbXBvc2l0ZUNvcHks
IEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVu
dGF0aW9uOjpOb25lKTsKKyAgICAgICAgZHJhdyhnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJt
cEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBp
bWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBDb21wb3NpdGVDb3B5IH0p
OwogCiAgICAgLy8gRG8gY2xlYW51cAogICAgIENHQ29udGV4dFJlbGVhc2UoY2dDb250ZXh0KTsK
QEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3Vy
Y2VTaXplKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXQKICAgICAgICAgaWYgKGlt
YWdlICYmIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UpID09IHN0YXRpY19jYXN0PHNpemVfdD4oc3Jj
U2l6ZS5oZWlnaHQoKSkgJiYgQ0dJbWFnZUdldFdpZHRoKGltYWdlKSA9PSBzdGF0aWNfY2FzdDxz
aXplX3Q+KHNyY1NpemUud2lkdGgoKSkpIHsKICAgICAgICAgICAgIHNpemVfdCBjdXJyZW50RnJh
bWUgPSBtX2N1cnJlbnRGcmFtZTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lID0gaTsKLSAg
ICAgICAgICAgIGRyYXcoY3R4dCwgZHN0UmVjdCwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIHNyY1Np
emUud2lkdGgoKSwgc3JjU2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5v
cm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7
CisgICAgICAgICAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBz
cmNTaXplLndpZHRoKCksIHNyY1NpemUuaGVpZ2h0KCkpLCB7IGNvbXBvc2l0ZU9wIH0pOwogICAg
ICAgICAgICAgbV9jdXJyZW50RnJhbWUgPSBjdXJyZW50RnJhbWU7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3
RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9h
dAogCiAgICAgLy8gTm8gaW1hZ2Ugb2YgdGhlIGNvcnJlY3Qgc2l6ZSB3YXMgZm91bmQsIGZhbGxi
YWNrIHRvIGRyYXdpbmcgdGhlIGN1cnJlbnQgZnJhbWUKICAgICBGbG9hdFNpemUgaW1hZ2VTaXpl
ID0gQml0bWFwSW1hZ2U6OnNpemUoKTsKLSAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgY29t
cG9zaXRlT3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJ
bWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBj
b21wb3NpdGVPcCB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwCmlu
ZGV4IDI0ZWM1YmMxZDhjMmJiOTI4ZmEwNTg1NmUzMzM0MjJhYzZmNWM4YjIuLjY4YmYzOTdkZWZi
MThlZDA3NzhlODNmNjQyY2Q5ZjJhNWRmNmRiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNhaXJvV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAKQEAgLTgxLDcgKzgx
LDcgQEAgYm9vbCBCaXRtYXBJbWFnZTo6Z2V0SEJJVE1BUE9mU2l6ZShIQklUTUFQIGJtcCwgY29u
c3QgSW50U2l6ZSogc2l6ZSkKICAgICBpZiAoc2l6ZSkKICAgICAgICAgZHJhd0ZyYW1lTWF0Y2hp
bmdTb3VyY2VTaXplKGdjLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBi
bXBJbmZvLmJtSGVpZ2h0KSwgKnNpemUsIENvbXBvc2l0ZUNvcHkpOwogICAgIGVsc2UKLSAgICAg
ICAgZHJhdyhnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5m
by5ibUhlaWdodCksIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1h
Z2VTaXplLmhlaWdodCgpKSwgQ29tcG9zaXRlQ29weSwgQmxlbmRNb2RlOjpOb3JtYWwsIERlY29k
aW5nTW9kZTo6U3luY2hyb25vdXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUpOworICAgICAgICBk
cmF3KGdjLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJt
SGVpZ2h0KSwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNp
emUuaGVpZ2h0KCkpLCB7IENvbXBvc2l0ZUNvcHkgfSk7CiAKICAgICAvLyBEbyBjbGVhbnVwCiAg
ICAgY2Fpcm9fZGVzdHJveSh0YXJnZXRSZWYpOwpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgQml0
bWFwSW1hZ2U6OmRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmIGN0
eHQsIGNvbnN0IEZsb2F0CiAgICAgICAgIGlmIChjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWln
aHQoc3VyZmFjZS5nZXQoKSkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzcmNTaXplLmhlaWdodCgp
KSAmJiBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzdXJmYWNlLmdldCgpKSA9PSBzdGF0
aWNfY2FzdDxzaXplX3Q+KHNyY1NpemUud2lkdGgoKSkpIHsKICAgICAgICAgICAgIHNpemVfdCBj
dXJyZW50RnJhbWUgPSBtX2N1cnJlbnRGcmFtZTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1l
ID0gaTsKLSAgICAgICAgICAgIGRyYXcoY3R4dCwgZHN0UmVjdCwgRmxvYXRSZWN0KDAuMGYsIDAu
MGYsIHNyY1NpemUud2lkdGgoKSwgc3JjU2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVu
ZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlv
bjo6Tm9uZSk7CisgICAgICAgICAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBm
LCAwLjBmLCBzcmNTaXplLndpZHRoKCksIHNyY1NpemUuaGVpZ2h0KCkpLCB7IGNvbXBvc2l0ZU9w
IH0pOwogICAgICAgICAgICAgbV9jdXJyZW50RnJhbWUgPSBjdXJyZW50RnJhbWU7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIEJpdG1hcElt
YWdlOjpkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBj
b25zdCBGbG9hdAogCiAgICAgLy8gTm8gaW1hZ2Ugb2YgdGhlIGNvcnJlY3Qgc2l6ZSB3YXMgZm91
bmQsIGZhbGxiYWNrIHRvIGRyYXdpbmcgdGhlIGN1cnJlbnQgZnJhbWUKICAgICBGbG9hdFNpemUg
aW1hZ2VTaXplID0gQml0bWFwSW1hZ2U6OnNpemUoKTsKLSAgICBkcmF3KGN0eHQsIGRzdFJlY3Qs
IEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdo
dCgpKSwgY29tcG9zaXRlT3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNo
cm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBkcmF3KGN0eHQsIGRzdFJlY3Qs
IEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdo
dCgpKSwgeyBjb21wb3NpdGVPcCB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2ZUltYWdl
RGlyZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL05hdGl2
ZUltYWdlRGlyZWN0MkQuY3BwCmluZGV4IGRmNGM1MzliZTZhNTViMGRlZmRmM2NkNmE2ZjU3NTEw
ZjZjNzA2ZDYuLmRkYWY2MjQ3NDEzOTMyNzQ1MDFhYjBhM2RlZTNkYmM4MTMzN2RlNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURp
cmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTmF0
aXZlSW1hZ2VEaXJlY3QyRC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgQ29sb3IgbmF0aXZlSW1hZ2VT
aW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlKQogICAgIHJl
dHVybiBDb2xvcigpOwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXpl
LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1h
Z2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3ZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUm
IHNyY1NpemUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikKIHsKICAgICBhdXRvIHBsYXRm
b3JtQ29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCmluZGV4IDE0N2MyZDBiNWIzZmU5ODExMGIw
ZmMzYWM4MWY2YmJkNzZmYThhZGQuLjUwMjc5OTBjZTU1ZTQ2MWIyZGQ4MmI5YzMyOWU5ZDlhMzJm
ODBlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQpA
QCAtOTYsNyArOTYsNyBAQCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKElt
YWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbgogICAgICAgICBHcmFwaGlj
c0NvbnRleHQgY29udGV4dChyZW5kZXJlckNvbnRleHQuQ0dDb250ZXh0KTsKICAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUoMCwgaW1hZ2VTaXplLmhlaWdodCk7CiAgICAgICAgIGNvbnRleHQuc2Nh
bGUoeyBhZGp1c3RlZEltYWdlU2NhbGUsIC1hZGp1c3RlZEltYWdlU2NhbGUgfSk7Ci0gICAgICAg
IGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgRmxvYXRQb2ludCgpLCBJbWFnZVBhaW50aW5nT3B0
aW9ucyhvcmllbnRhdGlvbikpOworICAgICAgICBjb250ZXh0LmRyYXdJbWFnZSgqaW1hZ2UsIEZs
b2F0UG9pbnQoKSwgeyBvcmllbnRhdGlvbiB9KTsKICAgICB9XTsKICAgICByZXR1cm4gaW1hZ2VD
b3B5LkNHSW1hZ2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1h
Yy5tbQppbmRleCA4ZWJlMDA3NmE4Y2M2NmVhYmZlMDQyOTFmYWVmZjU5NGZmMDkxODBlLi44NTJk
NTA1MjY0MmZjNmY0YTRhYzUwN2YyZWY2NzJhOWExNTdjYmMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTk0LDM5ICs5NCwzNyBAQCBSZXRhaW5Q
dHI8TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdl
PiBpbWFnZSwgZmxvYXQgZAogICAgICAgICAKIFJldGFpblB0cjxOU0ltYWdlPiBjcmVhdGVEcmFn
SW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQogewotICAgIEZsb2F0U2l6ZSBzaXplID0gaW1hZ2UtPnNpemUoKTsKLQogICAgIGlmIChpczxC
aXRtYXBJbWFnZT4oKmltYWdlKSkgewogICAgICAgICBCaXRtYXBJbWFnZSYgYml0bWFwSW1hZ2Ug
PSBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKTsKLSAgICAgICAgSW50U2l6ZSBzaXplUmVz
cGVjdGluZ09yaWVudGF0aW9uID0gYml0bWFwSW1hZ2Uuc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlv
bigpOwogCiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2UpCiAgICAgICAgICAgICBvcmllbnRhdGlvbiA9IGJpdG1hcEltYWdlLm9yaWVudGF0aW9u
Rm9yQ3VycmVudEZyYW1lKCk7CiAKICAgICAgICAgaWYgKG9yaWVudGF0aW9uICE9IEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUpIHsKICAgICAgICAgICAgIC8vIENvbnN0cnVjdCBhIGNvcnJlY3RseS1y
b3RhdGVkIGNvcHkgb2YgdGhlIGltYWdlIHRvIHVzZSBhcyB0aGUgZHJhZyBpbWFnZS4KLSAgICAg
ICAgICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIHNpemVSZXNwZWN0aW5nT3Jp
ZW50YXRpb24pOworICAgICAgICAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLT5zaXpl
KG9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU0ltYWdlPiByb3RhdGVkRHJh
Z0ltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTooTlNTaXplKShp
bWFnZVNpemUpXSk7CiAKLSAgICAgICAgICAgIFJldGFpblB0cjxOU0ltYWdlPiByb3RhdGVkRHJh
Z0ltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTooTlNTaXplKShz
aXplUmVzcGVjdGluZ09yaWVudGF0aW9uKV0pOwogICAgICAgICAgICAgW3JvdGF0ZWREcmFnSW1h
Z2UgbG9ja0ZvY3VzXTsKIAogICAgICAgICAgICAgLy8gSW1hZ2VPcmllbnRhdGlvbiB1c2VzIHRv
cC1sZWZ0IGNvb3JkaW5hdGVzLCBuZWVkIHRvIGZsaXAgdG8gYm90dG9tLWxlZnQsIGFwcGx5Li4u
Ci0gICAgICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5z
Zm9ybU1ha2VUcmFuc2xhdGlvbigwLCBkZXN0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgICAgICBD
R0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VUcmFuc2xh
dGlvbigwLCBpbWFnZVNpemUuaGVpZ2h0KCkpOwogICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dB
ZmZpbmVUcmFuc2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIDEsIC0xKTsKLSAgICAgICAgICAgIHRyYW5z
Zm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG9yaWVudGF0aW9uLnRyYW5zZm9ybUZyb21E
ZWZhdWx0KHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pLCB0cmFuc2Zvcm0pOworICAgICAgICAg
ICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQob3JpZW50YXRpb24udHJhbnNm
b3JtRnJvbURlZmF1bHQoaW1hZ2VTaXplKSwgdHJhbnNmb3JtKTsKIAogICAgICAgICAgICAgaWYg
KG9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCi0gICAgICAgICAgICAgICAgZGVzdFJl
Y3QgPSBGbG9hdFJlY3QoZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCksIGRlc3RSZWN0LmhlaWdo
dCgpLCBkZXN0UmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAgICAgICBpbWFnZVNpemUgPSBpbWFn
ZVNpemUudHJhbnNwb3NlZFNpemUoKTsKIAogICAgICAgICAgICAgLy8gLi4uYW5kIGZsaXAgYmFj
ay4KLSAgICAgICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtVHJhbnNsYXRlKHRy
YW5zZm9ybSwgMCwgZGVzdFJlY3QuaGVpZ2h0KCkpOworICAgICAgICAgICAgdHJhbnNmb3JtID0g
Q0dBZmZpbmVUcmFuc2Zvcm1UcmFuc2xhdGUodHJhbnNmb3JtLCAwLCBpbWFnZVNpemUuaGVpZ2h0
KCkpOwogICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZSh0cmFu
c2Zvcm0sIDEsIC0xKTsKIAogICAgICAgICAgICAgUmV0YWluUHRyPE5TQWZmaW5lVHJhbnNmb3Jt
PiBjb2NvYVRyYW5zZm9ybSA9IGFkb3B0TlMoW1tOU0FmZmluZVRyYW5zZm9ybSBhbGxvY10gaW5p
dF0pOwogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtIHNldFRyYW5zZm9ybVN0cnVjdDoqKE5T
QWZmaW5lVHJhbnNmb3JtU3RydWN0KikmdHJhbnNmb3JtXTsKICAgICAgICAgICAgIFtjb2NvYVRy
YW5zZm9ybSBjb25jYXRdOwogCi0gICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgp
IGRyYXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNl
T3ZlciBmcmFjdGlvbjoxLjBdOworICAgICAgICAgICAgRmxvYXRSZWN0IGltYWdlUmVjdChGbG9h
dFBvaW50KCksIGltYWdlU2l6ZSk7CisgICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFn
ZSgpIGRyYXdJblJlY3Q6aW1hZ2VSZWN0IGZyb21SZWN0OmltYWdlUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKIAogICAgICAgICAg
ICAgW3JvdGF0ZWREcmFnSW1hZ2UgdW5sb2NrRm9jdXNdOwogCkBAIC0xMzQsOCArMTMyLDkgQEAg
UmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2Us
IEltYWdlT3JpZW50YXRpb24gb3JpZW4KICAgICAgICAgfQogICAgIH0KIAorICAgIEZsb2F0U2l6
ZSBpbWFnZVNpemUgPSBpbWFnZS0+c2l6ZSgpOwogICAgIGF1dG8gZHJhZ0ltYWdlID0gaW1hZ2Ut
PnNuYXBzaG90TlNJbWFnZSgpOwotICAgIFtkcmFnSW1hZ2Ugc2V0U2l6ZTooTlNTaXplKXNpemVd
OworICAgIFtkcmFnSW1hZ2Ugc2V0U2l6ZTooTlNTaXplKWltYWdlU2l6ZV07CiAgICAgcmV0dXJu
IGRyYWdJbWFnZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDkwMWM0MTEwZTFjNTZiYTYwYTRkZDNiYTdiOTNm
YWFmNjA0MWNiMzMuLmI3YjQ3N2MyODc5MzJkM2MyMDMwNDg5MDQ5ZjZlMjIyYTVlMTA0NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cApAQCAtOTQ3LDE1ICs5NDcsMjEgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRG
aWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICAgICAg
Z2VvbWV0cnkuY2xpcChMYXlvdXRSZWN0KHBpeGVsU25hcHBlZFJlY3QpKTsKICAgICAgICAgUmVm
UHRyPEltYWdlPiBpbWFnZTsKICAgICAgICAgaWYgKCFnZW9tZXRyeS5kZXN0UmVjdCgpLmlzRW1w
dHkoKSAmJiAoaW1hZ2UgPSBiZ0ltYWdlLT5pbWFnZShiYWNrZ3JvdW5kT2JqZWN0ID8gYmFja2dy
b3VuZE9iamVjdCA6IHRoaXMsIGdlb21ldHJ5LnRpbGVTaXplKCkpKSkgewotICAgICAgICAgICAg
YXV0byBjb21wb3NpdGVPcCA9IG9wID09IENvbXBvc2l0ZVNvdXJjZU92ZXIgPyBiZ0xheWVyLmNv
bXBvc2l0ZSgpIDogb3A7CiAgICAgICAgICAgICBjb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNr
KGJnTGF5ZXIubWFza1NvdXJjZVR5cGUoKSA9PSBNYXNrU291cmNlVHlwZTo6THVtaW5hbmNlKTsK
IAogICAgICAgICAgICAgaWYgKGlzPEJpdG1hcEltYWdlPihpbWFnZSkpCiAgICAgICAgICAgICAg
ICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKHNldHRp
bmdzKCkpOwogCi0gICAgICAgICAgICBhdXRvIGludGVycG9sYXRpb24gPSBjaG9vc2VJbnRlcnBv
bGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsICZiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6
ZSgpKTsKLSAgICAgICAgICAgIGF1dG8gZGVjb2RpbmdNb2RlID0gZGVjb2RpbmdNb2RlRm9ySW1h
Z2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKTsKLSAgICAgICAgICAgIGF1dG8gZHJhd1Jlc3VsdCA9
IGNvbnRleHQuZHJhd1RpbGVkSW1hZ2UoKmltYWdlLCBnZW9tZXRyeS5kZXN0UmVjdCgpLCB0b0xh
eW91dFBvaW50KGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSksIGdlb21ldHJ5LnRpbGVTaXplKCks
IGdlb21ldHJ5LnNwYWNlU2l6ZSgpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb21wb3NpdGVPcCwg
YmdMYXllci5ibGVuZE1vZGUoKSwgZGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uOjpOb25l
LCBpbnRlcnBvbGF0aW9uKSk7CisgICAgICAgICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRp
b25zID0geworICAgICAgICAgICAgICAgIG9wID09IENvbXBvc2l0ZVNvdXJjZU92ZXIgPyBiZ0xh
eWVyLmNvbXBvc2l0ZSgpIDogb3AsCisgICAgICAgICAgICAgICAgYmdMYXllci5ibGVuZE1vZGUo
KSwKKyAgICAgICAgICAgICAgICBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXcoKmltYWdlLCBwYWlu
dEluZm8pLAorICAgICAgICAgICAgICAgIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSwKKyAg
ICAgICAgICAgICAgICBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2Us
ICZiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6ZSgpKQorICAgICAgICAgICAgfTsKKworICAgICAg
ICAgICAgYXV0byBkcmF3UmVzdWx0ID0gY29udGV4dC5kcmF3VGlsZWRJbWFnZSgqaW1hZ2UsIGdl
b21ldHJ5LmRlc3RSZWN0KCksIHRvTGF5b3V0UG9pbnQoZ2VvbWV0cnkucmVsYXRpdmVQaGFzZSgp
KSwgZ2VvbWV0cnkudGlsZVNpemUoKSwgZ2VvbWV0cnkuc3BhY2VTaXplKCksIG9wdGlvbnMpOwor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoZHJhd1Jlc3VsdCA9PSBJbWFnZURyYXdSZXN1
bHQ6OkRpZFJlcXVlc3REZWNvZGluZykgewogICAgICAgICAgICAgICAgIEFTU0VSVChiZ0ltYWdl
LT5pc0NhY2hlZEltYWdlKCkpOwogICAgICAgICAgICAgICAgIGJnSW1hZ2UtPmNhY2hlZEltYWdl
KCktPmFkZENsaWVudFdhaXRpbmdGb3JBc3luY0RlY29kaW5nKCp0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCAxYjExZTJlM2YxY2QxZWE0N2Y4
NjdhMGVkMGRkMDgwYmE4Yzk3MmNhLi4yMjBiMWE2NzM1OTBlNmJhN2MyOGZmYmIxOTBjMTA4NTBl
YTQ2ZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBA
IC0yMDM5LDE2ICsyMDM5LDcgQEAgYm9vbCBSZW5kZXJFbGVtZW50OjpjaGVja0ZvclJlcGFpbnRE
dXJpbmdMYXlvdXQoKSBjb25zdAogCiBJbWFnZU9yaWVudGF0aW9uIFJlbmRlckVsZW1lbnQ6Omlt
YWdlT3JpZW50YXRpb24oKSBjb25zdAogewotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBV
U0UoRElSRUNUMkQpCi0gICAgLy8gVGhpcyBjYW4gb25seSBiZSBlbmFibGVkIGZvciBwb3J0cyB3
aGljaCBob25vciB0aGUgb3JpZW50YXRpb24gZmxhZyBpbiB0aGVpciBkcmF3aW5nIGNvZGUuCi0g
ICAgaWYgKGRvY3VtZW50KCkuaXNJbWFnZURvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBJbWFn
ZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2U7Ci0jZW5kaWYKLSAgICAvLyBSZXNwZWN0IHRoZSBpbWFn
ZSdzIG9yaWVudGF0aW9uIGlmIGl0J3MgYmVpbmcgdXNlZCBhcyBhIGZ1bGwtcGFnZSBpbWFnZSBv
ciBpdCdzCi0gICAgLy8gYW4gPGltZz4gYW5kIHRoZSBzZXR0aW5nIHRvIHJlc3BlY3QgaXQgZXZl
cnl3aGVyZSBpcyBzZXQuCi0gICAgaWYgKHNldHRpbmdzKCkuc2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24oKSAmJiBpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkpKQotICAgICAgICBy
ZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOwotICAgIHJldHVybiBzdHlsZSgpLmlt
YWdlT3JpZW50YXRpb24oKTsKKyAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdl
OwogfQogCiB2b2lkIFJlbmRlckVsZW1lbnQ6OmFkanVzdEZyYWdtZW50ZWRGbG93U3RhdGVPbkNv
bnRhaW5pbmdCbG9ja0NoYW5nZUlmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDkxM2JiNDEzYjk0MmYxZTA2MjZj
ZjU4YzE0NWFiMzI2YjcxY2MyOTYuLjdhYzA0YjhiYTRmNDE1MTNiM2ZjYmFmMTkzMWJjZjQ0ODA1
Yzk0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OnBhaW50U25hcHNob3RJbWFnZShQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0CiAg
ICAgICAgIHJldHVybjsKIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb24g
PSBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCBpbWFnZSwgJmltYWdlLCBhbGln
bmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBhbGlnbmVkUmVj
dCwgSW1hZ2VQYWludGluZ09wdGlvbnMoaW1hZ2VPcmllbnRhdGlvbigpLCBpbnRlcnBvbGF0aW9u
KSk7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIGFsaWduZWRSZWN0LCB7IGltYWdlT3Jp
ZW50YXRpb24oKSwgaW50ZXJwb2xhdGlvbiB9KTsKIH0KIAogdm9pZCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9p
bnQmIHBhaW50T2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
aW5kZXggZjUxZTJmZWIzN2UxZmNmMGZkMGU3OTFhZTY0ZjAzZWU4OGEyYTdjOC4uMTQ3NTQ3NjEz
MmFmN2IxODZhZmZlMDI1NmZkYzYyM2E0MzZmYTY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwCkBAIC00NjksNyArNDY5LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6
cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2YKICAgICAgICAgICAgICAgICAgICAgY2VudGVyWSA9IDA7CiAgICAgICAgICAgICAgICAg
aW1hZ2VPZmZzZXQgPSBMYXlvdXRTaXplKGxlZnRCb3JkZXIgKyBsZWZ0UGFkICsgY2VudGVyWCAr
IG1pc3NpbmdJbWFnZUJvcmRlcldpZHRoLCB0b3BCb3JkZXIgKyB0b3BQYWQgKyBjZW50ZXJZICsg
bWlzc2luZ0ltYWdlQm9yZGVyV2lkdGgpOwogCi0gICAgICAgICAgICAgICAgY29udGV4dC5kcmF3
SW1hZ2UoKmltYWdlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKExheW91dFJlY3QocGFpbnRPZmZz
ZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VTaXplKSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBpbWFnZU9y
aWVudGF0aW9uKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwg
c25hcFJlY3RUb0RldmljZVBpeGVscyhMYXlvdXRSZWN0KHBhaW50T2Zmc2V0ICsgaW1hZ2VPZmZz
ZXQsIGltYWdlU2l6ZSksIGRldmljZVNjYWxlRmFjdG9yKSwgeyBpbWFnZU9yaWVudGF0aW9uKCkg
fSk7CiAgICAgICAgICAgICAgICAgZXJyb3JQaWN0dXJlRHJhd24gPSB0cnVlOwogICAgICAgICAg
ICAgfQogCkBAIC02MTcsMTEgKzYxNyw5IEBAIEltYWdlRHJhd1Jlc3VsdCBSZW5kZXJJbWFnZTo6
cGFpbnRJbnRvUmVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgRmxvYXRSZWN0CiAgICAg
ICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKICAgICBIVE1MSW1hZ2VF
bGVtZW50KiBpbWFnZUVsZW1lbnQgPSBpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkpID8g
ZG93bmNhc3Q8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCgpKSA6IG51bGxwdHI7Ci0gICAgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBpbWFnZUVsZW1lbnQgPyBpbWFnZUVs
ZW1lbnQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3NpdGVTb3VyY2VPdmVyOwogCiAgICAg
Ly8gRklYTUU6IERvY3VtZW50IHdoZW4gaW1hZ2UgIT0gaW1nLmdldCgpLgogICAgIEltYWdlKiBp
bWFnZSA9IGltYWdlUmVzb3VyY2UoKS5pbWFnZSgpLmdldCgpOwotICAgIEludGVycG9sYXRpb25R
dWFsaXR5IGludGVycG9sYXRpb24gPSBpbWFnZSA/IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5
KHBhaW50SW5mby5jb250ZXh0KCksICppbWFnZSwgaW1hZ2UsIExheW91dFNpemUocmVjdC5zaXpl
KCkpKSA6IEludGVycG9sYXRpb25EZWZhdWx0OwogCiAjaWYgVVNFKENHKQogICAgIGlmIChpczxQ
REZEb2N1bWVudEltYWdlPihpbWFnZSkpCkBAIC02MzEsOCArNjI5LDE1IEBAIEltYWdlRHJhd1Jl
c3VsdCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgRmxvYXRSZWN0CiAgICAgaWYgKGlzPEJpdG1hcEltYWdlPihpbWFnZSkpCiAgICAgICAgIGRv
d25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpLnVwZGF0ZUZyb21TZXR0aW5ncyhzZXR0aW5ncygp
KTsKIAotICAgIGF1dG8gZGVjb2RpbmdNb2RlID0gZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCpp
bWFnZSwgcGFpbnRJbmZvKTsKLSAgICBhdXRvIGRyYXdSZXN1bHQgPSBwYWludEluZm8uY29udGV4
dCgpLmRyYXdJbWFnZSgqaW1nLCByZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhjb21wb3NpdGVP
cGVyYXRvciwgQmxlbmRNb2RlOjpOb3JtYWwsIGRlY29kaW5nTW9kZSwgaW1hZ2VPcmllbnRhdGlv
bigpLCBpbnRlcnBvbGF0aW9uKSk7CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucyA9
IHsKKyAgICAgICAgaW1hZ2VFbGVtZW50ID8gaW1hZ2VFbGVtZW50LT5jb21wb3NpdGVPcGVyYXRv
cigpIDogQ29tcG9zaXRlU291cmNlT3ZlciwKKyAgICAgICAgZGVjb2RpbmdNb2RlRm9ySW1hZ2VE
cmF3KCppbWFnZSwgcGFpbnRJbmZvKSwKKyAgICAgICAgaW1hZ2VPcmllbnRhdGlvbigpLAorICAg
ICAgICBpbWFnZSA/IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KHBhaW50SW5mby5jb250ZXh0
KCksICppbWFnZSwgaW1hZ2UsIExheW91dFNpemUocmVjdC5zaXplKCkpKSA6IEludGVycG9sYXRp
b25EZWZhdWx0CisgICAgfTsKKworICAgIGF1dG8gZHJhd1Jlc3VsdCA9IHBhaW50SW5mby5jb250
ZXh0KCkuZHJhd0ltYWdlKCppbWcsIHJlY3QsIG9wdGlvbnMpOworCiAgICAgaWYgKGRyYXdSZXN1
bHQgPT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZXF1ZXN0RGVjb2RpbmcpCiAgICAgICAgIGltYWdl
UmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpLT5hZGRDbGllbnRXYWl0aW5nRm9yQXN5bmNEZWNvZGlu
ZygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDBkZmUyODI3NjRmNDA4YjYyMGJlZjVkOWY1OGU4OGE2
Y2M3NmMwODQuLjRmZTg1ODYyNWM5MjlkODBiZWNhZmVhNjZmMDY0ZTM0MjE4MTI1Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBh
aW50U25hcHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAgICAgICAg
IHJldHVybjsKIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb24gPSBjaG9v
c2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVj
dC5zaXplKCkpOwotICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgYWxpZ25lZFJlY3QsIElt
YWdlUGFpbnRpbmdPcHRpb25zKGltYWdlT3JpZW50YXRpb24oKSwgaW50ZXJwb2xhdGlvbikpOwor
ICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgYWxpZ25lZFJlY3QsIHsgaW1hZ2VPcmllbnRh
dGlvbigpLCBpbnRlcnBvbGF0aW9uIH0pOwogfQogCiBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OmdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEN1cnNv
ciYgb3ZlcnJpZGVDdXJzb3IpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KaW5kZXggNDRjYjIwMDFjMGJlOGFiNDI3NzZmNTU3NTZlMTQ0MDM3NWMwMTdi
YS4uYTQyY2U2ZWMyZDY5MzljMDAxNjFmMTc5YmUyNjQ0ZTEyNDI5MjQ3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjI3OCw3ICsyMjc4LDcgQEAg
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXkoY29uc3Qg
UmVuZGVyT2JqZWN0JiByZW5kZXJlciwKICAgICBpZiAoYWxpZ25lZFBsdWdpblJlY3Qud2lkdGgo
KSA8PSAwIHx8IGFsaWduZWRQbHVnaW5SZWN0LmhlaWdodCgpIDw9IDApCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgY29udGV4dC5kcmF3SW1hZ2UoKnNuYXBzaG90LCBhbGlnbmVkUGx1Z2lu
UmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoKnNuYXBz
aG90LCBhbGlnbmVkUGx1Z2luUmVjdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCA2YmQ5MTI0YWU0OGIxMDdhNjAz
MTg5OTJmZjM2Zjc3MmU2MTU5OGZmLi41MjM3ZWRlMjNjMWQ5M2VhYjEyZmRjYWQ4YWE2Y2RkODg5
NTk4ZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTE3
OSw3ICsxNzksNyBAQCBJbnRTaXplIFNWR0ltYWdlOjpjb250YWluZXJTaXplKCkgY29uc3QKIH0K
IAogSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRTaXplIGNvbnRhaW5lclNpemUsIGZsb2F0IGNvbnRh
aW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdtZW50VVJMLCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsCi0gICAgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlm
ICghbV9wYWdlKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwpA
QCAtMjAzLDcgKzIwMyw3IEBAIEltYWdlRHJhd1Jlc3VsdCBTVkdJbWFnZTo6ZHJhd0ZvckNvbnRh
aW5lcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0CiAKICAgICBmcmFtZVZp
ZXcoKS0+c2Nyb2xsVG9GcmFnbWVudChpbml0aWFsRnJhZ21lbnRVUkwpOwogCi0gICAgSW1hZ2VE
cmF3UmVzdWx0IHJlc3VsdCA9IGRyYXcoY29udGV4dCwgZHN0UmVjdCwgc2NhbGVkU3JjLCBjb21w
b3NpdGVPcCwgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVu
dGF0aW9uOjpOb25lKTsKKyAgICBJbWFnZURyYXdSZXN1bHQgcmVzdWx0ID0gZHJhdyhjb250ZXh0
LCBkc3RSZWN0LCBzY2FsZWRTcmMsIG9wdGlvbnMpOwogCiAgICAgc2V0SW1hZ2VPYnNlcnZlcihv
YnNlcnZlcik7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIyMiw3ICsyMjIsNyBAQCBOYXRpdmVJ
bWFnZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29uc3QgR3JhcGhp
Y3NDb250ZXh0KikKICAgICBpZiAoIWJ1ZmZlcikgLy8gZmFpbGVkIHRvIGFsbG9jYXRlIGltYWdl
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgZHJhdyhidWZmZXItPmNvbnRleHQoKSwg
cmVjdCgpLCByZWN0KCksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZTo6Tm9ybWFsLCBE
ZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBk
cmF3KGJ1ZmZlci0+Y29udGV4dCgpLCByZWN0KCksIHJlY3QoKSk7CiAKICAgICAvLyBGSVhNRTog
V0soQnVnIDExMzY1Nyk6IFdlIHNob3VsZCB1c2UgRG9udENvcHlCYWNraW5nU3RvcmUgaGVyZS4K
ICAgICByZXR1cm4gYnVmZmVyLT5jb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSktPm5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgTmF0aXZlSW1hZ2VQdHIg
U1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4
dCkKICNlbmRpZgogCiB2b2lkIFNWR0ltYWdlOjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxv
YXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwKLSAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3Qs
IEJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewogICAgIEZsb2F0UmVjdCB6b29tZWRDb250YWluZXJSZWN0ID0gRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgY29udGFpbmVyU2l6ZSk7CiAgICAgem9vbWVkQ29udGFpbmVyUmVj
dC5zY2FsZShjb250YWluZXJab29tKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFNWR0ltYWdl
OjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0U2l6ZQogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoZXhwYW5kZWRJbnRTaXplKGltYWdlQnVm
ZmVyU2l6ZS5zaXplKCkpLCAxLCBDb2xvclNwYWNlU1JHQiwgY29udGV4dCk7CiAgICAgaWYgKCFi
dWZmZXIpIC8vIEZhaWxlZCB0byBhbGxvY2F0ZSBidWZmZXIuCiAgICAgICAgIHJldHVybjsKLSAg
ICBkcmF3Rm9yQ29udGFpbmVyKGJ1ZmZlci0+Y29udGV4dCgpLCBjb250YWluZXJTaXplLCBjb250
YWluZXJab29tLCBpbml0aWFsRnJhZ21lbnRVUkwsIGltYWdlQnVmZmVyU2l6ZSwgem9vbWVkQ29u
dGFpbmVyUmVjdCwgQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlOjpOb3JtYWwpOworICAg
IGRyYXdGb3JDb250YWluZXIoYnVmZmVyLT5jb250ZXh0KCksIGNvbnRhaW5lclNpemUsIGNvbnRh
aW5lclpvb20sIGluaXRpYWxGcmFnbWVudFVSTCwgaW1hZ2VCdWZmZXJTaXplLCB6b29tZWRDb250
YWluZXJSZWN0KTsKICAgICBpZiAoY29udGV4dC5kcmF3THVtaW5hbmNlTWFzaygpKQogICAgICAg
ICBidWZmZXItPmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIApAQCAtMjk3LDEwICsyOTcsMTAg
QEAgdm9pZCBTVkdJbWFnZTo6ZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFNpemUKICAgICB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0u
c2NhbGUoMSAvIGltYWdlQnVmZmVyU2NhbGUud2lkdGgoKSwgMSAvIGltYWdlQnVmZmVyU2NhbGUu
aGVpZ2h0KCkpOwogCiAgICAgY29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxzZSk7Ci0g
ICAgaW1hZ2UtPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNjYWxlZFNyY1JlY3QsIHVu
c2NhbGVkUGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wLCBibGVu
ZE1vZGUpOworICAgIGltYWdlLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzY2FsZWRT
cmNSZWN0LCB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25z
KTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBE
ZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6
OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9w
dGlvbnMpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1
bHQ6OkRpZE5vdGhpbmc7CkBAIC0zMDksMTEgKzMwOSwxMSBAQCBJbWFnZURyYXdSZXN1bHQgU1ZH
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlYwogICAgIEFTU0VSVCh2aWV3KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihj
b21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlv
bihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogICAg
IGNvbnRleHQuY2xpcChlbmNsb3NpbmdJbnRSZWN0KGRzdFJlY3QpKTsKIAogICAgIGZsb2F0IGFs
cGhhID0gY29udGV4dC5hbHBoYSgpOwotICAgIGJvb2wgY29tcG9zaXRpbmdSZXF1aXJlc1RyYW5z
cGFyZW5jeUxheWVyID0gY29tcG9zaXRlT3AgIT0gQ29tcG9zaXRlU291cmNlT3ZlciB8fCBibGVu
ZE1vZGUgIT0gQmxlbmRNb2RlOjpOb3JtYWwgfHwgYWxwaGEgPCAxOworICAgIGJvb2wgY29tcG9z
aXRpbmdSZXF1aXJlc1RyYW5zcGFyZW5jeUxheWVyID0gb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRv
cigpICE9IENvbXBvc2l0ZVNvdXJjZU92ZXIgfHwgb3B0aW9ucy5ibGVuZE1vZGUoKSAhPSBCbGVu
ZE1vZGU6Ok5vcm1hbCB8fCBhbHBoYSA8IDE7CiAgICAgaWYgKGNvbXBvc2l0aW5nUmVxdWlyZXNU
cmFuc3BhcmVuY3lMYXllcikgewogICAgICAgICBjb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXIoYWxwaGEpOwogICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3Np
dGVTb3VyY2VPdmVyLCBCbGVuZE1vZGU6Ok5vcm1hbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5oCmluZGV4IDA3NTQyNGZjNzVkYmRlMDk5MTcwZmYzZjZlYmE2ZTZjNzFmZDJl
MTUuLjlhZDkzNThjNzExYmEyMjFjMmQ5MmE1YTc5NTk5ZGI1NDJiNzg1ZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldygpIGNvbnN0OwogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1h
Z2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgZmluYWw7CiAKQEAgLTk0LDEwICs5NCw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydEFuaW1hdGlvblRpbWVyRmlyZWQoKTsKIAogICAgIGV4cGxpY2l0IFNWR0ltYWdl
KEltYWdlT2JzZXJ2ZXImKTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRvUmVjdCwg
Q29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0
aW9uKSBmaW5hbDsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ZvckNvbnRhaW5lcihHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFNpemUgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVy
Wm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRN
b2RlKTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29u
c3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywKLSAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVj
dCYsIEJsZW5kTW9kZSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVz
dWx0IGRyYXdGb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplIGNv
bnRhaW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdt
ZW50VVJMLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdQYXR0
ZXJuRm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFp
bmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRV
UkwsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAogICAgIFJlZlB0
cjxTVkdTVkdFbGVtZW50PiByb290RWxlbWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcAppbmRleCBjZjhj
YzNlNWNlYzhlODEyZGU2OWE5ZjQ0YWRiYjdiMDVjNTVjMDA1Li5lYWVmYzMxZTQ3ZDAyMTUxZDY5
MGM1Y2Q2NWY1ZTgzMWIzMWFmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAKQEAgLTI3LDIzICsyNywyMiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZsb2F0U2l6ZSBTVkdJbWFnZUZvckNvbnRhaW5lcjo6c2l6
ZSgpIGNvbnN0CitGbG9hdFNpemUgU1ZHSW1hZ2VGb3JDb250YWluZXI6OnNpemUoSW1hZ2VPcmll
bnRhdGlvbikgY29uc3QKIHsKICAgICBGbG9hdFNpemUgc2NhbGVkQ29udGFpbmVyU2l6ZShtX2Nv
bnRhaW5lclNpemUpOwogICAgIHNjYWxlZENvbnRhaW5lclNpemUuc2NhbGUobV9jb250YWluZXJa
b29tKTsKICAgICByZXR1cm4gRmxvYXRTaXplKHJvdW5kZWRJbnRTaXplKHNjYWxlZENvbnRhaW5l
clNpemUpKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlRm9yQ29udGFpbmVyOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LAotICAg
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3As
IEJsZW5kTW9kZSBibGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0lt
YWdlRHJhd1Jlc3VsdCBTVkdJbWFnZUZvckNvbnRhaW5lcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4g
bV9pbWFnZS0+ZHJhd0ZvckNvbnRhaW5lcihjb250ZXh0LCBtX2NvbnRhaW5lclNpemUsIG1fY29u
dGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkwsIGRzdFJlY3QsIHNyY1JlY3QsIGNvbXBv
c2l0ZU9wLCBibGVuZE1vZGUpOworICAgIHJldHVybiBtX2ltYWdlLT5kcmF3Rm9yQ29udGFpbmVy
KGNvbnRleHQsIG1fY29udGFpbmVyU2l6ZSwgbV9jb250YWluZXJab29tLCBtX2luaXRpYWxGcmFn
bWVudFVSTCwgZHN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgU1ZHSW1hZ2VG
b3JDb250YWluZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVP
cCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29u
c3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9u
cykKIHsKLSAgICBtX2ltYWdlLT5kcmF3UGF0dGVybkZvckNvbnRhaW5lcihjb250ZXh0LCBtX2Nv
bnRhaW5lclNpemUsIG1fY29udGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkwsIHNyY1Jl
Y3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3NpdGVPcCwgZHN0UmVj
dCwgYmxlbmRNb2RlKTsKKyAgICBtX2ltYWdlLT5kcmF3UGF0dGVybkZvckNvbnRhaW5lcihjb250
ZXh0LCBtX2NvbnRhaW5lclNpemUsIG1fY29udGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRV
UkwsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBkc3RSZWN0LCBv
cHRpb25zKTsKIH0KIAogTmF0aXZlSW1hZ2VQdHIgU1ZHSW1hZ2VGb3JDb250YWluZXI6Om5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFp
bmVyLmgKaW5kZXggODY5ZDA5NzFjNWIyZmU1ZDQ5NTFkZDYwMzQwYWUzNjNjZjc3NmYwNC4uZTY0
NGY3YWNmMzBlYzIyNGRmODUxNWQ4N2Y3MmMyYWUxYmIzNGE1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKQEAgLTQzLDcgKzQz
LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBGbG9h
dFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdl
KSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgdXNlc0NvbnRhaW5lclNpemUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2ltYWdlLT51c2VzQ29udGFpbmVyU2l6ZSgpOyB9CiAgICAgYm9vbCBoYXNS
ZWxhdGl2ZVdpZHRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbWFnZS0+aGFzUmVsYXRpdmVX
aWR0aCgpOyB9CkBAIC01Myw5ICs1Myw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9pbWFnZS0+Y29t
cHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwg
aW50cmluc2ljUmF0aW8pOwogICAgIH0KIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0
ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgZmlu
YWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
eyB9KSBmaW5hbDsKIAotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwg
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yLCBC
bGVuZE1vZGUpIGZpbmFsOworICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMg
dG8gYmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAgICAgYm9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVP
cGFxdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA0MDAwMmNmOTMw
ZmNiYzFkMmRmNTM1ZmYzMzYwNTAwOWI3ODhmZmEyLi43NWJhYjFjMjA0OGRlYTY5ZGFiODVkNGFi
ZjdmYmMyYTAyYzIzZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgc3RhdGljIHZvaWQg
aW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IEludGUKICAgICBpZiAoIWdyYXBoaWNzQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoKmltYWdlLCBGbG9hdFJlY3QoMCwgMCwg
Yml0bWFwU2l6ZS53aWR0aCgpLCBiaXRtYXBTaXplLmhlaWdodCgpKSwgcmVuZGVySW1hZ2UuaW1h
Z2VPcmllbnRhdGlvbigpKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZSgqaW1hZ2Us
IEZsb2F0UmVjdCgwLCAwLCBiaXRtYXBTaXplLndpZHRoKCksIGJpdG1hcFNpemUuaGVpZ2h0KCkp
LCB7IHJlbmRlckltYWdlLmltYWdlT3JpZW50YXRpb24oKSB9KTsKICAgICBpbmZvLmltYWdlID0g
c2hhcmVkQml0bWFwOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDQzZjZjODdiOGJkNzlhNTQzNTcyOGIwMzg0ZTQ4
ZWE0YWYzYzJiYi4uOTA2OGE1MzkxOGQ1MzAyYjQ1NzlhNWRmNjA4NzY5ZjZmNjU1ZTkxOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTI3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRVhJRiBvcmllbnRhdGlvbiBzaG91bGQgYmUg
cmVzcGVjdGVkIHdoZW4gcmVuZGVyaW5nIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgYXJlIG1hZGUgcmVmLXRlc3Rz
LiBOZXcgdGVzdHMgd2VyZSBhZGRlZCB0byBjb3ZlciBtb3JlCisgICAgICAgIGNhc2VzIGZvciBk
cmF3aW5nIGltYWdlcy4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24t
Y29tcG9zaXRlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVu
dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1pbWFnZS1kb2N1bWVudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWltYWdlLW9iamVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3Zn
LWZlaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9uczoKKwogMjAxOS0wOC0yNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgogCiAgICAgICAgIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGlzIGZpcmVkIHR3
aWNlIHdoZW4gZXhpdGluZyBwaWN0dXJlIGluIHBpY3R1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmIxNThiZWM1NmMxOWUy
Njk4NWRlMDI4NDg0NmM0OTIyNWRhZjJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24t
Y29tcG9zaXRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1U
aGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIHRlc3RSdW5uZXIgKG9yIGJ5IG1h
bnVhbGx5IHNldHRpbmcgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gdG8gdHJ1
ZSkuCi0KLQotRmxpcHBlZCBob3Jpem9udGFsbHkgCi1Sb3RhdGVkIDE4MMKwIAotRmxpcHBlZCB2
ZXJ0aWNhbGx5IAotCi1Sb3RhdGVkIDkwwrAgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1S
b3RhdGVkIDkwwrAgQ0NXIAotUm90YXRlZCA5MMKwIENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkg
IAotUm90YXRlZCA5MMKwIENXIAotaW1nMSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMiBzaXpl
ID0gMTAwcHggYnkgNTBweAotaW1nMyBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNCBzaXplID0g
NTBweCBieSAxMDBweAotaW1nNSBzaXplID0gNTBweCBieSAxMDBweAotaW1nNiBzaXplID0gNTBw
eCBieSAxMDBweAotaW1nNyBzaXplID0gNTBweCBieSAxMDBweApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThjZmYwOWE0NzJmNGI5MTBjMWY5ZWRlNTY1MGVl
YmEyMzA1MmRlMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKHRydWUpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLQotZnVuY3Rpb24gbG9nKHN0cikgewot
ICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hp
bGQobGkpOwotfQotCi1mdW5jdGlvbiBpbWFnZVNpemUoZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRT
dHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKLSAgICByZXR1cm4gY29tcHV0ZWRT
dHlsZS53aWR0aCArICIgYnkgIiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0
aW9uIGxvYWQoKSB7Ci0gICAgZm9yKHZhciBpID0gMTsgaSA8PSA3OyBpKyspCi0gICAgICAgIGxv
ZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VTaXplKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpbWciICsgaSkpKQotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7IC13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9Ci1kaXYgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMHB4OyB2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJs
b2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWly
IEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gd2l0aCB0ZXN0UnVu
bmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uIHRvIHRydWUpLjwvYj48YnI+PGJyPgotPGRpdj48aW1nIGlkPSJpbWcxIiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj48YnI+RmxpcHBlZCBob3Jpem9udGFs
bHk8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0zLWxyLmpwZyI+PGJyPlJvdGF0ZWQgMTgwJmRlZzs8L2Rpdj4KLTxkaXY+PGltZyBpZD0i
aW1nMyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciPjxicj5GbGlw
cGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxicj4KLTxkaXY+PGltZyBpZD0iaW1nNCIgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc1IiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IEND
VzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTctcmwuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2Fs
bHkgPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tOC1sbG8uanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+Ci08dWwg
aWQ9ImNvbnNvbGUiPjwvdWw+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwMjI0NWI2MGJiYjhkMmQxMTllOWUwN2U4MzA1
YmQ2MzExODU2MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotTm9uZSBvZiB0aGUgaW1hZ2VzIHNo
b3VsZCBiZSByb3RhdGVkLiBUaGlzIHRlc3QgaXMgb25seSB2YWxpZCB3aGVuIHJ1biB3aXRoIHRl
c3RSdW5uZXIgKG9yIHdpdGggV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gbWFu
dWFsbHkgc2V0IHRvIHRydWUpLgotCi0KLU5vcm1hbCAKLUZsaXBwZWQgaG9yaXpvbnRhbGx5IAot
Um90YXRlZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQotUm90YXRlZCA5MMKwIENDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBD
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENXIAotCi1Sb3RhdGVkIDkw
wrAgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ0NXIAotUm90YXRl
ZCA5MMKwIENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ1cgCi0KLVVu
ZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkgCi1pbWcxIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWcy
IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWczIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc0IHNp
emUgPSAxMDBweCBieSA1MHB4Ci1pbWc1IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc2IHNpemUg
PSAxMDBweCBieSA1MHB4Ci1pbWc3IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc4IHNpemUgPSAx
MDBweCBieSA1MHB4Ci1pbWc5IHNpemUgPSAxMDBweCBieSAxMDBweAotaW1nMTAgc2l6ZSA9IDEw
MHB4IGJ5IDEwMHB4Ci1pbWcxMSBzaXplID0gMTAwcHggYnkgMTAwcHgKLWltZzEyIHNpemUgPSAx
MDBweCBieSAxMDBweAotaW1nMTMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3NDE3ZjU1ODkyMTMzNjQ2ZDM4NjZhMGJhZWViMzYxNjgyZWIxZmJj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw1NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbih0cnVlKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIgbGkgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKLX0KLQotZnVu
Y3Rpb24gaW1hZ2VTaXplKGVsKSB7Ci0gICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShlbCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5
ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKLX0KLQotCi1mdW5jdGlvbiBsb2FkKCkgewotICAg
IGZvcih2YXIgaSA9IDE7IGkgPD0gMTM7IGkrKykKLSAgICAgICAgbG9nKCJpbWciICsgaSArICIg
c2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIgKyBpKSkp
Ci19Ci0KLTwvc2NyaXB0PgotPHN0eWxlPgotZGl2LmltYWdlIHsgZGlzcGxheTogaW5saW5lLWJs
b2NrOyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgfQotZGl2LmNvbnRhaW5lciB7IGRpc3BsYXk6
IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3
aWR0aDogMTAwcHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KLWltZyB7IHdpZHRoOiAxMDBweDsg
aGVpZ2h0OiAxMDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLTxiPk5vbmUgb2YgdGhlIGltYWdlcyBz
aG91bGQgYmUgcm90YXRlZC4gVGhpcyB0ZXN0IGlzIG9ubHkgdmFsaWQgd2hlbiBydW4gd2l0aCB0
ZXN0UnVubmVyIChvciB3aXRoIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIG1h
bnVhbGx5IHNldCB0byB0cnVlKS48L2I+PGJyPjxicj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWcxIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnKSI+PC9kaXY+PGJyPk5vcm1hbDwvZGl2PgotPGRp
diBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzIiIHN0eWxlPSJj
b250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rpdj48
YnI+RmxpcHBlZCBob3Jpem9udGFsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRp
diBjbGFzcz0iaW1hZ2UiIGlkPSJpbWczIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTMtbHIuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgMTgwJmRlZzs8L2Rp
dj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc0IiBz
dHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyki
PjwvZGl2Pjxicj5GbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxicj4KLTxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc1IiBzdHlsZT0iY29udGVudDogdXJs
KHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzYiIHN0eWxlPSJjb250ZW50OiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCA5
MCZkZWc7IENDVzwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFn
ZSIgaWQ9ImltZzciIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tNy1ybC5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2Ui
IGlkPSJpbWc4IiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nOSIgc3R5bGU9ImJhY2tncm91bmQtaW1h
Z2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZykiPjwvaW1nPjxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTAiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1
cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGcpIj48L2ltZz48YnI+Um90YXRl
ZCA5MCZkZWc7IENDVzwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48aW1nIGlkPSJpbWcx
MSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZykiPjwvaW1nPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVy
dGljYWxseTwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48aW1nIGlkPSJpbWcxMiIgc3R5
bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxs
by5qcGcpIj48L2ltZz48YnI+Um90YXRlZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+Ci08ZGl2IGNs
YXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMTMiIHN0eWxlPSJjb250
ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZykiPjwvZGl2Pjxicj5V
bmRlZmluZWQgKGludmFsaWQgdmFsdWUpPC9kaXY+Ci08YnI+Ci08dWwgaWQ9ImNvbnNvbGUiPjwv
dWw+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2V4aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkZjQ4ODMyM2Y0OTRhMDZiNzQ5MGFmNjAzOTdkMTRmOTIwMWFlM2FkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMg
KzAsMCBAQAotVGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVY
SUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gd2l0aCB0ZXN0UnVubmVy
IChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uIHRvIHRydWUpLgotCi0KLU5vcm1hbCAKLUZsaXBwZWQgaG9yaXpvbnRhbGx5IAotUm90YXRl
ZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQotUm90YXRlZCA5MMKwIENDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5ICAKLVJvdGF0ZWQgOTDCsCBDVyAKLQotVW5kZWZpbmVkIChpbnZh
bGlkIHZhbHVlKSAKLWltZzEgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6ZSA9IDEwMHB4
IGJ5IDUwcHgKLWltZzMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9IDEwMHB4IGJ5
IDUwcHgKLWltZzUgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzYgc2l6ZSA9IDUwcHggYnkgMTAw
cHgKLWltZzcgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzggc2l6ZSA9IDUwcHggYnkgMTAwcHgK
LWltZzkgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVudC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MzEzYmU1MjM0ZjVlMjg2
N2FkNGQ1NjAwNmE1MzVlMGVmYzZmNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1p
bWFnZS1kb2N1bWVudC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LVRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVu
dGF0aW9uLiBJbiBpbWFnZSBkb2N1bWVudHMsIHRoaXMgaGFwcGVucyBpbmRlcGVuZGVudCBvZiBX
ZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbi4KLQotICAgIAotICAgIAotIAotUEFT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1p
bWFnZS1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi1pbWFnZS1kb2N1bWVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
MjFiM2U1NThiOTQ0MDI4ZmE2ZDBmYTU5NDllNTg3NjYwYWEwOGQxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4
aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgLy8gTm90ZSB0aGF0IHRoaXMgdGVzdCBvbmx5IHBhc3NlcyBpbiBEUlQuIEluIGJy
b3dzZXJzLCB0aGUgY3Jvc3MtaWZyYW1lIGRvbSBpbnNwZWN0aW9uIHVzdWFsbHkgY2F1c2VzIGEg
c2VjdXJpdHkgZXhjZXB0aW9uLgotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLX0K
LQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3Ry
KSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
OwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5jdGlvbiBpbWFnZVNpemUo
bmFtZSkgewotICAgIHZhciBpbWcgPSB3aW5kb3cuZnJhbWVzW25hbWVdLmRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ2ltZycpOwotICAgIHJldHVybiBbaW1nLm9mZnNldFdpZHRoLCBpbWcub2Zmc2V0
SGVpZ2h0XTsKLX0KLQotCi1mdW5jdGlvbiBsb2FkKCkgewotICAgIHZhciBleHBlY3RlZCA9IFsK
LSAgICAgIFsxMDAsIDUwXSwgWzEwMCwgNTBdLCBbMTAwLCA1MF0sIFsxMDAsIDUwXSwgCi0gICAg
ICBbNTAsIDEwMF0sIFs1MCwgMTAwXSwgWzUwLCAxMDBdLCBbNTAsIDEwMF0sIAotICAgICAgWzEw
MCwgNTBdLAotICAgIF07Ci0gICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICAgIGZvcih2YXIgaSA9
IDE7IGkgPD0gOTsgaSsrKSB7Ci0gICAgICAgIHZhciBzID0gaW1hZ2VTaXplKCJpbWciICsgaSk7
Ci0gICAgICAgIGlmIChzWzBdICE9PSBleHBlY3RlZFtpIC0gMV1bMF0gfHwgc1sxXSAhPT0gZXhw
ZWN0ZWRbaSAtIDFdWzFdKQotICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgIH0KLSAg
ICBsb2coc3VjY2VzcyA/ICJQQVNTIiA6ICJGQUlMIik7Ci19Ci0KLTwvc2NyaXB0PgotPHN0eWxl
PgotaWZyYW1lIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIwcHg7IG1h
cmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiAxMTBweDsgdmVydGljYWwt
YWxpZ246IHRvcDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci08Yj5UaGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVk
IHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi4gSW4gaW1hZ2UgZG9jdW1lbnRzLCB0
aGlzIGhhcHBlbnMgaW5kZXBlbmRlbnQgb2YgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24uPC9iPjxicj48YnI+Ci08aWZyYW1lIG5hbWU9ImltZzEiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08aWZyYW1l
IG5hbWU9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciIGZy
YW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08aWZyYW1lIG5hbWU9ImltZzMiIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08aWZy
YW1lIG5hbWU9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBn
IiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGJyPgotPGlmcmFtZSBuYW1lPSJpbWc1IiBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZy
YW1lPgotPGlmcmFtZSBuYW1lPSJpbWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTYtcnUuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWc3IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIiBmcmFtZWJvcmRlcj0wPjwv
aWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWc4IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTgtbGxvLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTxpZnJhbWUgbmFt
ZT0iaW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIiBmcmFtZWJv
cmRlcj0wPjwvaWZyYW1lPgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5Pgot
PC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVu
dGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkOGM4M2IwZDVmM2VkNWRlOTMwOWI4
NjI3NGZlMTcxNGJmMDVhOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotCi1mdW5jdGlvbiBsb2coc3RyKSB7Ci0gICAg
dmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAgICBsaS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2YXIgY29uc29sZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0gICAgY29uc29sZS5hcHBlbmRDaGlsZChs
aSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewotICAgIHZhciBjb21wdXRlZFN0eWxl
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAgIHJldHVybiBjb21wdXRlZFN0eWxl
LndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7Ci19Ci0KLQotZnVuY3Rpb24g
bG9hZCgpIHsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykKLSAgICAgICAgbG9nKCJp
bWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImltZyIgKyBpKSkpCi19Ci0KLTwvc2NyaXB0PgotPHN0eWxlPgotaW1nIHsgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7IH0KLWRpdiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0
OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDogMTAwcHg7IHZlcnRpY2FsLWFsaWdu
OiB0b3A7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci08Yj5U
aGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIHRlc3RSdW5uZXIgKG9yIGJ5IG1h
bnVhbGx5IHNldHRpbmcgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gdG8gdHJ1
ZSkuPC9iPjxicj48YnI+Ci08ZGl2PjxpbWcgaWQ9ImltZzEiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciPjxicj5Ob3JtYWw8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1n
MiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+PGJyPkZsaXBwZWQg
aG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzMiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjxicj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+Ci08ZGl2
PjxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBn
Ij48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+Ci08ZGl2PjxpbWcgaWQ9ImltZzUi
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciPjxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1n
NiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyI+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNyIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi03LXJsLmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5IDwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc4IiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVzwvZGl2Pgot
PGJyPgotPGRpdj48aW1nIGlkPSJpbWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTktdS5qcGciPjxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpPC9kaXY+Ci08YnI+Ci08dWwg
aWQ9ImNvbnNvbGUiPjwvdWw+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5k
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ5YTVlZDU1MDAwOWMzNzE0MGQ4NDExNDZlYTBm
OWQ0ZjMyYzRjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAg
ICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAg
ICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAg
ICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52
ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4Owor
ICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9
Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBiYWNrZ3JvdW5kIGltYWdlcyBzaG91
bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAg
ICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5O
b3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwi
PgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwu
anBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSBy
b3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+
CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5q
cGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVn
KTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkg
cm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwi
PgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwu
anBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBk
ZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisg
ICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5k
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3Jv
dW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTljM2NhNDUzYzYxMWU0NTgxNWViNzY4YzUyNTBhMmE0MzE4
YTFhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9y
aWVudGF0aW9uLWJhY2tncm91bmQuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0
b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246
IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7CisgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgfQorICAg
IGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6
IDUwcHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4Owor
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5U
aGUgY3NzIGJhY2tncm91bmQgaW1hZ2VzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRo
ZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIg
c3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRh
bCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0yLXVyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6
IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rpdj4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIg
c3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01
LWx1LmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWlt
YWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGcpIj48L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9
ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpw
ZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVy
bChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcpIj48L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBz
dHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTkt
dS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAg
ICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWNhbnZhcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGMxMDI2ODEwNzY1NzlkNjliYzhjOTZiN2YxYWIxZjVmMzcyNzkwOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAg
IGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAg
IG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAg
ICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0K
KyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdo
dDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7
CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuZHJhd0ltYWdlKCkgc2hvdWxkIHJlc3BlY3QgdGhlIGltYWdl
IEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgt
MSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0
ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAg
ICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRhNDE4Mjc5NTc2NTZmZTZi
MzRkZjM2OGI5YjU3YzEwMDAwNGMxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMTI2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAg
ICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
dmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAg
ICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0
aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAg
IH0KKyAgICBjYW52YXMgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9
CisgICAgY2FudmFzLmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAg
IGhlaWdodDogNTBweDsKKyAgICB9CisgICAgY2FudmFzLnZlcnRpY2FsIHsKKyAgICAgICAgd2lk
dGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxib2R5
PgorICAgIDxiPkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5kcmF3SW1hZ2UoKSBzaG91bGQgcmVz
cGVjdCB0aGUgaW1hZ2UgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6
b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZh
czEiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJob3Jpem9udGFsIiBpZD0i
Y2FudmFzMiI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBo
b3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBjbGFz
cz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczMiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczQiPjwvY2FudmFzPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cyA9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0i
Y2FudmFzNSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczYiPjwvY2FudmFzPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFz
NyI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFzOCI+PC9jYW52YXM+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAg
PGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJob3Jpem9udGFsIiBpZD0i
Y2FudmFzOSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVk
IChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB2YXIgbmFtZXMgPSBbCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiwgIGlkIDogImNhbnZhczEiIH0sCisgICAgICAg
ICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBn
IiwgIGlkIDogImNhbnZhczIiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIiwgIGlkIDogImNhbnZhczMiIH0sCisgICAg
ICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9s
LmpwZyIsIGlkIDogImNhbnZhczQiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIiwgIGlkIDogImNhbnZhczUiIH0sCisg
ICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYt
cnUuanBnIiwgIGlkIDogImNhbnZhczYiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTog
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIiwgIGlkIDogImNhbnZhczciIH0s
CisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZyIsIGlkIDogImNhbnZhczgiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJj
ZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciLCAgIGlkIDogImNhbnZhczki
IH0KKyAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgIHZhciBkcmF3Q291bnQgPSAwOworCisg
ICAgICAgICAgICBuYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgICAgICAgICAg
ICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2U7CisgICAgICAgICAgICAgICAgaW1hZ2Uuc3JjID0gbmFt
ZS5yZXNvdXJjZTsKKyAgICAgICAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KG5hbWUuaWQpOworICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0
aDsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGltYWdlLmhlaWdodDsKKyAg
ICAgICAgICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsK
KyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGNhbnZh
cy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgrK2RyYXdD
b3VudCA9PSBuYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
b250ZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmll
bnRhdGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA4NWE4MjI2M2IyYmY0
MzgyODM0NDdmNWE3MmM4NDQ5ZTNkNzE1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVy
IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6
IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEw
MHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6
b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAg
fQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWln
aHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBjb250ZW50IGlt
YWdlcyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9u
LjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2Nh
bGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRh
bGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4
LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90
YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVw
eCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJv
dGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
b250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
b250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU5MThlYTMyN2JjZmViOWI4Y2NkNTdjN2E0MzgwNzU4
MWNiYTQwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0
b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246
IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAg
ICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+
Cis8Ym9keT4KKyAgICA8Yj5UaGUgY3NzIGNvbnRlbnQgaW1hZ2VzIHNob3VsZCBiZSByZW5kZXJl
ZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8
YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1h
Z2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9y
aXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0y
LXVyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJp
bWFnZSBob3Jpem9udGFsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTMtbHIuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGlj
YWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVy
dGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1y
dS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFn
ZSB2ZXJ0aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBm
bGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVy
bChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcpIj48L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBz
dHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGcpIj48
L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4K
KzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWRvY3VtZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljN2Ex
MzcxZjI3YzQ0Njg1MDZiMTQ5OTE5ZmQzMzI2MTU1MWNiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAg
ICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAg
ICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDog
NTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7Cisg
ICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1h
Z2VzIG9mIEltYWdlRG9jdW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWly
IEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgt
MSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0
ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAg
ICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyOTVmMTlkZGY3N2Nm
NjZjMzhhOTIzMDRiYzg5YjA5NzY5NTllMDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC5odG1sCkBAIC0wLDAgKzEs
MTAzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAg
ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7
CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgewor
ICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRp
di52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4
OworICAgIH0KKyAgICBpZnJhbWUgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsK
KyAgICB9CisgICAgaWZyYW1lLmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAwcHg7Cisg
ICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgaWZyYW1lLnZlcnRpY2FsIHsKKyAgICAg
ICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4K
Kzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgSW1hZ2VEb2N1bWVudHMgc2hvdWxkIGJlIHJl
bmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9u
bG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGlmcmFtZSBjbGFzcz0iaG9yaXpvbnRhbCIg
b25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0yLXVyLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBl
ZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xh
c3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj48L2lmcmFtZT4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPGlmcmFtZSBjbGFzcz0idmVydGljYWwiIG9ubG9hZD0i
b25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5q
cGciPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj48L2lmcmFtZT4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgor
ICAgICAgICAgICAgPGlmcmFtZSBjbGFzcz0idmVydGljYWwiIG9ubG9hZD0ib25GcmFtZUxvYWQo
dGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPjwvaWZyYW1l
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlmcmFtZSBjbGFz
cz0idmVydGljYWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+Cisg
ICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2Fk
KHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciPjwvaWZyYW1l
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkK
KyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAg
ICAgIHZhciBpRnJhbWVMb2FkZWRDb3VudCA9IDA7CisKKyAgICAgICAgIGZ1bmN0aW9uIG9uRnJh
bWVMb2FkKCkgeworICAgICAgICAgICAgaWYgKCsraUZyYW1lTG9hZGVkQ291bnQgPT0gOSkgewor
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4NGU4NThlMjQwMmEyMTg2ZjJiMDJiZTdjMmQwMzlhZmZk
ZWQzZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAg
ICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAg
dmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAg
ICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0
aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAg
IH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8
L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiAmbHQ7b2JqZWN0Jmd0OyBlbGVt
ZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9u
LjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2Nh
bGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRh
bGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4
LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90
YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVw
eCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJv
dGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1p
bWFnZS1vYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltYWdlLW9iamVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ZDcyODAyNTJhMDA0NjQ1NTJiOTg3
MjNlZTQwN2VmYjc2NGZkNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbApAQCAtMCwwICsxLDgyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAg
ICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAg
ICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAg
ICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52
ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4Owor
ICAgIH0KKyAgICBvYmplY3QgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAg
ICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiAmbHQ7b2JqZWN0Jmd0
OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVu
dGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPG9iamVj
dCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj48L29iamVjdD4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwi
PgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi00LWxvbC5qcGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8b2Jq
ZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUt
bHUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTYtcnUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVjdCB0
eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpw
ZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPG9i
amVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05
LXUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQg
KGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1l
bnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmQ0Njc1YTA5NGQ5M2YzMGI0MDM3OWQ5NGU4
OTZkMWI5OTliMTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEw
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAK
KyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisg
ICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsK
KyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBk
aXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJw
eDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsg
ZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9
ImltZzEiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPGltZyBpZD0iaW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVy
dGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAy
NXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1
cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNyIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc4IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250
YWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVk
IChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8dWwgaWQ9ImNvbnNv
bGUiPjwvdWw+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAg
ICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAg
ICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAg
ICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwor
ICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0KKworICAgICAg
ICAgZnVuY3Rpb24gaW1hZ2VTaXplKGluZGV4KSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaW5kZXgpOworICAgICAgICAgICAgdmFy
IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKKyAgICAg
ICAgICAgIGlmIChlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2ZXJ0
aWNhbCIpKQorICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlZFN0eWxlLmhlaWdodCArICIg
YnkgIiArIGNvbXB1dGVkU3R5bGUud2lkdGg7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRT
dHlsZS53aWR0aCArICIgYnkgIiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OworICAgICAgICB9CisK
KyAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykKKyAgICAgICAgICAgICAgICBs
b2coImltZyIgKyBpICsgIiBzaXplID0gIiArIGltYWdlU2l6ZShpKSk7CisgICAgICAgIH0pOwor
ICAgIDwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVt
ZW50LW9iamVjdC1maXQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42YTg3MjgxMmNlZTMzOWRkMzEzNDI5ZTYwNTRiNGQ5MWY3ZTYyNWFhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1n
LWVsZW1lbnQtb2JqZWN0LWZpdC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNzggQEAKKzwhRE9D
VFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1h
cmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0
aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuc3F1YXJlIHsKKyAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiAm
bHQ7aW1nJmd0OyBlbGVtZW50cyB3aXRoIG9iamVjdC1maXQgcHJvcGVydHkgc2hvdWxkIGJlIHJl
bmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJzcXVhcmUiPgorICAgICAgICAgICAgPGRpdj4KKyAgICAgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRy
YW5zbGF0ZSgwLCAyNXB4KTsiPgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJh
bnNsYXRlKDAsIDI1cHgpIHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoMCwgMjVweCkgc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCkgcm90YXRl
KDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5
bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNj
YWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zv
cm06IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmQ1MzlhNTU4ZTAxYjk1M2ZmOWM3ZjVjZmMwN2YxNzUxYmQ2N2E2MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50
LW9iamVjdC1maXQuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHls
ZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwor
ICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4
OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsK
KyAgICB9CisgICAgZGl2LnNxdWFyZSB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQor
ICAgIGltZyB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+Cisg
ICAgPGI+VGhlIGltYWdlcyBvZiAmbHQ7aW1nJmd0OyBlbGVtZW50cyB3aXRoIG9iamVjdC1maXQg
cHJvcGVydHkgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tNS1sdS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9k
aXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmU5NmM1ZGUyZGI1
Y2ViYWViODcyNGYwMzM5ZGI4Mzc0YjMyMGRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbApAQCAtMCww
ICsxLDEwMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7
CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAy
MHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBw
eDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9u
dGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0K
KyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0
OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2lt
ZyZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBv
cmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxp
bWcgaWQ9ImltZzEiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgPGltZyBpZD0iaW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0y
LXVyLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFs
bHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzMiIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxp
bWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGlj
YWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi02LXJ1LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzciIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxpbWcgaWQ9ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11Lmpw
ZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVl
KQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxp
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNv
bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29u
c29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0KKworICAgICAgICAgIGZ1bmN0aW9uIGlt
YWdlU2l6ZShlbCkgeworICAgICAgICAgICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShlbCk7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0
aCArICIgYnkgIiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OworICAgICAgICB9CisKKyAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykKKyAgICAgICAgICAgICAgICBsb2coImltZyIg
KyBpICsgIiBzaXplID0gIiArIGltYWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1n
IiArIGkpKSk7CisgICAgICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMxMGI5MmYzYWU1YTM5Y2U2M2YxMDJkMzc1MmUxNjQ2NzE0N2I1MWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1z
dmctZmVpbWFnZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0
b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGln
bjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7
CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAg
ICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGltZyB7
CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9k
eT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIFNWRyAmbHQ7ZmVpbWFnZSZndDsgZWxlbWVudHMgc2hv
dWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+Cisg
ICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7
Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkg
cm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwi
PgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwu
anBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRl
Zyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgp
IHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2Fs
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcw
ZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVwor
ICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1h
Z2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1m
ZWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRmMjdiNGI2ZjA4MTBlZjUxYmEyODU0MjA3NzhiMjNk
NzU1NmI1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWwKQEAgLTAsMCArMSwxMzYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2lu
LWJvdHRvbTogMTBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1h
bGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAx
MDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAg
ICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIHN2
ZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBzdmcuaG9y
aXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4Owor
ICAgIH0KKyAgICBzdmcudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdl
cyBvZiBTVkcgJmx0O2ZlaW1hZ2UmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNw
ZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAg
ICA8ZmlsdGVyIGlkPSJpbWcxIj4KKyAgICAgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIg
eT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciLz4KKyAgICAgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAgICAg
ICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVy
bCgjaW1nMSk7Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzIiPgorICAgICAgICAg
ICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAl
IiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIvPgorICAgICAgICAg
ICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWln
aHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWcyKTsiLz4KKyAgICAgICAgICAgIDwvc3Zn
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWczIj4KKyAgICAgICAgICAgICAgICAgICAgPGZlaW1h
Z2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciLz4KKyAgICAgICAgICAgICAgICA8L2ZpbHRlcj4K
KyAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0i
ZmlsdGVyOnVybCgjaW1nMyk7Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8ZmlsdGVyIGlk
PSJpbWc0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9
IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1s
b2wuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJl
Y3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzQpOyIv
PgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxzdmcg
Y2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWc1Ij4KKyAg
ICAgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdo
dD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciLz4KKyAg
ICAgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAw
JSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVybCgjaW1nNSk7Ii8+CisgICAgICAgICAg
ICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3Zn
IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNiI+Cisg
ICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWln
aHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIi8+Cisg
ICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzYpOyIvPgorICAgICAgICAg
ICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IEND
VworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAg
ICAgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWc3Ij4KKyAgICAgICAgICAgICAgICAgICAgPGZl
aW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciLz4KKyAgICAgICAgICAgICAgICA8L2ZpbHRl
cj4KKyAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHls
ZT0iZmlsdGVyOnVybCgjaW1nNyk7Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAg
ICAgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWc4Ij4KKyAgICAgICAgICAgICAgICAgICAgPGZl
aW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0
ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5
bGU9ImZpbHRlcjp1cmwoI2ltZzgpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6
b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICAgICAgPGZpbHRlciBpZD0iaW1nOSI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9
IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTktdS5qcGciLz4KKyAgICAgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAg
ICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVy
OnVybCgjaW1nOSk7Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MThm
OWRkNTBjZjU2NjEzN2ZhMDFmZmMwNGFmZjAwZjBhMjA4MmYxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAg
ZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAg
bWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAg
ICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQor
ICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0
OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsK
KyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVy
OiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBp
bWFnZXMgb2YgU1ZHICZsdDtpbWFnZSZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJl
c3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpv
bnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2Fs
ZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IEND
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNj
YWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZh
bGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZmU3NWIxNmMwMzYzYTA3OTEwOGIyODEzZTg5OWE2MmNkMDE2MDQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdl
Lmh0bWwKQEAgLTAsMCArMSwxMDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKworICAg
IGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1
MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgc3ZnIHsKKyAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgfQorICAgIHN2Zy5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIHN2Zy52ZXJ0aWNh
bCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0K
Kzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIFNWRyAmbHQ7aW1hZ2UmZ3Q7
IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50
YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8c3ZnIGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhl
aWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciLz4K
KyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+Cisg
ICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8
aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNC1sb2wuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwi
PgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgICAgIDxp
bWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi01LWx1LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2Fs
Ij4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8
aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNy1ybC5qcGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2Pgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAg
PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDEyODllZTZjMThiZDU4MTdmZGEzYzdhMDFhYTM0OTM5M2U2MDdjOGIuLjBjYzY1YWFl
ZjE0ZGNiN2EwYWRjYmYwODIwZGU5YzFjNjlhYTBkYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTI1LDggKzI5MjUsNiBAQCB3ZWJraXQub3JnL2Iv
MTIwNTk2IGNzczMvbWFza2luZy9tYXNrLXJlcGVhdC1zcGFjZS1jb250ZW50Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdQogCiB3ZWJraXQub3JnL2IvMTIwODM5IGxlZ2FjeS1hbmltYXRpb24tZW5naW5l
L2FuaW1hdGlvbnMvY3Jvc3MtZmFkZS1iYWNrZ3JvdW5kLWltYWdlLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzEyMTkwNSBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE4MDU4MSBjc3MzL3NoYXBlcy9z
aGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1tYXJnaW4tMDAxLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8xODA1ODEgY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS92YWx1ZXMvc2hhcGUt
b3V0c2lkZS1jaXJjbGUtMDA0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODA1ODEg
Y3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS92YWx1ZXMvc2hhcGUtb3V0c2lkZS1jaXJjbGUtMDA1
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMzNiZjZiNzYzODA2ZjMwZTlhN2YzMmYxMTAyZTU4Y2YxMmZjMzU4NS4uZDM1MDQ3
YTAzNzM0YmYyMzdjMjAzMzg0ZjYxYzcwY2U3MzQ1MjdjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI4MTEsMTEgKzI4MTEsOSBAQCBmYXN0L2hpc3Rv
cnkvbG9jYXRpb24tcmVwbGFjZS1oYXNoLmh0bWwgWyBTa2lwIF0KIGZhc3QvaGlzdG9yeS9zYXZl
cy1zdGF0ZS1hZnRlci1mcmFnbWVudC1uYXYuaHRtbCBbIFNraXAgXQogCiBmYXN0L2ltYWdlcy9p
bWFnZS1jb250cm9scy1iYXNpYy5odG1sIFsgRmFpbHVyZSBdCi1mYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0MDUx
NiBbIERlYnVnIF0gZmFzdC9pbWFnZXMvbGFyZ2Utc2l6ZS1pbWFnZS1jcmFzaC5odG1sIFsgU2tp
cCBdICAjIENyYXNoaW5nCiBmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2Utd2l0aC1hbm5vdGF0aW9u
cy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L2ltYWdlcy9zdXBwb3J0LWJyb2tlbi1p
bWFnZS1kZWxlZ2F0ZS5odG1sIFsgRmFpbHVyZSBdCi1mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAogZmFzdC9pbmxpbmUvcG9zaXRpb25lZExpZmV0aW1lLmh0
bWwgWyBGYWlsdXJlIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377444</attachid>
            <date>2019-08-28 08:38:37 -0700</date>
            <delta_ts>2019-08-28 15:23:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201123-20190828083833.patch</filename>
            <type>text/plain</type>
            <size>262431</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAzYWZmMDEyMzVmNjAx
MTU4ZWY4MWM5MzU1ZDFhYTEwOTFhY2M5MS4uMWUzOGM3ZDM2NGVlM2JkNTMzMmY1ODEwYzhmM2Vh
ZjcxNjY0M2EyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1MiBAQAorMjAxOS0wOC0yOCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEVYSUYg
b3JpZW50YXRpb24gc2hvdWxkIGJlIHJlc3BlY3RlZCB3aGVuIHJlbmRlcmluZyBpbWFnZXMgCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDExMjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtLSBJbWFnZTo6
c2l6ZSgpIHdpbGwgcmV0dXJuIHRoZSByZW5kZXJlZCBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZQor
ICAgICAgICAgICBvcmllbnRhdGlvbi4gVGhlIGxvdyBsZXZlbCBBUElzIG1pZ2h0IHRyYW5zcG9z
ZSB0aGUgc2l6ZSBqdXN0IGJlZm9yZQorICAgICAgICAgICBjYWxsaW5nIHRoZSBzeXN0ZW0gQVBJ
IHRvIGRyYXcgdGhlIGltYWdlLgorCisgICAgICAgIC0tIFJlbmRlckVsZW1lbnQ6OmltYWdlT3Jp
ZW50YXRpb24oKSB3aWxsIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UKKyAgICAg
ICAgICAgZm9yIGFsbCBpbWFnZXMgYW5kIGZvciBhbGwgcG9ydHMgdGlsbCB0aGUgY3NzIGltYWdl
LW9yaWVudGF0aW9uIHNwZWNzCisgICAgICAgICAgIGlzIGZpbmFsaXplZC4KKworICAgICAgICAt
LSBUaGUgZGVmYXVsdCBvZiBJbWFnZU9yZWluZXRhdGlvbiBhcmd1bWVudCBvZiBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZSgpCisgICAgICAgICAgIHdpbGwgYmUgY2hhbmdlZCB0byB7IEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZSB9LgorCisgICAgICAgIC0tIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoK
KyAgICAgICAgICAgRnJvbUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3
VGlsZWRJbWFnZSgpLgorCisgICAgICAgIC0tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmRyYXdJbWFnZSgpIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoKKyAgICAgICAgICAgRnJv
bUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KKworICAg
ICAgICBUZXN0czogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVu
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFn
ZS1vYmplY3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbAorCisgICAgICAg
ICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
ZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VG
cmFtZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemVS
ZXNwZWN0aW5nT3JpZW50YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9j
dW1lbnRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpzaXpl
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjppbWFnZU9y
aWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAq
IHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFn
ZUZvckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUZvckNvbnRhaW5l
cjo6c2l6ZSBjb25zdCk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFp
bmVyLmg6CisKKzIwMTktMDgtMjcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFw
cGxlLmNvbT4KKworICAgICAgICBBbGwgaW1hZ2UgZHJhd2luZyBmdW5jdGlvbnMgc2hvdWxkIHRh
a2UgYW4gYXJndW1lbnQgb2YgdHlwZSBJbWFnZVBhaW50aW5nT3B0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMDU5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaDoKKyAgICAg
ICAgLS0gQWxsIHRoZSBpbWFnZSBkcmF3aW5nIGZ1bmN0aW9uIHdpbGwgdGFrZSBhbiBhcmd1bWVu
dCBvZiB0eXBlCisgICAgICAgICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIGluc3RlYWQgb2YgcGFz
c2luZyBpbmRpdmlkdWFsIG9wdGlvbnMuCisKKyAgICAgICAgLS0gSW1hZ2VQYWludGluZ09wdGlv
bnMgaXMgbWFkZSBsaWtlIGEgc2V0IG9mIG9wdGlvbnMuIEl0IGNhbiBiZQorICAgICAgICAgICBp
bml0aWFsaXplZCB3aXRoIGFueSBudW1iZXIgb2Ygb3B0aW9ucyBhbmQgdGhlIG9yZGVyIGRvZXMg
bm90IG1hdHRlcgorCisgICAgICAgIC0tIEltYWdlOjpvcmlnaW5hbFNpemUoKSBpcyBkZWxldGVk
IGJlY2F1c2UgaXQgcmV0dXJucyBzaXplKCkgYW5kIG5vbmUKKyAgICAgICAgICAgb2YgdGhlIElt
YWdlIGNvbmNyZXRlIGNsYXNzZXMgb3ZlcnJpZGVzIHRoaXMgaW1wbGVtZW50YXRpb24uCisKKyAg
ICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQml0bWFwOjpjcmVhdGVQcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlQml0bWFwOjpjcmVhdGVGcm9tQnVmZmVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpkcmF3
SW1hZ2VUb0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZTo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3UGF0dGVybik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkcmF3Q3Jvc3NmYWRlU3ViaW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0N1
c3RvbVBhaW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tUGFpbnRJbWFnZTo6
ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21QYWludEltYWdlOjpkcmF3UGF0dGVybik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHZW5lcmF0ZWRJbWFnZTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmF0ZWRJbWFn
ZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnRJbWFnZTo6ZHJhdyk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFkaWVudEltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxl
ZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlQnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0lt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZVBhaW50aW5nT3B0aW9uczo6SW1hZ2VQYWludGluZ09wdGlvbnMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OnVzZXNEZWZhdWx0SW50ZXJw
b2xhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJ
bXBsOjpkcmF3SW1hZ2VJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dElt
cGw6OmRyYXdUaWxlZEltYWdlSW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZTo6ZHJhd1RpbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpjb21wdXRl
SW50cmluc2ljRGltZW5zaW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhd1RpbGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpvcmlnaW5hbFNpemUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6
ZHJhd1BhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1p
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQYWludGluZ09wdGlvbnM6OkltYWdlUGFp
bnRpbmdPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zOjpj
b21wb3NpdGVPcGVyYXRvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9uczo6YmxlbmRNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlUGFpbnRp
bmdPcHRpb25zOjpkZWNvZGluZ01vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VQ
YWludGluZ09wdGlvbnM6Om9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlUGFpbnRpbmdPcHRpb25zOjppbnRlcnBvbGF0aW9uUXVhbGl0eSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVBhaW50aW5nT3B0aW9uczo6c2V0T3B0aW9uKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpk
cmF3U2hhZG93TGF5ZXJCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdTaGFk
b3dJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZHJhd05hdGl2ZUltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhaXJvOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdDb25zdW1pbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFn
ZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6ZHJhd0NvbnN1bWluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZE
b2N1bWVudEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBERkRvY3VtZW50SW1hZ2U6OmRy
YXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjpE
cmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRp
dmVJbWFnZTo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdQYXR0ZXJuOjpEcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd1BhdHRlcm46OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3UGF0dGVybjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3UGF0dGVybjo6RHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZFQmxlbmQ6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
RUNvbXBvc2l0ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9P
cGVyYXRpb25SZWNvcmRlci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJl
Y29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoTmljb3NpYTo6Q2Fpcm9PcGVyYXRp
b25SZWNvcmRlcjo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpcmVjdDJEOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGly
ZWN0MkQ6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRGly
ZWN0MkRPcGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dEltcGxEaXJlY3QyRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9JbWFnZUNHV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpnZXRIQklU
TUFQT2ZTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRj
aGluZ1NvdXJjZVNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNh
aXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpnZXRIQklUTUFQT2ZT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRjaGluZ1Nv
dXJjZVNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9OYXRpdmVJbWFnZURp
cmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEZpbGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50
U25hcHNob3RJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckltYWdlOjpwYWludEludG9SZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWludFNu
YXBzaG90dGVkUGx1Z2luT3ZlcmxheSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkcmF3Rm9yQ29udGFpbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHSW1hZ2U6OmRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ltYWdlOjpkcmF3KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKKyAg
ICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHSW1hZ2VGb3JDb250YWluZXI6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VGb3JDb250YWluZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBzdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaDoKKwogMjAxOS0wOC0yNyAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4gIGFuZCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWpp
aUBzb255LmNvbT4KIAogICAgICAgICBNYWtlIEZyYW1lTG9hZGVyOjpvcGVuKCkgc2V0IG91dGdv
aW5nIHJlZmVycmVyIHByb3Blcmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0Y2U2ZjliYzk3NTZkMTcxZDVhMWJm
MDBjYzAyZjg4ZWEyNWUyMmQuLjQ0NTJlNWZmOTU3ZmIyYzU1NjI4MzI5ZDVkN2I0YTRhZDRkZDFj
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDgtMjcgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBBbGwgaW1hZ2UgZHJhd2lu
ZyBmdW5jdGlvbnMgc2hvdWxkIHRha2UgYW4gYXJndW1lbnQgb2YgdHlwZSBJbWFnZVBhaW50aW5n
T3B0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAxMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKSBub3cgdGFrZXMgYW4gSW1hZ2VQYWludGluZ09w
dGlvbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OmltYWdlUG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTktMDgt
MjcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIHRv
IHVzZSBWTSYgaW5zdGVhZCBvZiBWTSogYXQgYXMgbWFueSBwbGFjZXMgYXMgcG9zc2libGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCA1ZDk2MTZhNDU2MjZmNTU2YzAwMTZlMmEzNDI0ZDRmNGU5MDQy
NDYyLi5iZTg1NjRlYTg3MmMyMWMyMTNiYTliMWQyYWMyZmJkMGE0YmE0MmMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTEwNjQsNiArMTA2NCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZU9ic2VydmVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZU9yaWVudGF0aW9uLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9u
cy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlVHlwZXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFj
a1ByaXZhdGUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDk3YTkwYjI5YTE2Nzk2ODUwNDU1YTJhN2MzNjk1YWQ3MDg3NWY3MjMu
LjE4YWJhNWNhYmM3ZDdkMzc1N2UxMDAwNGRlMGNkMDI4MzVhZmY1MmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwODQsNiAr
MjA4NCw3IEBACiAJCTcyMTQ0MzMyMjIzRUM4NUYwMEYxMkZGNyAvKiAobnVsbCkgaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzIxNDQzMzMyMjNFQzhCMDAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2
MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjE0NDMzNDIyM0VDOTE2MDBGMTJGRjcgLyog
U1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTVFRTUzNjAyMjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjI4M0Yw
RTIzMEIyNjhDMDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNGMjMwQjA0QjcwMDY4NDdD
NyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJs
ZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9Owog
CQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAwQTkx
RkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0
ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9i
c2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTk0MTksNiArOTQyMCw3IEBACiAJCTcyN0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRz
UkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTgg
LyogRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAv
KiBFWFRzUkdCLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdl
UGFpbnRpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUGFpbnRpbmdPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYxMUEyRThEMkYwMDRDNTYyQSAv
KiBKU0VYVHNSR0IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNF
WFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjIxQTJFOEQy
RjAwNEM1NjJBIC8qIEpTRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0VYVHNSR0IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJGMUFEOUYxQTM5
MDRDMzAwMDE0RTE4IC8qIEVYVEZyYWdEZXB0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFWFRGcmFnRGVwdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjQ1NTgsNiArMjQ1NjAsNyBAQAogCQkJCTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAv
KiBJbWFnZUZyYW1lLmggKi8sCiAJCQkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdl
T2JzZXJ2ZXIuaCAqLywKIAkJCQlBODc0OEQ2NjEyQ0MzNzYzMDAxRkJBNDEgLyogSW1hZ2VPcmll
bnRhdGlvbi5oICovLAorCQkJCTcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50
aW5nT3B0aW9ucy5oICovLAogCQkJCTQ5MjkxRTRBMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJl
bmRlcmluZ01vZGUuaCAqLywKIAkJCQk1NTQ2NzU3NzFGRDFGQzFBMDAzQjEwQjAgLyogSW1hZ2VT
b3VyY2UuY3BwICovLAogCQkJCTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNvdXJj
ZS5oICovLApAQCAtMjk1NzcsNiArMjk1ODAsNyBAQAogCQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4
MkM4MyAvKiBJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RjQ0QTgwQjlFMzI0
RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENUE1OTMx
MTUyNTI1RDAwMDM2RUU1MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3MjI4M0YwRTIzMEIyNjhDMDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUI1MUEyRjNGMTdEN0QzQUUwMDcyNTE3QSAvKiBJbWFnZVF1YWxpdHlD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUzREUg
LyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDI3QUU1MDIyQTk4
Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCmluZGV4IDYzMWZhZTcyYjEwMzFhNjUyMDRlNzlm
Y2JhNWMzNmM2ZDliMDkwNTMuLjZiMGM3YTNkNjdjZGM3YTViYjVkZTI5ODRjZDJiYTU1ZGYzMDI3
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC0zMjMsMTAgKzMyMyw3IEBA
IHZvaWQgSW1hZ2VCaXRtYXA6OmNyZWF0ZVByb21pc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50CiAgICAgfQogCiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0
KEZsb2F0UG9pbnQoKSwgb3V0cHV0U2l6ZSk7Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgcGFp
bnRpbmdPcHRpb25zOwotICAgIHBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5
ID0gaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVh
bGl0eSk7Ci0KLSAgICBiaXRtYXBEYXRhLT5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWFnZUZvclJl
bmRlciwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgcGFp
bnRpbmdPcHRpb25zKTsKKyAgICBiaXRtYXBEYXRhLT5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWFn
ZUZvclJlbmRlciwgZGVzdFJlY3QsIHNvdXJjZVJlY3RhbmdsZS5yZWxlYXNlUmV0dXJuVmFsdWUo
KSwgeyBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6ZVF1YWxpdHkob3B0aW9ucy5yZXNpemVR
dWFsaXR5KSB9KTsKIAogICAgIC8vIDcuIENyZWF0ZSBhIG5ldyBJbWFnZUJpdG1hcCBvYmplY3Qu
CiAgICAgYXV0byBpbWFnZUJpdG1hcCA9IGNyZWF0ZShXVEZNb3ZlKGJpdG1hcERhdGEpKTsKQEAg
LTM3MywxMCArMzcwLDcgQEAgdm9pZCBJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW4KICAgICB9CiAKICAgICBG
bG9hdFJlY3QgZGVzdFJlY3QoRmxvYXRQb2ludCgpLCBvdXRwdXRTaXplKTsKLSAgICBJbWFnZVBh
aW50aW5nT3B0aW9ucyBwYWludGluZ09wdGlvbnM7Ci0gICAgcGFpbnRpbmdPcHRpb25zLm1faW50
ZXJwb2xhdGlvblF1YWxpdHkgPSBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclJlc2l6ZVF1YWxpdHko
b3B0aW9ucy5yZXNpemVRdWFsaXR5KTsKLQotICAgIGJpdG1hcERhdGEtPmNvbnRleHQoKS5kcmF3
SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwgc291cmNlUmVjdGFuZ2xlLnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpLCBwYWludGluZ09wdGlvbnMpOworICAgIGJpdG1hcERhdGEtPmNvbnRleHQo
KS5kcmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwgc291cmNlUmVjdGFuZ2xlLnJl
bGVhc2VSZXR1cm5WYWx1ZSgpLCB7IGludGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVhbGl0
eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpIH0pOwogCiAgICAgLy8gMy4gQ3JlYXRlIGEgbmV3IElt
YWdlQml0bWFwIG9iamVjdC4KICAgICBhdXRvIGltYWdlQml0bWFwID0gY3JlYXRlKFdURk1vdmUo
Yml0bWFwRGF0YSkpOwpAQCAtNDg0LDEwICs0NzgsNyBAQCB2b2lkIEltYWdlQml0bWFwOjpjcmVh
dGVQcm9taXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8SW1hZ2VCaXRtYXA+JiBl
eAogICAgIGF1dG8gaW1hZ2VGb3JSZW5kZXIgPSBleGlzdGluZ0ltYWdlQml0bWFwLT5idWZmZXIo
KS0+Y29weUltYWdlKCk7CiAKICAgICBGbG9hdFJlY3QgZGVzdFJlY3QoRmxvYXRQb2ludCgpLCBv
dXRwdXRTaXplKTsKLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBwYWludGluZ09wdGlvbnM7Ci0g
ICAgcGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkgPSBpbnRlcnBvbGF0aW9u
UXVhbGl0eUZvclJlc2l6ZVF1YWxpdHkob3B0aW9ucy5yZXNpemVRdWFsaXR5KTsKLQotICAgIGJp
dG1hcERhdGEtPmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0UmVjdCwg
c291cmNlUmVjdGFuZ2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBwYWludGluZ09wdGlvbnMpOwor
ICAgIGJpdG1hcERhdGEtPmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltYWdlRm9yUmVuZGVyLCBkZXN0
UmVjdCwgc291cmNlUmVjdGFuZ2xlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCB7IGludGVycG9sYXRp
b25RdWFsaXR5Rm9yUmVzaXplUXVhbGl0eShvcHRpb25zLnJlc2l6ZVF1YWxpdHkpIH0pOwogCiAg
ICAgLy8gMy4gQ3JlYXRlIGEgbmV3IEltYWdlQml0bWFwIG9iamVjdC4KICAgICBhdXRvIGltYWdl
Qml0bWFwID0gY3JlYXRlKFdURk1vdmUoYml0bWFwRGF0YSkpOwpAQCAtNjUxLDEwICs2NDIsNyBA
QCB2b2lkIEltYWdlQml0bWFwOjpjcmVhdGVGcm9tQnVmZmVyKAogICAgIH0KIAogICAgIEZsb2F0
UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIG91dHB1dFNpemUpOwotICAgIEltYWdlUGFpbnRp
bmdPcHRpb25zIHBhaW50aW5nT3B0aW9uczsKLSAgICBwYWludGluZ09wdGlvbnMubV9pbnRlcnBv
bGF0aW9uUXVhbGl0eSA9IGludGVycG9sYXRpb25RdWFsaXR5Rm9yUmVzaXplUXVhbGl0eShvcHRp
b25zLnJlc2l6ZVF1YWxpdHkpOwotCi0gICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFn
ZSgqaW1hZ2UsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCks
IHBhaW50aW5nT3B0aW9ucyk7CisgICAgYml0bWFwRGF0YS0+Y29udGV4dCgpLmRyYXdJbWFnZSgq
aW1hZ2UsIGRlc3RSZWN0LCBzb3VyY2VSZWN0YW5nbGUucmVsZWFzZVJldHVyblZhbHVlKCksIHsg
aW50ZXJwb2xhdGlvblF1YWxpdHlGb3JSZXNpemVRdWFsaXR5KG9wdGlvbnMucmVzaXplUXVhbGl0
eSkgfSk7CiAKICAgICBhdXRvIGltYWdlQml0bWFwID0gY3JlYXRlKFdURk1vdmUoYml0bWFwRGF0
YSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCmluZGV4IDMwMjlmN2RmODljMzYxMDQxNWRkYzZl
NDAyMDgwMmJmYTI5M2Y0NzcuLjdjNzlkZjY2YTAwMWI2OTA0OGMzYmMzMjIwNDE3ZDQyYWU1N2Rh
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBAIC0xNTc3LDE5ICsxNTc3LDIxIEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShEb2N1
bWVudCYgZG9jdW1lbnQsIENhCiAgICAgICAgICAgICBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVh
dGUoaW1hZ2UtPm5hdGl2ZUltYWdlKCkpOwogICAgICAgICBkb3duY2FzdDxCaXRtYXBJbWFnZT4o
KmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3MoZG9jdW1lbnQuc2V0dGluZ3MoKSk7CiAgICAgfQor
ICAgIAorICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMgPSB7IG9wLCBibGVuZE1vZGUs
IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9OwogCiAgICAgaWYgKHJlY3RDb250YWluc0Nh
bnZhcyhub3JtYWxpemVkRHN0UmVjdCkpIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwg
bm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9u
cyhvcCwgYmxlbmRNb2RlKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6
ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERyYXdF
bnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2UgaWYgKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUo
b3ApKSB7CiAgICAgICAgIGZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdlKCppbWFnZSwgbm9y
bWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CiAgICAgICAgIGRpZERyYXdF
bnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2UgaWYgKG9wID09IENvbXBvc2l0ZUNvcHkpIHsKICAg
ICAgICAgY2xlYXJDYW52YXMoKTsKLSAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFs
aXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcCwg
YmxlbmRNb2RlKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RS
ZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVD
YW52YXMoKTsKICAgICB9IGVsc2UgewotICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3Jt
YWxpemVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9w
LCBibGVuZE1vZGUpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERz
dFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhdyhub3Jt
YWxpemVkRHN0UmVjdCk7CiAgICAgfQogICAgIApAQCAtMTYzNyw3ICsxNjM5LDcgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKEhUTUxD
YW52YXNFbGVtZW50JiBzb3UKICNlbmRpZgogCiAgICAgaWYgKHJlY3RDb250YWluc0NhbnZhcyhk
c3RSZWN0KSkgewotICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwg
c3JjUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0
YXRlKCkuZ2xvYmFsQmxlbmQpKTsKKyAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIs
IGRzdFJlY3QsIHNyY1JlY3QsIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xv
YmFsQmxlbmQgfSk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2Ug
aWYgKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUpKSB7
CiAgICAgICAgIGZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdlKCpidWZmZXIsIGRzdFJlY3Qs
IHNyY1JlY3QsIHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlKTsKQEAgLTE2NDYsMTUgKzE2NDgsMTUg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0lt
YWdlKEhUTUxDYW52YXNFbGVtZW50JiBzb3UKICAgICAgICAgaWYgKCZzb3VyY2VDYW52YXMgPT0g
JmNhbnZhc0Jhc2UoKSkgewogICAgICAgICAgICAgaWYgKGF1dG8gY29weSA9IGJ1ZmZlci0+Y29w
eVJlY3RUb0J1ZmZlcihzcmNSZWN0LCBDb2xvclNwYWNlU1JHQiwgKmMpKSB7CiAgICAgICAgICAg
ICAgICAgY2xlYXJDYW52YXMoKTsKLSAgICAgICAgICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIo
KmNvcHksIGRzdFJlY3QsIHsgeyB9LCBzcmNSZWN0LnNpemUoKSB9LCBJbWFnZVBhaW50aW5nT3B0
aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCkpOworICAg
ICAgICAgICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqY29weSwgZHN0UmVjdCwgeyB7IH0sIHNy
Y1JlY3Quc2l6ZSgpIH0sIHsgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUsIHN0YXRlKCkuZ2xvYmFs
QmxlbmQgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBj
bGVhckNhbnZhcygpOwotICAgICAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZmZXIsIGRz
dFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFsQ29tcG9z
aXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgICAgICBjLT5kcmF3SW1hZ2VCdWZm
ZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwg
c3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgfQogICAgICAgICBkaWREcmF3RW50aXJl
Q2FudmFzKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKCpidWZm
ZXIsIGRzdFJlY3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKHN0YXRlKCkuZ2xvYmFs
Q29tcG9zaXRlLCBzdGF0ZSgpLmdsb2JhbEJsZW5kKSk7CisgICAgICAgIGMtPmRyYXdJbWFnZUJ1
ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCB7IHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRl
LCBzdGF0ZSgpLmdsb2JhbEJsZW5kIH0pOwogICAgICAgICBkaWREcmF3KGRzdFJlY3QpOwogICAg
IH0KIApAQCAtMTczNSwxNyArMTczNywxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoSW1hZ2VCaXRtYXAmIGltYWdlQml0bQogICAg
IGNoZWNrT3JpZ2luKCZpbWFnZUJpdG1hcCk7CiAKICAgICBpZiAocmVjdENvbnRhaW5zQ2FudmFz
KGRzdFJlY3QpKSB7Ci0gICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0
LCBzcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwg
c3RhdGUoKS5nbG9iYWxCbGVuZCkpOworICAgICAgICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZl
ciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5n
bG9iYWxCbGVuZCB9KTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxz
ZSBpZiAoaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkp
IHsKICAgICAgICAgZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoKmJ1ZmZlciwgZHN0UmVj
dCwgc3JjUmVjdCwgc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUpOwogICAgICAgICBkaWREcmF3RW50
aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBD
b21wb3NpdGVDb3B5KSB7CiAgICAgICAgIGNsZWFyQ2FudmFzKCk7Ci0gICAgICAgIGMtPmRyYXdJ
bWFnZUJ1ZmZlcigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9u
cyhzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCkpOworICAgICAg
ICBjLT5kcmF3SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgp
Lmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgZGlkRHJh
d0VudGlyZUNhbnZhcygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGMtPmRyYXdJbWFnZUJ1ZmZl
cigqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhzdGF0ZSgp
Lmdsb2JhbENvbXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCkpOworICAgICAgICBjLT5kcmF3
SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENv
bXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgZGlkRHJhdyhkc3RSZWN0
KTsKICAgICB9CiAKQEAgLTE4MzQsMTQgKzE4MzYsMTQgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlOjpjb21wb3NpdGVCdWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZlciwgY29uc3Qg
SW4KICAgICBjLT5yZXN0b3JlKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRyYXdJbWFnZVRvQ29udGV4
dChJbWFnZSYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCitzdGF0
aWMgdm9pZCBkcmF3SW1hZ2VUb0NvbnRleHQoSW1hZ2UmIGltYWdlLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIGNvbnRleHQuZHJhd0lt
YWdlKGltYWdlLCBkZXN0LCBzcmMsIG9wKTsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwg
ZGVzdCwgc3JjLCBvcHRpb25zKTsKIH0KIAotc3RhdGljIHZvaWQgZHJhd0ltYWdlVG9Db250ZXh0
KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRv
ciBvcCkKK3N0YXRpYyB2b2lkIGRyYXdJbWFnZVRvQ29udGV4dChJbWFnZUJ1ZmZlciYgaW1hZ2VC
dWZmZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyYywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMp
CiB7Ci0gICAgY29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIGRlc3QsIHNyYywg
b3ApOworICAgIGNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBkZXN0LCBzcmMs
IG9wdGlvbnMpOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREJhc2U6OmZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdlKFQmIGltYWdlLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRv
ciBvcCkKQEAgLTE4NzAsNyArMTg3Miw3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hCiAgICAg
YnVmZmVyLT5jb250ZXh0KCkudHJhbnNsYXRlKC10cmFuc2Zvcm1lZEFkanVzdGVkUmVjdC5sb2Nh
dGlvbigpKTsKICAgICBidWZmZXItPmNvbnRleHQoKS50cmFuc2xhdGUoY3JvcHBlZE9mZnNldCk7
CiAgICAgYnVmZmVyLT5jb250ZXh0KCkuY29uY2F0Q1RNKGVmZmVjdGl2ZVRyYW5zZm9ybSk7Ci0g
ICAgZHJhd0ltYWdlVG9Db250ZXh0KGltYWdlLCBidWZmZXItPmNvbnRleHQoKSwgYWRqdXN0ZWRE
ZXN0LCBzcmMsIENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIGRyYXdJbWFnZVRvQ29udGV4dChp
bWFnZSwgYnVmZmVyLT5jb250ZXh0KCksIGFkanVzdGVkRGVzdCwgc3JjLCB7IENvbXBvc2l0ZVNv
dXJjZU92ZXIgfSk7CiAKICAgICBjb21wb3NpdGVCdWZmZXIoKmJ1ZmZlciwgYnVmZmVyUmVjdCwg
b3ApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5k
ZXggZWY5M2IzNTFlNzkxZDUyN2RhZTgwZjg3YzUyNWE3ZGMxNGU3ZTQyMC4uY2VmYmUzMmI1NmE2
ZGVjYTVjOTExMzQ4ZWFiMTBiMTA2NmM5ZWRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0yODAsMTMgKzI4MCwxMCBAQCBGbG9hdFNpemUgQ2Fj
aGVkSW1hZ2U6OmltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRl
cmVyLCBTaXplVAogICAgIGlmICghbV9pbWFnZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAg
IGlmIChpczxCaXRtYXBJbWFnZT4oKm1faW1hZ2UpICYmIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5p
bWFnZU9yaWVudGF0aW9uKCkgPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKQotICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCptX2ltYWdlKS5zaXplUmVzcGVjdGluZ09y
aWVudGF0aW9uKCk7Ci0KICAgICBpZiAoaXM8U1ZHSW1hZ2U+KCptX2ltYWdlKSAmJiBzaXplVHlw
ZSA9PSBVc2VkU2l6ZSkKICAgICAgICAgcmV0dXJuIG1fc3ZnSW1hZ2VDYWNoZS0+aW1hZ2VTaXpl
Rm9yUmVuZGVyZXIocmVuZGVyZXIpOwogCi0gICAgcmV0dXJuIG1faW1hZ2UtPnNpemUoKTsKKyAg
ICByZXR1cm4gbV9pbWFnZS0+c2l6ZShyZW5kZXJlciA/IHJlbmRlcmVyLT5pbWFnZU9yaWVudGF0
aW9uKCkgOiBJbWFnZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkpOwog
fQogCiBMYXlvdXRTaXplIENhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlcihjb25zdCBS
ZW5kZXJFbGVtZW50KiByZW5kZXJlciwgZmxvYXQgbXVsdGlwbGllciwgU2l6ZVR5cGUgc2l6ZVR5
cGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAKaW5kZXggYjJiZDQ3Y2IxNjE0Y2RhZTVkODllZWExN2I0MmM0Nzg2YmMyZDliMS4u
NjI2NTA0MDc4Yjc5MDM3Yzg4YzJlNWQwNzhhMGUxYWY4YjE1ZjBjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMTEyLDcgKzEx
Miw3IEBAIEVuY29kZWREYXRhU3RhdHVzIEJpdG1hcEltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFs
bERhdGFSZWNlaXZlZCkKICAgICBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID0gRGVjb2Rp
bmdTdGF0dXM6OkludmFsaWQ7CiAgICAgcmV0dXJuIG1fc291cmNlLT5kYXRhQ2hhbmdlZChkYXRh
KCksIGFsbERhdGFSZWNlaXZlZCk7CiB9Ci0gICAgCisKIHZvaWQgQml0bWFwSW1hZ2U6OnNldEN1
cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzSWZOZWNlc3NhcnkoRGVjb2RpbmdTdGF0dXMgZGVjb2Rp
bmdTdGF0dXMpCiB7CiAgICAgLy8gV2hlbiBuZXcgZGF0YSBpcyByZWNlaXZlZCwgbV9jdXJyZW50
RnJhbWVEZWNvZGluZ1N0YXR1cyBpcyBzZXQgdG8gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQKQEAg
LTE4Myw3ICsxODMsNyBAQCBib29sIEJpdG1hcEltYWdlOjpub3RTb2xpZENvbG9yKCkKIH0KICNl
bmRpZgogCi1JbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgbW9kZSwgRGVjb2RpbmdNb2Rl
IGRlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK0ltYWdlRHJhd1Jl
c3VsdCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKGRlc3RSZWN0LmlzRW1wdHkoKSB8
fCBzcmNSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlk
Tm90aGluZzsKQEAgLTE5Niw3ICsxOTYsNyBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6
OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogICAg
IExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDogJXMgW3N1YnNhbXBsaW5n
TGV2ZWwgPSAlZCBzY2FsZUZhY3RvckZvckRyYXdpbmcgPSAoJS40ZiwgJS40ZildIiwgX19GVU5D
VElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdGF0aWNf
Y2FzdDxpbnQ+KG1fY3VycmVudFN1YnNhbXBsaW5nTGV2ZWwpLCBzY2FsZUZhY3RvckZvckRyYXdp
bmcud2lkdGgoKSwgc2NhbGVGYWN0b3JGb3JEcmF3aW5nLmhlaWdodCgpKTsKIAogICAgIE5hdGl2
ZUltYWdlUHRyIGltYWdlOwotICAgIGlmIChkZWNvZGluZ01vZGUgPT0gRGVjb2RpbmdNb2RlOjpB
c3luY2hyb25vdXMpIHsKKyAgICBpZiAob3B0aW9ucy5kZWNvZGluZ01vZGUoKSA9PSBEZWNvZGlu
Z01vZGU6OkFzeW5jaHJvbm91cykgewogICAgICAgICBBU1NFUlQoIWNhbkFuaW1hdGUoKSk7CiAg
ICAgICAgIEFTU0VSVCghbV9jdXJyZW50RnJhbWUgfHwgbV9hbmltYXRpb25GaW5pc2hlZCk7CiAK
QEAgLTIxNiw3ICsyMTYsNyBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogCiAgICAgICAgIGlm
ICghZnJhbWVIYXNEZWNvZGVkTmF0aXZlSW1hZ2VDb21wYXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4
KG1fY3VycmVudEZyYW1lLCBtX2N1cnJlbnRTdWJzYW1wbGluZ0xldmVsLCBEZWNvZGluZ09wdGlv
bnMoRGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMpKSkgewogICAgICAgICAgICAgaWYgKG1fc2hv
d0RlYnVnQmFja2dyb3VuZCkKLSAgICAgICAgICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29u
dGV4dCwgZGVzdFJlY3QsIENvbG9yKENvbG9yOjp5ZWxsb3cpLmNvbG9yV2l0aEFscGhhKDAuNSks
IG9wKTsKKyAgICAgICAgICAgICAgICBmaWxsV2l0aFNvbGlkQ29sb3IoY29udGV4dCwgZGVzdFJl
Y3QsIENvbG9yKENvbG9yOjp5ZWxsb3cpLmNvbG9yV2l0aEFscGhhKDAuNSksIG9wdGlvbnMuY29t
cG9zaXRlT3BlcmF0b3IoKSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9
CiAKQEAgLTIyNyw3ICsyMjcsNyBAQCBJbWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXco
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogICAgICAgICBB
U1NFUlRfSU1QTElFUyhzdGF0dXMgPT0gU3RhcnRBbmltYXRpb25TdGF0dXM6OkRlY29kaW5nQWN0
aXZlLCAoIW1fY3VycmVudEZyYW1lICYmICFtX3JlcGV0aXRpb25zQ29tcGxldGUpIHx8IGZyYW1l
SGFzRnVsbFNpemVOYXRpdmVJbWFnZUF0SW5kZXgobV9jdXJyZW50RnJhbWUsIG1fY3VycmVudFN1
YnNhbXBsaW5nTGV2ZWwpKTsKIAogICAgICAgICBpZiAoc3RhdHVzID09IFN0YXJ0QW5pbWF0aW9u
U3RhdHVzOjpEZWNvZGluZ0FjdGl2ZSAmJiBtX3Nob3dEZWJ1Z0JhY2tncm91bmQpIHsKLSAgICAg
ICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29sb3IoQ29sb3I6
OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3ApOworICAgICAgICAgICAgZmlsbFdpdGhT
b2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVsbG93KS5jb2xvcldp
dGhBbHBoYSgwLjUpLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkpOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgICAgICAKQEAgLTI0NSw3ICsyNDUsNyBAQCBJ
bWFnZURyYXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIGRlcwogICAgICAgICB9IGVsc2UgaWYgKGZyYW1lSXNCZWluZ0Rl
Y29kZWQpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBpbnN0ZWFkIG9mIHNob3dpbmcgdGhlIHll
bGxvdyByZWN0YW5nbGUgYW5kIHJldHVybmluZyB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoaXMgZnJh
bWUgdG8gZmluaXNoIGRlY29kaW5nLgogICAgICAgICAgICAgaWYgKG1fc2hvd0RlYnVnQmFja2dy
b3VuZCkgewotICAgICAgICAgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0
UmVjdCwgQ29sb3IoQ29sb3I6OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3ApOworICAg
ICAgICAgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250ZXh0LCBkZXN0UmVjdCwgQ29sb3Io
Q29sb3I6OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwgb3B0aW9ucy5jb21wb3NpdGVPcGVy
YXRvcigpKTsKICAgICAgICAgICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2U6OiVzIC0g
JXAgLSB1cmw6ICVzIFt3YWl0aW5nIGZvciBhc3luYyBkZWNvZGluZyB0byBmaW5pc2hdIiwgX19G
VU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlcXVl
c3REZWNvZGluZzsKQEAgLTI2NCwxNCArMjY0LDE1IEBAIEltYWdlRHJhd1Jlc3VsdCBCaXRtYXBJ
bWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
CiAgICAgQVNTRVJUKGltYWdlKTsKICAgICBDb2xvciBjb2xvciA9IHNpbmdsZVBpeGVsU29saWRD
b2xvcigpOwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpIHsKLSAgICAgICAgZmlsbFdpdGhTb2xp
ZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBjb2xvciwgb3ApOworICAgICAgICBmaWxsV2l0aFNv
bGlkQ29sb3IoY29udGV4dCwgZGVzdFJlY3QsIGNvbG9yLCBvcHRpb25zLmNvbXBvc2l0ZU9wZXJh
dG9yKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIGlmIChvcmllbnRh
dGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCi0gICAgICAgIG9yaWVudGF0aW9u
ID0gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOworICAgIGlmIChvcHRp
b25zLm9yaWVudGF0aW9uKCkgPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAg
ICBkcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIGNvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBJbnRT
aXplKHNpemUoKSksIHsgb3B0aW9ucywgZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50
RnJhbWUpIH0pOworICAgIGVsc2UKKyAgICAgICAgZHJhd05hdGl2ZUltYWdlKGltYWdlLCBjb250
ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgSW50U2l6ZShzaXplKCkpLCBvcHRpb25zKTsKIAotICAg
IGRyYXdOYXRpdmVJbWFnZShpbWFnZSwgY29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIEludFNp
emUoc2l6ZSgpKSwgb3AsIG1vZGUsIG9yaWVudGF0aW9uKTsKICAgICBtX2N1cnJlbnRGcmFtZURl
Y29kaW5nU3RhdHVzID0gZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgobV9jdXJyZW50RnJhbWUp
OwogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKQEAgLTI4MCw3ICsyODEsNyBAQCBJbWFnZURy
YXdSZXN1bHQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRlcwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgQml0bWFwSW1h
Z2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNw
YWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBC
aXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAg
ICAgaWYgKHRpbGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjkwLDcgKzI5
MSw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY3R4
dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKICAgICAgICAgaWYgKG1fY3VycmVudEZyYW1l
RGVjb2RpbmdTdGF0dXMgPT0gRGVjb2RpbmdTdGF0dXM6OkludmFsaWQpCiAgICAgICAgICAgICBt
X3NvdXJjZS0+ZGVzdHJveUluY29tcGxldGVEZWNvZGVkRGF0YSgpOwogICAgICAgICAKLSAgICAg
ICAgSW1hZ2U6OmRyYXdQYXR0ZXJuKGN0eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3Jt
LCBwaGFzZSwgc3BhY2luZywgb3AsIGJsZW5kTW9kZSk7CisgICAgICAgIEltYWdlOjpkcmF3UGF0
dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcs
IG9wdGlvbnMpOwogICAgICAgICBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID0gZnJhbWVE
ZWNvZGluZ1N0YXR1c0F0SW5kZXgobV9jdXJyZW50RnJhbWUpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMzA1LDcgKzMwNiw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdQYXR0ZXJuKEdy
YXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKICAgICAgICAg
Ly8gVGVtcG9yYXJpbHkgcmVzZXQgaW1hZ2Ugb2JzZXJ2ZXIsIHdlIGRvbid0IHdhbnQgdG8gcmVj
ZWl2ZSBhbnkgY2hhbmdlSW5SZWN0KCkgY2FsbHMgZHVlIHRvIHRoaXMgcmVsYXlvdXQuCiAgICAg
ICAgIHNldEltYWdlT2JzZXJ2ZXIobnVsbHB0cik7CiAKLSAgICAgICAgZHJhdyhidWZmZXItPmNv
bnRleHQoKSwgdGlsZVJlY3QsIHRpbGVSZWN0LCBvcCwgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGU6
OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICAgICAgZHJhdyhidWZm
ZXItPmNvbnRleHQoKSwgdGlsZVJlY3QsIHRpbGVSZWN0LCB7IG9wdGlvbnMsIERlY29kaW5nTW9k
ZTo6U3luY2hyb25vdXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUgfSk7CiAKICAgICAgICAgc2V0
SW1hZ2VPYnNlcnZlcihvYnNlcnZlcik7CiAgICAgICAgIGJ1ZmZlci0+Y29udmVydFRvTHVtaW5h
bmNlTWFzaygpOwpAQCAtMzE2LDcgKzMxNyw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdQYXR0
ZXJuKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKICAg
ICB9CiAKICAgICBjdHh0LnNldERyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKTsKLSAgICBtX2NhY2hl
ZEltYWdlLT5kcmF3UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwg
cGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIG1fY2FjaGVkSW1hZ2UtPmRyYXdQ
YXR0ZXJuKGN0eHQsIGRlc3RSZWN0LCB0aWxlUmVjdCwgdHJhbnNmb3JtLCBwaGFzZSwgc3BhY2lu
Zywgb3B0aW9ucyk7CiB9CiAKIGJvb2wgQml0bWFwSW1hZ2U6OnNob3VsZEFuaW1hdGUoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5k
ZXggNWFlZjYxZDdlODk5YmRjZjVjNGQ0NDVhYWJjODhiNjhmMWYwNGFkNS4uMmFkN2YxYzVjZTA3
ZDUxMzM1NDgwMzE0YmJjNzQzNzc4MDFjZGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC04MSw4ICs4MSw3IEBAIHB1YmxpYzoKICAg
ICBPcHRpb25hbDxJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
c291cmNlLT5ob3RTcG90KCk7IH0KIAogICAgIC8vIEZsb2F0U2l6ZSBkdWUgdG8gb3ZlcnJpZGUu
Ci0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NvdXJjZS0+
c2l6ZSgpOyB9Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UtPnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsgfQorICAgIEZs
b2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0
aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaXplKG9y
aWVudGF0aW9uKTsgfQogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsgfQogICAg
IGJvb2wgZnJhbWVJc0JlaW5nRGVjb2RlZEFuZElzQ29tcGF0aWJsZVdpdGhPcHRpb25zQXRJbmRl
eChzaXplX3QgaW5kZXgsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYgZGVjb2RpbmdPcHRpb25zKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZS0+ZnJhbWVJc0JlaW5nRGVjb2RlZEFuZElzQ29tcGF0aWJs
ZVdpdGhPcHRpb25zQXRJbmRleChpbmRleCwgZGVjb2RpbmdPcHRpb25zKTsgfQogICAgIERlY29k
aW5nU3RhdHVzIGZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UtPmZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KGluZGV4KTsgfQpA
QCAtMTYxLDggKzE2MCw4IEBAIHByb3RlY3RlZDoKICAgICAvLyB8ZGVzdHJveUFsbHwgYWxvbmcu
CiAgICAgdm9pZCBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeShib29sIGRlc3Ryb3lBbGwg
PSB0cnVlKTsKIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pIG92
ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVu
ZE1vZGU6Ok5vcm1hbCkgb3ZlcnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsKICNp
ZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCBkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRTaXplJiBz
cmNTaXplLCBDb21wb3NpdGVPcGVyYXRvcikgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmNwcAppbmRleCBlYTY0YjFkOTQ4OWIxMDM1NzJkMGM2OTY4OWJkZGEzNDBhYzY3MzNm
Li5kNGJkYjVmMjBhYTRhZDJhNTczNjVhMzg2YzI2MDJjZDM5M2FlNjM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuY3BwCkBAIC01MCwyMCArNTAsMjEgQEAgc3RhdGljIHZvaWQgZHJhd0Nyb3NzZmFk
ZVN1YmltYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBDb21wb3MK
ICAgICBib29sIHVzZVRyYW5zcGFyZW5jeUxheWVyID0gaW1hZ2UuaXNTVkdJbWFnZSgpOwogCiAg
ICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwotICAgIAot
ICAgIENvbXBvc2l0ZU9wZXJhdG9yIGRyYXdJbWFnZU9wZXJhdGlvbiA9IG9wZXJhdGlvbjsKKwor
ICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnM7CiAKICAgICBpZiAodXNlVHJhbnNwYXJl
bmN5TGF5ZXIpIHsKICAgICAgICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ob3BlcmF0
aW9uKTsKICAgICAgICAgY29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxheWVyKG9wYWNpdHkpOwot
ICAgICAgICBkcmF3SW1hZ2VPcGVyYXRpb24gPSBDb21wb3NpdGVTb3VyY2VPdmVyOwotICAgIH0g
ZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbnRleHQuc2V0QWxwaGEob3BhY2l0eSk7Cisg
ICAgICAgIG9wdGlvbnMgPSB7IG9wZXJhdGlvbiB9OworICAgIH0KIAogICAgIGlmICh0YXJnZXRT
aXplICE9IGltYWdlU2l6ZSkKICAgICAgICAgY29udGV4dC5zY2FsZSh0YXJnZXRTaXplIC8gaW1h
Z2VTaXplKTsKIAotICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCBJbnRQb2ludCgpLCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyhkcmF3SW1hZ2VPcGVyYXRpb24pKTsKKyAgICBjb250ZXh0LmRyYXdJ
bWFnZShpbWFnZSwgSW50UG9pbnQoKSwgb3B0aW9ucyk7CiAKICAgICBpZiAodXNlVHJhbnNwYXJl
bmN5TGF5ZXIpCiAgICAgICAgIGNvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKQEAgLTg2
LDEwICs4NywxMCBAQCB2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3Q3Jvc3NmYWRl
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICBjb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxh
eWVyKCk7CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJh
dyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxl
bmRNb2RlIGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKQorSW1hZ2VE
cmF3UmVzdWx0IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICBjb250ZXh0LnNldENv
bXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBjb250ZXh0LnNl
dENvbXBvc2l0ZU9wZXJhdGlvbihvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMu
YmxlbmRNb2RlKCkpOwogICAgIGNvbnRleHQuY2xpcChkc3RSZWN0KTsKICAgICBjb250ZXh0LnRy
YW5zbGF0ZShkc3RSZWN0LmxvY2F0aW9uKCkpOwogICAgIGlmIChkc3RSZWN0LnNpemUoKSAhPSBz
cmNSZWN0LnNpemUoKSkKQEAgLTEwMCw3ICsxMDEsNyBAQCBJbWFnZURyYXdSZXN1bHQgQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
bAogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7CiB9CiAKLXZvaWQgQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpk
cmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBh
dHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUm
IHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKHNpemUoKSwgY29udGV4dC5yZW5kZXJpbmdNb2RlKCkpOwogICAgIGlmICghaW1hZ2VCdWZm
ZXIpCkBAIC0xMTEsNyArMTEyLDcgQEAgdm9pZCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6ZHJh
d1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFIKICAgICBkcmF3
Q3Jvc3NmYWRlKGdyYXBoaWNzQ29udGV4dCk7CiAKICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZm
ZXIgaW50byB0aGUgY29udGV4dC4KLSAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4
dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNv
bXBvc2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250
ZXh0LCBkc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywg
b3B0aW9ucyk7CiB9CiAKIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmR1bXAoVGV4dFN0
cmVhbSYgdHMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAyMWUxMzIzNTE4NWE0ZTg1
MmY0ZDAyZGY0Y2QxZjQ2OThjN2UxY2MwLi40NTc2NWM4MzE0NTIxZTQ4YWNiMGY5ZGIzOWVhMDNk
NGVhNmVjM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKQEAgLTQ0LDExICs0NCwxMSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KIAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9jcm9zc2ZhZGVTaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRh
dGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9jcm9zc2ZhZGVTaXplOyB9CiAKIHByb3RlY3RlZDoKLSAgICBJbWFnZURyYXdSZXN1bHQg
ZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdN
b2RlLCBJbWFnZU9yaWVudGF0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUpIG92ZXJyaWRlOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwor
ICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBk
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZTsK
IAogICAgIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlKEltYWdlJiBmcm9tSW1hZ2UsIEltYWdlJiB0
b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBjb25zdCBGbG9hdFNpemUmIGNyb3NzZmFkZVNpemUs
IGNvbnN0IEZsb2F0U2l6ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9DdXN0b21QYWludEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0N1c3RvbVBhaW50SW1hZ2UuY3BwCmluZGV4IDAyM2FkNjliZDM2Zjc2NzU4NWFj
OTkzZGJhNmE0ODRlZDUwYWZjMDUuLjZmN2QwOWEzN2VmMjU5MzU0ZjYyZGU0MTE0YmViYzJjMzEy
Y2E1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3Rv
bVBhaW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1
c3RvbVBhaW50SW1hZ2UuY3BwCkBAIC0xNzAsMTAgKzE3MCwxMCBAQCBJbWFnZURyYXdSZXN1bHQg
Q3VzdG9tUGFpbnRJbWFnZTo6ZG9DdXN0b21QYWludChHcmFwaGljc0NvbnRleHQmIGRlc3RDb250
ZXh0LCBjbwogICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7CiB9CiAKLUltYWdl
RHJhd1Jlc3VsdCBDdXN0b21QYWludEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZGVzdENv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIERl
Y29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0ltYWdlRHJhd1Jlc3VsdCBDdXN0b21QYWlu
dEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0
ZVNhdmVyKGRlc3RDb250ZXh0KTsKLSAgICBkZXN0Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRp
b24oY29tcG9zaXRlT3AsIGJsZW5kTW9kZSk7CisgICAgZGVzdENvbnRleHQuc2V0Q29tcG9zaXRl
T3BlcmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUo
KSk7CiAgICAgZGVzdENvbnRleHQuY2xpcChkZXN0UmVjdCk7CiAgICAgZGVzdENvbnRleHQudHJh
bnNsYXRlKGRlc3RSZWN0LmxvY2F0aW9uKCkpOwogICAgIGlmIChkZXN0UmVjdC5zaXplKCkgIT0g
c3JjUmVjdC5zaXplKCkpCkBAIC0xODMsNyArMTgzLDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEN1c3Rv
bVBhaW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxv
YXQKIH0KIAogdm9pZCBDdXN0b21QYWludEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAg
ICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21w
b3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25z
dCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9y
IHRvIHByb3ZpZGUgdmlzdWFsbHktZXF1aXZhbGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0
dGVyIHBlcmZvcm1hbmNlLgogICAgIEZsb2F0U2l6ZSBhZGp1c3RlZFNpemUgPSBzaXplKCk7CkBA
IC0yMDUsNyArMjA1LDcgQEAgdm9pZCBDdXN0b21QYWludEltYWdlOjpkcmF3UGF0dGVybihHcmFw
aGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QKICAgICBpZiAoZGVzdENv
bnRleHQuZHJhd0x1bWluYW5jZU1hc2soKSkKICAgICAgICAgYnVmZmVyLT5jb252ZXJ0VG9MdW1p
bmFuY2VNYXNrKCk7CiAKLSAgICBidWZmZXItPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0
UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBhZGp1c3RlZFBhdHRlcm5DVE0sIHBoYXNlLCBzcGFjaW5n
LCBjb21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBidWZmZXItPmRyYXdQYXR0ZXJuKGRlc3RD
b250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBhZGp1c3RlZFBhdHRlcm5DVE0sIHBo
YXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICBkZXN0Q29udGV4dC5zZXREcmF3THVtaW5hbmNl
TWFzayhmYWxzZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0N1c3RvbVBhaW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0N1c3RvbVBhaW50SW1hZ2UuaAppbmRleCA0ZThlNTg5Nzk1MWE5NTEyNWI5MTM0ODBhZjkz
MzAzZWI2NzhkNzFlLi5lNzcwNzliODgyOTZlZjEyMGRmMGI2MjQ0MmU4NWUxNzI3ZTZhNWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DdXN0b21QYWludElt
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJ
bWFnZS5oCkBAIC01Miw4ICs1Miw4IEBAIHByaXZhdGU6CiAKICAgICBJbWFnZURyYXdSZXN1bHQg
ZG9DdXN0b21QYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFNpemUmKTsKIAotICAg
IEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pIGZpbmFsOwotICAgIHZvaWQg
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5U
cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIGZpbmFsOworICAgIEltYWdlRHJhd1Jl
c3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0p
IGZpbmFsOworICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkg
ZmluYWw7CiAKICAgICBXZWFrUHRyPFBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpQYWludERlZmlu
aXRpb24+IG1fcGFpbnREZWZpbml0aW9uOwogICAgIFZlY3RvcjxTdHJpbmc+IG1faW5wdXRQcm9w
ZXJ0aWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2Vu
ZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRl
ZEltYWdlLmgKaW5kZXggM2E4NTljMzFhYzRmMDJiYjdhMmNiNDY0MzNkOGQ4YWJhZTYyMWE0MS4u
M2UwMTYxNGMxNGRlZGZjNDU1OTIzZmE2ZDI0YjExMWFiMTQ0YzNhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCkBAIC00MCwxNSAr
NDAsMTQgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9u
cyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRT
aXplJiBpbnRyaW5zaWNSYXRpbykgb3ZlcnJpZGU7CiAKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIEZsb2F0U2l6ZSBzaXplKEltYWdl
T3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fc2l6ZTsgfQogCiAgICAgLy8gQXNzdW1lIHRoYXQgZ2VuZXJhdGVkIGNvbnRl
bnQgaGFzIG5vIGRlY29kZWQgZGF0YSB3ZSBuZWVkIHRvIHdvcnJ5IGFib3V0CiAgICAgdm9pZCBk
ZXN0cm95RGVjb2RlZERhdGEoYm9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRydWUpIG92ZXJyaWRlIHsg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlv
bikgb3ZlcnJpZGUgPSAwOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9y
LCBCbGVuZE1vZGUpIG92ZXJyaWRlID0gMDsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlkZSA9IDA7
CisgICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBvdmVycmlk
ZSA9IDA7CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgdG8gYmUgbGVzcyBjb25zZXJ2
YXRpdmUuCiAgICAgYm9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVPcGFxdWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAppbmRleCA1ZDRlZTI4MTY2YmI0ODhhNzlkY2EyOTRm
YWFjZGY2NWMyYTRmNDBiLi5mM2VjMGExYWQ0NjA0MTI4NzJkOTIwZTdlMWUwMTE2NzY2Y2E2M2Zi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudElt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudElt
YWdlLmNwcApAQCAtMzksMTAgKzM5LDEwIEBAIEdyYWRpZW50SW1hZ2U6OkdyYWRpZW50SW1hZ2Uo
R3JhZGllbnQmIGdlbmVyYXRvciwgY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiBHcmFkaWVudElt
YWdlOjp+R3JhZGllbnRJbWFnZSgpID0gZGVmYXVsdDsKIAotSW1hZ2VEcmF3UmVzdWx0IEdyYWRp
ZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9y
aWVudGF0aW9uKQorSW1hZ2VEcmF3UmVzdWx0IEdyYWRpZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsK
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZGVzdENvbnRleHQpOwot
ICAgIGRlc3RDb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21wb3NpdGVPcCwgYmxlbmRN
b2RlKTsKKyAgICBkZXN0Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ob3B0aW9ucy5jb21w
b3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKICAgICBkZXN0Q29udGV4dC5j
bGlwKGRlc3RSZWN0KTsKICAgICBkZXN0Q29udGV4dC50cmFuc2xhdGUoZGVzdFJlY3QubG9jYXRp
b24oKSk7CiAgICAgaWYgKGRlc3RSZWN0LnNpemUoKSAhPSBzcmNSZWN0LnNpemUoKSkKQEAgLTUz
LDcgKzUzLDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYWRpZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWMKIH0KIAogdm9pZCBHcmFkaWVudElt
YWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwg
QmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICAvLyBBbGxvdyB0aGUgZ2VuZXJhdG9yIHRvIHByb3ZpZGUgdmlzdWFsbHktZXF1aXZh
bGVudCB0aWxpbmcgcGFyYW1ldGVycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLgogICAgIEZsb2F0
U2l6ZSBhZGp1c3RlZFNpemUgPSBzaXplKCk7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgR3JhZGll
bnRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkCiAgICAgZGVzdENvbnRleHQuc2V0RHJhd0x1bWluYW5jZU1hc2soZmFsc2Up
OwogCiAgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVyIGludG8gdGhlIGNvbnRleHQuCi0gICAg
bV9jYWNoZWRJbWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3Rl
ZFNyY1JlY3QsIGFkanVzdGVkUGF0dGVybkNUTSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9w
LCBibGVuZE1vZGUpOworICAgIG1fY2FjaGVkSW1hZ2UtPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0
LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBhZGp1c3RlZFBhdHRlcm5DVE0sIHBoYXNlLCBz
cGFjaW5nLCBvcHRpb25zKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudEltYWdlLmgKaW5kZXggMWQ5ZGQ5MDhiYzA3NjFlNTUyNGQxYTQ3OGVh
NmM1ZWFmYjc4OGVmZC4uMGNjMTg0MzljMTQ3ZjkzNGRkZTE5MzA3NDhkYTcwYzNmYjE3NWE3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2Uu
aApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEdyYWRpZW50SW1hZ2Uo
R3JhZGllbnQmLCBjb25zdCBGbG9hdFNpemUmKTsKIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUs
IEltYWdlT3JpZW50YXRpb24pIGZpbmFsOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9y
LCBCbGVuZE1vZGUpIGZpbmFsOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgZHJh
d1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAgICAgYm9vbCBpc0dy
YWRpZW50SW1hZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBkdW1w
KFdURjo6VGV4dFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggN2FmOWVh
ZTA0N2E3OTY2NTIzZWY0Njk1MzQ1OGRmZDNjOWRmOTJlOS4uMzM1MTNkZjRmODM3ZmE2ODZkM2Q0
YmFmNDk4YzBlZTg4MTUzMTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03MTUsNTUgKzcxNSw1MCBAQCBJbWFn
ZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25z
dCBGbG9hdFBvaW50JiBkZXN0aQogCiBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCiB7Ci0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGbG9hdFJlY3Qgc3JjUmVjdChGbG9hdFBvaW50KCksIGlt
YWdlLm9yaWdpbmFsU2l6ZSgpKTsKLSNlbHNlCiAgICAgRmxvYXRSZWN0IHNyY1JlY3QoRmxvYXRQ
b2ludCgpLCBpbWFnZS5zaXplKCkpOwotI2VuZGlmCi0gICAgICAgIAogICAgIHJldHVybiBkcmF3
SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzcmNSZWN0LCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7
CiB9CiAKLUltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291
cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCitJ
bWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UmIGltYWdlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlz
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAog
ICAgIGlmIChtX2ltcGwpCi0gICAgICAgIHJldHVybiBtX2ltcGwtPmRyYXdJbWFnZShpbWFnZSwg
ZGVzdGluYXRpb24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOworICAgICAgICByZXR1
cm4gbV9pbXBsLT5kcmF3SW1hZ2UoaW1hZ2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMp
OwogCi0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9sYXRpb25RdWFs
aXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRp
b25RdWFsaXR5KTsKLSAgICByZXR1cm4gaW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24sIHNv
dXJjZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9jb21wb3NpdGVPcGVyYXRvciwgaW1hZ2VQYWlu
dGluZ09wdGlvbnMubV9ibGVuZE1vZGUsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fZGVjb2RpbmdN
b2RlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX29yaWVudGF0aW9uKTsKKyAgICBJbnRlcnBvbGF0
aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRo
aXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdlLmRy
YXcoKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogfQogCi1JbWFnZURyYXdS
ZXN1bHQgR3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3Qg
RmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCitJbWFnZURyYXdSZXN1bHQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRT
aXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAg
ICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCiAgICAgaWYgKG1faW1w
bCkKLSAgICAgICAgcmV0dXJuIG1faW1wbC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBpbWFnZVBhaW50aW5nT3B0aW9ucyk7Cisg
ICAgICAgIHJldHVybiBtX2ltcGwtPmRyYXdUaWxlZEltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwg
c291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywgb3B0aW9ucyk7CiAKLSAgICBJbnRlcnBvbGF0aW9u
UXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMs
IGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVy
biBpbWFnZS5kcmF3VGlsZWQoKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBz
cGFjaW5nLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBh
aW50aW5nT3B0aW9ucy5tX2JsZW5kTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGlu
Z01vZGUsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9s
YXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgq
dGhpcywgb3B0aW9ucy5pbnRlcnBvbGF0aW9uUXVhbGl0eSgpKTsKKyAgICByZXR1cm4gaW1hZ2Uu
ZHJhd1RpbGVkKCp0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2l6ZSwgc3BhY2luZywg
b3B0aW9ucyk7CiB9CiAKIEltYWdlRHJhd1Jlc3VsdCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxl
ZEltYWdlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLAotICAg
IEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVSdWxlIHZSdWxlLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCisgICAgSW1hZ2U6OlRpbGVS
dWxlIGhSdWxlLCBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJl
dHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKICAgICBpZiAobV9pbXBsKQotICAg
ICAgICByZXR1cm4gbV9pbXBsLT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNv
dXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwgdlJ1bGUsIGltYWdlUGFpbnRpbmdPcHRpb25z
KTsKKyAgICAgICAgcmV0dXJuIG1faW1wbC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxlLCBvcHRpb25zKTsKIAog
ICAgIGlmIChoUnVsZSA9PSBJbWFnZTo6U3RyZXRjaFRpbGUgJiYgdlJ1bGUgPT0gSW1hZ2U6OlN0
cmV0Y2hUaWxlKSB7CiAgICAgICAgIC8vIEp1c3QgZG8gYSBzY2FsZS4KLSAgICAgICAgcmV0dXJu
IGRyYXdJbWFnZShpbWFnZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgaW1hZ2VQYWludGluZ09wdGlv
bnMpOworICAgICAgICByZXR1cm4gZHJhd0ltYWdlKGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNl
LCBvcHRpb25zKTsKICAgICB9CiAKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIg
aW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIGltYWdlUGFpbnRpbmdPcHRp
b25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIHJldHVybiBpbWFnZS5kcmF3VGlsZWQo
KnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTY2FsZUZhY3RvciwgaFJ1bGUsIHZSdWxl
LCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICBJbnRlcnBv
bGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUo
KnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdl
LmRyYXdUaWxlZCgqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBo
UnVsZSwgdlJ1bGUsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSk7CiB9CiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBG
bG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdl
UGFpbnRpbmdPcHRpb25zKQpAQCAtNzc2LDEzICs3NzEsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGkKICAgICBkcmF3SW1hZ2VCdWZmZXIoaW1hZ2UsIGRlc3RpbmF0aW9uLCBGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2UubG9naWNhbFNpemUoKSkpLCBpbWFnZVBhaW50
aW5nT3B0aW9ucyk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2VCdWZmZXIo
SW1hZ2VCdWZmZXImIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRp
bmdPcHRpb25zKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1
ZmZlciYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVj
dCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBp
ZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRlcnBvbGF0
aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRo
aXMsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1faW50ZXJwb2xhdGlvblF1YWxpdHkpOwotICAgIGlt
YWdlLmRyYXcoKnRoaXMsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25z
Lm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlKTsK
KyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlG
b3JUaGlzU2NvcGUoKnRoaXMsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAg
aW1hZ2UuZHJhdygqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiBpbWFnZSwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBpbWFnZVBhaW50aW5nT3B0aW9ucykKQEAgLTgwMSwx
MyArNzk2LDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29uc3VtaW5nSW1hZ2VCdWZm
ZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnCiAgICAgZHJhd0NvbnN1bWluZ0lt
YWdlQnVmZmVyKFdURk1vdmUoaW1hZ2UpLCBkZXN0aW5hdGlvbiwgRmxvYXRSZWN0KEZsb2F0UG9p
bnQoKSwgRmxvYXRTaXplKGltYWdlTG9naWNhbFNpemUpKSwgaW1hZ2VQYWludGluZ09wdGlvbnMp
OwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVyKHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnN1
bWluZ0ltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxl
ZCgpIHx8ICFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIEludGVycG9sYXRpb25R
dWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywg
aW1hZ2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAgSW1hZ2VC
dWZmZXI6OmRyYXdDb25zdW1pbmcoV1RGTW92ZShpbWFnZSksICp0aGlzLCBkZXN0aW5hdGlvbiwg
c291cmNlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBh
aW50aW5nT3B0aW9ucy5tX2JsZW5kTW9kZSk7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWlu
dGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBvcHRpb25zLmlu
dGVycG9sYXRpb25RdWFsaXR5KCkpOworICAgIEltYWdlQnVmZmVyOjpkcmF3Q29uc3VtaW5nKFdU
Rk1vdmUoaW1hZ2UpLCAqdGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgb3B0aW9ucyk7CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVk
UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmgKaW5kZXggNDQ3ZDdlM2UzNTQ3NjJlODBiOGYyN2E5NTI2MjMyMjc5YjVm
OTA5NC4uMTNmNWEyZjU1ZGI2N2ZiMzYyZGQwY2U4ZGU2YTFmMTE5YjdjMWZiNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSW1h
Z2UuaCIKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW1hZ2VQYWlu
dGluZ09wdGlvbnMuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0yMTAsNDMgKzIxMSw2IEBA
IHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAjZW5kaWYKIH07CiAKLXN0cnVjdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyB7Ci0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMoQ29tcG9zaXRlT3Bl
cmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUg
YmxlbmRNb2RlID0gQmxlbmRNb2RlOjpOb3JtYWwsIERlY29kaW5nTW9kZSBkZWNvZGluZ01vZGUg
PSBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9u
ID0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xh
dGlvblF1YWxpdHkgPSBJbnRlcnBvbGF0aW9uRGVmYXVsdCkKLSAgICAgICAgOiBtX2NvbXBvc2l0
ZU9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJhdG9yKQotICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5k
TW9kZSkKLSAgICAgICAgLCBtX2RlY29kaW5nTW9kZShkZWNvZGluZ01vZGUpCi0gICAgICAgICwg
bV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKLSAgICAgICAgLCBtX2ludGVycG9sYXRpb25RdWFs
aXR5KGludGVycG9sYXRpb25RdWFsaXR5KQotICAgIHsKLSAgICB9Ci0KLSAgICBJbWFnZVBhaW50
aW5nT3B0aW9ucyhJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0eSA9IEludGVycG9sYXRpb25EZWZhdWx0LCBDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5k
TW9kZSBibGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlIGRlY29kaW5n
TW9kZSA9IERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMpCi0gICAgICAgIDogbV9jb21wb3NpdGVP
cGVyYXRvcihjb21wb3NpdGVPcGVyYXRvcikKLSAgICAgICAgLCBtX2JsZW5kTW9kZShibGVuZE1v
ZGUpCi0gICAgICAgICwgbV9kZWNvZGluZ01vZGUoZGVjb2RpbmdNb2RlKQotICAgICAgICAsIG1f
b3JpZW50YXRpb24ob3JpZW50YXRpb24pCi0gICAgICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0
eShpbnRlcnBvbGF0aW9uUXVhbGl0eSkKLSAgICB7Ci0gICAgfQotCi0gICAgSW1hZ2VQYWludGlu
Z09wdGlvbnMoSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHksIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpOb25lLCBDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5k
TW9kZSBibGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlIGRlY29kaW5n
TW9kZSA9IERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMpCi0gICAgICAgIDogbV9jb21wb3NpdGVP
cGVyYXRvcihjb21wb3NpdGVPcGVyYXRvcikKLSAgICAgICAgLCBtX2JsZW5kTW9kZShibGVuZE1v
ZGUpCi0gICAgICAgICwgbV9kZWNvZGluZ01vZGUoZGVjb2RpbmdNb2RlKQotICAgICAgICAsIG1f
b3JpZW50YXRpb24ob3JpZW50YXRpb24pCi0gICAgICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0
eShpbnRlcnBvbGF0aW9uUXVhbGl0eSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIGJvb2wgdXNl
c0RlZmF1bHRJbnRlcnBvbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnBvbGF0aW9uUXVh
bGl0eSA9PSBJbnRlcnBvbGF0aW9uRGVmYXVsdDsgfQotCi0gICAgQ29tcG9zaXRlT3BlcmF0b3Ig
bV9jb21wb3NpdGVPcGVyYXRvcjsKLSAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGU7Ci0gICAgRGVj
b2RpbmdNb2RlIG1fZGVjb2RpbmdNb2RlOwotICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRh
dGlvbjsKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBtX2ludGVycG9sYXRpb25RdWFsaXR5Owot
fTsKLQogc3RydWN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlIHsKICAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZUNoYW5nZSgpID0gZGVmYXVsdDsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZUNo
YW5nZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEdyYXBoaWNzQ29udGV4dFN0
YXRlOjpTdGF0ZUNoYW5nZUZsYWdzIGZsYWdzKQpAQCAtMzQ3LDcgKzMxMSw3IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3N0YXRlOyB9CiAKICNpZiBVU0UoQ0cpIHx8IFVTRShESVJFQ1QyRCkgfHwgVVNFKENBSVJPKQot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0
ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsLCBJbWFnZU9yaWVudGF0
aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
cmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNl
bGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAjZW5kaWYKIAogI2lmIFVT
RShDRykgfHwgVVNFKERJUkVDVDJEKQpAQCAtMzk1LDIzICszNTksMjIgQEAgcHVibGljOgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0
IGxpbmVXaWR0aCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0lt
YWdlKEltYWdlJiwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0
aW9ucygpKTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOworICAgIFdFQkNPUkVf
RVhQT1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFBvaW50
JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVu
dGF0aW9uOjpGcm9tSW1hZ2UgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOwor
ICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CiAKLSAgICBJbWFnZURy
YXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uLCBjb25zdCBGbG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUs
IGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
SW1hZ2VQYWludGluZ09wdGlvbnMoKSk7Ci0gICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZElt
YWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLAotICAgICAgICBJbWFn
ZTo6VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxl
ZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQ
b2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUm
IHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CisgICAgSW1hZ2VE
cmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxl
RmFjdG9yLCBJbWFnZTo6VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmID0geyB9KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0ltYWdl
QnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IEltYWdlUGFpbnRpbmdPcHRpb25zKCkpOwotICAgIHZv
aWQgZHJhd0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMo
KSk7Ci0gICAgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkcmF3SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFBvaW50JiBk
ZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lk
IGRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRp
b24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CisgICAgdm9pZCBkcmF3SW1h
Z2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25z
dCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsK
IAotICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7CisgICAgdm9pZCBkcmF3UGF0
dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2Us
IGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
eyB9KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVy
KHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0
aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygp
KTsKLSAgICB2b2lkIGRyYXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50
aW5nT3B0aW9ucyYgPSBJbWFnZVBhaW50aW5nT3B0aW9ucygpKTsKLSAgICB2b2lkIGRyYXdDb25z
dW1pbmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmID0gSW1hZ2VQYWludGluZ09wdGlvbnMoKSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiwgY29uc3QgRmxvYXRQb2ludCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJiA9IHsgfSk7CisgICAgdm9pZCBkcmF3Q29uc3VtaW5nSW1hZ2VCdWZmZXIoc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdDb25zdW1p
bmdJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmID0geyB9KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CiAgICAgSW50ZXJwb2xh
dGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcAppbmRleCA5
NjM2NDlmNTY5YWUzNDc3MDFkNTFkYWRkZjQwN2Y1YWZmYTZjMGEyLi5jZThlMTcyYTE2MWFlNDZh
ZWEyODgyNzllYmM5MDg2MTNlMmNjZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmNwcApAQCAtMzcsMjcgKzM3
LDI3IEBAIEdyYXBoaWNzQ29udGV4dEltcGw6On5HcmFwaGljc0NvbnRleHRJbXBsKCkKIHsKIH0K
IAotSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdJbWFnZUltcGwoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0
aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCitJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250
ZXh0SW1wbDo6ZHJhd0ltYWdlSW1wbChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3Vy
Y2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIEludGVycG9s
YXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShj
b250ZXh0LCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAg
ICByZXR1cm4gaW1hZ2UuZHJhdyhjb250ZXh0LCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBh
aW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5t
X2JsZW5kTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGluZ01vZGUsIGltYWdlUGFp
bnRpbmdPcHRpb25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFp
bnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBvcHRpb25z
LmludGVycG9sYXRpb25RdWFsaXR5KCkpOworICAgIHJldHVybiBpbWFnZS5kcmF3KGNvbnRleHQs
IGRlc3RpbmF0aW9uLCBzb3VyY2UsIG9wdGlvbnMpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgR3Jh
cGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1hZ2VJbXBsKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBG
bG9hdFBvaW50JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEZsb2F0
U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIGltYWdlUGFpbnRpbmdP
cHRpb25zKQorSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGw6OmRyYXdUaWxlZElt
YWdlSW1wbChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEltYWdlJiBpbWFnZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9h
dFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRh
aW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBpbWFnZVBhaW50
aW5nT3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5KTsKLSAgICByZXR1cm4gaW1hZ2UuZHJh
d1RpbGVkKGNvbnRleHQsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIHRpbGVTaXplLCBzcGFjaW5nLCBp
bWFnZVBhaW50aW5nT3B0aW9ucy5tX2NvbXBvc2l0ZU9wZXJhdG9yLCBpbWFnZVBhaW50aW5nT3B0
aW9ucy5tX2JsZW5kTW9kZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9kZWNvZGluZ01vZGUsIGlt
YWdlUGFpbnRpbmdPcHRpb25zLm1fb3JpZW50YXRpb24pOworICAgIEludGVycG9sYXRpb25RdWFs
aXR5TWFpbnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZShjb250ZXh0LCBv
cHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCkpOworICAgIHJldHVybiBpbWFnZS5kcmF3VGls
ZWQoY29udGV4dCwgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNpemUsIHNwYWNpbmcsIG9wdGlv
bnMpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVk
SW1hZ2VJbXBsKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxv
YXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRp
bGVSdWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09w
dGlvbnMpCitJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbDo6ZHJhd1RpbGVkSW1h
Z2VJbXBsKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZSwgY29uc3QgRmxvYXRT
aXplJiB0aWxlU2NhbGVGYWN0b3IsIEltYWdlOjpUaWxlUnVsZSBoUnVsZSwgSW1hZ2U6OlRpbGVS
dWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBp
ZiAoaFJ1bGUgPT0gSW1hZ2U6OlN0cmV0Y2hUaWxlICYmIHZSdWxlID09IEltYWdlOjpTdHJldGNo
VGlsZSkgewogICAgICAgICAvLyBKdXN0IGRvIGEgc2NhbGUuCi0gICAgICAgIHJldHVybiBkcmF3
SW1hZ2VJbXBsKGNvbnRleHQsIGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBpbWFnZVBhaW50
aW5nT3B0aW9ucyk7CisgICAgICAgIHJldHVybiBkcmF3SW1hZ2VJbXBsKGNvbnRleHQsIGltYWdl
LCBkZXN0aW5hdGlvbiwgc291cmNlLCBvcHRpb25zKTsKICAgICB9CiAKLSAgICBJbnRlcnBvbGF0
aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoY29u
dGV4dCwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSk7Ci0gICAg
cmV0dXJuIGltYWdlLmRyYXdUaWxlZChjb250ZXh0LCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxl
U2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9jb21wb3Np
dGVPcGVyYXRvcik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9s
YXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKGNvbnRleHQsIG9wdGlvbnMuaW50ZXJwb2xhdGlvblF1
YWxpdHkoKSk7CisgICAgcmV0dXJuIGltYWdlLmRyYXdUaWxlZChjb250ZXh0LCBkZXN0aW5hdGlv
biwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgb3B0aW9ucy5jb21wb3Np
dGVPcGVyYXRvcigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmlu
ZGV4IGI4NzMxOTRlZTI0NjAxZmU0ZTA3MTQ3YWE3MWVhMzA1ODdhODRhNDUuLjhmYmM1ZTU2Y2Yx
NTQ4NTM3NzljNTU0NDU0NWU5ZTZhMWM5Yzg4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTczLDkgKzcz
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdl
KEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYg
c291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VE
cmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxl
RmFjdG9yLCBJbWFnZTo6VGlsZVJ1bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAjaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8p
IHx8IFVTRShESVJFQ1QyRCkKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0
IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2Vs
ZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSA9IDA7CiAjZW5kaWYKLSAgICB2aXJ0dWFs
IHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0
UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9y
LCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
cmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0Jiwg
ZmxvYXQgYm9yZGVyVGhpY2tuZXNzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdMaW5lKGNv
bnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCmluZGV4IGI2YmRhMzAxNGEwMWRmZjM2NWM0ODll
Nzg5NzgxMzJlMzU4Y2I4ZGQuLjE1MzM2NTRiYjMxNmU4ZmM0NzNhZjhkMmEwNDczY2M2Y2VjYzY5
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKQEAgLTEz
NywzMyArMTM3LDI4IEBAIHZvaWQgSW1hZ2U6OmZpbGxXaXRoU29saWRDb2xvcihHcmFwaGljc0Nv
bnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwKICAgICBjdHh0LnNldENvbXBv
c2l0ZU9wZXJhdGlvbihwcmV2aW91c09wZXJhdG9yKTsKIH0KIAotdm9pZCBJbWFnZTo6ZHJhd1Bh
dHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5U
cmFuc2Zvcm0sCi0gICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lk
IEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBG
bG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQog
ewogICAgIGlmICghbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoJmN0eHQpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBjdHh0LmRyYXdQYXR0ZXJuKCp0aGlzLCBkZXN0UmVjdCwgdGlsZVJlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKKyAgICBj
dHh0LmRyYXdQYXR0ZXJuKCp0aGlzLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zv
cm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIAogICAgIGlmIChpbWFnZU9ic2VydmVyKCkp
CiAgICAgICAgIGltYWdlT2JzZXJ2ZXIoKS0+ZGlkRHJhdygqdGhpcyk7CiB9CiAKLUltYWdlRHJh
d1Jlc3VsdCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc3JjUG9pbnQsIGNvbnN0IEZsb2F0
U2l6ZSYgc2NhbGVkVGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRl
T3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIERlY29kaW5nTW9kZSBkZWNvZGluZ01v
ZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1bHQgSW1hZ2U6
OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNyY1BvaW50LCBjb25zdCBGbG9hdFNpemUmIHNjYWxlZFRp
bGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiBvcHRpb25zKQogewogICAgIENvbG9yIGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9y
KCk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewotICAgICAgICBmaWxsV2l0aFNvbGlkQ29s
b3IoY3R4dCwgZGVzdFJlY3QsIGNvbG9yLCBvcCk7CisgICAgICAgIGZpbGxXaXRoU29saWRDb2xv
cihjdHh0LCBkZXN0UmVjdCwgY29sb3IsIG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSk7CiAg
ICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZERyYXc7CiAgICAgfQogCiAgICAgQVNT
RVJUKCFpc0JpdG1hcEltYWdlKCkgfHwgbm90U29saWRDb2xvcigpKTsKIAotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgRmxvYXRTaXplIGludHJpbnNpY1RpbGVTaXplID0gb3JpZ2luYWxT
aXplKCk7Ci0jZWxzZQogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNUaWxlU2l6ZSA9IHNpemUoKTsK
LSNlbmRpZgogICAgIGlmIChoYXNSZWxhdGl2ZVdpZHRoKCkpCiAgICAgICAgIGludHJpbnNpY1Rp
bGVTaXplLnNldFdpZHRoKHNjYWxlZFRpbGVTaXplLndpZHRoKCkpOwogICAgIGlmIChoYXNSZWxh
dGl2ZUhlaWdodCgpKQpAQCAtMTg0LDcgKzE3OSw3IEBAIEltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6
ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
CiAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldFkoKGRlc3RSZWN0LnkoKSAtIG9uZVRpbGVSZWN0
LnkoKSkgLyBzY2FsZS5oZWlnaHQoKSk7CiAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldFdpZHRo
KGRlc3RSZWN0LndpZHRoKCkgLyBzY2FsZS53aWR0aCgpKTsKICAgICAgICAgdmlzaWJsZVNyY1Jl
Y3Quc2V0SGVpZ2h0KGRlc3RSZWN0LmhlaWdodCgpIC8gc2NhbGUuaGVpZ2h0KCkpOwotICAgICAg
ICByZXR1cm4gZHJhdyhjdHh0LCBkZXN0UmVjdCwgdmlzaWJsZVNyY1JlY3QsIG9wLCBibGVuZE1v
ZGUsIGRlY29kaW5nTW9kZSwgb3JpZW50YXRpb24pOworICAgICAgICByZXR1cm4gZHJhdyhjdHh0
LCBkZXN0UmVjdCwgdmlzaWJsZVNyY1JlY3QsIG9wdGlvbnMpOwogICAgIH0KIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCkBAIC0xOTYsNyArMTkxLDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEltYWdl
OjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWMKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldFkoKGRlc3RSZWN0LnkoKSAtIG9uZVRp
bGVSZWN0LnkoKSkgLyBzY2FsZS5oZWlnaHQoKSk7CiAgICAgICAgICAgICB2aXNpYmxlU3JjUmVj
dC5zZXRXaWR0aCgxKTsKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0LnNldEhlaWdodChkZXN0
UmVjdC5oZWlnaHQoKSAvIHNjYWxlLmhlaWdodCgpKTsKLSAgICAgICAgICAgIHJldHVybiBkcmF3
KGN0eHQsIGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgb3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBk
ZWNvZGluZ01vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBkcmF3KGN0eHQs
IGRlc3RSZWN0LCB2aXNpYmxlU3JjUmVjdCwgeyBvcHRpb25zLCBCbGVuZE1vZGU6Ok5vcm1hbCB9
KTsKICAgICAgICAgfQogICAgICAgICBpZiAoc2l6ZSgpLmhlaWdodCgpID09IDEgJiYgaW50ZXJz
ZWN0aW9uKG9uZVRpbGVSZWN0LCBkZXN0UmVjdCkud2lkdGgoKSA9PSBkZXN0UmVjdC53aWR0aCgp
KSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgdmlzaWJsZVNyY1JlY3Q7CkBAIC0yMDQsNyArMTk5
LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWMKICAgICAgICAgICAgIHZpc2libGVTcmNSZWN0
LnNldFkoMCk7CiAgICAgICAgICAgICB2aXNpYmxlU3JjUmVjdC5zZXRXaWR0aChkZXN0UmVjdC53
aWR0aCgpIC8gc2NhbGUud2lkdGgoKSk7CiAgICAgICAgICAgICB2aXNpYmxlU3JjUmVjdC5zZXRI
ZWlnaHQoMSk7Ci0gICAgICAgICAgICByZXR1cm4gZHJhdyhjdHh0LCBkZXN0UmVjdCwgdmlzaWJs
ZVNyY1JlY3QsIG9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwgZGVjb2RpbmdNb2RlLCBvcmllbnRhdGlv
bik7CisgICAgICAgICAgICByZXR1cm4gZHJhdyhjdHh0LCBkZXN0UmVjdCwgdmlzaWJsZVNyY1Jl
Y3QsIHsgb3B0aW9ucywgQmxlbmRNb2RlOjpOb3JtYWwgfSk7CiAgICAgICAgIH0KICAgICB9CiAj
ZW5kaWYKQEAgLTIzNiw3ICsyMzEsNyBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxl
ZChHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlYwogICAgICAg
ICAgICAgICAgIEZsb2F0UmVjdCBmcm9tUmVjdCh0b0Zsb2F0UG9pbnQoY3VycmVudFRpbGVSZWN0
LmxvY2F0aW9uKCkgLSBvbmVUaWxlUmVjdC5sb2NhdGlvbigpKSwgY3VycmVudFRpbGVSZWN0LnNp
emUoKSk7CiAgICAgICAgICAgICAgICAgZnJvbVJlY3Quc2NhbGUoMSAvIHNjYWxlLndpZHRoKCks
IDEgLyBzY2FsZS5oZWlnaHQoKSk7CiAKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBkcmF3KGN0
eHQsIHRvUmVjdCwgZnJvbVJlY3QsIG9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwgZGVjb2RpbmdNb2Rl
LCBvcmllbnRhdGlvbik7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZHJhdyhjdHh0LCB0b1Jl
Y3QsIGZyb21SZWN0LCB7IG9wdGlvbnMsIEJsZW5kTW9kZTo6Tm9ybWFsIH0pOwogICAgICAgICAg
ICAgICAgIGlmIChyZXN1bHQgPT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZXF1ZXN0RGVjb2Rpbmcp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgdG9Y
ICs9IGN1cnJlbnRUaWxlUmVjdC53aWR0aCgpOwpAQCAtMjUwLDE3ICsyNDUsMTcgQEAgSW1hZ2VE
cmF3UmVzdWx0IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWMKIAogICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3Jt
ID0gQWZmaW5lVHJhbnNmb3JtKCkuc2NhbGVOb25Vbmlmb3JtKHNjYWxlLndpZHRoKCksIHNjYWxl
LmhlaWdodCgpKTsKICAgICBGbG9hdFJlY3QgdGlsZVJlY3QoRmxvYXRQb2ludCgpLCBpbnRyaW5z
aWNUaWxlU2l6ZSk7Ci0gICAgZHJhd1BhdHRlcm4oY3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBvbmVUaWxlUmVjdC5sb2NhdGlvbigpLCBzcGFjaW5nLCBvcCwgYmxl
bmRNb2RlKTsKKyAgICBkcmF3UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRl
cm5UcmFuc2Zvcm0sIG9uZVRpbGVSZWN0LmxvY2F0aW9uKCksIHNwYWNpbmcsIG9wdGlvbnMpOwog
ICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJh
dzsKIH0KIAogLy8gRklYTUU6IE1lcmdlIHdpdGggdGhlIG90aGVyIGRyYXdUaWxlZCBldmVudHVh
bGx5LCBzaW5jZSB3ZSBuZWVkIGEgY29tYmluYXRpb24gb2YgYm90aCBmb3Igc29tZSB0aGluZ3Mu
Ci1JbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQmIGN0eHQs
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgVGlsZVJ1bGUgaFJ1bGUsIFRpbGVSdWxlIHZS
dWxlLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK0ltYWdlRHJhd1Jlc3VsdCBJbWFnZTo6ZHJhd1Rp
bGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBU
aWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogeyAgICAKICAgICBDb2xvciBjb2xvciA9IHNpbmdsZVBpeGVsU29saWRDb2xv
cigpOwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpIHsKLSAgICAgICAgZmlsbFdpdGhTb2xpZENv
bG9yKGN0eHQsIGRzdFJlY3QsIGNvbG9yLCBvcCk7CisgICAgICAgIGZpbGxXaXRoU29saWRDb2xv
cihjdHh0LCBkc3RSZWN0LCBjb2xvciwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpKTsKICAg
ICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKICAgICB9CiAgICAgCkBAIC0z
MzAsMTggKzMyNSwxNCBAQCBJbWFnZURyYXdSZXN1bHQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGlj
c0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdAogICAgICAgICB2UGhhc2Ug
LT0gKGRzdFJlY3QuaGVpZ2h0KCkgLSBzY2FsZWRUaWxlSGVpZ2h0KSAvIDI7CiAKICAgICBGbG9h
dFBvaW50IHBhdHRlcm5QaGFzZShkc3RSZWN0LngoKSAtIGhQaGFzZSwgZHN0UmVjdC55KCkgLSB2
UGhhc2UpOwotICAgIGRyYXdQYXR0ZXJuKGN0eHQsIGRzdFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5U
cmFuc2Zvcm0sIHBhdHRlcm5QaGFzZSwgc3BhY2luZywgb3ApOworICAgIGRyYXdQYXR0ZXJuKGN0
eHQsIGRzdFJlY3QsIHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBhdHRlcm5QaGFzZSwgc3Bh
Y2luZywgb3B0aW9ucyk7CiAgICAgc3RhcnRBbmltYXRpb24oKTsKICAgICByZXR1cm4gSW1hZ2VE
cmF3UmVzdWx0OjpEaWREcmF3OwogfQogCiB2b2lkIEltYWdlOjpjb21wdXRlSW50cmluc2ljRGlt
ZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwg
RmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgIGludHJpbnNpY1JhdGlvID0gb3JpZ2luYWxTaXplKCk7Ci0jZWxzZQogICAgIGludHJpbnNp
Y1JhdGlvID0gc2l6ZSgpOwotI2VuZGlmCiAgICAgaW50cmluc2ljV2lkdGggPSBMZW5ndGgoaW50
cmluc2ljUmF0aW8ud2lkdGgoKSwgRml4ZWQpOwogICAgIGludHJpbnNpY0hlaWdodCA9IExlbmd0
aChpbnRyaW5zaWNSYXRpby5oZWlnaHQoKSwgRml4ZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggMzY5OTdjODM1MjFjNDZjNWNkNDc1NTZkODE0NGVl
OTI1NTA5YTRhNy4uMzcyMmMyMjZlMDBlYjUwZmZlNGVlNmRkODcyMWU1YTNiMjFmNDljMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC02OCw2ICs2OCw3IEBA
IGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dEltcGw7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CitzdHJ1Y3QgSW1hZ2VQYWludGluZ09w
dGlvbnM7CiBzdHJ1Y3QgTGVuZ3RoOwogCiAvLyBUaGlzIGNsYXNzIGdldHMgbm90aWZpZWQgd2hl
biBhbiBpbWFnZSBjcmVhdGVzIG9yIGRlc3Ryb3lzIGRlY29kZWQgZnJhbWVzIGFuZCB3aGVuIGl0
IGFkdmFuY2VzIGFuaW1hdGlvbiBmcmFtZXMuCkBAIC0xMTAsMTYgKzExMSwxMiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3Ro
JiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50
cmluc2ljUmF0aW8pOwogCi0gICAgdmlydHVhbCBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVu
dGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0ID0gMDsKICAgICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0
IHsgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNpemUoKSk7IH0KICAgICBmbG9hdCB3
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgpOyB9CiAgICAgZmxvYXQgaGVpZ2h0
KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLmhlaWdodCgpOyB9CiAgICAgdmlydHVhbCBPcHRpb25h
bDxJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQogCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBvcmlnaW5hbFNp
emUoKSBjb25zdCB7IHJldHVybiBzaXplKCk7IH0KLSNlbmRpZgotCiAgICAgV0VCQ09SRV9FWFBP
UlQgRW5jb2RlZERhdGFTdGF0dXMgc2V0RGF0YShSZWZQdHI8U2hhcmVkQnVmZmVyPiYmIGRhdGEs
IGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKICAgICB2aXJ0dWFsIEVuY29kZWREYXRhU3RhdHVzIGRh
dGFDaGFuZ2VkKGJvb2wgLyphbGxEYXRhUmVjZWl2ZWQqLykgeyByZXR1cm4gRW5jb2RlZERhdGFT
dGF0dXM6OlVua25vd247IH0KIApAQCAtMTczLDggKzE3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIEdka1BpeGJ1ZiogZ2V0R2RrUGl4YnVmKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlm
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7CisgICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAg
IHZpcnR1YWwgYm9vbCBub3RTb2xpZENvbG9yKCkgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTkwLDkg
KzE4Niw5IEBAIHByb3RlY3RlZDoKICNpZiBQTEFURk9STShXSU4pCiAgICAgdmlydHVhbCB2b2lk
IGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbXBvc2l0ZU9wZXJhdG9y
KSB7IH0KICNlbmRpZgotICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmll
bnRhdGlvbikgPSAwOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWQoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFBvaW50JiBzcmNQb2lu
dCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBD
b21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRp
b24pOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZs
b2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUs
IENvbXBvc2l0ZU9wZXJhdG9yKTsKKyAgICB2aXJ0dWFsIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pID0gMDsKKyAgICBJ
bWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc3JjUG9pbnQsIGNvbnN0IEZsb2F0U2l6ZSYg
dGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyB9KTsKKyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkKEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgVGlsZVJ1bGUgaFJ1bGUsIFRpbGVS
dWxlIHZSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCiAgICAgLy8g
U3VwcG9ydGluZyB0aWxlZCBkcmF3aW5nCiAgICAgdmlydHVhbCBDb2xvciBzaW5nbGVQaXhlbFNv
bGlkQ29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xvcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCA4ZWZkNThhMjg5ODEzMGVmZGFl
NzMxODBjOTZiNWMyYjM2NGIzNGQwLi4xNjk4MDI2ZWMyNDQwZjI4MTUwYjRiMjAzZTQ2ZWM1YzY0
ZTJhMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJEYXRhLmgiCisj
aW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4
Q2xhbXBlZEFycmF5Lmg+CkBAIC01MSw3ICs1Miw3IEBAIGNsYXNzIEltYWdlRGF0YTsKIGNsYXNz
IEludFBvaW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEhvc3RXaW5kb3c7Ci0gICAgCisKIGVu
dW0gQmFja2luZ1N0b3JlQ29weSB7CiAgICAgQ29weUJhY2tpbmdTdG9yZSwgLy8gR3VhcmFudGVl
IHN1YnNlcXVlbnQgZHJhd3MgZG9uJ3QgYWZmZWN0IHRoZSBjb3B5LgogICAgIERvbnRDb3B5QmFj
a2luZ1N0b3JlIC8vIFN1YnNlcXVlbnQgZHJhd3MgbWF5IGFmZmVjdCB0aGUgY29weS4KQEAgLTE1
MSwxMCArMTUyLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBmbHVzaENvbnRleHQoKSBjb25zdDsK
ICNlbmRpZgogICAgIAotICAgIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QgPSBGbG9hdFJlY3QoMCwg
MCwgLTEsIC0xKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVu
ZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbCk7Ci0gICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0
b3IsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6Tm9ybWFsKTsKKyAgICB2b2lkIGRyYXcoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRp
b25zJiA9IHsgfSk7CisgICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2Us
IGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0g
eyB9KTsKIAotICAgIHN0YXRpYyB2b2lkIGRyYXdDb25zdW1pbmcoc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2Rl
OjpOb3JtYWwpOworICAgIHN0YXRpYyB2b2lkIGRyYXdDb25zdW1pbmcoc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyPiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CiAKICAgICBpbmxpbmUgdm9pZCBnZW5l
cmljQ29udmVydFRvTHVtaW5hbmNlTWFzaygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKaW5kZXggMmRmZWZhZWI1ZDE5MzM2ZGVkMjEyNThlZTFm
ZmY2Mzg2ZjU4YjkyZC4uMmNjNmIwMmE3ZDM1MDE1NzFjZjIwOTM2NGIzNmVkMjVjMWQ4Mzk2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaApAQCAt
NjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvbXBsZXRlKCkgY29uc3QgeyByZXR1
cm4gbV9kZWNvZGluZ1N0YXR1cyA9PSBEZWNvZGluZ1N0YXR1czo6Q29tcGxldGU7IH0KIAogICAg
IEludFNpemUgc2l6ZSgpIGNvbnN0OwotICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRh
dGlvbigpIGNvbnN0IHsgcmV0dXJuICFtX29yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkg
PyBzaXplKCkgOiBzaXplKCkudHJhbnNwb3NlZFNpemUoKTsgfQogICAgIHVuc2lnbmVkIGZyYW1l
Qnl0ZXMoKSBjb25zdCB7IHJldHVybiBoYXNOYXRpdmVJbWFnZSgpID8gKHNpemUoKS5hcmVhKCkg
KiBzaXplb2YodWludDMyX3QpKS51bnNhZmVHZXQoKSA6IDA7IH0KICAgICBTdWJzYW1wbGluZ0xl
dmVsIHN1YnNhbXBsaW5nTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX3N1YnNhbXBsaW5nTGV2ZWw7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQ
YWludGluZ09wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
UGFpbnRpbmdPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY0NWMzZmQ2ZDMzODQxYmMwMzU1NWYwN2M5
MDJjOTFkNTExY2RhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkRlY29kaW5nT3B0aW9ucy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIK
KyNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zIHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBP
cHRpb25zPgorICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKE9wdGlvbnMuLi4gb3B0aW9ucykKKyAg
ICB7CisgICAgICAgIHNldE9wdGlvbihvcHRpb25zLi4uKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBPdmVycnJpZGVzPgorICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvdGhlciwgT3ZlcnJyaWRlcy4uLiBvdmVycnJpZGVzKQor
ICAgICAgICA6IEltYWdlUGFpbnRpbmdPcHRpb25zKG90aGVyKQorICAgIHsKKyAgICAgICAgc2V0
T3B0aW9uKG92ZXJycmlkZXMuLi4pOworICAgIH0KKworICAgIEltYWdlUGFpbnRpbmdPcHRpb25z
KCkgPSBkZWZhdWx0OworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zKGNvbnN0IEltYWdlUGFpbnRp
bmdPcHRpb25zJikgPSBkZWZhdWx0OworCisgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3BlcmF0b3IoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0ZU9wZXJhdG9yOyB9CisgICAgQmxl
bmRNb2RlIGJsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRNb2RlOyB9CisgICAgRGVj
b2RpbmdNb2RlIGRlY29kaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVjb2RpbmdNb2RlOyB9
CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3Jp
ZW50YXRpb247IH0KKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9uUXVhbGl0
eSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJwb2xhdGlvblF1YWxpdHk7IH0KKworcHJpdmF0ZToK
KyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRmlyc3QsIHR5cGVuYW1lLi4uIFJlc3Q+CisgICAgdm9p
ZCBzZXRPcHRpb24oRmlyc3QgZmlyc3QsIFJlc3QuLi4gcmVzdCkKKyAgICB7CisgICAgICAgIHNl
dE9wdGlvbihmaXJzdCk7CisgICAgICAgIHNldE9wdGlvbihyZXN0Li4uKTsKKyAgICB9CisKKyAg
ICB2b2lkIHNldE9wdGlvbihDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvcikgeyBt
X2NvbXBvc2l0ZU9wZXJhdG9yID0gY29tcG9zaXRlT3BlcmF0b3I7IH0KKyAgICB2b2lkIHNldE9w
dGlvbihCbGVuZE1vZGUgYmxlbmRNb2RlKSB7IG1fYmxlbmRNb2RlID0gYmxlbmRNb2RlOyB9Cisg
ICAgdm9pZCBzZXRPcHRpb24oRGVjb2RpbmdNb2RlIGRlY29kaW5nTW9kZSkgeyBtX2RlY29kaW5n
TW9kZSA9IGRlY29kaW5nTW9kZTsgfQorICAgIHZvaWQgc2V0T3B0aW9uKEltYWdlT3JpZW50YXRp
b24gb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CisgICAgdm9p
ZCBzZXRPcHRpb24oSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsg
bV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CisgICAgdm9pZCBzZXRPcHRpb24oSW50ZXJw
b2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHkpIHsgbV9pbnRlcnBvbGF0aW9uUXVh
bGl0eSA9IGludGVycG9sYXRpb25RdWFsaXR5OyB9CisKKyAgICBDb21wb3NpdGVPcGVyYXRvciBt
X2NvbXBvc2l0ZU9wZXJhdG9yIHsgQ29tcG9zaXRlU291cmNlT3ZlciB9OworICAgIEJsZW5kTW9k
ZSBtX2JsZW5kTW9kZSB7IEJsZW5kTW9kZTo6Tm9ybWFsIH07CisgICAgRGVjb2RpbmdNb2RlIG1f
ZGVjb2RpbmdNb2RlIHsgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cyB9OworICAgIEltYWdlT3Jp
ZW50YXRpb24gbV9vcmllbnRhdGlvbiB7IEltYWdlT3JpZW50YXRpb246Ok5vbmUgfTsKKyAgICBJ
bnRlcnBvbGF0aW9uUXVhbGl0eSBtX2ludGVycG9sYXRpb25RdWFsaXR5IHsgSW50ZXJwb2xhdGlv
bkRlZmF1bHQgfTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmNwcAppbmRleCAxODk3NmY5MTllYjgxZGEzOTU2N2YyNmExOGJhZTdh
OWFmMWQzMjQzLi5mMzk4ZDc3Y2RlYWU1MGVhMjk5MTAyMGY0NzU0MTRmNjU3YTBlY2RhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBA
IC02MywxMCArNjMsOCBAQCBJbWFnZVNvdXJjZTo6SW1hZ2VTb3VyY2UoTmF0aXZlSW1hZ2VQdHIm
JiBuYXRpdmVJbWFnZSkKIAogICAgIG1fZGVjb2RlZFNpemUgPSBtX2ZyYW1lc1swXS5mcmFtZUJ5
dGVzKCk7CiAKLSAgICAvLyBUaGUgYXNzdW1wdGlvbiBpcyB0aGUgbWVtb3J5IGltYWdlIHdpbGwg
YmUgZGlzcGxheWVkIHdpdGggdGhlIGRlZmF1bHQKLSAgICAvLyBvcmllbnRhdGlvbi4gU28gc2V0
IG1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiB0byBiZSB0aGUgc2FtZSBhcyBtX3NpemUuCiAg
ICAgbV9zaXplID0gbV9mcmFtZXNbMF0uc2l6ZSgpOwotICAgIG1fc2l6ZVJlc3BlY3RpbmdPcmll
bnRhdGlvbiA9IG1fc2l6ZTsKKyAgICBtX29yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbihJ
bWFnZU9yaWVudGF0aW9uOjpOb25lKTsKIH0KIAogSW1hZ2VTb3VyY2U6On5JbWFnZVNvdXJjZSgp
CkBAIC01NTksMjAgKzU1NywyNyBAQCBPcHRpb25hbDxJbnRQb2ludD4gSW1hZ2VTb3VyY2U6Omhv
dFNwb3QoKQogICAgIHJldHVybiBtZXRhZGF0YTxPcHRpb25hbDxJbnRQb2ludD4sICgmSW1hZ2VE
ZWNvZGVyOjpob3RTcG90KT4oV1RGOjpudWxsb3B0LCAmbV9ob3RTcG90KTsKIH0KIAotSW50U2l6
ZSBJbWFnZVNvdXJjZTo6c2l6ZSgpCitJbWFnZU9yaWVudGF0aW9uIEltYWdlU291cmNlOjpvcmll
bnRhdGlvbigpCiB7CisgICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRl
ZDxJbWFnZU9yaWVudGF0aW9uPigwLCAoJkltYWdlRnJhbWU6Om9yaWVudGF0aW9uKSwgJm1fb3Jp
ZW50YXRpb24sIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1ldGFkYXRhKTsKK30KKworSW50U2l6ZSBJ
bWFnZVNvdXJjZTo6c2l6ZShJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQoreworICAgIElu
dFNpemUgc2l6ZTsKICNpZiAhVVNFKENHKQogICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3ZSBo
YXZlIGRlY29kZWQgdGhlIG1ldGFkYXRhLCBidXQgbm90IGZyYW1lIGNvbnRlbnRzIHlldC4gSW4g
dGhhdCBjYXNlIEltYWdlRGVjb2RlciBjbGFpbXMgdG8KICAgICAvLyBoYXZlIHRoZSBzaXplIGF2
YWlsYWJsZSwgYnV0IHRoZSBmcmFtZSBjYWNoZSBpcyBlbXB0eS4gUmV0dXJuIHRoZSBkZWNvZGVy
IHNpemUgd2l0aG91dCBjYWNoaW5nIGluIHN1Y2ggY2FzZS4KICAgICBpZiAobV9mcmFtZXMuaXNF
bXB0eSgpICYmIGlzRGVjb2RlckF2YWlsYWJsZSgpKQotICAgICAgICByZXR1cm4gbV9kZWNvZGVy
LT5zaXplKCk7CisgICAgICAgIHNpemUgPSBtX2RlY29kZXItPnNpemUoKTsKKyAgICBlbHNlCiAj
ZW5kaWYKLSAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPEludFNp
emU+KDAsICgmSW1hZ2VGcmFtZTo6c2l6ZSksICZtX3NpemUsIEltYWdlRnJhbWU6OkNhY2hpbmc6
Ok1ldGFkYXRhLCBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KTsKLX0KKyAgICAgICAgc2l6ZSA9
IGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxJbnRTaXplPigwLCAoJkltYWdlRnJh
bWU6OnNpemUpLCAmbV9zaXplLCBJbWFnZUZyYW1lOjpDYWNoaW5nOjpNZXRhZGF0YSwgU3Vic2Ft
cGxpbmdMZXZlbDo6RGVmYXVsdCk7CisgICAgCisgICAgaWYgKG9yaWVudGF0aW9uID09IEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZSkKKyAgICAgICAgb3JpZW50YXRpb24gPSB0aGlzLT5vcmll
bnRhdGlvbigpOwogCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplUmVzcGVjdGluZ09yaWVudGF0
aW9uKCkKLXsKLSAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPElu
dFNpemU+KDAsICgmSW1hZ2VGcmFtZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiksICZtX3Np
emVSZXNwZWN0aW5nT3JpZW50YXRpb24sIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1ldGFkYXRhLCBT
dWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KTsKKyAgICByZXR1cm4gb3JpZW50YXRpb24udXNlc1dp
ZHRoQXNIZWlnaHQoKSA/IHNpemUudHJhbnNwb3NlZFNpemUoKSA6IHNpemU7CiB9CiAKIENvbG9y
IEltYWdlU291cmNlOjpzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5kZXggYmM3OTA5OTMyNzhiY2I0MjUw
Mzg2NWZiNTEyYWI2ZjJlOTg4ZTgzZC4uZjRlODE4NTRkOTc5MGMwOGUxNDg3MDg4OTE5OTg5NDM2
YzMyMmRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNv
dXJjZS5oCkBAIC05Myw5ICs5MywxMCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHV0aSgpOwogICAg
IFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpOwogICAgIE9wdGlvbmFsPEludFBvaW50PiBob3RT
cG90KCk7CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpOwogCiAgICAgLy8gSW1h
Z2UgbWV0YWRhdGEgd2hpY2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBJbWFnZUZyYW1l
LgotICAgIFdFQkNPUkVfRVhQT1JUIEludFNpemUgc2l6ZSgpOworICAgIFdFQkNPUkVfRVhQT1JU
IEludFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUlt
YWdlKTsKICAgICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKICAgICBDb2xv
ciBzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1T
dWJzYW1wbGluZ0xldmVsKCk7CkBAIC0xOTYsNyArMTk3LDcgQEAgcHJpdmF0ZToKIAogICAgIC8v
IEltYWdlIG1ldGFkYXRhIHdoaWNoIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgZmlyc3QgSW1hZ2VG
cmFtZS4KICAgICBPcHRpb25hbDxJbnRTaXplPiBtX3NpemU7Ci0gICAgT3B0aW9uYWw8SW50U2l6
ZT4gbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uOworICAgIE9wdGlvbmFsPEltYWdlT3JpZW50
YXRpb24+IG1fb3JpZW50YXRpb247CiAgICAgT3B0aW9uYWw8Q29sb3I+IG1fc2luZ2xlUGl4ZWxT
b2xpZENvbG9yOwogICAgIE9wdGlvbmFsPFN1YnNhbXBsaW5nTGV2ZWw+IG1fbWF4aW11bVN1YnNh
bXBsaW5nTGV2ZWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAKaW5kZXggOWE2YjAxOGQ0
MmZhNzQ0ODdkMTQ3YWE2Y2U2NDY2YTE5ZWVhZWIzZC4uZDNkM2ZhMzllMDZkODllYTYyYzE3OWQ5
ODg3ZjQ1YmJmNmM4ZGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwCkBAIC00MCwxMSAr
NDAsMTEgQEAgTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpOYW1lZEltYWdlR2VuZXJhdGVkSW1h
Z2UoU3RyaW5nIG5hbWUsIGNvbnN0IEZsb2F0U2l6ZSYKICAgICBzZXRDb250YWluZXJTaXplKHNp
emUpOwogfQogCi1JbWFnZURyYXdSZXN1bHQgTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURy
YXdSZXN1bHQgTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogI2lmIFVTRShORVdf
VEhFTUUpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwotICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0
aW9uKGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3Bl
cmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUoKSk7
CiAgICAgY29udGV4dC5jbGlwKGRzdFJlY3QpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKGRzdFJl
Y3QubG9jYXRpb24oKSk7CiAgICAgaWYgKGRzdFJlY3Quc2l6ZSgpICE9IHNyY1JlY3Quc2l6ZSgp
KQpAQCAtNTcsMTMgKzU3LDEyIEBAIEltYWdlRHJhd1Jlc3VsdCBOYW1lZEltYWdlR2VuZXJhdGVk
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGCiAgICAgVU5VU0VE
X1BBUkFNKGNvbnRleHQpOwogICAgIFVOVVNFRF9QQVJBTShkc3RSZWN0KTsKICAgICBVTlVTRURf
UEFSQU0oc3JjUmVjdCk7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbXBvc2l0ZU9wKTsKLSAgICBVTlVT
RURfUEFSQU0oYmxlbmRNb2RlKTsKKyAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CiAgICAgcmV0
dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKICNlbmRpZgogfQogCi12b2lkIE5hbWVk
SW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3Np
dGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdl
OjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogI2lm
IFVTRShORVdfVEhFTUUpCiAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVh
dGVDb21wYXRpYmxlQnVmZmVyKHNpemUoKSwgY29udGV4dCk7CkBAIC03NCwxNiArNzMsMTUgQEAg
dm9pZCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXQKICAgICBUaGVtZTo6c2luZ2xldG9uKCkuZHJhd05hbWVk
SW1hZ2UobV9uYW1lLCBncmFwaGljc0NvbnRleHQsIEZsb2F0UmVjdCgwLCAwLCBzaXplKCkud2lk
dGgoKSwgc2l6ZSgpLmhlaWdodCgpKSk7CiAKICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIg
aW50byB0aGUgY29udGV4dC4KLSAgICBpbWFnZUJ1ZmZlci0+ZHJhd1BhdHRlcm4oY29udGV4dCwg
ZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBv
c2l0ZU9wLCBibGVuZE1vZGUpOworICAgIGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0
LCBkc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0
aW9ucyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFS
QU0oZHN0UmVjdCk7CiAgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOwogICAgIFVOVVNFRF9QQVJB
TShwYXR0ZXJuVHJhbnNmb3JtKTsKICAgICBVTlVTRURfUEFSQU0ocGhhc2UpOwogICAgIFVOVVNF
RF9QQVJBTShzcGFjaW5nKTsKLSAgICBVTlVTRURfUEFSQU0oZHN0UmVjdCk7Ci0gICAgVU5VU0VE
X1BBUkFNKGNvbXBvc2l0ZU9wKTsKLSAgICBVTlVTRURfUEFSQU0oYmxlbmRNb2RlKTsKKyAgICBV
TlVTRURfUEFSQU0ob3B0aW9ucyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaApp
bmRleCAzZTdjOTZkOTQ3MWYxM2Y0Njk2MzFmYjZlZjRkNTRmZjg1MjUxYjFjLi4wMjg1ZTFmOGI5
YTJhNTE2MzJkZmM0ZjM3MGEyYTBjZDYxM2Q4MGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaApA
QCAtMzksOCArMzksOCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgSW1hZ2VE
cmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUs
IERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3
UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBD
b21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKSBvdmVycmlkZTsKKyAgICBJbWFnZURyYXdSZXN1
bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KSBv
dmVycmlkZTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkg
b3ZlcnJpZGU7CiAKICAgICBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UoU3RyaW5nIG5hbWUsIGNv
bnN0IEZsb2F0U2l6ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9OYXRpdmVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TmF0aXZlSW1hZ2UuaAppbmRleCA1YWY0M2FhMmU5MDIwNTdmMDdhMGI2MTg5YzYwMDZkNjA1OGRh
ZDQ1Li44ZTNhZTIxNjYwYzU0ZDM1NzBhYzJkYjEzYTZiNWI1Y2IzY2I3ZWY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKQEAgLTI3LDggKzI3
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCi0jaW5j
bHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIkltYWdlUGFpbnRpbmdPcHRpb25z
LmgiCiAKICNpZiBVU0UoQ0cpCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNjYsNyAr
NjUsNyBAQCBJbnRTaXplIG5hdGl2ZUltYWdlU2l6ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwog
Ym9vbCBuYXRpdmVJbWFnZUhhc0FscGhhKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CiBDb2xvciBu
YXRpdmVJbWFnZVNpbmdsZVBpeGVsU29saWRDb2xvcihjb25zdCBOYXRpdmVJbWFnZVB0ciYpOwog
Ci12b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEludFNpemUm
LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uKTsKK3ZvaWQg
ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CiB2b2lkIGNsZWFyTmF0aXZlSW1hZ2VTdWJpbWFnZXMo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCmluZGV4
IDc0NjQwZjcwNGVjZTQ5NmRhNDBhZjQxM2JhNmY0ZDliZGVhZjQxOWIuLmE4OTVkYWRkMDQyMWI3
ZWQwOTExMjhkMjNmNjVmNWRkOTQ0YTQ3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApAQCAtMTc5
LDggKzE3OSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdTaGFkb3dMYXllckJ1ZmZlcihQbGF0Zm9ybUNv
bnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBJbWFnZUJ1CiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChhdXRvIHN1cmZhY2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUo
KSkgewotICAgICAgICBkcmF3TmF0aXZlSW1hZ2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNlLmdl
dCgpLCBGbG9hdFJlY3Qocm91bmRlZEludFBvaW50KGxheWVyT3JpZ2luKSwgbGF5ZXJTaXplKSwg
RmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbGF5ZXJTaXplKSwgc2hhZG93U3RhdGUuZ2xvYmFsQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZTo6Tm9ybWFsLCBJbWFnZU9yaWVudGF0aW9uOjpOb25l
LAotICAgICAgICAgICAgSW50ZXJwb2xhdGlvbkRlZmF1bHQsIHNoYWRvd1N0YXRlLmdsb2JhbEFs
cGhhLCBTaGFkb3dTdGF0ZSgpKTsKKyAgICAgICAgZHJhd05hdGl2ZUltYWdlKHBsYXRmb3JtQ29u
dGV4dCwgc3VyZmFjZS5nZXQoKSwgRmxvYXRSZWN0KHJvdW5kZWRJbnRQb2ludChsYXllck9yaWdp
biksIGxheWVyU2l6ZSksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGxheWVyU2l6ZSksIHsgc2hh
ZG93U3RhdGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0b3IgfSwgc2hhZG93U3RhdGUuZ2xvYmFsQWxw
aGEsIFNoYWRvd1N0YXRlKCkpOwogICAgIH0KIH0KIApAQCAtMTkyLDggKzE5MSw3IEBAIHN0YXRp
YyB2b2lkIGRyYXdTaGFkb3dJbWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250
ZXh0LCBJbWFnZUJ1ZmZlciYKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGF1dG8gc3VyZmFj
ZSA9IGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKSB7Ci0gICAgICAgIGRyYXdO
YXRpdmVJbWFnZShwbGF0Zm9ybUNvbnRleHQsIHN1cmZhY2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNS
ZWN0LCBzaGFkb3dTdGF0ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlOjpOb3Jt
YWwsIEltYWdlT3JpZW50YXRpb246Ok5vbmUsCi0gICAgICAgICAgICBJbnRlcnBvbGF0aW9uRGVm
YXVsdCwgc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNoYWRvd1N0YXRlKCkpOworICAgICAgICBk
cmF3TmF0aXZlSW1hZ2UocGxhdGZvcm1Db250ZXh0LCBzdXJmYWNlLmdldCgpLCBkZXN0UmVjdCwg
c3JjUmVjdCwgeyBzaGFkb3dTdGF0ZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRvciB9LCBzaGFkb3dT
dGF0ZS5nbG9iYWxBbHBoYSwgU2hhZG93U3RhdGUoKSk7CiAgICAgfQogfQogCkBAIC04NzgsMzcg
Kzg3NiwzNyBAQCB2b2lkIGRyYXdHbHlwaHMoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3Jt
Q29udGV4dCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbFNvdQogICAgIGNhaXJvX3Jlc3RvcmUoY3Ip
OwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZv
cm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9z
aXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIGZs
b2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCit2b2lkIGRy
YXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWly
b19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMsIGZs
b2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCiB7CiAgICAg
cGxhdGZvcm1Db250ZXh0LnNhdmUoKTsKIAogICAgIC8vIFNldCB0aGUgY29tcG9zaXRpbmcgb3Bl
cmF0aW9uLgotICAgIGlmIChjb21wb3NpdGVPcGVyYXRvciA9PSBDb21wb3NpdGVTb3VyY2VPdmVy
ICYmIGJsZW5kTW9kZSA9PSBCbGVuZE1vZGU6Ok5vcm1hbCAmJiAhY2Fpcm9TdXJmYWNlSGFzQWxw
aGEoc3VyZmFjZSkpCisgICAgaWYgKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSA9PSBDb21w
b3NpdGVTb3VyY2VPdmVyICYmIG9wdGlvbnMuYmxlbmRNb2RlKCkgPT0gQmxlbmRNb2RlOjpOb3Jt
YWwgJiYgIWNhaXJvU3VyZmFjZUhhc0FscGhhKHN1cmZhY2UpKQogICAgICAgICBDYWlybzo6U3Rh
dGU6OnNldENvbXBvc2l0ZU9wZXJhdGlvbihwbGF0Zm9ybUNvbnRleHQsIENvbXBvc2l0ZUNvcHks
IEJsZW5kTW9kZTo6Tm9ybWFsKTsKICAgICBlbHNlCi0gICAgICAgIENhaXJvOjpTdGF0ZTo6c2V0
Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgY29tcG9zaXRlT3BlcmF0b3IsIGJs
ZW5kTW9kZSk7CisgICAgICAgIENhaXJvOjpTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBs
YXRmb3JtQ29udGV4dCwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5k
TW9kZSgpKTsKIAogICAgIEZsb2F0UmVjdCBkc3QgPSBkZXN0UmVjdDsKLSAgICBpZiAob3JpZW50
YXRpb24gIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgeworICAgIGlmIChvcHRpb25zLm9yaWVu
dGF0aW9uKCkgIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgewogICAgICAgICAvLyBJbWFnZU9y
aWVudGF0aW9uIGV4cGVjdHMgdGhlIG9yaWdpbiB0byBiZSBhdCAoMCwgMCkuCiAgICAgICAgIENh
aXJvOjp0cmFuc2xhdGUocGxhdGZvcm1Db250ZXh0LCBkc3QueCgpLCBkc3QueSgpKTsKICAgICAg
ICAgZHN0LnNldExvY2F0aW9uKEZsb2F0UG9pbnQoKSk7Ci0gICAgICAgIENhaXJvOjpjb25jYXRD
VE0ocGxhdGZvcm1Db250ZXh0LCBvcmllbnRhdGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChkc3Qu
c2l6ZSgpKSk7Ci0gICAgICAgIGlmIChvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKSB7
CisgICAgICAgIENhaXJvOjpjb25jYXRDVE0ocGxhdGZvcm1Db250ZXh0LCBvcHRpb25zLm9yaWVu
dGF0aW9uKCkudHJhbnNmb3JtRnJvbURlZmF1bHQoZHN0LnNpemUoKSkpOworICAgICAgICBpZiAo
b3B0aW9ucy5vcmllbnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpIHsKICAgICAgICAgICAg
IC8vIFRoZSBkZXN0aW5hdGlvbiByZWN0YW5nbGUgd2lsbCBoYXZlIGl0cyB3aWR0aCBhbmQgaGVp
Z2h0IGFscmVhZHkgcmV2ZXJzZWQgZm9yIHRoZSBvcmllbnRhdGlvbiBvZgogICAgICAgICAgICAg
Ly8gdGhlIGltYWdlLCBhcyBpdCB3YXMgbmVlZGVkIGZvciBwYWdlIGxheW91dCwgc28gd2UgbmVl
ZCB0byByZXZlcnNlIGl0IGJhY2sgaGVyZS4KICAgICAgICAgICAgIGRzdCA9IEZsb2F0UmVjdChk
c3QueCgpLCBkc3QueSgpLCBkc3QuaGVpZ2h0KCksIGRzdC53aWR0aCgpKTsKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGRyYXdTdXJmYWNlKHBsYXRmb3JtQ29udGV4dCwgc3VyZmFjZSwgZHN0LCBz
cmNSZWN0LCBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBnbG9iYWxBbHBoYSwgc2hhZG93U3Rh
dGUpOworICAgIGRyYXdTdXJmYWNlKHBsYXRmb3JtQ29udGV4dCwgc3VyZmFjZSwgZHN0LCBzcmNS
ZWN0LCBvcHRpb25zLmludGVycG9sYXRpb25RdWFsaXR5KCksIGdsb2JhbEFscGhhLCBzaGFkb3dT
dGF0ZSk7CiAgICAgcGxhdGZvcm1Db250ZXh0LnJlc3RvcmUoKTsKIH0KIAotdm9pZCBkcmF3UGF0
dGVybihQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNl
X3QqIHN1cmZhY2UsIGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbXBvc2l0ZU9wZXJhdG9y
IGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBkcmF3UGF0dGVy
bihQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3Qq
IHN1cmZhY2UsIGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zKQogewogICAgIC8vIEZJWE1FOiBJbnZlc3RpZ2F0ZSB3aHkgdGhlIHNp
emUgaGFzIHRvIGJlIHBhc3NlZCBpbiBhcyBhbiBJbnRSZWN0LgotICAgIGRyYXdQYXR0ZXJuVG9D
YWlyb0NvbnRleHQocGxhdGZvcm1Db250ZXh0LmNyKCksIHN1cmZhY2UsIHNpemUsIHRpbGVSZWN0
LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgdG9DYWlyb09wZXJhdG9yKGNvbXBvc2l0ZU9wZXJh
dG9yLCBibGVuZE1vZGUpLCBkZXN0UmVjdCk7CisgICAgZHJhd1BhdHRlcm5Ub0NhaXJvQ29udGV4
dChwbGF0Zm9ybUNvbnRleHQuY3IoKSwgc3VyZmFjZSwgc2l6ZSwgdGlsZVJlY3QsIHBhdHRlcm5U
cmFuc2Zvcm0sIHBoYXNlLCB0b0NhaXJvT3BlcmF0b3Iob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRv
cigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKSwgZGVzdFJlY3QpOwogfQogCiB2b2lkIGRyYXdTdXJm
YWNlKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2Vf
dCogc3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBv
cmlnaW5hbFNyY1JlY3QsIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWly
b09wZXJhdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvT3BlcmF0aW9ucy5oCmluZGV4IDA4NWU2MWE1YjNjOWM3Yzk3MjE2YjNjN2JjZDZkNzY5MjU4
Y2M4NGYuLjU4MzRmNDMwZjA1ZGQxNTgzNzM4ZTMxZTQzM2QyNzE0MGE2Y2QyYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9u
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3Bl
cmF0aW9ucy5oCkBAIC0xMzgsOCArMTM4LDggQEAgdm9pZCBjbGVhclJlY3QoUGxhdGZvcm1Db250
ZXh0Q2Fpcm8mLCBjb25zdCBGbG9hdFJlY3QmKTsKIAogdm9pZCBkcmF3R2x5cGhzKFBsYXRmb3Jt
Q29udGV4dENhaXJvJiwgY29uc3QgRmlsbFNvdXJjZSYsIGNvbnN0IFN0cm9rZVNvdXJjZSYsIGNv
bnN0IFNoYWRvd1N0YXRlJiwgY29uc3QgRmxvYXRQb2ludCYsIGNhaXJvX3NjYWxlZF9mb250X3Qq
LCBkb3VibGUsIGNvbnN0IFZlY3RvcjxjYWlyb19nbHlwaF90PiYsIGZsb2F0LCBUZXh0RHJhd2lu
Z01vZGVGbGFncywgZmxvYXQsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IENvbG9yJik7CiAKLXZv
aWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90
KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0
LCBjb25zdCBTaGFkb3dTdGF0ZSYpOwotdm9pZCBkcmF3UGF0dGVybihQbGF0Zm9ybUNvbnRleHRD
YWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBv
aW50JiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7Cit2b2lkIGRyYXdOYXRpdmVJbWFn
ZShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiwgZmxvYXQs
IGNvbnN0IFNoYWRvd1N0YXRlJik7Cit2b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29udGV4dENh
aXJvJiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9p
bnQmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBk
cmF3U3VyZmFjZShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9h
dCwgY29uc3QgU2hhZG93U3RhdGUmKTsKIAogdm9pZCBkcmF3UmVjdChQbGF0Zm9ybUNvbnRleHRD
YWlybyYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBjb25zdCBDb2xvciYsIFN0cm9rZVN0eWxl
LCBjb25zdCBDb2xvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDIzZjY1
M2ViZTM3NTIxZmM3MjVhZDNiYTE5MmUzNTQwYmFjMTllZWQuLmQ1MDM5Yjk3MjExNjRkMjFkYmQy
ZDhhNWQ3OGQwMzNlZDFiNWRmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAg
LTEyMCwxOSArMTIwLDE5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKICAgICBDYWlybzo6ZHJhd1Jl
Y3QoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0LCBib3JkZXJUaGlja25lc3MsIHN0YXRlLmZpbGxD
b2xvciwgc3RhdGUuc3Ryb2tlU3R5bGUsIHN0YXRlLnN0cm9rZUNvbG9yKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1h
Z2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFn
ZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZl
SW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9wZXJh
dG9yLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uKTsKKyAgICAgICAgbV9pbXBsLT5kcmF3TmF0aXZl
SW1hZ2UoaW1hZ2UsIGltYWdlU2l6ZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsK
ICAgICBhdXRvJiBzdGF0ZSA9IHRoaXMtPnN0YXRlKCk7Ci0gICAgQ2Fpcm86OmRyYXdOYXRpdmVJ
bWFnZSgqcGxhdGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwg
Y29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24sIHN0YXRlLmltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHksIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUp
KTsKKyAgICBDYWlybzo6ZHJhd05hdGl2ZUltYWdlKCpwbGF0Zm9ybUNvbnRleHQoKSwgaW1hZ2Uu
Z2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCB7IG9wdGlvbnMsIHN0YXRlLmltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHkgfSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOwog
fQogCiAvLyBUaGlzIGlzIG9ubHkgdXNlZCB0byBkcmF3IGJvcmRlcnMsIHNvIHdlIHNob3VsZCBu
b3QgZHJhdyBzaGFkb3dzLgpAQCAtNjYwLDE5ICs2NjAsMTkgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3Qg
RmxvYXQKICAgICBDYWlybzo6ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoKnBsYXRmb3JtQ29udGV4
dCgpLCByZWN0LCByb3VuZGVkSG9sZVJlY3QsIENhaXJvOjpGaWxsU291cmNlKHN0YXRlKSwgQ2Fp
cm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9y
bSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25z
dCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25z
KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3UGF0dGVybihpbWFnZSwgZGVzdFJl
Y3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRl
T3BlcmF0b3IsIGJsZW5kTW9kZSk7CisgICAgICAgIG1faW1wbC0+ZHJhd1BhdHRlcm4oaW1hZ2Us
IGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9w
dGlvbnMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKGhhc1BsYXRmb3Jt
Q29udGV4dCgpKTsKICAgICBpZiAoYXV0byBzdXJmYWNlID0gaW1hZ2UubmF0aXZlSW1hZ2VGb3JD
dXJyZW50RnJhbWUoKSkKLSAgICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKCpwbGF0Zm9ybUNvbnRl
eHQoKSwgc3VyZmFjZS5nZXQoKSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0UmVjdCwgdGls
ZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRN
b2RlKTsKKyAgICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKCpwbGF0Zm9ybUNvbnRleHQoKSwgc3Vy
ZmFjZS5nZXQoKSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBh
dHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBvcHRpb25zKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtU2hvdWxkQW50aWFsaWFzKGJvb2wgZW5hYmxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1w
bENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dEltcGxDYWlyby5jcHAKaW5kZXggMDRmMmE5ZmY1NDY5YWE1YmEyNGQxNDk1NjU0
YjYwZjBiYzQzZDJhYi4uODUyYTI3NmY3ZmM2NjE2YTk5MDRhZmVlYjBlOTkwOTcwODA2MjMzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0SW1wbENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCkBAIC0yNzYsMTcgKzI3Niwx
NyBAQCBJbWFnZURyYXdSZXN1bHQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3VGlsZWRJ
bWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsbwogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRJ
bXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCksIGltYWdlLCBkZXN0aW5h
dGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVsZSwgaW1hZ2VQYWludGlu
Z09wdGlvbnMpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFn
ZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIEdyYXBoaWNzQ29udGV4dElt
cGxDYWlybzo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29u
c3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGltYWdlU2l6ZSk7CiAgICAgYXV0byYgc3RhdGUgPSBncmFw
aGljc0NvbnRleHQoKS5zdGF0ZSgpOwotICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UobV9wbGF0
Zm9ybUNvbnRleHQsIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3Bl
cmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24sIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHksIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKKyAgICBDYWly
bzo6ZHJhd05hdGl2ZUltYWdlKG1fcGxhdGZvcm1Db250ZXh0LCBpbWFnZS5nZXQoKSwgZGVzdFJl
Y3QsIHNyY1JlY3QsIHsgb3B0aW9ucywgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSB9
LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdQYXR0
ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IGltYWdlLm5h
dGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpCi0gICAgICAgIENhaXJvOjpkcmF3UGF0dGVybiht
X3BsYXRmb3JtQ29udGV4dCwgc3VyZmFjZS5nZXQoKSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBk
ZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBjb21wb3NpdGVPcGVy
YXRvciwgYmxlbmRNb2RlKTsKKyAgICAgICAgQ2Fpcm86OmRyYXdQYXR0ZXJuKG1fcGxhdGZvcm1D
b250ZXh0LCBzdXJmYWNlLmdldCgpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0
aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIG9wdGlvbnMpOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBm
bG9hdCBib3JkZXJUaGlja25lc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCmlu
ZGV4IGYxYjAyZDM0YWIyZmYyOWFkY2ZiODc0M2M4OTRjMWU0NjA4YjY3M2IuLjJmNTE5ZDQ1NDc3
ZDQzNzk4Yjc1OWE4MTUzNDYyYzk4MzUzN2NkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dElt
cGxDYWlyby5oCkBAIC03NCw4ICs3NCw4IEBAIHB1YmxpYzoKICAgICBJbWFnZURyYXdSZXN1bHQg
ZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQg
ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFBvaW50
JiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhd1RpbGVkSW1hZ2Uo
SW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFNp
emUmLCBJbWFnZTo6VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVsZSwgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24p
IG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBv
aW50JiwgY29uc3QgRmxvYXRTaXplJiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSA9IEJs
ZW5kTW9kZTo6Tm9ybWFsKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25z
dCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBG
bG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkcmF3TGluZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvLmNwcAppbmRleCBlMDFlNjBiOWVlZTdiYTE4Mzk3YTYzZWY0YTE3
NjY3ZmZkYzRhNDVhLi4wZjcyNjU3MDI0ZWJhYzc0MGIwZTc4ZjczMmFjOTNmYjBkZGI3ZDFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvLmNwcApAQCAtMzQ0LDI0ICszNDQsMjMgQEAgQmFja2luZ1N0b3Jl
Q29weSBJbWFnZUJ1ZmZlcjo6ZmFzdENvcHlJbWFnZU1vZGUoKQogICAgIHJldHVybiBEb250Q29w
eUJhY2tpbmdTdG9yZTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyLCBHcmFwaGljc0NvbnRleHQmIGRl
c3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBJ
bWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGlt
YWdlQnVmZmVyLCBHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zKQogewotICAgIGltYWdlQnVmZmVyLT5kcmF3KGRlc3RDb250ZXh0LCBk
ZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSk7CisgICAgaW1hZ2VCdWZmZXItPmRyYXco
ZGVzdENvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKIH0KIAotdm9pZCBJbWFn
ZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RpbmF0aW9uQ29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LAotICAgIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBJbWFnZUJ1ZmZlcjo6
ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RpbmF0aW9uQ29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCAgY29uc3QgSW1hZ2VQYWludGlu
Z09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgQmFja2luZ1N0b3JlQ29weSBjb3B5TW9kZSA9ICZk
ZXN0aW5hdGlvbkNvbnRleHQgPT0gJmNvbnRleHQoKSA/IENvcHlCYWNraW5nU3RvcmUgOiBEb250
Q29weUJhY2tpbmdTdG9yZTsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gY29weUltYWdlKGNv
cHlNb2RlKTsKLSAgICBkZXN0aW5hdGlvbkNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJl
Y3QsIHNyY1JlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9wLCBibGVuZE1vZGUsIERlY29kaW5n
TW9kZTo6U3luY2hyb25vdXMsIEltYWdlT3JpZW50YXRpb246Ok5vbmUpKTsKKyAgICBkZXN0aW5h
dGlvbkNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMp
OwogfQogCiB2b2lkIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBCbGVuZE1vZGUpCisgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7
CiAgICAgaWYgKFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBjb3B5SW1hZ2UoRG9udENvcHlCYWNraW5n
U3RvcmUpKQotICAgICAgICBpbWFnZS0+ZHJhd1BhdHRlcm4oY29udGV4dCwgZGVzdFJlY3QsIHNy
Y1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCk7CisgICAgICAgIGlt
YWdlLT5kcmF3UGF0dGVybihjb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5z
Zm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogfQogCiB2b2lkIEltYWdlQnVmZmVyOjpw
bGF0Zm9ybVRyYW5zZm9ybUNvbG9yU3BhY2UoY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCAyNTY+
JiBsb29rVXBUYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL05hdGl2ZUltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKaW5kZXggODIzZmYwYzdkNzZjODNl
YWVkNjNlYzk4ZmYxNGYwMmEzNDBiZjljMi4uZGUzMDRmMzVmNjUyOWNkNmZkMTU4ZTlhMDNjOWYx
MGMzZDViZmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vTmF0aXZlSW1hZ2VDYWlyby5jcHAKQEAgLTU3LDkgKzU3LDkgQEAgQ29s
b3IgbmF0aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHIm
IGltYWdlKQogICAgIHJldHVybiBjb2xvckZyb21QcmVtdWx0aXBsaWVkQVJHQigqcGl4ZWwpOwog
fQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbnRTaXplJiBpbWFnZVNpemUsIENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uKQordm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1h
Z2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50U2l6ZSYgaW1hZ2VT
aXplLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBjb250ZXh0
LmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29t
cG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24pOworICAgIGNvbnRleHQuZHJh
d05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25z
KTsKIH0KIAogdm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKaW5kZXggODdjOTkwNzliYTBmYTE0NTMyZWYyNTM3
NmJhMjUwMjY4YWMwOTVmYi4uY2Q2YmI3MzBlNjE2MTkxOTNlY2U2MGE5N2VmODg4ZDc3ZWZiNjEw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0M0RDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKQEAgLTUzOSw3ICs1MzksNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpwYWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4
ZWxzLCBjb25zdCBJbgogICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CiAgICAg
Y29udGV4dC50cmFuc2xhdGUoMCwgLWltYWdlU2l6ZS5oZWlnaHQoKSk7CiAgICAgY29udGV4dC5z
ZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Ob25lKTsKLSAgICBjb250
ZXh0LmRyYXdOYXRpdmVJbWFnZShjZ0ltYWdlLCBpbWFnZVNpemUsIGNhbnZhc1JlY3QsIEZsb2F0
UmVjdChGbG9hdFBvaW50KCksIGltYWdlU2l6ZSksIENvbXBvc2l0ZUNvcHkpOworICAgIGNvbnRl
eHQuZHJhd05hdGl2ZUltYWdlKGNnSW1hZ2UsIGltYWdlU2l6ZSwgY2FudmFzUmVjdCwgRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2VTaXplKSwgeyBDb21wb3NpdGVDb3B5IH0pOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXggZTNmYjM4NGRiMzI3
OTQ2Mjk1OThjMjljYmE1MDczMTYzOTAxODhiOS4uZWUyNzM4ZjQyMTBjNjkyYzM1YjkyYThkZTg5
YWZkYTI3MGJkOGIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtMjczLDEzICsyNzMsMTMgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBtX2RhdGEt
Pm1fdXNlclRvRGV2aWNlVHJhbnNmb3JtS25vd25Ub0JlSWRlbnRpdHkgPSBmYWxzZTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4mIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRv
ciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikK
K3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENH
SW1hZ2VSZWY+JiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1faW1wbCkgewotICAgICAgICBtX2ltcGwtPmRyYXdO
YXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5k
TW9kZSwgb3JpZW50YXRpb24pOworICAgICAgICBtX2ltcGwtPmRyYXdOYXRpdmVJbWFnZShpbWFn
ZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0CiAj
ZW5kaWYKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3ViSW1hZ2UoaW1hZ2UpOwogCi0gICAg
ZmxvYXQgY3VyckhlaWdodCA9IG9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkgPyBDR0lt
YWdlR2V0V2lkdGgoc3ViSW1hZ2UuZ2V0KCkpIDogQ0dJbWFnZUdldEhlaWdodChzdWJJbWFnZS5n
ZXQoKSk7CisgICAgZmxvYXQgY3VyckhlaWdodCA9IG9wdGlvbnMub3JpZW50YXRpb24oKS51c2Vz
V2lkdGhBc0hlaWdodCgpID8gQ0dJbWFnZUdldFdpZHRoKHN1YkltYWdlLmdldCgpKSA6IENHSW1h
Z2VHZXRIZWlnaHQoc3ViSW1hZ2UuZ2V0KCkpOwogICAgIGlmIChjdXJySGVpZ2h0IDw9IHNyY1Jl
Y3QueSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTM1OCwxNSArMzU4LDE1IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+
JiBpbWFnZSwgY29uc3QKICAgICBhZGp1c3RlZERlc3RSZWN0ID0gcm91bmRUb0RldmljZVBpeGVs
cyhhZGp1c3RlZERlc3RSZWN0KTsKICNlbmRpZgogCi0gICAgc2V0UGxhdGZvcm1Db21wb3NpdGVP
cGVyYXRpb24ob3AsIGJsZW5kTW9kZSk7CisgICAgc2V0UGxhdGZvcm1Db21wb3NpdGVPcGVyYXRp
b24ob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKIAog
ICAgIC8vIEltYWdlT3JpZW50YXRpb24gZXhwZWN0cyB0aGUgb3JpZ2luIHRvIGJlIGF0ICgwLCAw
KQogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCBhZGp1c3RlZERlc3RSZWN0Lngo
KSwgYWRqdXN0ZWREZXN0UmVjdC55KCkpOwogICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0TG9jYXRp
b24oRmxvYXRQb2ludCgpKTsKIAotICAgIGlmIChvcmllbnRhdGlvbiAhPSBJbWFnZU9yaWVudGF0
aW9uOjpOb25lKSB7Ci0gICAgICAgIENHQ29udGV4dENvbmNhdENUTShjb250ZXh0LCBvcmllbnRh
dGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChhZGp1c3RlZERlc3RSZWN0LnNpemUoKSkpOwotICAg
ICAgICBpZiAob3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSkgeworICAgIGlmIChvcHRp
b25zLm9yaWVudGF0aW9uKCkgIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgeworICAgICAgICBD
R0NvbnRleHRDb25jYXRDVE0oY29udGV4dCwgb3B0aW9ucy5vcmllbnRhdGlvbigpLnRyYW5zZm9y
bUZyb21EZWZhdWx0KGFkanVzdGVkRGVzdFJlY3Quc2l6ZSgpKSk7CisgICAgICAgIGlmIChvcHRp
b25zLm9yaWVudGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkgewogICAgICAgICAgICAgLy8g
VGhlIGRlc3RpbmF0aW9uIHJlY3Qgd2lsbCBoYXZlIGl0J3Mgd2lkdGggYW5kIGhlaWdodCBhbHJl
YWR5IHJldmVyc2VkIGZvciB0aGUgb3JpZW50YXRpb24gb2YKICAgICAgICAgICAgIC8vIHRoZSBp
bWFnZSwgYXMgaXQgd2FzIG5lZWRlZCBmb3IgcGFnZSBsYXlvdXQsIHNvIHdlIG5lZWQgdG8gcmV2
ZXJzZSBpdCBiYWNrIGhlcmUuCiAgICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0ID0gRmxvYXRS
ZWN0KGFkanVzdGVkRGVzdFJlY3QueCgpLCBhZGp1c3RlZERlc3RSZWN0LnkoKSwgYWRqdXN0ZWRE
ZXN0UmVjdC5oZWlnaHQoKSwgYWRqdXN0ZWREZXN0UmVjdC53aWR0aCgpKTsKQEAgLTQwOCwxMyAr
NDA4LDEzIEBAIHN0YXRpYyB2b2lkIHBhdHRlcm5SZWxlYXNlQ2FsbGJhY2sodm9pZCogaW5mbykK
ICAgICB9KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdlJiBp
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBv
cCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVy
bihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1h
Z2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSB8fCAhcGF0dGVyblRyYW5zZm9ybS5pc0ludmVydGlibGUoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKG1faW1wbCkgewotICAgICAgICBtX2ltcGwtPmRyYXdQYXR0ZXJuKGltYWdlLCBk
ZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwg
YmxlbmRNb2RlKTsKKyAgICAgICAgbV9pbXBsLT5kcmF3UGF0dGVybihpbWFnZSwgZGVzdFJlY3Qs
IHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdAogICAgIENHQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsK
ICAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNvbnRleHQsIGRlc3RSZWN0KTsKIAotICAgIHNldFBs
YXRmb3JtQ29tcG9zaXRlT3BlcmF0aW9uKG9wLCBibGVuZE1vZGUpOworICAgIHNldFBsYXRmb3Jt
Q29tcG9zaXRlT3BlcmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5i
bGVuZE1vZGUoKSk7CiAKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgZGVzdFJl
Y3QueCgpLCBkZXN0UmVjdC55KCkgKyBkZXN0UmVjdC5oZWlnaHQoKSk7CiAgICAgQ0dDb250ZXh0
U2NhbGVDVE0oY29udGV4dCwgMSwgLTEpOwpAQCAtNDM5LDExICs0MzksNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdAogICAgIGZsb2F0IGggPSBDR0ltYWdlR2V0SGVpZ2h0KHRpbGVJbWFnZS5n
ZXQoKSk7CiAKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3ViSW1hZ2U7Ci0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBGbG9hdFNpemUgaW1hZ2VTaXplID0gaW1hZ2Uub3JpZ2luYWxT
aXplKCk7Ci0jZWxzZQogICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUgPSBpbWFnZS5zaXplKCk7Ci0j
ZW5kaWYKICAgICBpZiAodGlsZVJlY3Quc2l6ZSgpID09IGltYWdlU2l6ZSkKICAgICAgICAgc3Vi
SW1hZ2UgPSB0aWxlSW1hZ2U7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IGQzNWZmMGVmZjk3
MTk1MGVlZDFlM2ZkMDI2YmNkYTllYWZhMzRlNDYuLjgzN2I4NzczZjZlMzljMjc5NTQzMzY2Mjcy
MDk4MDRiNjNjZWZlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0zMzQsMTEgKzMzNCwxMSBAQCBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4gSW1hZ2VCdWZmZXI6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVD
b3B5IGNvcHlCZWhhdmlvcgogICAgIHJldHVybiBpbWFnZTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZl
cjo6ZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVy
LCBHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlKQordm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyLCBHcmFwaGljc0NvbnRleHQmIGRlc3RDb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogI2lmIFVTRShJT1NVUkZB
Q0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKCFpbWFnZUJ1ZmZlci0+bV9kYXRhLnN1
cmZhY2UpIHsKLSAgICAgICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVzdENvbnRleHQsIGRlc3RSZWN0
LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlKTsKKyAgICAgICAgaW1hZ2VCdWZmZXItPmRyYXcoZGVz
dENvbnRleHQsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKQEAgLTM1MSwxMyArMzUxLDEzIEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdD
b25zdW1pbmcoc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciwgR3JhcGhp
CiAgICAgCiAgICAgRmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdCA9IHNyY1JlY3Q7CiAgICAgYWRq
dXN0ZWRTcmNSZWN0LnNjYWxlKHJlc29sdXRpb25TY2FsZSk7Ci0gICAgZGVzdENvbnRleHQuZHJh
d05hdGl2ZUltYWdlKGltYWdlLmdldCgpLCBiYWNraW5nU3RvcmVTaXplLCBkZXN0UmVjdCwgYWRq
dXN0ZWRTcmNSZWN0LCBvcCwgYmxlbmRNb2RlKTsKKyAgICBkZXN0Q29udGV4dC5kcmF3TmF0aXZl
SW1hZ2UoaW1hZ2UuZ2V0KCksIGJhY2tpbmdTdG9yZVNpemUsIGRlc3RSZWN0LCBhZGp1c3RlZFNy
Y1JlY3QsIG9wdGlvbnMpOwogI2Vsc2UKLSAgICBpbWFnZUJ1ZmZlci0+ZHJhdyhkZXN0Q29udGV4
dCwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUpOworICAgIGltYWdlQnVmZmVyLT5k
cmF3KGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiAjZW5kaWYKIH0K
IAotdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBJbWFnZUJ1ZmZlcjo6
ZHJhdyhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25z
JiBvcHRpb25zKQogewogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZTsKICAgICBpZiAo
JmRlc3RDb250ZXh0ID09ICZjb250ZXh0KCkgfHwgZGVzdENvbnRleHQuaXNBY2NlbGVyYXRlZENv
bnRleHQoKSkKQEAgLTM2NywxMCArMzY3LDEwIEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3Jh
cGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKIAog
ICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNyY1JlY3QgPSBzcmNSZWN0OwogICAgIGFkanVzdGVkU3Jj
UmVjdC5zY2FsZShtX3Jlc29sdXRpb25TY2FsZSk7Ci0gICAgZGVzdENvbnRleHQuZHJhd05hdGl2
ZUltYWdlKGltYWdlLmdldCgpLCBtX2RhdGEuYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFk
anVzdGVkU3JjUmVjdCwgb3AsIGJsZW5kTW9kZSk7CisgICAgZGVzdENvbnRleHQuZHJhd05hdGl2
ZUltYWdlKGltYWdlLmdldCgpLCBtX2RhdGEuYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFk
anVzdGVkU3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0
ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0
ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBz
cGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK3ZvaWQg
SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYg
b3B0aW9ucykKIHsKICAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKICAg
ICBhZGp1c3RlZFNyY1JlY3Quc2NhbGUobV9yZXNvbHV0aW9uU2NhbGUpOwpAQCAtMzc4LDE0ICsz
NzgsMTQgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBk
ZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXMKICAgICBpZiAoIWNvbnRleHQoKS5pc0Fj
Y2VsZXJhdGVkQ29udGV4dCgpKSB7CiAgICAgICAgIGlmICgmZGVzdENvbnRleHQgPT0gJmNvbnRl
eHQoKSB8fCBkZXN0Q29udGV4dC5pc0FjY2VsZXJhdGVkQ29udGV4dCgpKSB7CiAgICAgICAgICAg
ICBpZiAoUmVmUHRyPEltYWdlPiBjb3B5ID0gY29weUltYWdlKENvcHlCYWNraW5nU3RvcmUpKSAv
LyBEcmF3aW5nIGludG8gb3VyIG93biBidWZmZXIsIG5lZWQgdG8gZGVlcCBjb3B5LgotICAgICAg
ICAgICAgICAgIGNvcHktPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0
ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgb3AsIGJsZW5kTW9k
ZSk7CisgICAgICAgICAgICAgICAgY29weS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RS
ZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8SW1hZ2U+
IGltYWdlRm9yUmVuZGVyaW5nID0gY29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKSkKLSAg
ICAgICAgICAgICAgICBpbWFnZUZvclJlbmRlcmluZy0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQs
IGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFj
aW5nLCBvcCwgYmxlbmRNb2RlKTsKKyAgICAgICAgICAgICAgICBpbWFnZUZvclJlbmRlcmluZy0+
ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRl
cm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICAgICAgfQogICAgIH0g
ZWxzZSB7CiAgICAgICAgIGlmIChSZWZQdHI8SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoQ29weUJh
Y2tpbmdTdG9yZSkpCi0gICAgICAgICAgICBjb3B5LT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwg
ZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNp
bmcsIG9wLCBibGVuZE1vZGUpOworICAgICAgICAgICAgY29weS0+ZHJhd1BhdHRlcm4oZGVzdENv
bnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNl
LCBzcGFjaW5nLCBvcHRpb25zKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL05hdGl2ZUltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAKaW5kZXggZjAyZDVkNTY2
MGE2YzhhMTExZDViYzgyMTBmNmQ1ZDlmZWFkM2JkOC4uODI5NDExNjYxZTk4NzA2MGUwM2IzZjAz
ZTBlNmRiYzFlN2QyMDQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvTmF0aXZlSW1hZ2VDRy5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgQ29sb3IgbmF0
aXZlSW1hZ2VTaW5nbGVQaXhlbFNvbGlkQ29sb3IoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdl
KQogICAgIHJldHVybiBDb2xvcihwaXhlbFswXSAqIDI1NSAvIHBpeGVsWzNdLCBwaXhlbFsxXSAq
IDI1NSAvIHBpeGVsWzNdLCBwaXhlbFsyXSAqIDI1NSAvIHBpeGVsWzNdLCBwaXhlbFszXSk7CiB9
CiAKLXZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBCbGVuZE1vZGUgbW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3Zv
aWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiBvcHRpb25zKQogewogICAgIC8vIFN1YnNhbXBsaW5nIG1heSBoYXZlIGdpdmVuIHVz
IGFuIGltYWdlIHRoYXQgaXMgc21hbGxlciB0aGFuIHNpemUoKS4KICAgICBJbnRTaXplIHN1YnNh
bXBsZWRJbWFnZVNpemUgPSBuYXRpdmVJbWFnZVNpemUoaW1hZ2UpOwpAQCAtNzksNyArNzksNyBA
QCB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29ucwogICAgIGlmIChzdWJzYW1wbGVkSW1hZ2VTaXplICE9
IHNyY1NpemUpCiAgICAgICAgIGFkanVzdGVkU3JjUmVjdCA9IG1hcFJlY3Qoc3JjUmVjdCwgRmxv
YXRSZWN0KHsgfSwgc3JjU2l6ZSksIEZsb2F0UmVjdCh7IH0sIHN1YnNhbXBsZWRJbWFnZVNpemUp
KTsKIAotICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKGltYWdlLCBzdWJzYW1wbGVkSW1hZ2VT
aXplLCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBvcCwgbW9kZSwgb3JpZW50YXRpb24pOwor
ICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKGltYWdlLCBzdWJzYW1wbGVkSW1hZ2VTaXplLCBk
ZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBvcHRpb25zKTsKIH0KIAogdm9pZCBjbGVhck5hdGl2
ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5j
cHAKaW5kZXggM2Q0M2NmYjQxMTFlN2I4YmYxZGZiMWIwZTc4MzMyZjY2YTJiMTQ5Ni4uODBmNmIx
ODcyNTIyOTY4ZWE3ZDk1NzZiN2UwMDU2MzMzMjU4ODIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKQEAg
LTY2LDcgKzY2LDcgQEAgU3RyaW5nIFBERkRvY3VtZW50SW1hZ2U6OmZpbGVuYW1lRXh0ZW5zaW9u
KCkgY29uc3QKICAgICByZXR1cm4gInBkZiI7CiB9CiAKLUZsb2F0U2l6ZSBQREZEb2N1bWVudElt
YWdlOjpzaXplKCkgY29uc3QKK0Zsb2F0U2l6ZSBQREZEb2N1bWVudEltYWdlOjpzaXplKEltYWdl
T3JpZW50YXRpb24pIGNvbnN0CiB7CiAgICAgRmxvYXRTaXplIGV4cGFuZGVkQ3JvcEJveFNpemUg
PSBGbG9hdFNpemUoZXhwYW5kZWRJbnRTaXplKG1fY3JvcEJveC5zaXplKCkpKTsKIApAQCAtMjU3
LDcgKzI1Nyw3IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6dXBkYXRlQ2FjaGVkSW1hZ2VJZk5l
ZWRlZChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAgICAgZGVjb2RlZFNpemVDaGFu
Z2VkKGludGVybmFsU2l6ZS51bmNsYW1wZWRBcmVhKCkgKiA0KTsKIH0KIAotSW1hZ2VEcmF3UmVz
dWx0IFBERkRvY3VtZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRl
T3BlcmF0b3Igb3AsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uKQor
SW1hZ2VEcmF3UmVzdWx0IFBERkRvY3VtZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgaWYgKCFtX2Rv
Y3VtZW50IHx8ICFtX2hhc1BhZ2UpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRp
ZE5vdGhpbmc7CkBAIC0yNjYsNyArMjY2LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IFBERkRvY3VtZW50
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QKIAog
ICAgIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRl
eHQpOwotICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihvcCk7CisgICAgICAg
IGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKG9wdGlvbnMuY29tcG9zaXRlT3BlcmF0b3Io
KSk7CiAKICAgICAgICAgaWYgKG1fY2FjaGVkSW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAgIC8v
IERyYXcgdGhlIEltYWdlQnVmZmVyICdtX2NhY2hlZEltYWdlQnVmZmVyJyB0byB0aGUgcmVjdGFu
Z2xlICdtX2NhY2hlZEltYWdlUmVjdCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAppbmRleCA5YmYxNjdjNDU1NDIwMTYw
YjhiMGY4OTczYTdkMTc5NTRmNjYxNzU1Li5lZDlkMTZkMjg1YTEzMmY2NzBmZjA4NGNlMTMwMDdm
M2Q0NTRmNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9QREZEb2N1bWVudEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCkBAIC03Niw5ICs3Niw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkZXN0cm95RGVjb2RlZERhdGEoYm9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRydWUpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJp
bnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNS
YXRpbykgb3ZlcnJpZGU7Ci0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJv
bUltYWdlKSBjb25zdCBvdmVycmlkZTsKIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdl
T3JpZW50YXRpb24pIG92ZXJyaWRlOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogCiAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGlzIHRvIGJlIGxlc3MgY29uc2VydmF0aXZlLgogICAgIGJv
b2wgY3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCBiNzEzZTg1
ZWZjNDg2YWUxYWUxZTBkNzMwMzYxZDlhNTRiMjhjODg3Li5kMzliNjYyYTRhYThhYjY0NmIzMzE3
MDEwMmRiNmZjOGNkODJhMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3Bw
CkBAIC00ODcsNyArNDg3LDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IERyYXdUaWxlZFNjYWxlZEltYWdlJiBpdGVtKQogfQogCiAjaWYgVVNF
KENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKLURyYXdOYXRpdmVJbWFnZTo6RHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCitEcmF3TmF0aXZlSW1hZ2U6OkRyYXdOYXRpdmVJbWFn
ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgaW1hZ2VTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogICAgIDogRHJhd2luZ0l0ZW0oSXRl
bVR5cGU6OkRyYXdOYXRpdmVJbWFnZSkKICNpZiBVU0UoQ0cpCiAgICAgLy8gRklYTUU6IE5lZWQg
dG8gc3RvcmUgYW4gaW1hZ2UgZm9yIENhaXJvLgpAQCAtNDk2LDIzICs0OTYsMTcgQEAgRHJhd05h
dGl2ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBj
b25zdCBGbG9hdFNpemUmIGkKICAgICAsIG1faW1hZ2VTaXplKGltYWdlU2l6ZSkKICAgICAsIG1f
ZGVzdGluYXRpb24oZGVzdFJlY3QpCiAgICAgLCBtX3NyY1JlY3Qoc3JjUmVjdCkKLSNpZiBVU0Uo
Q0cpCi0gICAgLCBtX29wKG9wKQotICAgICwgbV9ibGVuZE1vZGUoYmxlbmRNb2RlKQotI2VuZGlm
Ci0gICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQorICAgICwgbV9vcHRpb25zKG9wdGlv
bnMpCiB7CiAjaWYgIVVTRShDRykKICAgICBVTlVTRURfUEFSQU0oaW1hZ2UpOwotICAgIFVOVVNF
RF9QQVJBTShvcCk7Ci0gICAgVU5VU0VEX1BBUkFNKGJsZW5kTW9kZSk7CiAjZW5kaWYKIH0KIAog
dm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29u
c3QKIHsKICNpZiBVU0UoQ0cpCi0gICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobV9pbWFnZSwg
bV9pbWFnZVNpemUsIG1fZGVzdGluYXRpb24sIG1fc3JjUmVjdCwgbV9vcCwgbV9ibGVuZE1vZGUs
IG1fb3JpZW50YXRpb24pOworICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG1faW1hZ2UsIG1f
aW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9uLCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKICNlbmRpZgpAQCAtNTI4LDcgKzUyMiw3IEBAIHN0
YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3TmF0
aXZlSW1hZ2UmIGl0ZW0pCiB9CiAjZW5kaWYKIAotRHJhd1BhdHRlcm46OkRyYXdQYXR0ZXJuKElt
YWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0
aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBG
bG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK0RyYXdQYXR0ZXJuOjpEcmF3UGF0dGVybihJ
bWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
dGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgSW1hZ2VQ
YWludGluZ09wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJh
d1BhdHRlcm4pCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9wYXR0ZXJuVHJhbnNmb3Jt
KHBhdHRlcm5UcmFuc2Zvcm0pCkBAIC01MzYsMTQgKzUzMCwxMyBAQCBEcmF3UGF0dGVybjo6RHJh
d1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlYwogICAgICwgbV9kZXN0aW5hdGlvbihkZXN0UmVjdCkKICAgICAsIG1fcGhhc2UocGhh
c2UpCiAgICAgLCBtX3NwYWNpbmcoc3BhY2luZykKLSAgICAsIG1fb3Aob3ApCi0gICAgLCBtX2Js
ZW5kTW9kZShibGVuZE1vZGUpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKIHsKIH0KIAogdm9p
ZCBEcmF3UGF0dGVybjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewot
ICAgIGNvbnRleHQuZHJhd1BhdHRlcm4obV9pbWFnZS5nZXQoKSwgbV9kZXN0aW5hdGlvbiwgbV90
aWxlUmVjdCwgbV9wYXR0ZXJuVHJhbnNmb3JtLCBtX3BoYXNlLCBtX3NwYWNpbmcsIG1fb3AsIG1f
YmxlbmRNb2RlKTsKKyAgICBjb250ZXh0LmRyYXdQYXR0ZXJuKG1faW1hZ2UuZ2V0KCksIG1fZGVz
dGluYXRpb24sIG1fdGlsZVJlY3QsIG1fcGF0dGVyblRyYW5zZm9ybSwgbV9waGFzZSwgbV9zcGFj
aW5nLCBtX29wdGlvbnMpOwogfQogCiBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgRHJhd1BhdHRlcm4mIGl0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaAppbmRleCA4YmNjZTE5YjI0ZTFmZjVmNjViNmJmNDhjOTQxNzBjOWI3ZTAxZmI4
Li5jZjNjZjkyOTMwYzQ2ZGJlNmM3Mjk3YTVhOTFjZTI1MTI1Y2JhNzYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTY0MSwxNiArNjQxLDE2IEBAIHByaXZhdGU6CiAjaWYg
VVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKIGNsYXNzIERyYXdOYXRpdmVJ
bWFnZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEcmF3
TmF0aXZlSW1hZ2U+IGNyZWF0ZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQorICAgIHN0YXRpYyBSZWY8RHJhd05hdGl2
ZUltYWdlPiBjcmVhdGUoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNp
emUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VT
aXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24pKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNp
emUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSk7CiAgICAgfQogCiAgICAgRmxvYXRSZWN0
IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQogICAgIEZsb2F0UmVjdCBkZXN0
aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KIAogcHJpdmF0ZToKLSAg
ICBEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUm
IHNlbGZTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24pOwor
ICAgIERyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6
ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAogICAgIHZvaWQgYXBwbHko
R3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTY2MiwxOSArNjYyLDE1IEBA
IHByaXZhdGU6CiAgICAgRmxvYXRTaXplIG1faW1hZ2VTaXplOwogICAgIEZsb2F0UmVjdCBtX2Rl
c3RpbmF0aW9uOwogICAgIEZsb2F0UmVjdCBtX3NyY1JlY3Q7Ci0jaWYgVVNFKENHKQotICAgIENv
bXBvc2l0ZU9wZXJhdG9yIG1fb3A7Ci0gICAgQmxlbmRNb2RlIG1fYmxlbmRNb2RlOwotI2VuZGlm
Ci0gICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uOworICAgIEltYWdlUGFpbnRpbmdP
cHRpb25zIG1fb3B0aW9uczsKIH07CiAjZW5kaWYKIAogY2xhc3MgRHJhd1BhdHRlcm4gOiBwdWJs
aWMgRHJhd2luZ0l0ZW0gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RHJhd1BhdHRlcm4+IGNy
ZWF0ZShJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9z
aXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCisgICAgc3RhdGljIFJlZjxEcmF3
UGF0dGVybj4gY3JlYXRlKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwgdGlsZVJl
Y3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdQYXR0ZXJuKGltYWdlLCBkZXN0UmVjdCwg
dGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKSk7CiAg
ICAgfQogCiAgICAgY29uc3QgSW1hZ2UmIGltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5n
ZXQoKTsgfQpAQCAtNjg1LDcgKzY4MSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFNpemUgc3BhY2lu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fc3BhY2luZzsgfQogCiBwcml2YXRlOgotICAgIERyYXdQYXR0
ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0g
QmxlbmRNb2RlOjpOb3JtYWwpOworICAgIERyYXdQYXR0ZXJuKEltYWdlJiwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5n
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogCiAgICAgdm9pZCBhcHBseShH
cmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZTsKIApAQCAtNjk3LDggKzY5Myw3IEBAIHBy
aXZhdGU6CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb247CiAgICAgRmxvYXRQb2ludCBtX3Bo
YXNlOwogICAgIEZsb2F0U2l6ZSBtX3NwYWNpbmc7Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3IgbV9v
cDsKLSAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGU7CisgICAgSW1hZ2VQYWludGluZ09wdGlvbnMg
bV9vcHRpb25zOwogfTsKIAogLy8gSXMgRHJhd2luZ0l0ZW0gYmVjYXVzZSB0aGUgc2l6ZSBvZiB0
aGUgdHJhbnNwYXJlbmN5IGxheWVyIGlzIGltcGxpY2l0bHkgdGhlIGNsaXAgYm91bmRzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGU3OTdhN2ZkNDI4NzE4
ZDM5NzA4MDI1NGEyZmZkNjE2MjNjYTY1NGUuLmUyMGYzZWQxM2NiNmU1NWY3ODJlOGM5YWRjMTMw
ODcyZGU2ZWYxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAK
QEAgLTEyNywxNiArMTI3LDE2IEBAIEltYWdlRHJhd1Jlc3VsdCBSZWNvcmRlcjo6ZHJhd1RpbGVk
SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0CiB9CiAKICNpZiBV
U0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotdm9pZCBSZWNvcmRlcjo6ZHJh
d05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXpl
JiBpbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIFJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2Uo
Y29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBEcmF3aW5nSXRlbSYgbmV3
SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKERyYXdOYXRpdmVJbWFnZTo6
Y3JlYXRlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2Rl
LCBvcmllbnRhdGlvbikpKTsKKyAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERy
YXdpbmdJdGVtPihhcHBlbmRJdGVtKERyYXdOYXRpdmVJbWFnZTo6Y3JlYXRlKGltYWdlLCBpbWFn
ZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zKSkpOwogICAgIHVwZGF0ZUl0ZW1FeHRl
bnQobmV3SXRlbSk7CiB9CiAjZW5kaWYKIAotdm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4oSW1h
Z2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQordm9pZCBSZWNvcmRlcjo6ZHJhd1BhdHRlcm4o
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewotICAgIERyYXdpbmdJdGVtJiBuZXdJdGVtID0g
ZG93bmNhc3Q8RHJhd2luZ0l0ZW0+KGFwcGVuZEl0ZW0oRHJhd1BhdHRlcm46OmNyZWF0ZShpbWFn
ZSwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywg
b3AsIGJsZW5kTW9kZSkpKTsKKyAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERy
YXdpbmdJdGVtPihhcHBlbmRJdGVtKERyYXdQYXR0ZXJuOjpjcmVhdGUoaW1hZ2UsIGRlc3RSZWN0
LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpKSk7
CiAgICAgdXBkYXRlSXRlbUV4dGVudChuZXdJdGVtKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmgKaW5kZXggMzE3OThjMWIyZDQ3NDM3NDk4ZmMzMTVhYzE2M2QzNWU0
Njc1MzdmMC4uNTE2ZDRkZjhjN2ZkOWViNWYyOTk3NTY1OGRkNzYzZDE4MDBjM2NkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCkBAIC05Miw5ICs5Miw5IEBAIHByaXZh
dGU6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9h
dFNpemUmIHRpbGVTaXplLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFp
bnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZElt
YWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2UsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6VGlsZVJ1
bGUgaFJ1bGUsIEltYWdlOjpUaWxlUnVsZSB2UnVsZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSBvdmVycmlkZTsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJE
KQotICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3Qg
RmxvYXRTaXplJiBzZWxmU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJ
bWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZvaWQgZHJhd1BhdHRlcm4oSW1hZ2UmLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUm
IHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1h
bCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1Jl
Y3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRyYXdMaW5lKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQmxlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUJsZW5kLmNwcAppbmRleCBiZWYzYWQ5MDcxZWU4YzQ1MGQ5MWY5YmY5ODI0ODU1NTgwZTFm
NDE3Li5lNGQ3Mjk1N2IwY2RlODdmMTdmZjk3MmZjYjcxOTdjOTU5ZjMzMGUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAK
QEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBGRUJsZW5kOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1h
Z2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJl
Y3QoKSkpOwotICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwg
ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJl
Y3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBJbWFnZVBhaW50aW5n
T3B0aW9ucyhDb21wb3NpdGVTb3VyY2VPdmVyLCBtX21vZGUpKTsKKyAgICBmaWx0ZXJDb250ZXh0
LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2Uo
aW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVy
LT5sb2dpY2FsU2l6ZSgpKSwgeyBDb21wb3NpdGVTb3VyY2VPdmVyLCBtX21vZGUgfSk7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUNvbXBvc2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAppbmRleCA1MzIzYmVkYWE1NzBhNGIyMTI0MTY4YzQ2NWI0
OTUxYzA0MWY0MzlhLi5kNTZkYjQwYzA0OTRkYjE3M2YwMDE3NDRiNWMxYmM0ZDJjMWE1YTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29t
cG9zaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29tcG9zaXRlLmNwcApAQCAtMjcwLDggKzI3MCw4IEBAIHZvaWQgRkVDb21wb3NpdGU6OnBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAgICAgICAgIEludFJlY3QgYWRqdXN0ZWREZXN0aW5hdGlv
blJlY3QgPSBkZXN0aW5hdGlvblJlY3QgLSBhYnNvbHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9uKCk7
CiAgICAgICAgIEludFJlY3Qgc291cmNlUmVjdCA9IGRlc3RpbmF0aW9uUmVjdCAtIGluLT5hYnNv
bHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9uKCk7CiAgICAgICAgIEludFJlY3Qgc291cmNlMlJlY3Qg
PSBkZXN0aW5hdGlvblJlY3QgLSBpbjItPmFic29sdXRlUGFpbnRSZWN0KCkubG9jYXRpb24oKTsK
LSAgICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyMiwgYWRq
dXN0ZWREZXN0aW5hdGlvblJlY3QsIHNvdXJjZTJSZWN0KTsKLSAgICAgICAgZmlsdGVyQ29udGV4
dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBhZGp1c3RlZERlc3RpbmF0aW9uUmVjdCwg
c291cmNlUmVjdCwgQ29tcG9zaXRlU291cmNlSW4pOworICAgICAgICBmaWx0ZXJDb250ZXh0LmRy
YXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIyLCBGbG9hdFJlY3QoYWRqdXN0ZWREZXN0aW5hdGlv
blJlY3QpLCBGbG9hdFJlY3Qoc291cmNlMlJlY3QpKTsKKyAgICAgICAgZmlsdGVyQ29udGV4dC5k
cmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBGbG9hdFJlY3QoYWRqdXN0ZWREZXN0aW5hdGlv
blJlY3QpLCBGbG9hdFJlY3Qoc291cmNlUmVjdCksIHsgQ29tcG9zaXRlU291cmNlSW4gfSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX09VVDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNw
cAppbmRleCAzNWQ2YWU5ODk2Nzc4MGRhOTFiM2M1MDYwZGRiNjJlNDg3M2FlZDAyLi41ODFjYTI2
ZjAwZjA1NjRlYWNhNjk1ZjNjNWE0ODlhYTcxYmY5YTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC04ODUsMTUgKzg4NSwx
MSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYQogICAgIGlmICghR1NUX0lTX1NBTVBMRShtX3Nh
bXBsZS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEltYWdlUGFpbnRpbmdPcHRpb25z
IHBhaW50aW5nT3B0aW9ucyhDb21wb3NpdGVDb3B5KTsKLSAgICBpZiAobV9yZW5kZXJpbmdDYW5C
ZUFjY2VsZXJhdGVkKQotICAgICAgICBwYWludGluZ09wdGlvbnMubV9vcmllbnRhdGlvbiA9IG1f
dmlkZW9Tb3VyY2VPcmllbnRhdGlvbjsKLQogICAgIGF1dG8gZ3N0SW1hZ2UgPSBJbWFnZUdTdHJl
YW1lcjo6Y3JlYXRlSW1hZ2UobV9zYW1wbGUuZ2V0KCkpOwogICAgIGlmICghZ3N0SW1hZ2UpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNvbnRleHQuZHJhd0ltYWdlKGdzdEltYWdlLT5pbWFnZSgp
LCByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCBwYWludGluZ09wdGlvbnMpOworICAgIGNvbnRleHQu
ZHJhd0ltYWdlKGdzdEltYWdlLT5pbWFnZSgpLCByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCB7IENv
bXBvc2l0ZUNvcHksIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCA/IG1fdmlkZW9Tb3VyY2VP
cmllbnRhdGlvbiA6IEltYWdlT3JpZW50YXRpb24oKSB9KTsKIH0KIAogI2lmIFVTRShHU1RSRUFN
RVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9u
UmVjb3JkZXIuY3BwCmluZGV4IDUwZTBjM2M3ZDk3NjgyNmJhN2JiODE4NWQxZWUxNDIxMjlhZGEw
MmMuLjFkMmFmNjlmZDZmYTc4M2YwZmMxNjYxYTg2ODBjMmIxMDY4YzE2YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNh
aXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuY3BwCkBA
IC01NDksMTQgKzU0OSwxNCBAQCBJbWFnZURyYXdSZXN1bHQgQ2Fpcm9PcGVyYXRpb25SZWNvcmRl
cjo6ZHJhd1RpbGVkSW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdAogICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHRJbXBsOjpkcmF3VGlsZWRJbWFnZUltcGwoZ3JhcGhpY3NDb250ZXh0KCks
IGltYWdlLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2NhbGVGYWN0b3IsIGhSdWxlLCB2UnVs
ZSwgaW1hZ2VQYWludGluZ09wdGlvbnMpOwogfQogCi12b2lkIENhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXI6OmRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIGNvbnN0IEZs
b2F0U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQordm9pZCBDYWly
b09wZXJhdGlvblJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHIm
IGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYgb3B0aW9ucykKIHsKLSAgICBzdHJ1Y3QgRHJhd05hdGl2ZUltYWdlIGZpbmFsIDogUGFpbnRp
bmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4sIEZsb2F0
UmVjdCwgRmxvYXRSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQsIENhaXJvOjpTaGFkb3dTdGF0ZT4g
eworICAgIHN0cnVjdCBEcmF3TmF0aXZlSW1hZ2UgZmluYWwgOiBQYWludGluZ09wZXJhdGlvbiwg
T3BlcmF0aW9uRGF0YTxSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiwgRmxvYXRSZWN0LCBGbG9hdFJl
Y3QsIEltYWdlUGFpbnRpbmdPcHRpb25zLCBmbG9hdCwgQ2Fpcm86OlNoYWRvd1N0YXRlPiB7CiAg
ICAgICAgIHZpcnR1YWwgfkRyYXdOYXRpdmVJbWFnZSgpID0gZGVmYXVsdDsKIAogICAgICAgICB2
b2lkIGV4ZWN1dGUoUGFpbnRpbmdPcGVyYXRpb25SZXBsYXkmIHJlcGxheWVyKSBvdmVycmlkZQog
ICAgICAgICB7Ci0gICAgICAgICAgICBDYWlybzo6ZHJhd05hdGl2ZUltYWdlKGNvbnRleHRGb3JS
ZXBsYXkocmVwbGF5ZXIpLCBhcmc8MD4oKS5nZXQoKSwgYXJnPDE+KCksIGFyZzwyPigpLCBhcmc8
Mz4oKSwgYXJnPDQ+KCksIGFyZzw1PigpLCBhcmc8Nj4oKSwgYXJnPDc+KCksIGFyZzw4PigpKTsK
KyAgICAgICAgICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29udGV4dEZvclJlcGxheShyZXBs
YXllciksIGFyZzwwPigpLmdldCgpLCBhcmc8MT4oKSwgYXJnPDI+KCksIGFyZzwzPigpLCBhcmc8
ND4oKSwgYXJnPDU+KCkpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBkdW1wKFRleHRTdHJl
YW0mIHRzKSBvdmVycmlkZQpAQCAtNTY3LDE3ICs1NjcsMTcgQEAgdm9pZCBDYWlyb09wZXJhdGlv
blJlY29yZGVyOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBj
b25zdAogCiAgICAgVU5VU0VEX1BBUkFNKGltYWdlU2l6ZSk7CiAgICAgYXV0byYgc3RhdGUgPSBn
cmFwaGljc0NvbnRleHQoKS5zdGF0ZSgpOwotICAgIGFwcGVuZChjcmVhdGVDb21tYW5kPERyYXdO
YXRpdmVJbWFnZT4oUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4oaW1hZ2UuZ2V0KCkpLCBkZXN0UmVj
dCwgc3JjUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24sIHN0
YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93
U3RhdGUoc3RhdGUpKSk7CisgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd05hdGl2ZUltYWdl
PihSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PihpbWFnZS5nZXQoKSksIGRlc3RSZWN0LCBzcmNSZWN0
LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcHRpb25zLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25R
dWFsaXR5KSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpKTsKIH0KIAot
dm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhh
c2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXI6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBzdHJ1Y3Qg
RHJhd1BhdHRlcm4gZmluYWwgOiBQYWludGluZ09wZXJhdGlvbiwgT3BlcmF0aW9uRGF0YTxSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiwgSW50U2l6ZSwgRmxvYXRSZWN0LCBGbG9hdFJlY3QsIEFmZmlu
ZVRyYW5zZm9ybSwgRmxvYXRQb2ludCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZT4gewor
ICAgIHN0cnVjdCBEcmF3UGF0dGVybiBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRp
b25EYXRhPFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+LCBJbnRTaXplLCBGbG9hdFJlY3QsIEZsb2F0
UmVjdCwgQWZmaW5lVHJhbnNmb3JtLCBGbG9hdFBvaW50LCBJbWFnZVBhaW50aW5nT3B0aW9ucz4g
ewogICAgICAgICB2aXJ0dWFsIH5EcmF3UGF0dGVybigpID0gZGVmYXVsdDsKIAogICAgICAgICB2
b2lkIGV4ZWN1dGUoUGFpbnRpbmdPcGVyYXRpb25SZXBsYXkmIHJlcGxheWVyKSBvdmVycmlkZQog
ICAgICAgICB7Ci0gICAgICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4oY29udGV4dEZvclJlcGxh
eShyZXBsYXllciksIGFyZzwwPigpLmdldCgpLCBhcmc8MT4oKSwgYXJnPDI+KCksIGFyZzwzPigp
LCBhcmc8ND4oKSwgYXJnPDU+KCksIGFyZzw2PigpLCBhcmc8Nz4oKSk7CisgICAgICAgICAgICBD
YWlybzo6ZHJhd1BhdHRlcm4oY29udGV4dEZvclJlcGxheShyZXBsYXllciksIGFyZzwwPigpLmdl
dCgpLCBhcmc8MT4oKSwgYXJnPDI+KCksIGFyZzwzPigpLCBhcmc8ND4oKSwgYXJnPDU+KCksIGFy
Zzw2PigpKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZHVtcChUZXh0U3RyZWFtJiB0cykg
b3ZlcnJpZGUKQEAgLTU4OCw3ICs1ODgsNyBAQCB2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6
OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdAogCiAg
ICAgVU5VU0VEX1BBUkFNKHNwYWNpbmcpOwogICAgIGlmIChhdXRvIHN1cmZhY2UgPSBpbWFnZS5u
YXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKQotICAgICAgICBhcHBlbmQoY3JlYXRlQ29tbWFu
ZDxEcmF3UGF0dGVybj4oV1RGTW92ZShzdXJmYWNlKSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBk
ZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBjb21wb3NpdGVPcGVy
YXRvciwgYmxlbmRNb2RlKSk7CisgICAgICAgIGFwcGVuZChjcmVhdGVDb21tYW5kPERyYXdQYXR0
ZXJuPihXVEZNb3ZlKHN1cmZhY2UpLCBJbnRTaXplKGltYWdlLnNpemUoKSksIGRlc3RSZWN0LCB0
aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIG9wdGlvbnMpKTsKIH0KIAogdm9pZCBD
YWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZs
b2F0IGJvcmRlclRoaWNrbmVzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNh
aXJvT3BlcmF0aW9uUmVjb3JkZXIuaAppbmRleCBkYmQ2NzIzMTQ4NGY5MTg3MjFjYzBiZmRkODYz
ODVlN2ZlNWI4OWY5Li44MjYwYzQ4YWQ3OTg2ODRjNmU1N2MxZDY2ZGZiZTZkMDEwMWMxZjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJv
L05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRl
ci5oCkBAIC02Nyw4ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVz
dWx0IGRyYXdJbWFnZShXZWJDb3JlOjpJbWFnZSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdP
cHRpb25zJikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxl
ZEltYWdlKFdlYkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFpbnRpbmdPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKFdl
YkNvcmU6OkltYWdlJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6SW1hZ2U6OlRp
bGVSdWxlLCBXZWJDb3JlOjpJbWFnZTo6VGlsZVJ1bGUsIGNvbnN0IFdlYkNvcmU6OkltYWdlUGFp
bnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3Qg
V2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBXZWJDb3Jl
OjpDb21wb3NpdGVPcGVyYXRvciwgV2ViQ29yZTo6QmxlbmRNb2RlLCBXZWJDb3JlOjpJbWFnZU9y
aWVudGF0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKFdlYkNvcmU6OkltYWdl
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9y
LCBXZWJDb3JlOjpCbGVuZE1vZGUgPSBXZWJDb3JlOjpCbGVuZE1vZGU6Ok5vcm1hbCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29uc3QgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQ
dHImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbWFnZVBhaW50aW5n
T3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd1BhdHRlcm4oV2ViQ29yZTo6SW1hZ2Um
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VQYWludGlu
Z09wdGlvbnMmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiwgZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3Qy
RE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rp
cmVjdDJET3BlcmF0aW9ucy5jcHAKaW5kZXggMjY2MThlN2YzNWY2ZDYyZjdiN2RlMWY2YmY2YTJm
NjRjNzk2ZTRjZi4uY2M5ZjlkMTIyN2ZiNWE1YTY2ZjczNmFjYjI2ZjRlODM3ZGY1MzI1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Rp
cmVjdDJET3BlcmF0aW9ucy5jcHAKQEAgLTc1MCw3ICs3NTAsNyBAQCB2b2lkIGRyYXdHbHlwaHMo
UGxhdGZvcm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmlsbFNvdXJj
ZSYgZmlsbAogfQogCiAKLXZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVj
dDJEJiBwbGF0Zm9ybUNvbnRleHQsIElXSUNCaXRtYXAqIGltYWdlLCBjb25zdCBGbG9hdFNpemUm
IG9yaWdpbmFsSW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBJbnRlcnBvbGF0
aW9uUXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxBbHBoYSwg
Y29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQordm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxh
dGZvcm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgSVdJQ0JpdG1hcCogaW1hZ2Us
IGNvbnN0IEZsb2F0U2l6ZSYgb3JpZ2luYWxJbWFnZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlv
bnMmIG9wdGlvbnMsIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93
U3RhdGUpCiB7CiAgICAgYXV0byBuYXRpdmVJbWFnZVNpemUgPSBiaXRtYXBTaXplKGltYWdlKTsK
ICAgICBDT01QdHI8SUQyRDFCaXRtYXA+IGRldmljZUJpdG1hcDsKQEAgLTc1OSwxMCArNzU5LDEw
IEBAIHZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiBwbGF0Zm9y
bUNvbnRleHQsIElXSUNCaXRtYXAqIGltYWdlCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
aW1hZ2VTaXplID0gYml0bWFwU2l6ZShkZXZpY2VCaXRtYXAuZ2V0KCkpOwotICAgIGRyYXdOYXRp
dmVJbWFnZShwbGF0Zm9ybUNvbnRleHQsIGRldmljZUJpdG1hcC5nZXQoKSwgaW1hZ2VTaXplLCBk
ZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRp
b24sIGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIGdsb2JhbEFscGhhLCBzaGFkb3dTdGF0ZSk7
CisgICAgZHJhd05hdGl2ZUltYWdlKHBsYXRmb3JtQ29udGV4dCwgZGV2aWNlQml0bWFwLmdldCgp
LCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25zLCBnbG9iYWxBbHBoYSwgc2hh
ZG93U3RhdGUpOwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHREaXJl
Y3QyRCYgcGxhdGZvcm1Db250ZXh0LCBJRDJEMUJpdG1hcCogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6
ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUg
YmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxBbHBoYSwgY29uc3Qg
U2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQordm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1D
b250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgSUQyRDFCaXRtYXAqIGltYWdlLCBjb25z
dCBGbG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucywg
ZmxvYXQgZ2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKICAg
ICBhdXRvIGJpdG1hcFNpemUgPSBpbWFnZS0+R2V0U2l6ZSgpOwogCkBAIC03OTQsMTYgKzc5NCwx
NiBAQCB2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHREaXJlY3QyRCYgcGxhdGZv
cm1Db250ZXh0LCBJRDJEMUJpdG1hcCogaW1hZwogICAgIGlmICghc2hvdWxkVXNlU3ViaW1hZ2Ug
JiYgY3VyckhlaWdodCA8IGltYWdlU2l6ZS5oZWlnaHQoKSkKICAgICAgICAgYWRqdXN0ZWREZXN0
UmVjdC5zZXRIZWlnaHQoYWRqdXN0ZWREZXN0UmVjdC5oZWlnaHQoKSAqIGN1cnJIZWlnaHQgLyBp
bWFnZVNpemUuaGVpZ2h0KCkpOwogCi0gICAgU3RhdGU6OnNldENvbXBvc2l0ZU9wZXJhdGlvbihw
bGF0Zm9ybUNvbnRleHQsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUpOworICAgIFN0YXRl
OjpzZXRDb21wb3NpdGVPcGVyYXRpb24ocGxhdGZvcm1Db250ZXh0LCBvcHRpb25zLmNvbXBvc2l0
ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogCiAgICAgLy8gSW1hZ2VPcmllbnRh
dGlvbiBleHBlY3RzIHRoZSBvcmlnaW4gdG8gYmUgYXQgKDAsIDApLgogICAgIHRyYW5zZm9ybS50
cmFuc2xhdGUoYWRqdXN0ZWREZXN0UmVjdC54KCksIGFkanVzdGVkRGVzdFJlY3QueSgpKTsKICAg
ICBjb250ZXh0LT5TZXRUcmFuc2Zvcm0odHJhbnNmb3JtKTsKICAgICBhZGp1c3RlZERlc3RSZWN0
LnNldExvY2F0aW9uKEZsb2F0UG9pbnQoKSk7CiAKLSAgICBpZiAob3JpZW50YXRpb24gIT0gSW1h
Z2VPcmllbnRhdGlvbjo6Tm9uZSkgewotICAgICAgICBjb25jYXRDVE0ocGxhdGZvcm1Db250ZXh0
LCBvcmllbnRhdGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChhZGp1c3RlZERlc3RSZWN0LnNpemUo
KSkpOwotICAgICAgICBpZiAob3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSkgeworICAg
IGlmIChvcHRpb25zLm9yaWVudGF0aW9uKCkgIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgewor
ICAgICAgICBjb25jYXRDVE0ocGxhdGZvcm1Db250ZXh0LCBvcHRpb25zLm9yaWVudGF0aW9uKCku
dHJhbnNmb3JtRnJvbURlZmF1bHQoYWRqdXN0ZWREZXN0UmVjdC5zaXplKCkpKTsKKyAgICAgICAg
aWYgKG9wdGlvbnMub3JpZW50YXRpb24oKS51c2VzV2lkdGhBc0hlaWdodCgpKSB7CiAgICAgICAg
ICAgICAvLyBUaGUgZGVzdGluYXRpb24gcmVjdCB3aWxsIGhhdmUgaXQncyB3aWR0aCBhbmQgaGVp
Z2h0IGFscmVhZHkgcmV2ZXJzZWQgZm9yIHRoZSBvcmllbnRhdGlvbiBvZgogICAgICAgICAgICAg
Ly8gdGhlIGltYWdlLCBhcyBpdCB3YXMgbmVlZGVkIGZvciBwYWdlIGxheW91dCwgc28gd2UgbmVl
ZCB0byByZXZlcnNlIGl0IGJhY2sgaGVyZS4KICAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Qg
PSBGbG9hdFJlY3QoYWRqdXN0ZWREZXN0UmVjdC54KCksIGFkanVzdGVkRGVzdFJlY3QueSgpLCBh
ZGp1c3RlZERlc3RSZWN0LmhlaWdodCgpLCBhZGp1c3RlZERlc3RSZWN0LndpZHRoKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29u
dGV4dEltcGxEaXJlY3QyRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0dyYXBoaWNzQ29udGV4dEltcGxEaXJlY3QyRC5oCmluZGV4IDZiYjY0NGEyYjY1ZTIzNGMxNWZl
M2NmZmY5ZWI3MzkxOTQ0ZDQxYzEuLjQ0MjVmZDI2YWJlODU0NTFkMmMwMzJmMzZhMjZhNTdlZTMx
ZTJiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9H
cmFwaGljc0NvbnRleHRJbXBsRGlyZWN0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0SW1wbERpcmVjdDJELmgKQEAgLTcxLDggKzcx
LDggQEAgcHVibGljOgogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25z
dCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9u
cyYpIG92ZXJyaWRlOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBj
b25zdCBGbG9hdFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwog
ICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0U2l6ZSYsIEltYWdlOjpUaWxlUnVsZSwg
SW1hZ2U6OlRpbGVSdWxlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxv
YXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
cmF3UGF0dGVybihJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUm
LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlOjpOb3JtYWwpIG92ZXJy
aWRlOworICAgIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29u
c3QgRmxvYXRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJuKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZs
b2F0UmVjdCYsIGZsb2F0KSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdMaW5lKGNvbnN0IEZsb2F0
UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAKaW5kZXggMTQxMTllYmY1
YTI5YWY2OGNkNTZkOWZiMDczOWQ2OWM5NjY1NDIyMi4uOTMyM2RhNzI0OGY2ZjQ5OTgxZTQ1OTM4
MzY4MzI4NzlkZDFkZTJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ltYWdlQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9JbWFnZUNHV2luLmNwcApAQCAtNzksNyArNzksNyBAQCBib29sIEJpdG1hcElt
YWdlOjpnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAgYm1wLCBjb25zdCBJbnRTaXplKiBzaXplKQog
ICAgIGlmIChzaXplKQogICAgICAgICBkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoZ2MsIEZs
b2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWlnaHQpLCAq
c2l6ZSwgQ29tcG9zaXRlQ29weSk7CiAgICAgZWxzZQotICAgICAgICBkcmF3KGdjLCBGbG9hdFJl
Y3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0KSwgRmxvYXRS
ZWN0KDAuMGYsIDAuMGYsIGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpLCBD
b21wb3NpdGVDb3B5LCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91
cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgICAgIGRyYXcoZ2MsIEZsb2F0UmVjdCgw
LjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWlnaHQpLCBGbG9hdFJlY3Qo
MC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIHsgQ29t
cG9zaXRlQ29weSB9KTsKIAogICAgIC8vIERvIGNsZWFudXAKICAgICBDR0NvbnRleHRSZWxlYXNl
KGNnQ29udGV4dCk7CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdGcmFt
ZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmIGN0eHQsIGNvbnN0IEZsb2F0CiAg
ICAgICAgIGlmIChpbWFnZSAmJiBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlKSA9PSBzdGF0aWNfY2Fz
dDxzaXplX3Q+KHNyY1NpemUuaGVpZ2h0KCkpICYmIENHSW1hZ2VHZXRXaWR0aChpbWFnZSkgPT0g
c3RhdGljX2Nhc3Q8c2l6ZV90PihzcmNTaXplLndpZHRoKCkpKSB7CiAgICAgICAgICAgICBzaXpl
X3QgY3VycmVudEZyYW1lID0gbV9jdXJyZW50RnJhbWU7CiAgICAgICAgICAgICBtX2N1cnJlbnRG
cmFtZSA9IGk7Ci0gICAgICAgICAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBm
LCAwLjBmLCBzcmNTaXplLndpZHRoKCksIHNyY1NpemUuaGVpZ2h0KCkpLCBjb21wb3NpdGVPcCwg
QmxlbmRNb2RlOjpOb3JtYWwsIERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsIEltYWdlT3JpZW50
YXRpb246Ok5vbmUpOworICAgICAgICAgICAgZHJhdyhjdHh0LCBkc3RSZWN0LCBGbG9hdFJlY3Qo
MC4wZiwgMC4wZiwgc3JjU2l6ZS53aWR0aCgpLCBzcmNTaXplLmhlaWdodCgpKSwgeyBjb21wb3Np
dGVPcCB9KTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lID0gY3VycmVudEZyYW1lOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBCaXRt
YXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29udGV4dCYgY3R4
dCwgY29uc3QgRmxvYXQKIAogICAgIC8vIE5vIGltYWdlIG9mIHRoZSBjb3JyZWN0IHNpemUgd2Fz
IGZvdW5kLCBmYWxsYmFjayB0byBkcmF3aW5nIHRoZSBjdXJyZW50IGZyYW1lCiAgICAgRmxvYXRT
aXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXplKCk7Ci0gICAgZHJhdyhjdHh0LCBkc3RS
ZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5o
ZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpT
eW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgZHJhdyhjdHh0LCBkc3RS
ZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5o
ZWlnaHQoKSksIHsgY29tcG9zaXRlT3AgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNh
aXJvV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUNh
aXJvV2luLmNwcAppbmRleCAyNGVjNWJjMWQ4YzJiYjkyOGZhMDU4NTZlMzMzNDIyYWM2ZjVjOGIy
Li42OGJmMzk3ZGVmYjE4ZWQwNzc4ZTgzZjY0MmNkOWYyYTVkZjZkYjMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3Bw
CkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNpemUoSEJJ
VE1BUCBibXAsIGNvbnN0IEludFNpemUqIHNpemUpCiAgICAgaWYgKHNpemUpCiAgICAgICAgIGRy
YXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJtcElu
Zm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksICpzaXplLCBDb21wb3NpdGVDb3B5KTsKICAg
ICBlbHNlCi0gICAgICAgIGRyYXcoZ2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJt
V2lkdGgsIGJtcEluZm8uYm1IZWlnaHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXpl
LndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIENvbXBvc2l0ZUNvcHksIEJsZW5kTW9kZTo6
Tm9ybWFsLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25l
KTsKKyAgICAgICAgZHJhdyhnYywgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0
aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lk
dGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBDb21wb3NpdGVDb3B5IH0pOwogCiAgICAgLy8g
RG8gY2xlYW51cAogICAgIGNhaXJvX2Rlc3Ryb3kodGFyZ2V0UmVmKTsKQEAgLTEwMCw3ICsxMDAs
NyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhp
Y3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdAogICAgICAgICBpZiAoY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UuZ2V0KCkpID09IHN0YXRpY19jYXN0PHNpemVfdD4oc3Jj
U2l6ZS5oZWlnaHQoKSkgJiYgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgoc3VyZmFjZS5n
ZXQoKSkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzcmNTaXplLndpZHRoKCkpKSB7CiAgICAgICAg
ICAgICBzaXplX3QgY3VycmVudEZyYW1lID0gbV9jdXJyZW50RnJhbWU7CiAgICAgICAgICAgICBt
X2N1cnJlbnRGcmFtZSA9IGk7Ci0gICAgICAgICAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0
UmVjdCgwLjBmLCAwLjBmLCBzcmNTaXplLndpZHRoKCksIHNyY1NpemUuaGVpZ2h0KCkpLCBjb21w
b3NpdGVPcCwgQmxlbmRNb2RlOjpOb3JtYWwsIERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMsIElt
YWdlT3JpZW50YXRpb246Ok5vbmUpOworICAgICAgICAgICAgZHJhdyhjdHh0LCBkc3RSZWN0LCBG
bG9hdFJlY3QoMC4wZiwgMC4wZiwgc3JjU2l6ZS53aWR0aCgpLCBzcmNTaXplLmhlaWdodCgpKSwg
eyBjb21wb3NpdGVPcCB9KTsKICAgICAgICAgICAgIG1fY3VycmVudEZyYW1lID0gY3VycmVudEZy
YW1lOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMDgsNyArMTA4LDcgQEAg
dm9pZCBCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29u
dGV4dCYgY3R4dCwgY29uc3QgRmxvYXQKIAogICAgIC8vIE5vIGltYWdlIG9mIHRoZSBjb3JyZWN0
IHNpemUgd2FzIGZvdW5kLCBmYWxsYmFjayB0byBkcmF3aW5nIHRoZSBjdXJyZW50IGZyYW1lCiAg
ICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXplKCk7Ci0gICAgZHJhdyhj
dHh0LCBkc3RSZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGlt
YWdlU2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2Rp
bmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CisgICAgZHJhdyhj
dHh0LCBkc3RSZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGlt
YWdlU2l6ZS5oZWlnaHQoKSksIHsgY29tcG9zaXRlT3AgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9OYXRpdmVJbWFnZURpcmVjdDJELmNwcAppbmRleCBkZjRjNTM5YmU2YTU1YjBkZWZk
ZjNjZDZhNmY1NzUxMGY2YzcwNmQ2Li5kZGFmNjI0NzQxMzkzMjc0NTAxYWIwYTNkZWUzZGJjODEz
MzdkZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TmF0aXZlSW1hZ2VEaXJlY3QyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL05hdGl2ZUltYWdlRGlyZWN0MkQuY3BwCkBAIC03OCw3ICs3OCw3IEBAIENvbG9y
IG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBp
bWFnZSkKICAgICByZXR1cm4gQ29sb3IoKTsKIH0KIAotdm9pZCBkcmF3TmF0aXZlSW1hZ2UoY29u
c3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW50
U2l6ZSYgc3JjU2l6ZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBi
bGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit2b2lkIGRyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYgaW1hZ2UsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbnRTaXplJiBzcmNTaXplLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpCiB7CiAg
ICAgYXV0byBwbGF0Zm9ybUNvbnRleHQgPSBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQppbmRleCAxNDdjMmQw
YjViM2ZlOTgxMTBiMGZjM2FjODFmNmJiZDc2ZmE4YWRkLi41MDI3OTkwY2U1NWU0NjFiMmRkODJi
OWMzMjllOWQ5YTMyZjgwZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvRHJhZ0ltYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFn
SW1hZ2VJT1MubW0KQEAgLTk2LDcgKzk2LDcgQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFn
ZUZyb21JbWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24KICAg
ICAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQocmVuZGVyZXJDb250ZXh0LkNHQ29udGV4dCk7
CiAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIGltYWdlU2l6ZS5oZWlnaHQpOwogICAgICAg
ICBjb250ZXh0LnNjYWxlKHsgYWRqdXN0ZWRJbWFnZVNjYWxlLCAtYWRqdXN0ZWRJbWFnZVNjYWxl
IH0pOwotICAgICAgICBjb250ZXh0LmRyYXdJbWFnZSgqaW1hZ2UsIEZsb2F0UG9pbnQoKSwgSW1h
Z2VQYWludGluZ09wdGlvbnMob3JpZW50YXRpb24pKTsKKyAgICAgICAgY29udGV4dC5kcmF3SW1h
Z2UoKmltYWdlLCBGbG9hdFBvaW50KCksIHsgb3JpZW50YXRpb24gfSk7CiAgICAgfV07CiAgICAg
cmV0dXJuIGltYWdlQ29weS5DR0ltYWdlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggOGViZTAwNzZhOGNjNjZlYWJmZTA0MjkxZmFlZmY1OTRm
ZjA5MTgwZS4uMDM2M2UyZTQ3ODI1MjAxNjAzZDU1NGVkYWUzYzYxOTIzNTMzNGU1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC05NCwzOSArOTQs
MzYgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihSZXRh
aW5QdHI8TlNJbWFnZT4gaW1hZ2UsIGZsb2F0IGQKICAgICAgICAgCiBSZXRhaW5QdHI8TlNJbWFn
ZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlv
biBvcmllbnRhdGlvbikKIHsKLSAgICBGbG9hdFNpemUgc2l6ZSA9IGltYWdlLT5zaXplKCk7Ci0K
ICAgICBpZiAoaXM8Qml0bWFwSW1hZ2U+KCppbWFnZSkpIHsKICAgICAgICAgQml0bWFwSW1hZ2Um
IGJpdG1hcEltYWdlID0gZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSk7Ci0gICAgICAgIElu
dFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiA9IGJpdG1hcEltYWdlLnNpemVSZXNwZWN0
aW5nT3JpZW50YXRpb24oKTsKIAogICAgICAgICBpZiAob3JpZW50YXRpb24gPT0gSW1hZ2VPcmll
bnRhdGlvbjo6RnJvbUltYWdlKQogICAgICAgICAgICAgb3JpZW50YXRpb24gPSBiaXRtYXBJbWFn
ZS5vcmllbnRhdGlvbkZvckN1cnJlbnRGcmFtZSgpOwogCiAgICAgICAgIGlmIChvcmllbnRhdGlv
biAhPSBJbWFnZU9yaWVudGF0aW9uOjpOb25lKSB7CiAgICAgICAgICAgICAvLyBDb25zdHJ1Y3Qg
YSBjb3JyZWN0bHktcm90YXRlZCBjb3B5IG9mIHRoZSBpbWFnZSB0byB1c2UgYXMgdGhlIGRyYWcg
aW1hZ2UuCi0gICAgICAgICAgICBGbG9hdFJlY3QgZGVzdFJlY3QoRmxvYXRQb2ludCgpLCBzaXpl
UmVzcGVjdGluZ09yaWVudGF0aW9uKTsKLQotICAgICAgICAgICAgUmV0YWluUHRyPE5TSW1hZ2U+
IHJvdGF0ZWREcmFnSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhTaXpl
OihOU1NpemUpKHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pXSk7CisgICAgICAgICAgICBGbG9h
dFNpemUgaW1hZ2VTaXplID0gaW1hZ2UtPnNpemUob3JpZW50YXRpb24pOworICAgICAgICAgICAg
UmV0YWluUHRyPE5TSW1hZ2U+IHJvdGF0ZWREcmFnSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBh
bGxvY10gaW5pdFdpdGhTaXplOihOU1NpemUpKGltYWdlU2l6ZSldKTsKICAgICAgICAgICAgIFty
b3RhdGVkRHJhZ0ltYWdlIGxvY2tGb2N1c107CiAKICAgICAgICAgICAgIC8vIEltYWdlT3JpZW50
YXRpb24gdXNlcyB0b3AtbGVmdCBjb29yZGluYXRlcywgbmVlZCB0byBmbGlwIHRvIGJvdHRvbS1s
ZWZ0LCBhcHBseS4uLgotICAgICAgICAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Q0dBZmZpbmVUcmFuc2Zvcm1NYWtlVHJhbnNsYXRpb24oMCwgZGVzdFJlY3QuaGVpZ2h0KCkpOwor
ICAgICAgICAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zv
cm1NYWtlVHJhbnNsYXRpb24oMCwgaW1hZ2VTaXplLmhlaWdodCgpKTsKICAgICAgICAgICAgIHRy
YW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtU2NhbGUodHJhbnNmb3JtLCAxLCAtMSk7Ci0gICAg
ICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdChvcmllbnRhdGlvbi50
cmFuc2Zvcm1Gcm9tRGVmYXVsdChzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKSwgdHJhbnNmb3Jt
KTsKKyAgICAgICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG9yaWVu
dGF0aW9uLnRyYW5zZm9ybUZyb21EZWZhdWx0KGltYWdlU2l6ZSksIHRyYW5zZm9ybSk7CiAKICAg
ICAgICAgICAgIGlmIChvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKQotICAgICAgICAg
ICAgICAgIGRlc3RSZWN0ID0gRmxvYXRSZWN0KGRlc3RSZWN0LngoKSwgZGVzdFJlY3QueSgpLCBk
ZXN0UmVjdC5oZWlnaHQoKSwgZGVzdFJlY3Qud2lkdGgoKSk7CisgICAgICAgICAgICAgICAgaW1h
Z2VTaXplID0gaW1hZ2VTaXplLnRyYW5zcG9zZWRTaXplKCk7CiAKICAgICAgICAgICAgIC8vIC4u
LmFuZCBmbGlwIGJhY2suCi0gICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9y
bVRyYW5zbGF0ZSh0cmFuc2Zvcm0sIDAsIGRlc3RSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAg
IHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtVHJhbnNsYXRlKHRyYW5zZm9ybSwgMCwgaW1h
Z2VTaXplLmhlaWdodCgpKTsKICAgICAgICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNm
b3JtU2NhbGUodHJhbnNmb3JtLCAxLCAtMSk7CiAKICAgICAgICAgICAgIFJldGFpblB0cjxOU0Fm
ZmluZVRyYW5zZm9ybT4gY29jb2FUcmFuc2Zvcm0gPSBhZG9wdE5TKFtbTlNBZmZpbmVUcmFuc2Zv
cm0gYWxsb2NdIGluaXRdKTsKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9ybSBzZXRUcmFuc2Zv
cm1TdHJ1Y3Q6KihOU0FmZmluZVRyYW5zZm9ybVN0cnVjdCopJnRyYW5zZm9ybV07CiAgICAgICAg
ICAgICBbY29jb2FUcmFuc2Zvcm0gY29uY2F0XTsKIAotICAgICAgICAgICAgW2ltYWdlLT5zbmFw
c2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmRlc3RSZWN0IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSBvcGVyYXRpb246TlNDb21wb3NpdGluZ09w
ZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKKyAgICAgICAgICAgIEZsb2F0UmVjdCBp
bWFnZVJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZVNpemUpOworICAgICAgICAgICAgW2ltYWdlLT5z
bmFwc2hvdE5TSW1hZ2UoKSBkcmF3SW5SZWN0OmltYWdlUmVjdCBmcm9tUmVjdDppbWFnZVJlY3Qg
b3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07
CiAKICAgICAgICAgICAgIFtyb3RhdGVkRHJhZ0ltYWdlIHVubG9ja0ZvY3VzXTsKIApAQCAtMTM0
LDggKzEzMSw5IEBAIFJldGFpblB0cjxOU0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2Uo
SW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVuCiAgICAgICAgIH0KICAgICB9CiAK
KyAgICBGbG9hdFNpemUgaW1hZ2VTaXplID0gaW1hZ2UtPnNpemUoKTsKICAgICBhdXRvIGRyYWdJ
bWFnZSA9IGltYWdlLT5zbmFwc2hvdE5TSW1hZ2UoKTsKLSAgICBbZHJhZ0ltYWdlIHNldFNpemU6
KE5TU2l6ZSlzaXplXTsKKyAgICBbZHJhZ0ltYWdlIHNldFNpemU6KE5TU2l6ZSlpbWFnZVNpemVd
OwogICAgIHJldHVybiBkcmFnSW1hZ2U7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA5MDFjNDExMGUxYzU2YmE2
MGE0ZGQzYmE3YjkzZmFhZjYwNDFjYjMzLi4yMjBhZmQ3MzUxODYzOTBlYjRjNDAxYmEwNDk0MDc4
M2IxNjcyNzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKQEAgLTk0NywxNSArOTQ3LDIwIEBAIHZvaWQgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvCiAgICAgICAgIGdlb21ldHJ5LmNsaXAoTGF5b3V0UmVjdChwaXhlbFNuYXBwZWRSZWN0KSk7
CiAgICAgICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2U7CiAgICAgICAgIGlmICghZ2VvbWV0cnkuZGVz
dFJlY3QoKS5pc0VtcHR5KCkgJiYgKGltYWdlID0gYmdJbWFnZS0+aW1hZ2UoYmFja2dyb3VuZE9i
amVjdCA/IGJhY2tncm91bmRPYmplY3QgOiB0aGlzLCBnZW9tZXRyeS50aWxlU2l6ZSgpKSkpIHsK
LSAgICAgICAgICAgIGF1dG8gY29tcG9zaXRlT3AgPSBvcCA9PSBDb21wb3NpdGVTb3VyY2VPdmVy
ID8gYmdMYXllci5jb21wb3NpdGUoKSA6IG9wOwogICAgICAgICAgICAgY29udGV4dC5zZXREcmF3
THVtaW5hbmNlTWFzayhiZ0xheWVyLm1hc2tTb3VyY2VUeXBlKCkgPT0gTWFza1NvdXJjZVR5cGU6
Okx1bWluYW5jZSk7CiAKICAgICAgICAgICAgIGlmIChpczxCaXRtYXBJbWFnZT4oaW1hZ2UpKQog
ICAgICAgICAgICAgICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpLnVwZGF0ZUZyb21T
ZXR0aW5ncyhzZXR0aW5ncygpKTsKIAotICAgICAgICAgICAgYXV0byBpbnRlcnBvbGF0aW9uID0g
Y2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoY29udGV4dCwgKmltYWdlLCAmYmdMYXllciwgZ2Vv
bWV0cnkudGlsZVNpemUoKSk7Ci0gICAgICAgICAgICBhdXRvIGRlY29kaW5nTW9kZSA9IGRlY29k
aW5nTW9kZUZvckltYWdlRHJhdygqaW1hZ2UsIHBhaW50SW5mbyk7Ci0gICAgICAgICAgICBhdXRv
IGRyYXdSZXN1bHQgPSBjb250ZXh0LmRyYXdUaWxlZEltYWdlKCppbWFnZSwgZ2VvbWV0cnkuZGVz
dFJlY3QoKSwgdG9MYXlvdXRQb2ludChnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkpLCBnZW9tZXRy
eS50aWxlU2l6ZSgpLCBnZW9tZXRyeS5zcGFjZVNpemUoKSwgSW1hZ2VQYWludGluZ09wdGlvbnMo
Y29tcG9zaXRlT3AsIGJnTGF5ZXIuYmxlbmRNb2RlKCksIGRlY29kaW5nTW9kZSwgSW1hZ2VPcmll
bnRhdGlvbjo6Tm9uZSwgaW50ZXJwb2xhdGlvbikpOworICAgICAgICAgICAgSW1hZ2VQYWludGlu
Z09wdGlvbnMgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBvcCA9PSBDb21wb3NpdGVTb3Vy
Y2VPdmVyID8gYmdMYXllci5jb21wb3NpdGUoKSA6IG9wLAorICAgICAgICAgICAgICAgIGJnTGF5
ZXIuYmxlbmRNb2RlKCksCisgICAgICAgICAgICAgICAgZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3
KCppbWFnZSwgcGFpbnRJbmZvKSwKKyAgICAgICAgICAgICAgICBJbWFnZU9yaWVudGF0aW9uOjpG
cm9tSW1hZ2UsCisgICAgICAgICAgICAgICAgY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoY29u
dGV4dCwgKmltYWdlLCAmYmdMYXllciwgZ2VvbWV0cnkudGlsZVNpemUoKSkKKyAgICAgICAgICAg
IH07CisKKyAgICAgICAgICAgIGF1dG8gZHJhd1Jlc3VsdCA9IGNvbnRleHQuZHJhd1RpbGVkSW1h
Z2UoKmltYWdlLCBnZW9tZXRyeS5kZXN0UmVjdCgpLCB0b0xheW91dFBvaW50KGdlb21ldHJ5LnJl
bGF0aXZlUGhhc2UoKSksIGdlb21ldHJ5LnRpbGVTaXplKCksIGdlb21ldHJ5LnNwYWNlU2l6ZSgp
LCBvcHRpb25zKTsKICAgICAgICAgICAgIGlmIChkcmF3UmVzdWx0ID09IEltYWdlRHJhd1Jlc3Vs
dDo6RGlkUmVxdWVzdERlY29kaW5nKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGJnSW1hZ2Ut
PmlzQ2FjaGVkSW1hZ2UoKSk7CiAgICAgICAgICAgICAgICAgYmdJbWFnZS0+Y2FjaGVkSW1hZ2Uo
KS0+YWRkQ2xpZW50V2FpdGluZ0ZvckFzeW5jRGVjb2RpbmcoKnRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDFiMTFlMmUzZjFjZDFlYTQ3Zjg2
N2EwZWQwZGQwODBiYThjOTcyY2EuLjIyMGIxYTY3MzU5MGU2YmE3YzI4ZmZiYjE5MGMxMDg1MGVh
NDZmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAg
LTIwMzksMTYgKzIwMzksNyBAQCBib29sIFJlbmRlckVsZW1lbnQ6OmNoZWNrRm9yUmVwYWludER1
cmluZ0xheW91dCgpIGNvbnN0CiAKIEltYWdlT3JpZW50YXRpb24gUmVuZGVyRWxlbWVudDo6aW1h
Z2VPcmllbnRhdGlvbigpIGNvbnN0CiB7Ci0jaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVT
RShESVJFQ1QyRCkKLSAgICAvLyBUaGlzIGNhbiBvbmx5IGJlIGVuYWJsZWQgZm9yIHBvcnRzIHdo
aWNoIGhvbm9yIHRoZSBvcmllbnRhdGlvbiBmbGFnIGluIHRoZWlyIGRyYXdpbmcgY29kZS4KLSAg
ICBpZiAoZG9jdW1lbnQoKS5pc0ltYWdlRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZTsKLSNlbmRpZgotICAgIC8vIFJlc3BlY3QgdGhlIGltYWdl
J3Mgb3JpZW50YXRpb24gaWYgaXQncyBiZWluZyB1c2VkIGFzIGEgZnVsbC1wYWdlIGltYWdlIG9y
IGl0J3MKLSAgICAvLyBhbiA8aW1nPiBhbmQgdGhlIHNldHRpbmcgdG8gcmVzcGVjdCBpdCBldmVy
eXdoZXJlIGlzIHNldC4KLSAgICBpZiAoc2V0dGluZ3MoKS5zaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbigpICYmIGlzPEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQoKSkpCi0gICAgICAgIHJl
dHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2U7Ci0gICAgcmV0dXJuIHN0eWxlKCkuaW1h
Z2VPcmllbnRhdGlvbigpOworICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2U7
CiB9CiAKIHZvaWQgUmVuZGVyRWxlbWVudDo6YWRqdXN0RnJhZ21lbnRlZEZsb3dTdGF0ZU9uQ29u
dGFpbmluZ0Jsb2NrQ2hhbmdlSWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggOTEzYmI0MTNiOTQyZjFlMDYyNmNm
NThjMTQ1YWIzMjZiNzFjYzI5Ni4uN2FjMDRiOGJhNGY0MTUxM2IzZmNiYWYxOTMxYmNmNDQ4MDVj
OTQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6
cGFpbnRTbmFwc2hvdEltYWdlKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXQKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvbiA9
IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KGNvbnRleHQsIGltYWdlLCAmaW1hZ2UsIGFsaWdu
ZWRSZWN0LnNpemUoKSk7Ci0gICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIGFsaWduZWRSZWN0
LCBJbWFnZVBhaW50aW5nT3B0aW9ucyhpbWFnZU9yaWVudGF0aW9uKCksIGludGVycG9sYXRpb24p
KTsKKyAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgYWxpZ25lZFJlY3QsIHsgaW1hZ2VPcmll
bnRhdGlvbigpLCBpbnRlcnBvbGF0aW9uIH0pOwogfQogCiB2b2lkIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0OjpwYWludENvbnRlbnRzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApp
bmRleCBmNTFlMmZlYjM3ZTFmY2YwZmQwZTc5MWFlNjRmMDNlZTg4YTJhN2M4Li4yNmFhYTAzNzJl
M2IzYjZiYjRiMzdlN2E0ZDhjNTc4ZjJkZTdlMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAKQEAgLTQ2OSw3ICs0NjksNyBAQCB2b2lkIFJlbmRlckltYWdlOjpw
YWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZgogICAgICAgICAgICAgICAgICAgICBjZW50ZXJZID0gMDsKICAgICAgICAgICAgICAgICBp
bWFnZU9mZnNldCA9IExheW91dFNpemUobGVmdEJvcmRlciArIGxlZnRQYWQgKyBjZW50ZXJYICsg
bWlzc2luZ0ltYWdlQm9yZGVyV2lkdGgsIHRvcEJvcmRlciArIHRvcFBhZCArIGNlbnRlclkgKyBt
aXNzaW5nSW1hZ2VCb3JkZXJXaWR0aCk7CiAKLSAgICAgICAgICAgICAgICBjb250ZXh0LmRyYXdJ
bWFnZSgqaW1hZ2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoTGF5b3V0UmVjdChwYWludE9mZnNl
dCArIGltYWdlT2Zmc2V0LCBpbWFnZVNpemUpLCBkZXZpY2VTY2FsZUZhY3RvciksIGltYWdlT3Jp
ZW50YXRpb24oKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoKmltYWdlLCBz
bmFwUmVjdFRvRGV2aWNlUGl4ZWxzKExheW91dFJlY3QocGFpbnRPZmZzZXQgKyBpbWFnZU9mZnNl
dCwgaW1hZ2VTaXplKSwgZGV2aWNlU2NhbGVGYWN0b3IpLCB7IGltYWdlT3JpZW50YXRpb24oKSB9
KTsKICAgICAgICAgICAgICAgICBlcnJvclBpY3R1cmVEcmF3biA9IHRydWU7CiAgICAgICAgICAg
ICB9CiAKQEAgLTYxNywxMSArNjE3LDkgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlbmRlckltYWdlOjpw
YWludEludG9SZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QKICAgICAg
ICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAogICAgIEhUTUxJbWFnZUVs
ZW1lbnQqIGltYWdlRWxlbWVudCA9IGlzPEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQoKSkgPyBk
b3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkpIDogbnVsbHB0cjsKLSAgICBDb21w
b3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IGltYWdlRWxlbWVudCA/IGltYWdlRWxl
bWVudC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0ZVNvdXJjZU92ZXI7CiAKICAgICAv
LyBGSVhNRTogRG9jdW1lbnQgd2hlbiBpbWFnZSAhPSBpbWcuZ2V0KCkuCiAgICAgSW1hZ2UqIGlt
YWdlID0gaW1hZ2VSZXNvdXJjZSgpLmltYWdlKCkuZ2V0KCk7Ci0gICAgSW50ZXJwb2xhdGlvblF1
YWxpdHkgaW50ZXJwb2xhdGlvbiA9IGltYWdlID8gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHko
cGFpbnRJbmZvLmNvbnRleHQoKSwgKmltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUo
KSkpIDogSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CiAKICNpZiBVU0UoQ0cpCiAgICAgaWYgKGlzPFBE
RkRvY3VtZW50SW1hZ2U+KGltYWdlKSkKQEAgLTYzMSw4ICs2MjksMTQgQEAgSW1hZ2VEcmF3UmVz
dWx0IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBGbG9hdFJlY3QKICAgICBpZiAoaXM8Qml0bWFwSW1hZ2U+KGltYWdlKSkKICAgICAgICAgZG93
bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKHNldHRpbmdzKCkp
OwogCi0gICAgYXV0byBkZWNvZGluZ01vZGUgPSBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXcoKmlt
YWdlLCBwYWludEluZm8pOwotICAgIGF1dG8gZHJhd1Jlc3VsdCA9IHBhaW50SW5mby5jb250ZXh0
KCkuZHJhd0ltYWdlKCppbWcsIHJlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKGNvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGU6Ok5vcm1hbCwgZGVjb2RpbmdNb2RlLCBpbWFnZU9yaWVudGF0aW9u
KCksIGludGVycG9sYXRpb24pKTsKKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0g
eworICAgICAgICBpbWFnZUVsZW1lbnQgPyBpbWFnZUVsZW1lbnQtPmNvbXBvc2l0ZU9wZXJhdG9y
KCkgOiBDb21wb3NpdGVTb3VyY2VPdmVyLAorICAgICAgICBkZWNvZGluZ01vZGVGb3JJbWFnZURy
YXcoKmltYWdlLCBwYWludEluZm8pLAorICAgICAgICBpbWFnZU9yaWVudGF0aW9uKCksCisgICAg
ICAgIGltYWdlID8gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkocGFpbnRJbmZvLmNvbnRleHQo
KSwgKmltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUoKSkpIDogSW50ZXJwb2xhdGlv
bkRlZmF1bHQKKyAgICB9OworCisgICAgYXV0byBkcmF3UmVzdWx0ID0gcGFpbnRJbmZvLmNvbnRl
eHQoKS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgb3B0aW9ucyk7CiAgICAgaWYgKGRyYXdSZXN1bHQg
PT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZXF1ZXN0RGVjb2RpbmcpCiAgICAgICAgIGltYWdlUmVz
b3VyY2UoKS5jYWNoZWRJbWFnZSgpLT5hZGRDbGllbnRXYWl0aW5nRm9yQXN5bmNEZWNvZGluZygq
dGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4uY3BwCmluZGV4IDBkZmUyODI3NjRmNDA4YjYyMGJlZjVkOWY1OGU4OGE2Y2M3
NmMwODQuLjRmZTg1ODYyNWM5MjlkODBiZWNhZmVhNjZmMDY0ZTM0MjE4MTI1Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNw
cApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50
U25hcHNob3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb24gPSBjaG9vc2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVjdC5z
aXplKCkpOwotICAgIGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgYWxpZ25lZFJlY3QsIEltYWdl
UGFpbnRpbmdPcHRpb25zKGltYWdlT3JpZW50YXRpb24oKSwgaW50ZXJwb2xhdGlvbikpOworICAg
IGNvbnRleHQuZHJhd0ltYWdlKCppbWFnZSwgYWxpZ25lZFJlY3QsIHsgaW1hZ2VPcmllbnRhdGlv
bigpLCBpbnRlcnBvbGF0aW9uIH0pOwogfQogCiBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OmdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEN1cnNvciYg
b3ZlcnJpZGVDdXJzb3IpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KaW5kZXggNDRjYjIwMDFjMGJlOGFiNDI3NzZmNTU3NTZlMTQ0MDM3NWMwMTdiYS4u
YTQyY2U2ZWMyZDY5MzljMDAxNjFmMTc5YmUyNjQ0ZTEyNDI5MjQ3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjI3OCw3ICsyMjc4LDcgQEAgYm9v
bCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXkoY29uc3QgUmVu
ZGVyT2JqZWN0JiByZW5kZXJlciwKICAgICBpZiAoYWxpZ25lZFBsdWdpblJlY3Qud2lkdGgoKSA8
PSAwIHx8IGFsaWduZWRQbHVnaW5SZWN0LmhlaWdodCgpIDw9IDApCiAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgY29udGV4dC5kcmF3SW1hZ2UoKnNuYXBzaG90LCBhbGlnbmVkUGx1Z2luUmVj
dCwgQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoKnNuYXBzaG90
LCBhbGlnbmVkUGx1Z2luUmVjdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCA2YmQ5MTI0YWU0OGIxMDdhNjAzMTg5
OTJmZjM2Zjc3MmU2MTU5OGZmLi41MjM3ZWRlMjNjMWQ5M2VhYjEyZmRjYWQ4YWE2Y2RkODg5NTk4
ZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTE3OSw3
ICsxNzksNyBAQCBJbnRTaXplIFNWR0ltYWdlOjpjb250YWluZXJTaXplKCkgY29uc3QKIH0KIAog
SW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRTaXplIGNvbnRhaW5lclNpemUsIGZsb2F0IGNvbnRhaW5l
clpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdtZW50VVJMLCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsCi0gICAgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBj
b21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmICgh
bV9wYWdlKQogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwpAQCAt
MjAzLDcgKzIwMyw3IEBAIEltYWdlRHJhd1Jlc3VsdCBTVkdJbWFnZTo6ZHJhd0ZvckNvbnRhaW5l
cihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0CiAKICAgICBmcmFtZVZpZXco
KS0+c2Nyb2xsVG9GcmFnbWVudChpbml0aWFsRnJhZ21lbnRVUkwpOwogCi0gICAgSW1hZ2VEcmF3
UmVzdWx0IHJlc3VsdCA9IGRyYXcoY29udGV4dCwgZHN0UmVjdCwgc2NhbGVkU3JjLCBjb21wb3Np
dGVPcCwgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0
aW9uOjpOb25lKTsKKyAgICBJbWFnZURyYXdSZXN1bHQgcmVzdWx0ID0gZHJhdyhjb250ZXh0LCBk
c3RSZWN0LCBzY2FsZWRTcmMsIG9wdGlvbnMpOwogCiAgICAgc2V0SW1hZ2VPYnNlcnZlcihvYnNl
cnZlcik7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIyMiw3ICsyMjIsNyBAQCBOYXRpdmVJbWFn
ZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29uc3QgR3JhcGhpY3ND
b250ZXh0KikKICAgICBpZiAoIWJ1ZmZlcikgLy8gZmFpbGVkIHRvIGFsbG9jYXRlIGltYWdlCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgZHJhdyhidWZmZXItPmNvbnRleHQoKSwgcmVj
dCgpLCByZWN0KCksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNv
ZGluZ01vZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lKTsKKyAgICBkcmF3
KGJ1ZmZlci0+Y29udGV4dCgpLCByZWN0KCksIHJlY3QoKSk7CiAKICAgICAvLyBGSVhNRTogV0so
QnVnIDExMzY1Nyk6IFdlIHNob3VsZCB1c2UgRG9udENvcHlCYWNraW5nU3RvcmUgaGVyZS4KICAg
ICByZXR1cm4gYnVmZmVyLT5jb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSktPm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgTmF0aXZlSW1hZ2VQdHIgU1ZH
SW1hZ2U6Om5hdGl2ZUltYWdlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCkK
ICNlbmRpZgogCiB2b2lkIFNWR0ltYWdlOjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxvYXQg
Y29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwKLSAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zv
cm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENv
bXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIEJs
ZW5kTW9kZSBibGVuZE1vZGUpCisgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5n
LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiBv
cHRpb25zKQogewogICAgIEZsb2F0UmVjdCB6b29tZWRDb250YWluZXJSZWN0ID0gRmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgY29udGFpbmVyU2l6ZSk7CiAgICAgem9vbWVkQ29udGFpbmVyUmVjdC5z
Y2FsZShjb250YWluZXJab29tKTsKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIFNWR0ltYWdlOjpk
cmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZs
b2F0U2l6ZQogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoZXhwYW5kZWRJbnRTaXplKGltYWdlQnVmZmVy
U2l6ZS5zaXplKCkpLCAxLCBDb2xvclNwYWNlU1JHQiwgY29udGV4dCk7CiAgICAgaWYgKCFidWZm
ZXIpIC8vIEZhaWxlZCB0byBhbGxvY2F0ZSBidWZmZXIuCiAgICAgICAgIHJldHVybjsKLSAgICBk
cmF3Rm9yQ29udGFpbmVyKGJ1ZmZlci0+Y29udGV4dCgpLCBjb250YWluZXJTaXplLCBjb250YWlu
ZXJab29tLCBpbml0aWFsRnJhZ21lbnRVUkwsIGltYWdlQnVmZmVyU2l6ZSwgem9vbWVkQ29udGFp
bmVyUmVjdCwgQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlOjpOb3JtYWwpOworICAgIGRy
YXdGb3JDb250YWluZXIoYnVmZmVyLT5jb250ZXh0KCksIGNvbnRhaW5lclNpemUsIGNvbnRhaW5l
clpvb20sIGluaXRpYWxGcmFnbWVudFVSTCwgaW1hZ2VCdWZmZXJTaXplLCB6b29tZWRDb250YWlu
ZXJSZWN0KTsKICAgICBpZiAoY29udGV4dC5kcmF3THVtaW5hbmNlTWFzaygpKQogICAgICAgICBi
dWZmZXItPmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIApAQCAtMjk3LDEwICsyOTcsMTAgQEAg
dm9pZCBTVkdJbWFnZTo6ZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFNpemUKICAgICB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0uc2Nh
bGUoMSAvIGltYWdlQnVmZmVyU2NhbGUud2lkdGgoKSwgMSAvIGltYWdlQnVmZmVyU2NhbGUuaGVp
Z2h0KCkpOwogCiAgICAgY29udGV4dC5zZXREcmF3THVtaW5hbmNlTWFzayhmYWxzZSk7Ci0gICAg
aW1hZ2UtPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNjYWxlZFNyY1JlY3QsIHVuc2Nh
bGVkUGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0ZU9wLCBibGVuZE1v
ZGUpOworICAgIGltYWdlLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzY2FsZWRTcmNS
ZWN0LCB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsK
IH0KIAotSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBEZWNv
ZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb24pCitJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmIG9wdGlv
bnMpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6
OkRpZE5vdGhpbmc7CkBAIC0zMDksMTEgKzMwOSwxMSBAQCBJbWFnZURyYXdSZXN1bHQgU1ZHSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
YwogICAgIEFTU0VSVCh2aWV3KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihjb250ZXh0KTsKLSAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb21w
b3NpdGVPcCwgYmxlbmRNb2RlKTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihv
cHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogICAgIGNv
bnRleHQuY2xpcChlbmNsb3NpbmdJbnRSZWN0KGRzdFJlY3QpKTsKIAogICAgIGZsb2F0IGFscGhh
ID0gY29udGV4dC5hbHBoYSgpOwotICAgIGJvb2wgY29tcG9zaXRpbmdSZXF1aXJlc1RyYW5zcGFy
ZW5jeUxheWVyID0gY29tcG9zaXRlT3AgIT0gQ29tcG9zaXRlU291cmNlT3ZlciB8fCBibGVuZE1v
ZGUgIT0gQmxlbmRNb2RlOjpOb3JtYWwgfHwgYWxwaGEgPCAxOworICAgIGJvb2wgY29tcG9zaXRp
bmdSZXF1aXJlc1RyYW5zcGFyZW5jeUxheWVyID0gb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigp
ICE9IENvbXBvc2l0ZVNvdXJjZU92ZXIgfHwgb3B0aW9ucy5ibGVuZE1vZGUoKSAhPSBCbGVuZE1v
ZGU6Ok5vcm1hbCB8fCBhbHBoYSA8IDE7CiAgICAgaWYgKGNvbXBvc2l0aW5nUmVxdWlyZXNUcmFu
c3BhcmVuY3lMYXllcikgewogICAgICAgICBjb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIo
YWxwaGEpOwogICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVT
b3VyY2VPdmVyLCBCbGVuZE1vZGU6Ok5vcm1hbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZS5oCmluZGV4IDA3NTQyNGZjNzVkYmRlMDk5MTcwZmYzZjZlYmE2ZTZjNzFmZDJlMTUu
LjlhZDkzNThjNzExYmEyMjFjMmQ5MmE1YTc5NTk5ZGI1NDJiNzg1ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldygpIGNvbnN0OwogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VP
cmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QgZmluYWw7CiAKQEAgLTk0LDEwICs5NCw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdGFydEFuaW1hdGlvblRpbWVyRmlyZWQoKTsKIAogICAgIGV4cGxpY2l0IFNWR0ltYWdlKElt
YWdlT2JzZXJ2ZXImKTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRvUmVjdCwgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9u
KSBmaW5hbDsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ZvckNvbnRhaW5lcihHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFNpemUgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9v
bSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2Rl
KTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3Qg
VVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6
ZSYgc3BhY2luZywKLSAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYs
IEJsZW5kTW9kZSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0b1JlY3QsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgZmluYWw7CisgICAgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdGb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplIGNvbnRh
aW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdtZW50
VVJMLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICB2b2lkIGRyYXdQYXR0ZXJu
Rm9yQ29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVy
U2l6ZSwgZmxvYXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkws
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3Qg
RmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKIAogICAgIFJlZlB0cjxT
VkdTVkdFbGVtZW50PiByb290RWxlbWVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcAppbmRleCBjZjhjYzNl
NWNlYzhlODEyZGU2OWE5ZjQ0YWRiYjdiMDVjNTVjMDA1Li5lYWVmYzMxZTQ3ZDAyMTUxZDY5MGM1
Y2Q2NWY1ZTgzMWIzMWFmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAKQEAgLTI3LDIzICsyNywyMiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLUZsb2F0U2l6ZSBTVkdJbWFnZUZvckNvbnRhaW5lcjo6c2l6ZSgp
IGNvbnN0CitGbG9hdFNpemUgU1ZHSW1hZ2VGb3JDb250YWluZXI6OnNpemUoSW1hZ2VPcmllbnRh
dGlvbikgY29uc3QKIHsKICAgICBGbG9hdFNpemUgc2NhbGVkQ29udGFpbmVyU2l6ZShtX2NvbnRh
aW5lclNpemUpOwogICAgIHNjYWxlZENvbnRhaW5lclNpemUuc2NhbGUobV9jb250YWluZXJab29t
KTsKICAgICByZXR1cm4gRmxvYXRTaXplKHJvdW5kZWRJbnRTaXplKHNjYWxlZENvbnRhaW5lclNp
emUpKTsKIH0KIAotSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlRm9yQ29udGFpbmVyOjpkcmF3KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LAotICAgIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJs
ZW5kTW9kZSBibGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikKK0ltYWdl
RHJhd1Jlc3VsdCBTVkdJbWFnZUZvckNvbnRhaW5lcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gbV9p
bWFnZS0+ZHJhd0ZvckNvbnRhaW5lcihjb250ZXh0LCBtX2NvbnRhaW5lclNpemUsIG1fY29udGFp
bmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkwsIGRzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0
ZU9wLCBibGVuZE1vZGUpOworICAgIHJldHVybiBtX2ltYWdlLT5kcmF3Rm9yQ29udGFpbmVyKGNv
bnRleHQsIG1fY29udGFpbmVyU2l6ZSwgbV9jb250YWluZXJab29tLCBtX2luaXRpYWxGcmFnbWVu
dFVSTCwgZHN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgU1ZHSW1hZ2VGb3JD
b250YWluZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKLSAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Y29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwg
QmxlbmRNb2RlIGJsZW5kTW9kZSkKKyAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3Qg
RmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
IHsKLSAgICBtX2ltYWdlLT5kcmF3UGF0dGVybkZvckNvbnRhaW5lcihjb250ZXh0LCBtX2NvbnRh
aW5lclNpemUsIG1fY29udGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkwsIHNyY1JlY3Qs
IHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3NpdGVPcCwgZHN0UmVjdCwg
YmxlbmRNb2RlKTsKKyAgICBtX2ltYWdlLT5kcmF3UGF0dGVybkZvckNvbnRhaW5lcihjb250ZXh0
LCBtX2NvbnRhaW5lclNpemUsIG1fY29udGFpbmVyWm9vbSwgbV9pbml0aWFsRnJhZ21lbnRVUkws
IHNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBkc3RSZWN0LCBvcHRp
b25zKTsKIH0KIAogTmF0aXZlSW1hZ2VQdHIgU1ZHSW1hZ2VGb3JDb250YWluZXI6Om5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRh
aW5lci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVy
LmgKaW5kZXggODY5ZDA5NzFjNWIyZmU1ZDQ5NTFkZDYwMzQwYWUzNjNjZjc3NmYwNC4uZTY0NGY3
YWNmMzBlYzIyNGRmODUxNWQ4N2Y3MmMyYWUxYmIzNGE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgKQEAgLTQzLDcgKzQzLDcg
QEAgcHVibGljOgogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBGbG9hdFNp
emUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBj
b25zdCBmaW5hbDsKIAogICAgIGJvb2wgdXNlc0NvbnRhaW5lclNpemUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2ltYWdlLT51c2VzQ29udGFpbmVyU2l6ZSgpOyB9CiAgICAgYm9vbCBoYXNSZWxh
dGl2ZVdpZHRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbWFnZS0+aGFzUmVsYXRpdmVXaWR0
aCgpOyB9CkBAIC01Myw5ICs1Myw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9pbWFnZS0+Y29tcHV0
ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lkdGgsIGludHJpbnNpY0hlaWdodCwgaW50
cmluc2ljUmF0aW8pOwogICAgIH0KIAotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlvbikgZmluYWw7
CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9
KSBmaW5hbDsKIAotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUpIGZpbmFsOworICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwg
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiA9IHsgfSkgZmluYWw7CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgdG8g
YmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAgICAgYm9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVPcGFx
dWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA0MDAwMmNmOTMwZmNi
YzFkMmRmNTM1ZmYzMzYwNTAwOWI3ODhmZmEyLi43NWJhYjFjMjA0OGRlYTY5ZGFiODVkNGFiZjdm
YmMyYTAyYzIzZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgc3RhdGljIHZvaWQgaW1h
Z2VQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNv
bnN0IEludGUKICAgICBpZiAoIWdyYXBoaWNzQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoKmltYWdlLCBGbG9hdFJlY3QoMCwgMCwgYml0
bWFwU2l6ZS53aWR0aCgpLCBiaXRtYXBTaXplLmhlaWdodCgpKSwgcmVuZGVySW1hZ2UuaW1hZ2VP
cmllbnRhdGlvbigpKTsKKyAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZSgqaW1hZ2UsIEZs
b2F0UmVjdCgwLCAwLCBiaXRtYXBTaXplLndpZHRoKCksIGJpdG1hcFNpemUuaGVpZ2h0KCkpLCB7
IHJlbmRlckltYWdlLmltYWdlT3JpZW50YXRpb24oKSB9KTsKICAgICBpbmZvLmltYWdlID0gc2hh
cmVkQml0bWFwOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2U2ODIzZjZjYWYwODAzZDNjYjdiNTRiMWRkMTA4MDE2
ZDY2NjE0Mi4uMTk2NzJiYTgxNGJjYTZkM2VhN2I3ZjViNDI4YjI5YjQ3ZWUzYzk2YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTI4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFs
bGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRVhJRiBvcmllbnRhdGlvbiBzaG91bGQgYmUgcmVz
cGVjdGVkIHdoZW4gcmVuZGVyaW5nIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgYXJlIG1hZGUgcmVmLXRlc3RzLiBO
ZXcgdGVzdHMgd2VyZSBhZGRlZCB0byBjb3ZlciBtb3JlCisgICAgICAgIGNhc2VzIGZvciBkcmF3
aW5nIGltYWdlcy4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29t
cG9zaXRlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9p
bWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVudC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi1pbWFnZS1kb2N1bWVudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2V4aWYtb3JpZW50YXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNh
bnZhcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1jb250ZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0LWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltYWdlLW9iamVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0LWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZl
aW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9uczoKKwogMjAxOS0wOC0yNyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWpp
aUBzb255LmNvbT4KIAogICAgICAgICBNYWtlIEZyYW1lTG9hZGVyOjpvcGVuKCkgc2V0IG91dGdv
aW5nIHJlZmVycmVyIHByb3Blcmx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZiMTU4YmVjNTZjMTllMjY5ODVkZTAyODQ4NDZj
NDkyMjVkYWYyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIGltYWdlcyBzaG91
bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVz
dCBjYW4gb25seSBiZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5n
IFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLgotCi0KLUZsaXBw
ZWQgaG9yaXpvbnRhbGx5IAotUm90YXRlZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQot
Um90YXRlZCA5MMKwIENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIEND
VyAKLVJvdGF0ZWQgOTDCsCBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5ICAKLVJvdGF0ZWQgOTDC
sCBDVyAKLWltZzEgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6ZSA9IDEwMHB4IGJ5IDUw
cHgKLWltZzMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9IDUwcHggYnkgMTAwcHgK
LWltZzUgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzYgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWlt
Zzcgc2l6ZSA9IDUwcHggYnkgMTAwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk4Y2ZmMDlhNDcyZjRiOTEwYzFmOWVkZTU2NTBlZWJhMjMwNTJkZTEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw0NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbih0cnVlKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIgbGkgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKLX0KLQot
ZnVuY3Rpb24gaW1hZ2VTaXplKGVsKSB7Ci0gICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShlbCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAi
IGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKLX0KLQotCi1mdW5jdGlvbiBsb2FkKCkgewot
ICAgIGZvcih2YXIgaSA9IDE7IGkgPD0gNzsgaSsrKQotICAgICAgICBsb2coImltZyIgKyBpICsg
IiBzaXplID0gIiArIGltYWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIiArIGkp
KSkKLX0KLQotPC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlWigwKTsgfQotZGl2IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6
IDIwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiAxMDBweDsgdmVydGljYWwtYWxpZ246
IHRvcDsgfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLTxiPlRo
ZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0
aW9uLiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFu
dWFsbHkgc2V0dGluZyBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVl
KS48L2I+PGJyPjxicj4KLTxkaXY+PGltZyBpZD0iaW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0yLXVyLmpwZyI+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2
PjxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGci
Pjxicj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzMiIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5
PC9kaXY+Ci08YnI+Ci08ZGl2PjxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNS1sdS5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHk8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi02LXJ1LmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXY+
PGltZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IDwvZGl2PgotPGRp
dj48aW1nIGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpw
ZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48
L3VsPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmMDIyNDViNjBiYmI4ZDJkMTE5ZTllMDdlODMwNWJkNjMxMTg1NjEzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMyICswLDAgQEAKLU5vbmUgb2YgdGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRl
ZC4gVGhpcyB0ZXN0IGlzIG9ubHkgdmFsaWQgd2hlbiBydW4gd2l0aCB0ZXN0UnVubmVyIChvciB3
aXRoIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIG1hbnVhbGx5IHNldCB0byB0
cnVlKS4KLQotCi1Ob3JtYWwgCi1GbGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQgMTgwwrAg
Ci1GbGlwcGVkIHZlcnRpY2FsbHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQgdmVy
dGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDVyAKLQotUm90YXRlZCA5MMKwIENDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENXIAotCi1VbmRlZmluZWQgKGludmFs
aWQgdmFsdWUpIAotaW1nMSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMiBzaXplID0gMTAwcHgg
YnkgNTBweAotaW1nMyBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNCBzaXplID0gMTAwcHggYnkg
NTBweAotaW1nNSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNiBzaXplID0gMTAwcHggYnkgNTBw
eAotaW1nNyBzaXplID0gMTAwcHggYnkgNTBweAotaW1nOCBzaXplID0gMTAwcHggYnkgNTBweAot
aW1nOSBzaXplID0gMTAwcHggYnkgMTAwcHgKLWltZzEwIHNpemUgPSAxMDBweCBieSAxMDBweAot
aW1nMTEgc2l6ZSA9IDEwMHB4IGJ5IDEwMHB4Ci1pbWcxMiBzaXplID0gMTAwcHggYnkgMTAwcHgK
LWltZzEzIHNpemUgPSAxMDBweCBieSA1MHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzQxN2Y1NTg5MjEzMzY0NmQzODY2YTBiYWVlYjM2MTY4MmViMWZiYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24odHJ1ZSk7
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUp
OwotCi1mdW5jdGlvbiBsb2coc3RyKSB7Ci0gICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibGkiKTsKLSAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShz
dHIpKTsKLSAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
Iik7Ci0gICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6
ZShlbCkgewotICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZWwpOwotICAgIHJldHVybiBjb21wdXRlZFN0eWxlLndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRT
dHlsZS5oZWlnaHQ7Ci19Ci0KLQotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBmb3IodmFyIGkgPSAx
OyBpIDw9IDEzOyBpKyspCi0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1h
Z2VTaXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQotfQotCi08L3Njcmlw
dD4KLTxzdHlsZT4KLWRpdi5pbWFnZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7IH0KLWRpdi5jb250YWluZXIgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMHB4OyB2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci1pbWcgeyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7
IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9ImxvYWQoKSI+Ci08Yj5Ob25lIG9mIHRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0
ZWQuIFRoaXMgdGVzdCBpcyBvbmx5IHZhbGlkIHdoZW4gcnVuIHdpdGggdGVzdFJ1bm5lciAob3Ig
d2l0aCBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBtYW51YWxseSBzZXQgdG8g
dHJ1ZSkuPC9iPjxicj48YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9Imlt
YWdlIiBpZD0iaW1nMSIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZykiPjwvZGl2Pjxicj5Ob3JtYWw8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWcyIiBzdHlsZT0iY29udGVudDogdXJsKHJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnKSI+PC9kaXY+PGJyPkZsaXBwZWQgaG9y
aXpvbnRhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdl
IiBpZD0iaW1nMyIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0zLWxyLmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+Ci08ZGl2IGNsYXNz
PSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nNCIgc3R5bGU9ImNvbnRlbnQ6
IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rpdj48YnI+Rmxp
cHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYg
Y2xhc3M9ImltYWdlIiBpZD0iaW1nNSIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi01LWx1LmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBj
bGFzcz0iaW1hZ2UiIGlkPSJpbWc2IiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rp
dj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc3IiBz
dHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnKSI+
PC9kaXY+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+
Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nOCIgc3R5
bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcpIj48
L2Rpdj48YnI+Um90YXRlZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250
YWluZXIiPjxpbWcgaWQ9ImltZzkiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2ltZz48YnI+Um90YXRlZCA5MCZkZWc7
IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIi
PjxpbWcgaWQ9ImltZzEwIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8
L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTEiIHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48
L2ltZz48YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4K
LTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTIiIHN0eWxlPSJiYWNrZ3JvdW5k
LWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9pbWc+
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzEzIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGcpIj48L2Rpdj48YnI+VW5kZWZpbmVkIChpbnZh
bGlkIHZhbHVlKTwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY0ODgzMjNm
NDk0YTA2Yjc0OTBhZjYwMzk3ZDE0ZjkyMDFhZTNhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVu
dGF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSBp
bWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9u
LiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFudWFs
bHkgc2V0dGluZyBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVlKS4K
LQotCi1Ob3JtYWwgCi1GbGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQgMTgwwrAgCi1GbGlw
cGVkIHZlcnRpY2FsbHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxs
eSAKLVJvdGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBwZWQgdmVydGlj
YWxseSAgCi1Sb3RhdGVkIDkwwrAgQ1cgCi0KLVVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkgCi1p
bWcxIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWcyIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWcz
IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc0IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc1IHNp
emUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc2IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc3IHNpemUg
PSA1MHB4IGJ5IDEwMHB4Ci1pbWc4IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc5IHNpemUgPSAx
MDBweCBieSA1MHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWltYWdlLWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzMxM2JlNTIzNGY1ZTI4NjdhZDRkNTYwMDZhNTM1
ZTBlZmM2ZjQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1UaGUgaW1hZ2VzIHNo
b3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi4gSW4gaW1h
Z2UgZG9jdW1lbnRzLCB0aGlzIGhhcHBlbnMgaW5kZXBlbmRlbnQgb2YgV2ViS2l0U2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24uCi0KLSAgICAKLSAgICAKLSAKLVBBU1MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9j
dW1lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTIxYjNlNTU4Yjk0NDAy
OGZhNmQwZmE1OTQ5ZTU4NzY2MGFhMDhkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9u
LWltYWdlLWRvY3VtZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIC8vIE5v
dGUgdGhhdCB0aGlzIHRlc3Qgb25seSBwYXNzZXMgaW4gRFJULiBJbiBicm93c2VycywgdGhlIGNy
b3NzLWlmcmFtZSBkb20gaW5zcGVjdGlvbiB1c3VhbGx5IGNhdXNlcyBhIHNlY3VyaXR5IGV4Y2Vw
dGlvbi4KLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci19Ci0KLWZ1bmN0aW9uIGxv
ZyhzdHIpIHsKLSAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAg
IGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBj
b25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xl
LmFwcGVuZENoaWxkKGxpKTsKLX0KLQotZnVuY3Rpb24gaW1hZ2VTaXplKG5hbWUpIHsKLSAgICB2
YXIgaW1nID0gd2luZG93LmZyYW1lc1tuYW1lXS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbWcn
KTsKLSAgICByZXR1cm4gW2ltZy5vZmZzZXRXaWR0aCwgaW1nLm9mZnNldEhlaWdodF07Ci19Ci0K
LQotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICB2YXIgZXhwZWN0ZWQgPSBbCi0gICAgICBbMTAwLCA1
MF0sIFsxMDAsIDUwXSwgWzEwMCwgNTBdLCBbMTAwLCA1MF0sIAotICAgICAgWzUwLCAxMDBdLCBb
NTAsIDEwMF0sIFs1MCwgMTAwXSwgWzUwLCAxMDBdLCAKLSAgICAgIFsxMDAsIDUwXSwKLSAgICBd
OwotICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkr
KykgewotICAgICAgICB2YXIgcyA9IGltYWdlU2l6ZSgiaW1nIiArIGkpOwotICAgICAgICBpZiAo
c1swXSAhPT0gZXhwZWN0ZWRbaSAtIDFdWzBdIHx8IHNbMV0gIT09IGV4cGVjdGVkW2kgLSAxXVsx
XSkKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICB9Ci0gICAgbG9nKHN1Y2Nlc3Mg
PyAiUEFTUyIgOiAiRkFJTCIpOwotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWlmcmFtZSB7IGRp
c3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAx
MHB4OyB3aWR0aDogMTIwcHg7IGhlaWdodDogMTEwcHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGJv
cmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJsb2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRo
ZWlyIEVYSUYgb3JpZW50YXRpb24uIEluIGltYWdlIGRvY3VtZW50cywgdGhpcyBoYXBwZW5zIGlu
ZGVwZW5kZW50IG9mIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLjwvYj48YnI+
PGJyPgotPGlmcmFtZSBuYW1lPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWcyIiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIiBmcmFtZWJvcmRlcj0wPjwv
aWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTMtbHIuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWc0
IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIgZnJhbWVib3JkZXI9
MD48L2lmcmFtZT4KLTxicj4KLTxpZnJhbWUgbmFtZT0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi01LWx1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUg
bmFtZT0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIgZnJh
bWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNyIgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJh
bWUgbmFtZT0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGci
IGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08YnI+Ci08aWZyYW1lIG5hbWU9ImltZzkiIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFt
ZT4KLTxicj4KLTx1bCBpZD0iY29uc29sZSI+PC91bD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwZDhjODNiMGQ1ZjNlZDVkZTkzMDliODYyNzRmZTE3MTRiZjA1
YThjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKHRydWUpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCh0cnVlKTsKLQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoc3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5j
dGlvbiBpbWFnZVNpemUoZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGVsKTsKLSAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkg
IiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAg
Zm9yKHZhciBpID0gMTsgaSA8PSA5OyBpKyspCi0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNp
emUgPSAiICsgaW1hZ2VTaXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQot
fQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9
Ci1kaXYgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2lu
LWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci08L3N0
eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91
bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVz
dCBjYW4gb25seSBiZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5n
IFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLjwvYj48YnI+PGJy
PgotPGRpdj48aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIj48YnI+Tm9ybWFsPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjxicj5GbGlwcGVkIGhvcml6b250YWxseTwv
ZGl2PgotPGRpdj48aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTMtbHIuanBnIj48YnI+Um90YXRlZCAxODAmZGVnOzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc0
IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PGJyPkZsaXBwZWQg
dmVydGljYWxseTwvZGl2PgotPGJyPgotPGRpdj48aW1nIGlkPSJpbWc1IiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXPC9k
aXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
Ny1ybC5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSA8
L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi04LWxsby5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTxkaXY+PGlt
ZyBpZD0iaW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj48YnI+
VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKTwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48
L3VsPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE0OWE1ZWQ1NTAwMDljMzcxNDBkODQxMTQ2ZWEwZjlkNGYzMmM0Y2EKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJv
dHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFs
aWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEw
MjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAg
ICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaW1n
IHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxi
b2R5PgorICAgIDxiPlRoZSBjc3MgYmFja2dyb3VuZCBpbWFnZXMgc2hvdWxkIGJlIHJlbmRlcmVk
IHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBz
Y2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcp
IHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRl
ZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAg
IDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJo
b3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChp
bnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE5YzNjYTQ1M2M2MTFlNDU4MTVlYjc2OGM1MjUwYTJhNDMxOGExYTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNr
Z3JvdW5kLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+Cisg
ICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAg
ICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQor
ICAgIGRpdi5pbWFnZSB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAg
ICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRh
bCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0K
KyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0
OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBiYWNrZ3Jv
dW5kIGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVu
dGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rp
dj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNr
Z3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48
L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpv
bnRhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0zLWxyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWlt
YWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91
bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+
CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1jYW52YXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9y
aWVudGF0aW9uLWNhbnZhcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjMTAyNjgxMDc2NTc5
ZDY5YmM4Yzk2YjdmMWFiMWY1ZjM3Mjc5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVy
IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6
IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEw
MHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6
b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAg
fQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWln
aHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmRyYXdJbWFnZSgpIHNob3VsZCByZXNwZWN0IHRoZSBpbWFnZSBFWElGIG9yaWVudGF0
aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
c2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpv
bnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBk
ZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBk
ZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0y
NXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkg
cm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
MjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgp
IHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkYTQxODI3OTU3NjU2ZmU2YjM0ZGYzNjhiOWI1N2Mx
MDAwMDRjMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbApAQCAtMCwwICsxLDEyNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90
dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWdu
OiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsK
KyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAg
ICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgY2FudmFz
IHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIGNhbnZhcy5o
b3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7
CisgICAgfQorICAgIGNhbnZhcy52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuZHJhd0ltYWdlKCkgc2hvdWxkIHJlc3BlY3QgdGhlIGltYWdl
IEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgIDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXMxIj48L2NhbnZhcz4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczIiPjwvY2Fu
dmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwi
IGlkPSJjYW52YXMzIj48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xh
c3M9Imhvcml6b250YWwiIGlkPSJjYW52YXM0Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+
CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczUiPjwvY2Fu
dmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5k
IGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAgICAgICAgICAgPGNhbnZh
cyBjbGFzcz0idmVydGljYWwiIGlkPSJjYW52YXM2Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczciPjwvY2FudmFzPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNz
PSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczgiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczkiPjwvY2Fu
dmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1
ZSkKKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAg
ICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIG5hbWVz
ID0gWworICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIsICBpZCA6ICJjYW52YXMxIiB9LAorICAgICAgICAgICAgICAgIHsgcmVz
b3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIsICBpZCA6ICJjYW52
YXMyIiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0zLWxyLmpwZyIsICBpZCA6ICJjYW52YXMzIiB9LAorICAgICAgICAgICAgICAgIHsg
cmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciLCBpZCA6ICJj
YW52YXM0IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi01LWx1LmpwZyIsICBpZCA6ICJjYW52YXM1IiB9LAorICAgICAgICAgICAgICAg
IHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIsICBpZCA6
ICJjYW52YXM2IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi03LXJsLmpwZyIsICBpZCA6ICJjYW52YXM3IiB9LAorICAgICAgICAgICAg
ICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciLCBp
ZCA6ICJjYW52YXM4IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIiwgICBpZCA6ICJjYW52YXM5IiB9CisgICAgICAgICAg
ICBdOworCisgICAgICAgICAgICB2YXIgZHJhd0NvdW50ID0gMDsKKworICAgICAgICAgICAgbmFt
ZXMuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7CisgICAgICAgICAgICAgICAgdmFyIGltYWdlID0g
bmV3IEltYWdlOworICAgICAgICAgICAgICAgIGltYWdlLnNyYyA9IG5hbWUucmVzb3VyY2U7Cisg
ICAgICAgICAgICAgICAgaW1hZ2UuZGVjb2RlKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lLmlkKTsKKyAg
ICAgICAgICAgICAgICAgICAgY2FudmFzLndpZHRoID0gaW1hZ2Uud2lkdGg7CisgICAgICAgICAg
ICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHQ7CisgICAgICAgICAgICAgICAg
ICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgICAgICAgICAg
ICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZh
cy5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoKytkcmF3Q291bnQgPT0gbmFtZXMu
bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVu
dC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwODVhODIyNjNiMmJmNDM4MjgzNDQ3ZjVhNzJj
ODQ0OWUzZDcxNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAg
IHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAg
ICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVy
dGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAg
ICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQor
PC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBjc3MgY29udGVudCBpbWFnZXMgc2hvdWxkIGJl
IHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJy
PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFs
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6
b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRl
KDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVy
dGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0
ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5k
ZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ1OTE4ZWEzMjdiY2ZlYjliOGNjZDU3YzdhNDM4MDc1ODFjYmE0MDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
b250ZW50Lmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+Cisg
ICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAg
ICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQor
ICAgIGRpdi5pbWFnZSB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0K
KyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVp
Z2h0OiA1MHB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBw
eDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAg
PGI+VGhlIGNzcyBjb250ZW50IGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0
aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwi
IHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGcp
Ij48L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxl
PSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rp
dj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRh
bCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpw
ZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6
b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1s
b2wuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0i
Y29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0
eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNh
bGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6
IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+CisgICAgICAg
IDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVu
dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzdhMTM3MWYyN2M0NDY4NTA2
YjE0OTkxOWZkMzMyNjE1NTFjYjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsK
KyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIw
cHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4
OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250
YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQor
ICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6
IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFj
azsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBJbWFnZURv
Y3VtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0
aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
c2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpv
bnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBk
ZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBk
ZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0y
NXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkg
cm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
MjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgp
IHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjk1ZjE5ZGRmNzdjZjY2YzM4YTkyMzA0YmM4
OWIwOTc2OTU5ZTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJn
aW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2Fs
LWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6
IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgewor
ICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAg
aWZyYW1lIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIGlm
cmFtZS5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6
IDUwcHg7CisgICAgfQorICAgIGlmcmFtZS52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4
OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8
Yj5UaGUgaW1hZ2VzIG9mIEltYWdlRG9jdW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0
aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVM
b2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj48L2lm
cmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFt
ZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjwv
aWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFs
IiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTMtbHIuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNz
PSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAg
ICAgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRo
aXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj48L2lmcmFtZT4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNz
PSJ2ZXJ0aWNhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi02LXJ1LmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
ZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBv
bmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGlm
cmFtZSBjbGFzcz0iaG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICB2YXIgaUZyYW1l
TG9hZGVkQ291bnQgPSAwOworCisgICAgICAgICBmdW5jdGlvbiBvbkZyYW1lTG9hZCgpIHsKKyAg
ICAgICAgICAgIGlmICgrK2lGcmFtZUxvYWRlZENvdW50ID09IDkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
b3JpZW50YXRpb24taW1hZ2Utb2JqZWN0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ODRlODU4ZTI0MDJhMjE4NmYyYjAyYmU3YzJkMDM5YWZmZGVkM2ZmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1h
Z2Utb2JqZWN0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRv
bTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWdu
OiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsK
KyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAg
ICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsK
KyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5
PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O29iamVjdCZndDsgZWxlbWVudHMgc2hvdWxkIGJl
IHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJy
PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFs
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6
b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRl
KDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVy
dGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0
ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5k
ZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmpl
Y3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNGQ3MjgwMjUyYTAwNDY0NTUyYjk4NzIzZWU0MDdlZmI3NjRm
ZDcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJv
dHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFs
aWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEw
MjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAg
ICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgb2Jq
ZWN0IHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4K
Kzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O29iamVjdCZndDsgZWxlbWVudHMgc2hv
dWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+Cisg
ICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2Uv
anBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPjwvb2JqZWN0
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMy1sci5qcGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0i
aW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj48
L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFn
ZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+PC9vYmpl
Y3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVjdCB0
eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1Lmpw
ZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBl
ZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPjwvb2JqZWN0Pgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJp
bWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciPjwv
b2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVwor
ICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0iaW1h
Z2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyI+PC9vYmpl
Y3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVl
KQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjZkNDY3NWEwOTRkOTNmMzBiNDAzNzlkOTRlODk2ZDFiOTk5YjExOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMDUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdp
bi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNh
bC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRo
OiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsK
KyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAg
IGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+
Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcmZ3Q7IGVsZW1lbnRzIHNob3Vs
ZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAg
IDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWcxIiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9Imlt
ZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVk
IGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1n
MyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc0
IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAg
ICAgICAgIDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkw
ZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgPGltZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBk
ZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVwor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
MjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0y
NXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxpbWcgaWQ9ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5q
cGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1
ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPHVsIGlkPSJjb25zb2xlIj48L3VsPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBs
aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBjb25z
b2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNv
bnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisKKyAgICAgICAgIGZ1bmN0aW9uIGlt
YWdlU2l6ZShpbmRleCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiaW1nIiArIGluZGV4KTsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxl
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7CisgICAgICAgICAgICBpZiAoZWxl
bWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygidmVydGljYWwiKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS5oZWlnaHQgKyAiIGJ5ICIgKyBjb21wdXRl
ZFN0eWxlLndpZHRoOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAi
IGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKKyAgICAgICAgfQorCisgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4geworICAgICAgICAgICAgZm9y
KHZhciBpID0gMTsgaSA8PSA5OyBpKyspCisgICAgICAgICAgICAgICAgbG9nKCJpbWciICsgaSAr
ICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoaSkpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4K
KzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1pbWctZWxlbWVudC1vYmplY3QtZml0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE4NzI4
MTJjZWUzMzlkZDMxMzQyOWU2MDU0YjRkOTFmN2U2MjVhYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9iamVj
dC1maXQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDc4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
dHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAx
MHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRv
cDsKKyAgICB9CisgICAgZGl2LnNxdWFyZSB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAg
fQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxl
bWVudHMgd2l0aCBvYmplY3QtZml0IHByb3BlcnR5IHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0
aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAg
ICAgICAgICAgIDxkaXY+CisgICAgICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVw
eCk7Ij4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5v
cm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4
KSBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jp
em9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwg
MjVweCkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KDAsIDI1cHgpIHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZ
KC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUo
MCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQt
b2JqZWN0LWZpdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNTM5YTU1OGUwMWI5
NTNmZjljN2Y1Y2ZjMDdmMTc1MWJkNjdhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0
bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNv
bnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2lu
LXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdp
ZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRp
di5zcXVhcmUgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBpbWcgeworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG9iamVj
dC1maXQ6IGNvbnRhaW47CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFn
ZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVudHMgd2l0aCBvYmplY3QtZml0IHByb3BlcnR5IHNob3Vs
ZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAg
IDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFs
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0yLXVyLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBo
b3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTgtbGxvLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1n
LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWltZy1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZlOTZjNWRlMmRiNWNlYmFlYjg3MjRmMDMz
OWRiODM3NGIzMjBkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAg
IG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2
ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAg
IHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRp
Y2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAg
fQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwv
c3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcmZ3Q7IGVsZW1lbnRz
IHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9i
PgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWcxIiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcg
aWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpv
bnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc0IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2Fs
Ij4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNS1sdS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAg
ICAgIDxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5q
cGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzgiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tOC1sbG8uanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRl
ZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJp
bWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4K
KyAgICA8YnI+CisgICAgPHVsIGlkPSJjb25zb2xlIj48L3VsPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hp
bGQobGkpOworICAgICAgICB9CisKKyAgICAgICAgICBmdW5jdGlvbiBpbWFnZVNpemUoZWwpIHsK
KyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZWwpOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5ICIgKyBj
b21wdXRlZFN0eWxlLmhlaWdodDsKKyAgICAgICAgfQorCisgICAgICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4geworICAgICAgICAgICAgZm9yKHZhciBpID0g
MTsgaSA8PSA5OyBpKyspCisgICAgICAgICAgICAgICAgbG9nKCJpbWciICsgaSArICIgc2l6ZSA9
ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIgKyBpKSkpOworICAg
ICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1zdmctZmVpbWFnZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTBi
OTJmM2FlNWEzOWNlNjNmMTAyZDM3NTJlMTY0NjcxNDdiNTFlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAg
ICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAg
ICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAg
ICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9
CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWln
aHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4
OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhl
IGltYWdlcyBvZiBTVkcgJmx0O2ZlaW1hZ2UmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJl
ZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8
YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0
cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykg
c2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVn
KSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAg
ICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0
cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAo
aW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU0ZjI3YjRiNmYwODEwZWY1MWJhMjg1NDIwNzc4YjIzZDc1NTZiNWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1z
dmctZmVpbWFnZS5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHls
ZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwor
ICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7
CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAg
ICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBo
ZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1
MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBzdmcgeworICAgICAgICBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgc3ZnLmhvcml6b250YWwgeworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgc3Zn
LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgU1ZHICZsdDtm
ZWltYWdlJmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBF
WElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0i
aW1nMSI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIx
MDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwu
anBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qg
d2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzEpOyIvPgor
ICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAg
ICAgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWcyIj4KKyAgICAgICAgICAgICAgICAgICAgPGZl
aW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciLz4KKyAgICAgICAgICAgICAgICA8L2ZpbHRl
cj4KKyAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHls
ZT0iZmlsdGVyOnVybCgjaW1nMik7Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZp
bHRlciBpZD0iaW1nMyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAi
IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTMtbHIuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAg
ICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2lt
ZzMpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNCI+CisgICAg
ICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9
IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIvPgorICAg
ICAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAl
IiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc0KTsiLz4KKyAgICAgICAgICAg
IDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQor
ICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNSI+CisgICAgICAgICAgICAgICAg
ICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIi8+CisgICAgICAgICAgICAgICAg
PC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAw
JSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzUpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGlj
YWwiPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzYiPgorICAgICAgICAgICAgICAg
ICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVm
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIvPgorICAgICAgICAgICAgICAg
IDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc2KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAg
PGZpbHRlciBpZD0iaW1nNyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9
IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTctcmwuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAg
ICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwo
I2ltZzcpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAg
PGZpbHRlciBpZD0iaW1nOCI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9
IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTgtbGxvLmpwZyIvPgorICAgICAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAg
ICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJs
KCNpbWc4KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIg
aWQ9ImltZzkiPgorICAgICAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05
LXUuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJl
Y3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzkpOyIv
PgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZp
bmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFn
ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE4ZjlkZDUwY2Y1NjYxMzdm
YTAxZmZjMDRhZmYwMGYwYTIwODJmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIg
eworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDog
MjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAw
cHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpv
bnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9
CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdo
dDogMTAycHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIFNWRyAm
bHQ7aW1hZ2UmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWly
IEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgt
MSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0
ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAg
ICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZlNzViMTZjMDM2
M2EwNzkxMDhiMjgxM2U4OTlhNjJjZDAxNjA0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sCkBAIC0wLDAg
KzEsMTA5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsK
KyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIw
cHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisKKyAgICBkaXYuaG9yaXpvbnRh
bCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9Cisg
ICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDog
MTAycHg7CisgICAgfQorICAgIHN2ZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNr
OworICAgIH0KKyAgICBzdmcuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBzdmcudmVydGljYWwgeworICAgICAgICB3
aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJv
ZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBTVkcgJmx0O2ltYWdlJmd0OyBlbGVtZW50cyBzaG91
bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAg
ICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhy
ZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+CisgICAgICAgICAgICA8
L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAg
IDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0yLXVyLmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAg
ICAgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxpbWFn
ZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0zLWxyLmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIx
MDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9s
LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5q
cGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1h
Z2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNi1ydS5qcGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAg
ICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIx
MDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwu
anBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1h
Z2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tOC1sbG8uanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8
aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tOS11LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxMjg5ZWU2
YzE4YmQ1ODE3ZmRhM2M3YTAxYWEzNDkzOTNlNjA3YzhiLi4wY2M2NWFhZWYxNGRjYjdhMGFkY2Jm
MDgyMGRlOWMxYzY5YWEwZGIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjkyNSw4ICsyOTI1LDYgQEAgd2Via2l0Lm9yZy9iLzEyMDU5NiBjc3MzL21h
c2tpbmcvbWFzay1yZXBlYXQtc3BhY2UtY29udGVudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHUKIAog
d2Via2l0Lm9yZy9iLzEyMDgzOSBsZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL2Ny
b3NzLWZhZGUtYmFja2dyb3VuZC1pbWFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdl
YmtpdC5vcmcvYi8xMjE5MDUgZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIFsgRmFp
bHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xODA1ODEgY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS92
YWx1ZXMvc2hhcGUtbWFyZ2luLTAwMS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgw
NTgxIGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW91dHNpZGUtY2lyY2xl
LTAwNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgwNTgxIGNzczMvc2hhcGVzL3No
YXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW91dHNpZGUtY2lyY2xlLTAwNS5odG1sIFsgRmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDMzYmY2
Yjc2MzgwNmYzMGU5YTdmMzJmMTEwMmU1OGNmMTJmYzM1ODUuLmQzNTA0N2EwMzczNGJmMjM3YzIw
MzM4NGY2MWM3MGNlNzM0NTI3Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0yODExLDExICsyODExLDkgQEAgZmFzdC9oaXN0b3J5L2xvY2F0aW9uLXJl
cGxhY2UtaGFzaC5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3Rvcnkvc2F2ZXMtc3RhdGUtYWZ0ZXIt
ZnJhZ21lbnQtbmF2Lmh0bWwgWyBTa2lwIF0KIAogZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMt
YmFzaWMuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21w
b3NpdGVkLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDA1MTYgWyBEZWJ1ZyBdIGZh
c3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNraXAgXSAgIyBDcmFzaGlu
ZwogZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLXdpdGgtYW5ub3RhdGlvbnMuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogZmFzdC9pbWFnZXMvc3VwcG9ydC1icm9rZW4taW1hZ2UtZGVsZWdhdGUu
aHRtbCBbIEZhaWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIFsgRmFp
bHVyZSBdCiAKIGZhc3QvaW5saW5lL3Bvc2l0aW9uZWRMaWZldGltZS5odG1sIFsgRmFpbHVyZSBd
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377454</attachid>
            <date>2019-08-28 10:04:12 -0700</date>
            <delta_ts>2019-08-28 15:23:17 -0700</delta_ts>
            <desc>Patch for review</desc>
            <filename>image-orientation-7.patch</filename>
            <type>text/plain</type>
            <size>103046</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ZTY4MjNmNmNhZi4uMTk2NzJiYTgxNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAor
MjAxOS0wOC0yOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgor
CisgICAgICAgIEVYSUYgb3JpZW50YXRpb24gc2hvdWxkIGJlIHJlc3BlY3RlZCB3aGVuIHJlbmRl
cmluZyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMTEyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEV4aXN0aW5nIHRlc3RzIGFyZSBtYWRlIHJlZi10ZXN0cy4gTmV3IHRlc3RzIHdlcmUgYWRk
ZWQgdG8gY292ZXIgbW9yZQorICAgICAgICBjYXNlcyBmb3IgZHJhd2luZyBpbWFnZXMuCisKKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29t
cG9zaXRlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50
YXRpb24tY3NzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9l
eGlmLW9yaWVudGF0aW9uLWNzcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2V4aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1l
bnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9u
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
YmFja2dyb3VuZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
b250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWRvY3VtZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLWRvY3VtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3Qu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1n
LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1v
YmplY3QtZml0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWltZy1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1zdmctaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MTktMDgtMjcgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAg
ICAgICAgTWFrZSBGcmFtZUxvYWRlcjo6b3BlbigpIHNldCBvdXRnb2luZyByZWZlcnJlciBwcm9w
ZXJseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlv
bi1jb21wb3NpdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYt
b3JpZW50YXRpb24tY29tcG9zaXRlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE2YjE1OGJlYzU2Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNw
ZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4g
d2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLgotCi0KLUZsaXBwZWQgaG9yaXpvbnRhbGx5IAot
Um90YXRlZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQotUm90YXRlZCA5MMKwIENDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBD
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5ICAKLVJvdGF0ZWQgOTDCsCBDVyAKLWltZzEgc2l6ZSA9
IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzMgc2l6ZSA9IDEw
MHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzUgc2l6ZSA9IDUwcHgg
YnkgMTAwcHgKLWltZzYgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzcgc2l6ZSA9IDUwcHggYnkg
MTAwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRp
b24tY29tcG9zaXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi1jb21wb3NpdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4Y2Zm
MDlhNDcyLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKHRydWUpOwot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsK
LQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3Ry
KSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
OwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5jdGlvbiBpbWFnZVNpemUo
ZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVs
KTsKLSAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkgIiArIGNvbXB1dGVkU3R5
bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAgZm9yKHZhciBpID0gMTsg
aSA8PSA3OyBpKyspCi0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VT
aXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQotfQotCi08L3NjcmlwdD4K
LTxzdHlsZT4KLWltZyB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9Ci1kaXYg
eyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRv
bTogMTBweDsgd2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci08L3N0eWxlPgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUg
cm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4g
b25seSBiZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktp
dFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLjwvYj48YnI+PGJyPgotPGRp
dj48aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBn
Ij48YnI+RmxpcHBlZCBob3Jpem9udGFsbHk8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nMiIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyI+PGJyPlJvdGF0ZWQgMTgwJmRl
Zzs8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nMyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi00LWxvbC5qcGciPjxicj5GbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxicj4KLTxkaXY+
PGltZyBpZD0iaW1nNCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGRp
dj48aW1nIGlkPSJpbWc1IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBn
Ij48YnI+Um90YXRlZCA5MCZkZWc7IENDVzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc2IiBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7
IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzciIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj48YnI+Um90YXRlZCA5MCZk
ZWc7IENXPC9kaXY+Ci08YnI+Ci08dWwgaWQ9ImNvbnNvbGUiPjwvdWw+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9u
LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLWNzcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwMjI0
NWI2MGJiLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWNzcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBA
Ci1Ob25lIG9mIHRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQuIFRoaXMgdGVzdCBpcyBvbmx5
IHZhbGlkIHdoZW4gcnVuIHdpdGggdGVzdFJ1bm5lciAob3Igd2l0aCBXZWJLaXRTaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiBtYW51YWxseSBzZXQgdG8gdHJ1ZSkuCi0KLQotTm9ybWFsIAot
RmxpcHBlZCBob3Jpem9udGFsbHkgCi1Sb3RhdGVkIDE4MMKwIAotRmxpcHBlZCB2ZXJ0aWNhbGx5
IAotCi1Sb3RhdGVkIDkwwrAgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkw
wrAgQ0NXIAotUm90YXRlZCA5MMKwIENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVk
IDkwwrAgQ1cgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJv
dGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAK
LVJvdGF0ZWQgOTDCsCBDVyAKLQotVW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKSAKLWltZzEgc2l6
ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzMgc2l6ZSA9
IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzUgc2l6ZSA9IDEw
MHB4IGJ5IDUwcHgKLWltZzYgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzcgc2l6ZSA9IDEwMHB4
IGJ5IDUwcHgKLWltZzggc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzkgc2l6ZSA9IDEwMHB4IGJ5
IDEwMHB4Ci1pbWcxMCBzaXplID0gMTAwcHggYnkgMTAwcHgKLWltZzExIHNpemUgPSAxMDBweCBi
eSAxMDBweAotaW1nMTIgc2l6ZSA9IDEwMHB4IGJ5IDEwMHB4Ci1pbWcxMyBzaXplID0gMTAwcHgg
YnkgNTBweApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24t
Y3NzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0MTdmNTU4OTIxLi4wMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNz
cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotCi1mdW5jdGlvbiBsb2coc3Ry
KSB7Ci0gICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAgICBsaS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2YXIgY29uc29s
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0gICAgY29uc29sZS5hcHBl
bmRDaGlsZChsaSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewotICAgIHZhciBjb21w
dXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAgIHJldHVybiBjb21w
dXRlZFN0eWxlLndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7Ci19Ci0KLQot
ZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDEzOyBpKyspCi0gICAg
ICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VTaXplKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJpbWciICsgaSkpKQotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWRpdi5pbWFn
ZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IH0KLWRp
di5jb250YWluZXIgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsg
bWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9
Ci1pbWcgeyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBu
by1yZXBlYXQ7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci08
Yj5Ob25lIG9mIHRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQuIFRoaXMgdGVzdCBpcyBvbmx5
IHZhbGlkIHdoZW4gcnVuIHdpdGggdGVzdFJ1bm5lciAob3Igd2l0aCBXZWJLaXRTaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiBtYW51YWxseSBzZXQgdG8gdHJ1ZSkuPC9iPjxicj48YnI+Ci08
ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMSIgc3R5bGU9
ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZykiPjwvZGl2
Pjxicj5Ob3JtYWw8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1h
Z2UiIGlkPSJpbWcyIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTItdXIuanBnKSI+PC9kaXY+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2
IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMyIgc3R5bGU9ImNv
bnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZykiPjwvZGl2Pjxi
cj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xh
c3M9ImltYWdlIiBpZD0iaW1nNCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rpdj48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+
Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1n
NSIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1Lmpw
ZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8
L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc2
IiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBn
KSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc3IiBzdHlsZT0iY29udGVudDogdXJsKHJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nOCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCA5MCZk
ZWc7IENXPC9kaXY+Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzki
IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
NS1sdS5qcGcpIj48L2ltZz48YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0
aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzEwIiBzdHls
ZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUu
anBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+PGltZyBpZD0iaW1nMTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2ltZz48YnI+Um90YXRlZCA5MCZk
ZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+PGltZyBpZD0iaW1nMTIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAmZGVnOyBD
VzwvZGl2PgotPGJyPgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIg
aWQ9ImltZzEzIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTktdS5qcGcpIj48L2Rpdj48YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKTwvZGl2PgotPGJy
PgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY0ODgzMjNmNDkuLjAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRl
ZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBi
ZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLgotCi0KLU5vcm1hbCAKLUZsaXBwZWQg
aG9yaXpvbnRhbGx5IAotUm90YXRlZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQotUm90
YXRlZCA5MMKwIENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAK
LVJvdGF0ZWQgOTDCsCBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5ICAKLVJvdGF0ZWQgOTDCsCBD
VyAKLQotVW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKSAKLWltZzEgc2l6ZSA9IDEwMHB4IGJ5IDUw
cHgKLWltZzIgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgK
LWltZzQgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzUgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWlt
ZzYgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzcgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzgg
c2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzkgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1l
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlv
bi1pbWFnZS1kb2N1bWVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ3MzEzYmU1MjM0Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotVGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0
aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIEluIGltYWdlIGRvY3VtZW50cywgdGhpcyBoYXBw
ZW5zIGluZGVwZW5kZW50IG9mIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLgot
Ci0gICAgCi0gICAgCi0gCi1QQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDkyMWIzZTU1OGI5Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRlc3Qgb25seSBw
YXNzZXMgaW4gRFJULiBJbiBicm93c2VycywgdGhlIGNyb3NzLWlmcmFtZSBkb20gaW5zcGVjdGlv
biB1c3VhbGx5IGNhdXNlcyBhIHNlY3VyaXR5IGV4Y2VwdGlvbi4KLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQodHJ1ZSk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIgbGkgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKLX0KLQot
ZnVuY3Rpb24gaW1hZ2VTaXplKG5hbWUpIHsKLSAgICB2YXIgaW1nID0gd2luZG93LmZyYW1lc1tu
YW1lXS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKTsKLSAgICByZXR1cm4gW2ltZy5vZmZz
ZXRXaWR0aCwgaW1nLm9mZnNldEhlaWdodF07Ci19Ci0KLQotZnVuY3Rpb24gbG9hZCgpIHsKLSAg
ICB2YXIgZXhwZWN0ZWQgPSBbCi0gICAgICBbMTAwLCA1MF0sIFsxMDAsIDUwXSwgWzEwMCwgNTBd
LCBbMTAwLCA1MF0sIAotICAgICAgWzUwLCAxMDBdLCBbNTAsIDEwMF0sIFs1MCwgMTAwXSwgWzUw
LCAxMDBdLCAKLSAgICAgIFsxMDAsIDUwXSwKLSAgICBdOwotICAgIHZhciBzdWNjZXNzID0gdHJ1
ZTsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykgewotICAgICAgICB2YXIgcyA9IGlt
YWdlU2l6ZSgiaW1nIiArIGkpOwotICAgICAgICBpZiAoc1swXSAhPT0gZXhwZWN0ZWRbaSAtIDFd
WzBdIHx8IHNbMV0gIT09IGV4cGVjdGVkW2kgLSAxXVsxXSkKLSAgICAgICAgICAgIHN1Y2Nlc3Mg
PSBmYWxzZTsKLSAgICB9Ci0gICAgbG9nKHN1Y2Nlc3MgPyAiUEFTUyIgOiAiRkFJTCIpOwotfQot
Ci08L3NjcmlwdD4KLTxzdHlsZT4KLWlmcmFtZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFy
Z2luLXJpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDogMTIwcHg7IGhlaWdo
dDogMTEwcHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9
Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhlIGltYWdl
cyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIElu
IGltYWdlIGRvY3VtZW50cywgdGhpcyBoYXBwZW5zIGluZGVwZW5kZW50IG9mIFdlYktpdFNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLjwvYj48YnI+PGJyPgotPGlmcmFtZSBuYW1lPSJpbWcx
IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBmcmFtZWJvcmRlcj0w
PjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWcyIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTItdXIuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJp
bWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIiBmcmFtZWJvcmRl
cj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTQtbG9sLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTxpZnJh
bWUgbmFtZT0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyIg
ZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNiIgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxp
ZnJhbWUgbmFtZT0iaW1nNyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpw
ZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nOCIgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+
Ci08YnI+Ci08aWZyYW1lIG5hbWU9ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tOS11LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTx1bCBpZD0iY29uc29s
ZSI+PC91bD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDhj
ODNiMGQ1Zi4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1v
cmllbnRhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotCi1mdW5jdGlv
biBsb2coc3RyKSB7Ci0gICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsK
LSAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2
YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0gICAgY29u
c29sZS5hcHBlbmRDaGlsZChsaSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewotICAg
IHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAgIHJl
dHVybiBjb21wdXRlZFN0eWxlLndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7
Ci19Ci0KLQotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkr
KykKLSAgICAgICAgbG9nKCJpbWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImltZyIgKyBpKSkpCi19Ci0KLTwvc2NyaXB0PgotPHN0eWxlPgot
aW1nIHsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IH0KLWRpdiB7IGRpc3BsYXk6IGlubGluZS1i
bG9jazsgbWFyZ2luLXJpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDogMTAw
cHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9ImxvYWQoKSI+Ci08Yj5UaGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3Rpbmcg
dGhlaXIgRVhJRiBvcmllbnRhdGlvbi4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB3aXRoIHRl
c3RSdW5uZXIgKG9yIGJ5IG1hbnVhbGx5IHNldHRpbmcgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24gdG8gdHJ1ZSkuPC9iPjxicj48YnI+Ci08ZGl2PjxpbWcgaWQ9ImltZzEiIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPjxicj5Ob3JtYWw8L2Rpdj4K
LTxkaXY+PGltZyBpZD0iaW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVy
LmpwZyI+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzMi
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjxicj5Sb3RhdGVkIDE4
MCZkZWc7PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNC1sb2wuanBnIj48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+Ci08
ZGl2PjxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5q
cGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4K
LTxkaXY+PGltZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1
LmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNyIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+PGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IDwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc4
IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPGRpdj48aW1nIGlkPSJpbWc5IiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciPjxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUp
PC9kaXY+Ci08YnI+Ci08dWwgaWQ9ImNvbnNvbGUiPjwvdWw+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNr
Z3JvdW5kLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmll
bnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWwKaW5kZXggZTY5ZGUyOWJiMmQuLjE0OWE1
ZWQ1NTAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
ODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAg
ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsg
CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAor
ICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7
CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAg
ZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAy
cHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwor
ICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgY3NzIGJhY2tncm91bmQgaW1hZ2Vz
IHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9i
PgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgo
LTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpv
bnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1
cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRp
Y2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUo
OTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IEND
VworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAy
NXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRl
KDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tn
cm91bmQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJh
Y2tncm91bmQuaHRtbAppbmRleCBlNjlkZTI5YmIyZC4uYTljM2NhNDUzYzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3Jv
dW5kLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAg
ZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAg
bWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAg
ICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAg
IGRpdi5pbWFnZSB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICBi
YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7
CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAg
ICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBiYWNrZ3JvdW5k
IGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0
aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5k
LWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rpdj4K
KyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rp
dj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRh
bCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0zLWxyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imlt
YWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZl
cnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5k
LWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdl
OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1h
Z2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRl
ZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91bmQt
aW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+Cisg
ICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
YW52YXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWNhbnZhcy1leHBlY3RlZC5odG1sCmluZGV4IGU2OWRlMjliYjJkLi40YzEwMjY4MTA3
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
Y2FudmFzLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
b3JpZW50YXRpb24tY2FudmFzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFy
Z2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRp
Y2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lk
dGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwg
eworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9Cisg
ICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHls
ZT4KKzxib2R5PgorICAgIDxiPkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5kcmF3SW1hZ2UoKSBz
aG91bGQgcmVzcGVjdCB0aGUgaW1hZ2UgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250
YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5
bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkw
ZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGlj
YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgy
NzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5
bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2
PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZp
bmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbAppbmRleCBl
NjlkZTI5YmIyZC4uOGRhNDE4Mjc5NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sCkBAIC0wLDAgKzEsMTI2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAg
IG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVy
dGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3
aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNh
bCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0K
KyAgICBjYW52YXMgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cisg
ICAgY2FudmFzLmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhl
aWdodDogNTBweDsKKyAgICB9CisgICAgY2FudmFzLnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6
IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxib2R5Pgor
ICAgIDxiPkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5kcmF3SW1hZ2UoKSBzaG91bGQgcmVzcGVj
dCB0aGUgaW1hZ2UgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250
YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczEi
PjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJob3Jpem9udGFsIiBpZD0iY2Fu
dmFzMiI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jp
em9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0i
aG9yaXpvbnRhbCIgaWQ9ImNhbnZhczMiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczQiPjwvY2FudmFzPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0iY2Fu
dmFzNSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczYiPjwvY2FudmFzPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9InZlcnRp
Y2FsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFzNyI+
PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxj
YW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFzOCI+PC9jYW52YXM+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJob3Jpem9udGFsIiBpZD0iY2Fu
dmFzOSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChp
bnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB2YXIgbmFtZXMgPSBbCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiwgIGlkIDogImNhbnZhczEiIH0sCisgICAgICAgICAg
ICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIiwg
IGlkIDogImNhbnZhczIiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIiwgIGlkIDogImNhbnZhczMiIH0sCisgICAgICAg
ICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpw
ZyIsIGlkIDogImNhbnZhczQiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIiwgIGlkIDogImNhbnZhczUiIH0sCisgICAg
ICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUu
anBnIiwgIGlkIDogImNhbnZhczYiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIiwgIGlkIDogImNhbnZhczciIH0sCisg
ICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgt
bGxvLmpwZyIsIGlkIDogImNhbnZhczgiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTog
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciLCAgIGlkIDogImNhbnZhczkiIH0K
KyAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgIHZhciBkcmF3Q291bnQgPSAwOworCisgICAg
ICAgICAgICBuYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgICAgICAgICAgICB2
YXIgaW1hZ2UgPSBuZXcgSW1hZ2U7CisgICAgICAgICAgICAgICAgaW1hZ2Uuc3JjID0gbmFtZS5y
ZXNvdXJjZTsKKyAgICAgICAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5h
bWUuaWQpOworICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aDsK
KyAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGltYWdlLmhlaWdodDsKKyAgICAg
ICAgICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAg
ICAgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGNhbnZhcy53
aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgrK2RyYXdDb3Vu
dCA9PSBuYW1lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jb250
ZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWwKaW5kZXggZTY5ZGUyOWJiMmQuLmQwODVhODIyNjNi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
b250ZW50LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
b3JpZW50YXRpb24tY29udGVudC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1h
cmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0
aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdp
ZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2Fs
IHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQor
ICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5
bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgY3NzIGNvbnRlbnQgaW1hZ2VzIHNob3VsZCBiZSByZW5k
ZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwi
PgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwu
anBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRl
Zykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9
InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2Fs
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcw
ZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4K
KyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5l
ZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbAppbmRleCBl
NjlkZTI5YmIyZC4uNDU5MThlYTMyN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw2NCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAg
ICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZl
cnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5pbWFnZSB7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBkaXYudmVy
dGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBjb250ZW50IGltYWdlcyBzaG91
bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAg
ICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpv
bnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5G
bGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJj
b250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxl
PSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Ug
aG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi05LXUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUp
CisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbAppbmRl
eCBlNjlkZTI5YmIyZC4uOWM3YTEzNzFmMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWRvY3VtZW50LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYu
Y29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJn
aW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAg
d2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAg
ZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUy
cHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAg
ICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFw
eCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdl
cyBvZiBJbWFnZURvY3VtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBF
WElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9
InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZs
aXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAx
ODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEp
IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
dHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
MjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAg
PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbAppbmRleCBlNjlkZTI5YmIyZC4uNTI5NWYxOWRk
ZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24tZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9j
azsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAx
MHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7
CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAg
ICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0
aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaWZyYW1lIHsKKyAg
ICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIGlmcmFtZS5ob3Jpem9u
dGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAg
fQorICAgIGlmcmFtZS52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBo
ZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2Vz
IG9mIEltYWdlRG9jdW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVY
SUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj48L2lmcmFtZT4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcyki
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjwvaWZyYW1lPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpv
bnRhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9u
RnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBn
Ij48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFs
IiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTQtbG9sLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Rmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
ZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2Fs
bHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJ2ZXJ0aWNhbCIg
b25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi02LXJ1LmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9
InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTctcmwuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRp
Y2FsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJh
bWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+
PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGlmcmFtZSBjbGFzcz0i
aG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi05LXUuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICB2YXIgaUZyYW1lTG9hZGVkQ291bnQg
PSAwOworCisgICAgICAgICBmdW5jdGlvbiBvbkZyYW1lTG9hZCgpIHsKKyAgICAgICAgICAgIGlm
ICgrK2lGcmFtZUxvYWRlZENvdW50ID09IDkpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
aW1hZ2Utb2JqZWN0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbAppbmRleCBlNjlkZTI5YmIy
ZC4uODg0ZTg1OGUyNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250
YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1y
aWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0
aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYu
aG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsK
KyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAg
IGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9m
ICZsdDtvYmplY3QmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRo
ZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxl
WCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNs
YXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5z
bGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkK
KyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0bWwKaW5kZXggZTY5ZGUyOWJi
MmQuLmY0ZDcyODAyNTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbApAQCAtMCwwICsxLDgyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAg
ICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAg
ICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAg
ICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52
ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4Owor
ICAgIH0KKyAgICBvYmplY3QgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAg
ICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiAmbHQ7b2JqZWN0Jmd0
OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVu
dGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPG9iamVj
dCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj48L29iamVjdD4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwi
PgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi00LWxvbC5qcGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8b2Jq
ZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUt
bHUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTYtcnUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVjdCB0
eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpw
ZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPG9i
amVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05
LXUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQg
KGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1l
bnQtZXhwZWN0ZWQuaHRtbAppbmRleCBlNjlkZTI5YmIyZC4uNjZkNDY3NWEwOTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50
LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFy
Z2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRp
Y2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lk
dGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwg
eworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9Cisg
ICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHls
ZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVudHMgc2hv
dWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+Cisg
ICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzEiIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBpZD0i
aW1nMiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJp
bWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9Imlt
ZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUo
OTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICA8aW1nIGlkPSJpbWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5
MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NX
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNyIgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc4IiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBpZD0iaW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZh
bHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFy
IGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNv
bnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAg
Y29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgICAgIH0KKworICAgICAgICAgZnVuY3Rpb24g
aW1hZ2VTaXplKGluZGV4KSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbWciICsgaW5kZXgpOworICAgICAgICAgICAgdmFyIGNvbXB1dGVkU3R5
bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKKyAgICAgICAgICAgIGlmIChl
bGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2ZXJ0aWNhbCIpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBjb21wdXRlZFN0eWxlLmhlaWdodCArICIgYnkgIiArIGNvbXB1
dGVkU3R5bGUud2lkdGg7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCAr
ICIgYnkgIiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBm
b3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykKKyAgICAgICAgICAgICAgICBsb2coImltZyIgKyBp
ICsgIiBzaXplID0gIiArIGltYWdlU2l6ZShpKSk7CisgICAgICAgIH0pOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1m
aXQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQtZXhwZWN0ZWQuaHRtbAppbmRleCBlNjlkZTI5YmIy
ZC4uNmE4NzI4MTJjZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQtZXhwZWN0ZWQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmpl
Y3QtZml0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9j
azsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTog
MTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0
b3A7CisgICAgfQorICAgIGRpdi5zcXVhcmUgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAg
IH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcmZ3Q7IGVs
ZW1lbnRzIHdpdGggb2JqZWN0LWZpdCBwcm9wZXJ0eSBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVj
dGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+Cisg
ICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1
cHgpOyI+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5O
b3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVw
eCkgc2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9y
aXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAs
IDI1cHgpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0
ZSgwLCAyNXB4KSBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxl
WSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoMCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KDAsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8
aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFu
c2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50
LW9iamVjdC1maXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQuaHRtbAppbmRleCBlNjlkZTI5YmIyZC4uNmQ1Mzlh
NTU4ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWwKQEAgLTAs
MCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7
CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAy
MHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBw
eDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5zcXVhcmUg
eworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBpbWcgeworICAgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG9iamVjdC1maXQ6IGNv
bnRhaW47CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0
O2ltZyZndDsgZWxlbWVudHMgd2l0aCBvYmplY3QtZml0IHByb3BlcnR5IHNob3VsZCBiZSByZW5k
ZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
c3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1
YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0y
LXVyLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFs
bHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRp
Y2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTYtcnUuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVh
cmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgt
bGxvLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVt
ZW50Lmh0bWwKaW5kZXggZTY5ZGUyOWJiMmQuLmFmZTk2YzVkZTJkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50
Lmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAg
ICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAg
ICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDog
NTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7Cisg
ICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1h
Z2VzIG9mICZsdDtpbWcmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5n
IHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+Cisg
ICAgICAgICAgICA8aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMi11ci5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJp
bWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+Cisg
ICAgICAgICAgICA8aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTQtbG9sLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNh
bGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzUi
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1n
IGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzgiIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTktdS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAo
aW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPHVsIGlkPSJjb25zb2xl
Ij48L3VsPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAg
ICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAg
ICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAg
ICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAg
ICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisKKyAgICAgICAg
ICBmdW5jdGlvbiBpbWFnZVNpemUoZWwpIHsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxl
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1
dGVkU3R5bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKKyAgICAgICAg
fQorCisgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4g
eworICAgICAgICAgICAgZm9yKHZhciBpID0gMTsgaSA8PSA5OyBpKyspCisgICAgICAgICAgICAg
ICAgbG9nKCJpbWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImltZyIgKyBpKSkpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9k
eT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhw
ZWN0ZWQuaHRtbAppbmRleCBlNjlkZTI5YmIyZC4uYzEwYjkyZjNhZTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLWV4cGVj
dGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
c3ZnLWZlaW1hZ2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90
dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxp
Z246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAy
OworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAg
ICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcg
eworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJv
ZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBTVkcgJmx0O2ZlaW1hZ2UmZ3Q7IGVsZW1lbnRzIHNo
b3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgor
ICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
Pk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4K
KyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgp
IHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2Fs
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBk
ZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVwor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4
KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3
MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWlt
YWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmct
ZmVpbWFnZS5odG1sCmluZGV4IGU2OWRlMjliYjJkLi41NGYyN2I0YjZmMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVp
bWFnZS5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAg
ICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAg
ICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9Cisg
ICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6
IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4Owor
ICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBzdmcgeworICAgICAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgc3ZnLmhvcml6b250YWwgeworICAgICAgICB3
aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgc3ZnLnZlcnRp
Y2FsIHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAg
fQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgU1ZHICZsdDtmZWltYWdl
Jmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9y
aWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2
ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nMSI+
CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBo
ZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+
CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9
IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzEpOyIvPgorICAgICAg
ICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgICAgICA8ZmlsdGVyIGlkPSJpbWcyIj4KKyAgICAgICAgICAgICAgICAgICAgPGZlaW1hZ2Ug
eD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMi11ci5qcGciLz4KKyAgICAgICAgICAgICAgICA8L2ZpbHRlcj4KKyAg
ICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmls
dGVyOnVybCgjaW1nMik7Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBp
ZD0iaW1nMyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRo
PSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMt
bHIuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJl
Y3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzMpOyIv
PgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNCI+CisgICAgICAgICAg
ICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUi
IGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIvPgorICAgICAgICAg
ICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWln
aHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc0KTsiLz4KKyAgICAgICAgICAgIDwvc3Zn
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNSI+CisgICAgICAgICAgICAgICAgICAgIDxm
ZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0
ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5
bGU9ImZpbHRlcjp1cmwoI2ltZzUpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNh
bGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgor
ICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzYiPgorICAgICAgICAgICAgICAgICAgICA8
ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIvPgorICAgICAgICAgICAgICAgIDwvZmls
dGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0
eWxlPSJmaWx0ZXI6dXJsKCNpbWc2KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRl
ciBpZD0iaW1nNyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdp
ZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTctcmwuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAg
PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzcp
OyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRl
ciBpZD0iaW1nOCI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdp
ZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTgtbGxvLmpwZyIvPgorICAgICAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgICAg
IDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc4
KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9Imlt
ZzkiPgorICAgICAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAw
JSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBn
Ii8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lk
dGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzkpOyIvPgorICAg
ICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChp
bnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3Zn
LWltYWdlLWV4cGVjdGVkLmh0bWwKaW5kZXggZTY5ZGUyOWJiMmQuLjUxOGY5ZGQ1MGNmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1h
Z2UtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmll
bnRhdGlvbi1zdmctaW1hZ2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTog
aW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJn
aW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGlj
YWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0
aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7
CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAg
ICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxl
PgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBTVkcgJmx0O2ltYWdlJmd0OyBlbGVtZW50
cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwv
Yj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVY
KC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6
b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAy
NXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRl
KDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBD
Q1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwg
MjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVy
dGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0
ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmct
aW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2
Zy1pbWFnZS5odG1sCmluZGV4IGU2OWRlMjliYjJkLi5hZmU3NWIxNmMwMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdl
Lmh0bWwKQEAgLTAsMCArMSwxMDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKworICAg
IGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1
MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgc3ZnIHsKKyAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgfQorICAgIHN2Zy5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIHN2Zy52ZXJ0aWNh
bCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0K
Kzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIFNWRyAmbHQ7aW1hZ2UmZ3Q7
IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50
YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8c3ZnIGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhl
aWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciLz4K
KyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+Cisg
ICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8
aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNC1sb2wuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwi
PgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgICAgIDxp
bWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi01LWx1LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2Fs
Ij4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8
aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNy1ybC5qcGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2Pgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAg
PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDEyODllZTZjMThiLi4wY2M2NWFhZWYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5MjUsOCArMjkyNSw2IEBAIHdlYmtpdC5vcmcvYi8x
MjA1OTYgY3NzMy9tYXNraW5nL21hc2stcmVwZWF0LXNwYWNlLWNvbnRlbnQuaHRtbCBbIEltYWdl
T25seUZhaWx1CiAKIHdlYmtpdC5vcmcvYi8xMjA4MzkgbGVnYWN5LWFuaW1hdGlvbi1lbmdpbmUv
YW5pbWF0aW9ucy9jcm9zcy1mYWRlLWJhY2tncm91bmQtaW1hZ2UuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTIxOTA1IGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRp
b24uaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTgwNTgxIGNzczMvc2hhcGVzL3No
YXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW1hcmdpbi0wMDEuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzE4MDU4MSBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1v
dXRzaWRlLWNpcmNsZS0wMDQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4MDU4MSBj
c3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1vdXRzaWRlLWNpcmNsZS0wMDUu
aHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAzM2JmNmI3NjM4MC4uZDM1MDQ3YTAzNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yODExLDExICsyODExLDkgQEAgZmFzdC9oaXN0b3J5
L2xvY2F0aW9uLXJlcGxhY2UtaGFzaC5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3Rvcnkvc2F2ZXMt
c3RhdGUtYWZ0ZXItZnJhZ21lbnQtbmF2Lmh0bWwgWyBTa2lwIF0KIAogZmFzdC9pbWFnZXMvaW1h
Z2UtY29udHJvbHMtYmFzaWMuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1jb21wb3NpdGVkLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDA1MTYg
WyBEZWJ1ZyBdIGZhc3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNraXAg
XSAgIyBDcmFzaGluZwogZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLXdpdGgtYW5ub3RhdGlvbnMu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9pbWFnZXMvc3VwcG9ydC1icm9rZW4taW1h
Z2UtZGVsZWdhdGUuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlv
bi5odG1sIFsgRmFpbHVyZSBdCiAKIGZhc3QvaW5saW5lL3Bvc2l0aW9uZWRMaWZldGltZS5odG1s
IFsgRmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2OGFhN2RiOTA4NS4uMWUzOGM3ZDM2NGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxOS0wOC0yOCAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEVYSUYgb3JpZW50YXRpb24gc2hv
dWxkIGJlIHJlc3BlY3RlZCB3aGVuIHJlbmRlcmluZyBpbWFnZXMgCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDExMjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtLSBJbWFnZTo6c2l6ZSgpIHdpbGwgcmV0
dXJuIHRoZSByZW5kZXJlZCBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZQorICAgICAgICAgICBvcmll
bnRhdGlvbi4gVGhlIGxvdyBsZXZlbCBBUElzIG1pZ2h0IHRyYW5zcG9zZSB0aGUgc2l6ZSBqdXN0
IGJlZm9yZQorICAgICAgICAgICBjYWxsaW5nIHRoZSBzeXN0ZW0gQVBJIHRvIGRyYXcgdGhlIGlt
YWdlLgorCisgICAgICAgIC0tIFJlbmRlckVsZW1lbnQ6OmltYWdlT3JpZW50YXRpb24oKSB3aWxs
IHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UKKyAgICAgICAgICAgZm9yIGFsbCBp
bWFnZXMgYW5kIGZvciBhbGwgcG9ydHMgdGlsbCB0aGUgY3NzIGltYWdlLW9yaWVudGF0aW9uIHNw
ZWNzCisgICAgICAgICAgIGlzIGZpbmFsaXplZC4KKworICAgICAgICAtLSBUaGUgZGVmYXVsdCBv
ZiBJbWFnZU9yZWluZXRhdGlvbiBhcmd1bWVudCBvZiBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFn
ZSgpCisgICAgICAgICAgIHdpbGwgYmUgY2hhbmdlZCB0byB7IEltYWdlT3JpZW50YXRpb246OkZy
b21JbWFnZSB9LgorCisgICAgICAgIC0tIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxM
YXllckV4dGVuZGVkIHdpbGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoKKyAgICAgICAgICAgRnJv
bUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3VGlsZWRJbWFnZSgpLgor
CisgICAgICAgIC0tIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSgpIHdp
bGwgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjoKKyAgICAgICAgICAgRnJvbUltYWdlIGJ5IGRlZmF1
bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KKworICAgICAgICBUZXN0czogZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQt
b2JqZWN0LWZpdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1pbWctZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UuaHRtbAorCisgICAgICAgICogaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6aW1h
Z2VTaXplRm9yUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VGcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZTo6c2l6ZVJlc3Bl
Y3RpbmdPcmllbnRhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemVSZXNwZWN0aW5nT3JpZW50
YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpzaXplIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURy
YWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZp
bGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjppbWFnZU9yaWVudGF0aW9uIGNvbnN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9T
VkdJbWFnZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUZvckNvbnRhaW5lcjo6c2l6ZSBjb25zdCk6
CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmg6CisKIDIwMTkt
MDgtMjcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbGwgaW1hZ2UgZHJhd2luZyBmdW5jdGlvbnMgc2hvdWxkIHRha2UgYW4gYXJndW1lbnQg
b2YgdHlwZSBJbWFnZVBhaW50aW5nT3B0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCAw
NjVkN2UyNjJkNC4uN2M3OWRmNjZhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBAIC0xNTc3
LDE5ICsxNTc3LDIxIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2U6OmRyYXdJbWFnZShEb2N1bWVudCYgZG9jdW1lbnQsIENhCiAgICAgICAgICAgICBpbWFn
ZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoaW1hZ2UtPm5hdGl2ZUltYWdlKCkpOwogICAgICAgICBk
b3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3MoZG9jdW1lbnQu
c2V0dGluZ3MoKSk7CiAgICAgfQorICAgIAorICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlv
bnMgPSB7IG9wLCBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9OwogCiAg
ICAgaWYgKHJlY3RDb250YWluc0NhbnZhcyhub3JtYWxpemVkRHN0UmVjdCkpIHsKLSAgICAgICAg
Yy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0
LCB7IG9wLCBibGVuZE1vZGUgfSk7CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1h
bGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERy
YXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2UgaWYgKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1v
ZGUob3ApKSB7CiAgICAgICAgIGZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdlKCppbWFnZSwg
bm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CiAgICAgICAgIGRpZERy
YXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2UgaWYgKG9wID09IENvbXBvc2l0ZUNvcHkpIHsK
ICAgICAgICAgY2xlYXJDYW52YXMoKTsKLSAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9y
bWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCB7IG9wLCBibGVuZE1vZGUgfSk7Cisg
ICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVk
U3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9
IGVsc2UgewotICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwg
bm9ybWFsaXplZFNyY1JlY3QsIHsgb3AsIGJsZW5kTW9kZSB9KTsKKyAgICAgICAgYy0+ZHJhd0lt
YWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcHRpb25z
KTsKICAgICAgICAgZGlkRHJhdyhub3JtYWxpemVkRHN0UmVjdCk7CiAgICAgfQogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggZWY5M2IzNTFl
NzkuLmNlZmJlMzJiNTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5jcHAKQEAgLTI4MCwxMyArMjgwLDEwIEBAIEZsb2F0U2l6ZSBDYWNoZWRJbWFnZTo6aW1h
Z2VTaXplRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFNpemVUCiAg
ICAgaWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYgKGlzPEJpdG1h
cEltYWdlPigqbV9pbWFnZSkgJiYgcmVuZGVyZXIgJiYgcmVuZGVyZXItPmltYWdlT3JpZW50YXRp
b24oKSA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCi0gICAgICAgIHJldHVybiBkb3du
Y2FzdDxCaXRtYXBJbWFnZT4oKm1faW1hZ2UpLnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsK
LQogICAgIGlmIChpczxTVkdJbWFnZT4oKm1faW1hZ2UpICYmIHNpemVUeXBlID09IFVzZWRTaXpl
KQogICAgICAgICByZXR1cm4gbV9zdmdJbWFnZUNhY2hlLT5pbWFnZVNpemVGb3JSZW5kZXJlcihy
ZW5kZXJlcik7CiAKLSAgICByZXR1cm4gbV9pbWFnZS0+c2l6ZSgpOworICAgIHJldHVybiBtX2lt
YWdlLT5zaXplKHJlbmRlcmVyID8gcmVuZGVyZXItPmltYWdlT3JpZW50YXRpb24oKSA6IEltYWdl
T3JpZW50YXRpb24oSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSk7CiB9CiAKIExheW91dFNp
emUgQ2FjaGVkSW1hZ2U6OmltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQq
IHJlbmRlcmVyLCBmbG9hdCBtdWx0aXBsaWVyLCBTaXplVHlwZSBzaXplVHlwZSkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDMy
MDJmYmUzMDRlLi4yYWQ3ZjFjNWNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC04MSw4ICs4MSw3IEBAIHB1YmxpYzoKICAgICBPcHRp
b25hbDxJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNl
LT5ob3RTcG90KCk7IH0KIAogICAgIC8vIEZsb2F0U2l6ZSBkdWUgdG8gb3ZlcnJpZGUuCi0gICAg
RmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NvdXJjZS0+c2l6ZSgp
OyB9Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2UtPnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsgfQorICAgIEZsb2F0U2l6
ZSBzaXplKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpG
cm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaXplKG9yaWVudGF0
aW9uKTsgfQogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fc291cmNlLT5zaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsgfQogICAgIGJvb2wg
ZnJhbWVJc0JlaW5nRGVjb2RlZEFuZElzQ29tcGF0aWJsZVdpdGhPcHRpb25zQXRJbmRleChzaXpl
X3QgaW5kZXgsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYgZGVjb2RpbmdPcHRpb25zKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZS0+ZnJhbWVJc0JlaW5nRGVjb2RlZEFuZElzQ29tcGF0aWJsZVdpdGhP
cHRpb25zQXRJbmRleChpbmRleCwgZGVjb2RpbmdPcHRpb25zKTsgfQogICAgIERlY29kaW5nU3Rh
dHVzIGZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2UtPmZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KGluZGV4KTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVy
YXRlZEltYWdlLmgKaW5kZXggMWRkN2VhOWVjM2YuLjQ1NzY1YzgzMTQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVsYXRpdmVX
aWR0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNSZWxh
dGl2ZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBGbG9h
dFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3Jvc3NmYWRlU2l6ZTsgfQor
ICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpG
cm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3Jvc3NmYWRlU2l6ZTsgfQogCiBw
cm90ZWN0ZWQ6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IElt
YWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAxMDg2ODhiOTc1Ni4u
M2UwMTYxNGMxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dlbmVyYXRlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2VuZXJhdGVkSW1hZ2UuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNS
ZWxhdGl2ZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lk
IGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0
aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBvdmVycmlkZTsK
IAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9
CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246
OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CiAKICAgICAvLyBB
c3N1bWUgdGhhdCBnZW5lcmF0ZWQgY29udGVudCBoYXMgbm8gZGVjb2RlZCBkYXRhIHdlIG5lZWQg
dG8gd29ycnkgYWJvdXQKICAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29sIC8qZGVzdHJv
eUFsbCovID0gdHJ1ZSkgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDdjZTFjYmIwYTM4Li4xM2Y1YTJm
NTVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmgKQEAgLTM1OSw5ICszNTksOSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBj
b25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMm
ID0geyB9KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyB9KTsKLSAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VE
cmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9u
LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21J
bWFnZSB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKElt
YWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgSW1hZ2VQYWludGluZ09w
dGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfSk7CisgICAgSW1hZ2VEcmF3
UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IElt
YWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKIAogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZs
b2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRT
aXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwogICAgIElt
YWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVT
Y2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlLCBJbWFnZTo6VGlsZVJ1bGUsIGNvbnN0IEltYWdl
UGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2UuaAppbmRleCBkNTUwNjc3MzJmNy4uMzcyMmMyMjZlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaApAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGlu
dHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5z
aWNSYXRpbyk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzaXplKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRp
b246OkZyb21JbWFnZSkgY29uc3QgPSAwOwogICAgIEZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyBy
ZXR1cm4gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSgpKTsgfQogICAgIGZsb2F0IHdpZHRo
KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLndpZHRoKCk7IH0KICAgICBmbG9hdCBoZWlnaHQoKSBj
b25zdCB7IHJldHVybiBzaXplKCkuaGVpZ2h0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaAppbmRleCAyZGZlZmFlYjVkMS4uMmNjNmIwMmE3ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKQEAg
LTYxLDcgKzYxLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZGVjb2RpbmdTdGF0dXMgPT0gRGVjb2RpbmdTdGF0dXM6OkNvbXBsZXRlOyB9CiAKICAg
ICBJbnRTaXplIHNpemUoKSBjb25zdDsKLSAgICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50
YXRpb24oKSBjb25zdCB7IHJldHVybiAhbV9vcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgp
ID8gc2l6ZSgpIDogc2l6ZSgpLnRyYW5zcG9zZWRTaXplKCk7IH0KICAgICB1bnNpZ25lZCBmcmFt
ZUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gaGFzTmF0aXZlSW1hZ2UoKSA/IChzaXplKCkuYXJlYSgp
ICogc2l6ZW9mKHVpbnQzMl90KSkudW5zYWZlR2V0KCkgOiAwOyB9CiAgICAgU3Vic2FtcGxpbmdM
ZXZlbCBzdWJzYW1wbGluZ0xldmVsKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzYW1wbGluZ0xldmVs
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcAppbmRleCAxODk3NmY5MTllYi4uZjM5OGQ3N2NkZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAgLTYzLDEwICs2Myw4IEBA
IEltYWdlU291cmNlOjpJbWFnZVNvdXJjZShOYXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlKQog
CiAgICAgbV9kZWNvZGVkU2l6ZSA9IG1fZnJhbWVzWzBdLmZyYW1lQnl0ZXMoKTsKIAotICAgIC8v
IFRoZSBhc3N1bXB0aW9uIGlzIHRoZSBtZW1vcnkgaW1hZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgd2l0
aCB0aGUgZGVmYXVsdAotICAgIC8vIG9yaWVudGF0aW9uLiBTbyBzZXQgbV9zaXplUmVzcGVjdGlu
Z09yaWVudGF0aW9uIHRvIGJlIHRoZSBzYW1lIGFzIG1fc2l6ZS4KICAgICBtX3NpemUgPSBtX2Zy
YW1lc1swXS5zaXplKCk7Ci0gICAgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gbV9zaXpl
OworICAgIG1fb3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb246
Ok5vbmUpOwogfQogCiBJbWFnZVNvdXJjZTo6fkltYWdlU291cmNlKCkKQEAgLTU1OSwyMCArNTU3
LDI3IEBAIE9wdGlvbmFsPEludFBvaW50PiBJbWFnZVNvdXJjZTo6aG90U3BvdCgpCiAgICAgcmV0
dXJuIG1ldGFkYXRhPE9wdGlvbmFsPEludFBvaW50PiwgKCZJbWFnZURlY29kZXI6OmhvdFNwb3Qp
PihXVEY6Om51bGxvcHQsICZtX2hvdFNwb3QpOwogfQogCi1JbnRTaXplIEltYWdlU291cmNlOjpz
aXplKCkKK0ltYWdlT3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uKCkKIHsKKyAg
ICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPEltYWdlT3JpZW50YXRp
b24+KDAsICgmSW1hZ2VGcmFtZTo6b3JpZW50YXRpb24pLCAmbV9vcmllbnRhdGlvbiwgSW1hZ2VG
cmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEpOworfQorCitJbnRTaXplIEltYWdlU291cmNlOjpzaXpl
KEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCit7CisgICAgSW50U2l6ZSBzaXplOwogI2lm
ICFVU0UoQ0cpCiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdlIGhhdmUgZGVjb2RlZCB0aGUg
bWV0YWRhdGEsIGJ1dCBub3QgZnJhbWUgY29udGVudHMgeWV0LiBJbiB0aGF0IGNhc2UgSW1hZ2VE
ZWNvZGVyIGNsYWltcyB0bwogICAgIC8vIGhhdmUgdGhlIHNpemUgYXZhaWxhYmxlLCBidXQgdGhl
IGZyYW1lIGNhY2hlIGlzIGVtcHR5LiBSZXR1cm4gdGhlIGRlY29kZXIgc2l6ZSB3aXRob3V0IGNh
Y2hpbmcgaW4gc3VjaCBjYXNlLgogICAgIGlmIChtX2ZyYW1lcy5pc0VtcHR5KCkgJiYgaXNEZWNv
ZGVyQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVybiBtX2RlY29kZXItPnNpemUoKTsKKyAgICAg
ICAgc2l6ZSA9IG1fZGVjb2Rlci0+c2l6ZSgpOworICAgIGVsc2UKICNlbmRpZgotICAgIHJldHVy
biBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hlSWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZy
YW1lOjpzaXplKSwgJm1fc2l6ZSwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNh
bXBsaW5nTGV2ZWw6OkRlZmF1bHQpOwotfQorICAgICAgICBzaXplID0gZnJhbWVNZXRhZGF0YUF0
SW5kZXhDYWNoZUlmTmVlZGVkPEludFNpemU+KDAsICgmSW1hZ2VGcmFtZTo6c2l6ZSksICZtX3Np
emUsIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1ldGFkYXRhLCBTdWJzYW1wbGluZ0xldmVsOjpEZWZh
dWx0KTsKKyAgICAKKyAgICBpZiAob3JpZW50YXRpb24gPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJv
bUltYWdlKQorICAgICAgICBvcmllbnRhdGlvbiA9IHRoaXMtPm9yaWVudGF0aW9uKCk7CiAKLUlu
dFNpemUgSW1hZ2VTb3VyY2U6OnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKQotewotICAgIHJl
dHVybiBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hlSWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFn
ZUZyYW1lOjpzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKSwgJm1fc2l6ZVJlc3BlY3RpbmdPcmll
bnRhdGlvbiwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNhbXBsaW5nTGV2ZWw6
OkRlZmF1bHQpOworICAgIHJldHVybiBvcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpID8g
c2l6ZS50cmFuc3Bvc2VkU2l6ZSgpIDogc2l6ZTsKIH0KIAogQ29sb3IgSW1hZ2VTb3VyY2U6OnNp
bmdsZVBpeGVsU29saWRDb2xvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuaAppbmRleCBiYzc5MDk5MzI3OC4uZjRlODE4NTRkOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaApAQCAtOTMsOSAr
OTMsMTAgQEAgcHVibGljOgogICAgIFN0cmluZyB1dGkoKTsKICAgICBTdHJpbmcgZmlsZW5hbWVF
eHRlbnNpb24oKTsKICAgICBPcHRpb25hbDxJbnRQb2ludD4gaG90U3BvdCgpOworICAgIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24oKTsKIAogICAgIC8vIEltYWdlIG1ldGFkYXRhIHdoaWNo
IGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgZmlyc3QgSW1hZ2VGcmFtZS4KLSAgICBXRUJDT1JFX0VY
UE9SVCBJbnRTaXplIHNpemUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbnRTaXplIHNpemUoSW1h
Z2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSk7CiAgICAgSW50U2l6
ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CiAgICAgQ29sb3Igc2luZ2xlUGl4ZWxTb2xp
ZENvbG9yKCk7CiAgICAgU3Vic2FtcGxpbmdMZXZlbCBtYXhpbXVtU3Vic2FtcGxpbmdMZXZlbCgp
OwpAQCAtMTk2LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBJbWFnZSBtZXRhZGF0YSB3
aGljaCBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIGZpcnN0IEltYWdlRnJhbWUuCiAgICAgT3B0aW9u
YWw8SW50U2l6ZT4gbV9zaXplOwotICAgIE9wdGlvbmFsPEludFNpemU+IG1fc2l6ZVJlc3BlY3Rp
bmdPcmllbnRhdGlvbjsKKyAgICBPcHRpb25hbDxJbWFnZU9yaWVudGF0aW9uPiBtX29yaWVudGF0
aW9uOwogICAgIE9wdGlvbmFsPENvbG9yPiBtX3NpbmdsZVBpeGVsU29saWRDb2xvcjsKICAgICBP
cHRpb25hbDxTdWJzYW1wbGluZ0xldmVsPiBtX21heGltdW1TdWJzYW1wbGluZ0xldmVsOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3Vt
ZW50SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9j
dW1lbnRJbWFnZS5jcHAKaW5kZXggYTYwZjEyNWEwMTEuLjgwZjZiMTg3MjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudElt
YWdlLmNwcApAQCAtNjYsNyArNjYsNyBAQCBTdHJpbmcgUERGRG9jdW1lbnRJbWFnZTo6ZmlsZW5h
bWVFeHRlbnNpb24oKSBjb25zdAogICAgIHJldHVybiAicGRmIjsKIH0KIAotRmxvYXRTaXplIFBE
RkRvY3VtZW50SW1hZ2U6OnNpemUoKSBjb25zdAorRmxvYXRTaXplIFBERkRvY3VtZW50SW1hZ2U6
OnNpemUoSW1hZ2VPcmllbnRhdGlvbikgY29uc3QKIHsKICAgICBGbG9hdFNpemUgZXhwYW5kZWRD
cm9wQm94U2l6ZSA9IEZsb2F0U2l6ZShleHBhbmRlZEludFNpemUobV9jcm9wQm94LnNpemUoKSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZE
b2N1bWVudEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZE
b2N1bWVudEltYWdlLmgKaW5kZXggMjdkOWU3ODAwNzkuLmVkOWQxNmQyODVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFn
ZS5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXN0cm95RGVjb2RlZERh
dGEoYm9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRydWUpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb21w
dXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGlu
dHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgb3ZlcnJpZGU7Ci0gICAg
RmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBGbG9hdFNpemUgc2l6ZShJbWFn
ZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCA4ZWJlMDA3NmE4Yy4uMDM2M2UyZTQ3ODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtOTQsMzkg
Kzk0LDM2IEBAIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24o
UmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBmbG9hdCBkCiAgICAgICAgIAogUmV0YWluUHRyPE5T
SW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50
YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgRmxvYXRTaXplIHNpemUgPSBpbWFnZS0+c2l6ZSgp
OwotCiAgICAgaWYgKGlzPEJpdG1hcEltYWdlPigqaW1hZ2UpKSB7CiAgICAgICAgIEJpdG1hcElt
YWdlJiBiaXRtYXBJbWFnZSA9IGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpOwotICAgICAg
ICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24gPSBiaXRtYXBJbWFnZS5zaXplUmVz
cGVjdGluZ09yaWVudGF0aW9uKCk7CiAKICAgICAgICAgaWYgKG9yaWVudGF0aW9uID09IEltYWdl
T3JpZW50YXRpb246OkZyb21JbWFnZSkKICAgICAgICAgICAgIG9yaWVudGF0aW9uID0gYml0bWFw
SW1hZ2Uub3JpZW50YXRpb25Gb3JDdXJyZW50RnJhbWUoKTsKIAogICAgICAgICBpZiAob3JpZW50
YXRpb24gIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgewogICAgICAgICAgICAgLy8gQ29uc3Ry
dWN0IGEgY29ycmVjdGx5LXJvdGF0ZWQgY29weSBvZiB0aGUgaW1hZ2UgdG8gdXNlIGFzIHRoZSBk
cmFnIGltYWdlLgotICAgICAgICAgICAgRmxvYXRSZWN0IGRlc3RSZWN0KEZsb2F0UG9pbnQoKSwg
c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbik7Ci0KLSAgICAgICAgICAgIFJldGFpblB0cjxOU0lt
YWdlPiByb3RhdGVkRHJhZ0ltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRo
U2l6ZTooTlNTaXplKShzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKV0pOworICAgICAgICAgICAg
RmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLT5zaXplKG9yaWVudGF0aW9uKTsKKyAgICAgICAg
ICAgIFJldGFpblB0cjxOU0ltYWdlPiByb3RhdGVkRHJhZ0ltYWdlID0gYWRvcHROUyhbW05TSW1h
Z2UgYWxsb2NdIGluaXRXaXRoU2l6ZTooTlNTaXplKShpbWFnZVNpemUpXSk7CiAgICAgICAgICAg
ICBbcm90YXRlZERyYWdJbWFnZSBsb2NrRm9jdXNdOwogCiAgICAgICAgICAgICAvLyBJbWFnZU9y
aWVudGF0aW9uIHVzZXMgdG9wLWxlZnQgY29vcmRpbmF0ZXMsIG5lZWQgdG8gZmxpcCB0byBib3R0
b20tbGVmdCwgYXBwbHkuLi4KLSAgICAgICAgICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9y
bSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVRyYW5zbGF0aW9uKDAsIGRlc3RSZWN0LmhlaWdodCgp
KTsKKyAgICAgICAgICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJh
bnNmb3JtTWFrZVRyYW5zbGF0aW9uKDAsIGltYWdlU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgICAg
ICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxlKHRyYW5zZm9ybSwgMSwgLTEpOwot
ICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQob3JpZW50YXRp
b24udHJhbnNmb3JtRnJvbURlZmF1bHQoc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiksIHRyYW5z
Zm9ybSk7CisgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdChv
cmllbnRhdGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChpbWFnZVNpemUpLCB0cmFuc2Zvcm0pOwog
CiAgICAgICAgICAgICBpZiAob3JpZW50YXRpb24udXNlc1dpZHRoQXNIZWlnaHQoKSkKLSAgICAg
ICAgICAgICAgICBkZXN0UmVjdCA9IEZsb2F0UmVjdChkZXN0UmVjdC54KCksIGRlc3RSZWN0Lnko
KSwgZGVzdFJlY3QuaGVpZ2h0KCksIGRlc3RSZWN0LndpZHRoKCkpOworICAgICAgICAgICAgICAg
IGltYWdlU2l6ZSA9IGltYWdlU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwogCiAgICAgICAgICAgICAv
LyAuLi5hbmQgZmxpcCBiYWNrLgotICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFu
c2Zvcm1UcmFuc2xhdGUodHJhbnNmb3JtLCAwLCBkZXN0UmVjdC5oZWlnaHQoKSk7CisgICAgICAg
ICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVRyYW5zbGF0ZSh0cmFuc2Zvcm0sIDAs
IGltYWdlU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRy
YW5zZm9ybVNjYWxlKHRyYW5zZm9ybSwgMSwgLTEpOwogCiAgICAgICAgICAgICBSZXRhaW5QdHI8
TlNBZmZpbmVUcmFuc2Zvcm0+IGNvY29hVHJhbnNmb3JtID0gYWRvcHROUyhbW05TQWZmaW5lVHJh
bnNmb3JtIGFsbG9jXSBpbml0XSk7CiAgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0gc2V0VHJh
bnNmb3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwogICAg
ICAgICAgICAgW2NvY29hVHJhbnNmb3JtIGNvbmNhdF07CiAKLSAgICAgICAgICAgIFtpbWFnZS0+
c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpkZXN0UmVjdCBmcm9tUmVjdDpOU01ha2VSZWN0
KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgb3BlcmF0aW9uOk5TQ29tcG9zaXRp
bmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07CisgICAgICAgICAgICBGbG9hdFJl
Y3QgaW1hZ2VSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2VTaXplKTsKKyAgICAgICAgICAgIFtpbWFn
ZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDppbWFnZVJlY3QgZnJvbVJlY3Q6aW1hZ2VS
ZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjox
LjBdOwogCiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZSB1bmxvY2tGb2N1c107CiAKQEAg
LTEzNCw4ICsxMzEsOSBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbgogICAgICAgICB9CiAgICAg
fQogCisgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLT5zaXplKCk7CiAgICAgYXV0byBk
cmFnSW1hZ2UgPSBpbWFnZS0+c25hcHNob3ROU0ltYWdlKCk7Ci0gICAgW2RyYWdJbWFnZSBzZXRT
aXplOihOU1NpemUpc2l6ZV07CisgICAgW2RyYWdJbWFnZSBzZXRTaXplOihOU1NpemUpaW1hZ2VT
aXplXTsKICAgICByZXR1cm4gZHJhZ0ltYWdlOwogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggNzQ4MmNlMDIwYzku
LjIyMGFmZDczNTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAKQEAgLTk0NywxNSArOTQ3LDIwIEBAIHZvaWQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvCiAgICAgICAgIGdlb21ldHJ5LmNsaXAoTGF5b3V0UmVjdChwaXhlbFNuYXBwZWRSZWN0
KSk7CiAgICAgICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2U7CiAgICAgICAgIGlmICghZ2VvbWV0cnku
ZGVzdFJlY3QoKS5pc0VtcHR5KCkgJiYgKGltYWdlID0gYmdJbWFnZS0+aW1hZ2UoYmFja2dyb3Vu
ZE9iamVjdCA/IGJhY2tncm91bmRPYmplY3QgOiB0aGlzLCBnZW9tZXRyeS50aWxlU2l6ZSgpKSkp
IHsKLSAgICAgICAgICAgIGF1dG8gY29tcG9zaXRlT3AgPSBvcCA9PSBDb21wb3NpdGVTb3VyY2VP
dmVyID8gYmdMYXllci5jb21wb3NpdGUoKSA6IG9wOwogICAgICAgICAgICAgY29udGV4dC5zZXRE
cmF3THVtaW5hbmNlTWFzayhiZ0xheWVyLm1hc2tTb3VyY2VUeXBlKCkgPT0gTWFza1NvdXJjZVR5
cGU6Okx1bWluYW5jZSk7CiAKICAgICAgICAgICAgIGlmIChpczxCaXRtYXBJbWFnZT4oaW1hZ2Up
KQogICAgICAgICAgICAgICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpLnVwZGF0ZUZy
b21TZXR0aW5ncyhzZXR0aW5ncygpKTsKIAotICAgICAgICAgICAgYXV0byBpbnRlcnBvbGF0aW9u
ID0gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkoY29udGV4dCwgKmltYWdlLCAmYmdMYXllciwg
Z2VvbWV0cnkudGlsZVNpemUoKSk7Ci0gICAgICAgICAgICBhdXRvIGRlY29kaW5nTW9kZSA9IGRl
Y29kaW5nTW9kZUZvckltYWdlRHJhdygqaW1hZ2UsIHBhaW50SW5mbyk7Ci0gICAgICAgICAgICBh
dXRvIGRyYXdSZXN1bHQgPSBjb250ZXh0LmRyYXdUaWxlZEltYWdlKCppbWFnZSwgZ2VvbWV0cnku
ZGVzdFJlY3QoKSwgdG9MYXlvdXRQb2ludChnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkpLCBnZW9t
ZXRyeS50aWxlU2l6ZSgpLCBnZW9tZXRyeS5zcGFjZVNpemUoKSwgeyBjb21wb3NpdGVPcCwgYmdM
YXllci5ibGVuZE1vZGUoKSwgZGVjb2RpbmdNb2RlLCBpbnRlcnBvbGF0aW9uIH0pOworICAgICAg
ICAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBv
cCA9PSBDb21wb3NpdGVTb3VyY2VPdmVyID8gYmdMYXllci5jb21wb3NpdGUoKSA6IG9wLAorICAg
ICAgICAgICAgICAgIGJnTGF5ZXIuYmxlbmRNb2RlKCksCisgICAgICAgICAgICAgICAgZGVjb2Rp
bmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKSwKKyAgICAgICAgICAgICAgICBJ
bWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UsCisgICAgICAgICAgICAgICAgY2hvb3NlSW50ZXJw
b2xhdGlvblF1YWxpdHkoY29udGV4dCwgKmltYWdlLCAmYmdMYXllciwgZ2VvbWV0cnkudGlsZVNp
emUoKSkKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGF1dG8gZHJhd1Jlc3VsdCA9IGNv
bnRleHQuZHJhd1RpbGVkSW1hZ2UoKmltYWdlLCBnZW9tZXRyeS5kZXN0UmVjdCgpLCB0b0xheW91
dFBvaW50KGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSksIGdlb21ldHJ5LnRpbGVTaXplKCksIGdl
b21ldHJ5LnNwYWNlU2l6ZSgpLCBvcHRpb25zKTsKICAgICAgICAgICAgIGlmIChkcmF3UmVzdWx0
ID09IEltYWdlRHJhd1Jlc3VsdDo6RGlkUmVxdWVzdERlY29kaW5nKSB7CiAgICAgICAgICAgICAg
ICAgQVNTRVJUKGJnSW1hZ2UtPmlzQ2FjaGVkSW1hZ2UoKSk7CiAgICAgICAgICAgICAgICAgYmdJ
bWFnZS0+Y2FjaGVkSW1hZ2UoKS0+YWRkQ2xpZW50V2FpdGluZ0ZvckFzeW5jRGVjb2RpbmcoKnRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDFi
MTFlMmUzZjFjLi4yMjBiMWE2NzM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmNwcApAQCAtMjAzOSwxNiArMjAzOSw3IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6
Y2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5b3V0KCkgY29uc3QKIAogSW1hZ2VPcmllbnRhdGlvbiBS
ZW5kZXJFbGVtZW50OjppbWFnZU9yaWVudGF0aW9uKCkgY29uc3QKIHsKLSNpZiBVU0UoQ0cpIHx8
IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotICAgIC8vIFRoaXMgY2FuIG9ubHkgYmUgZW5h
YmxlZCBmb3IgcG9ydHMgd2hpY2ggaG9ub3IgdGhlIG9yaWVudGF0aW9uIGZsYWcgaW4gdGhlaXIg
ZHJhd2luZyBjb2RlLgotICAgIGlmIChkb2N1bWVudCgpLmlzSW1hZ2VEb2N1bWVudCgpKQotICAg
ICAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOwotI2VuZGlmCi0gICAgLy8g
UmVzcGVjdCB0aGUgaW1hZ2UncyBvcmllbnRhdGlvbiBpZiBpdCdzIGJlaW5nIHVzZWQgYXMgYSBm
dWxsLXBhZ2UgaW1hZ2Ugb3IgaXQncwotICAgIC8vIGFuIDxpbWc+IGFuZCB0aGUgc2V0dGluZyB0
byByZXNwZWN0IGl0IGV2ZXJ5d2hlcmUgaXMgc2V0LgotICAgIGlmIChzZXR0aW5ncygpLnNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgJiYgaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVu
dCgpKSkKLSAgICAgICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZTsKLSAgICBy
ZXR1cm4gc3R5bGUoKS5pbWFnZU9yaWVudGF0aW9uKCk7CisgICAgcmV0dXJuIEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZTsKIH0KIAogdm9pZCBSZW5kZXJFbGVtZW50OjphZGp1c3RGcmFnbWVu
dGVkRmxvd1N0YXRlT25Db250YWluaW5nQmxvY2tDaGFuZ2VJZk5lZWRlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCAzOTM1Y2I0NWExNC4uMjZhYWEwMzcy
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtNjE3LDEx
ICs2MTcsOSBAQCBJbWFnZURyYXdSZXN1bHQgUmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdAogICAgICAgICByZXR1cm4gSW1hZ2VE
cmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCiAgICAgSFRNTEltYWdlRWxlbWVudCogaW1hZ2VFbGVt
ZW50ID0gaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCgpKSA/IGRvd25jYXN0PEhUTUxJbWFn
ZUVsZW1lbnQ+KGVsZW1lbnQoKSkgOiBudWxscHRyOwotICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wZXJhdG9yID0gaW1hZ2VFbGVtZW50ID8gaW1hZ2VFbGVtZW50LT5jb21wb3NpdGVP
cGVyYXRvcigpIDogQ29tcG9zaXRlU291cmNlT3ZlcjsKIAogICAgIC8vIEZJWE1FOiBEb2N1bWVu
dCB3aGVuIGltYWdlICE9IGltZy5nZXQoKS4KICAgICBJbWFnZSogaW1hZ2UgPSBpbWFnZVJlc291
cmNlKCkuaW1hZ2UoKS5nZXQoKTsKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0
aW9uID0gaW1hZ2UgPyBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwYWludEluZm8uY29udGV4
dCgpLCAqaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJlY3Quc2l6ZSgpKSkgOiBJbnRlcnBvbGF0
aW9uRGVmYXVsdDsKIAogI2lmIFVTRShDRykKICAgICBpZiAoaXM8UERGRG9jdW1lbnRJbWFnZT4o
aW1hZ2UpKQpAQCAtNjMxLDggKzYyOSwxNCBAQCBJbWFnZURyYXdSZXN1bHQgUmVuZGVySW1hZ2U6
OnBhaW50SW50b1JlY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdAogICAg
IGlmIChpczxCaXRtYXBJbWFnZT4oaW1hZ2UpKQogICAgICAgICBkb3duY2FzdDxCaXRtYXBJbWFn
ZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3Moc2V0dGluZ3MoKSk7CiAKLSAgICBhdXRvIGRl
Y29kaW5nTW9kZSA9IGRlY29kaW5nTW9kZUZvckltYWdlRHJhdygqaW1hZ2UsIHBhaW50SW5mbyk7
Ci0gICAgYXV0byBkcmF3UmVzdWx0ID0gcGFpbnRJbmZvLmNvbnRleHQoKS5kcmF3SW1hZ2UoKmlt
ZywgcmVjdCwgeyBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlOjpOb3JtYWwsIGRlY29kaW5n
TW9kZSwgaW1hZ2VPcmllbnRhdGlvbigpLCBpbnRlcnBvbGF0aW9uIH0pOworICAgIEltYWdlUGFp
bnRpbmdPcHRpb25zIG9wdGlvbnMgPSB7CisgICAgICAgIGltYWdlRWxlbWVudCA/IGltYWdlRWxl
bWVudC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0ZVNvdXJjZU92ZXIsCisgICAgICAg
IGRlY29kaW5nTW9kZUZvckltYWdlRHJhdygqaW1hZ2UsIHBhaW50SW5mbyksCisgICAgICAgIGlt
YWdlT3JpZW50YXRpb24oKSwKKyAgICAgICAgaW1hZ2UgPyBjaG9vc2VJbnRlcnBvbGF0aW9uUXVh
bGl0eShwYWludEluZm8uY29udGV4dCgpLCAqaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJlY3Qu
c2l6ZSgpKSkgOiBJbnRlcnBvbGF0aW9uRGVmYXVsdAorICAgIH07CisKKyAgICBhdXRvIGRyYXdS
ZXN1bHQgPSBwYWludEluZm8uY29udGV4dCgpLmRyYXdJbWFnZSgqaW1nLCByZWN0LCBvcHRpb25z
KTsKICAgICBpZiAoZHJhd1Jlc3VsdCA9PSBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlcXVlc3REZWNv
ZGluZykKICAgICAgICAgaW1hZ2VSZXNvdXJjZSgpLmNhY2hlZEltYWdlKCktPmFkZENsaWVudFdh
aXRpbmdGb3JBc3luY0RlY29kaW5nKCp0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHSW1hZ2UuaAppbmRleCA2MTQ1ODUzNDAzYi4uOWFkOTM1OGM3MTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldygpIGNvbnN0OwogCiAgICAgYm9vbCBpc1NWR0ltYWdlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VP
cmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwCmluZGV4IGQ3MGE2NDBjNmEwLi5lYWVmYzMxZTQ3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29u
dGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JD
b250YWluZXIuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
RmxvYXRTaXplIFNWR0ltYWdlRm9yQ29udGFpbmVyOjpzaXplKCkgY29uc3QKK0Zsb2F0U2l6ZSBT
VkdJbWFnZUZvckNvbnRhaW5lcjo6c2l6ZShJbWFnZU9yaWVudGF0aW9uKSBjb25zdAogewogICAg
IEZsb2F0U2l6ZSBzY2FsZWRDb250YWluZXJTaXplKG1fY29udGFpbmVyU2l6ZSk7CiAgICAgc2Nh
bGVkQ29udGFpbmVyU2l6ZS5zY2FsZShtX2NvbnRhaW5lclpvb20pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaAppbmRleCA1N2IyMDRk
OTgzZi4uZTY0NGY3YWNmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZUZvckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZUZvckNvbnRhaW5lci5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIEZs
b2F0U2l6ZSBzaXplKCkgY29uc3QgZmluYWw7CisgICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmll
bnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3QgZmluYWw7CiAKICAg
ICBib29sIHVzZXNDb250YWluZXJTaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbWFnZS0+
dXNlc0NvbnRhaW5lclNpemUoKTsgfQogICAgIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1faW1hZ2UtPmhhc1JlbGF0aXZlV2lkdGgoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377493</attachid>
            <date>2019-08-28 15:23:18 -0700</date>
            <delta_ts>2019-08-28 16:01:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201123-20190828152317.patch</filename>
            <type>text/plain</type>
            <size>105978</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODM1NzIxZDMwMzliYzVh
Y2EzMzlkMWU5OTI4Yjc0ODhkODJkNzY4Zi4uYzJiZjI1NDBkMmY0NWY0M2I5NzdjY2Y4ZmExNDkx
NTI5ODc4YTdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE5LTA4LTI4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRVhJRiBv
cmllbnRhdGlvbiBzaG91bGQgYmUgcmVzcGVjdGVkIHdoZW4gcmVuZGVyaW5nIGltYWdlcyAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTEyMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0tIEltYWdlOjpz
aXplKCkgd2lsbCByZXR1cm4gdGhlIHJlbmRlcmVkIHNpemUgYmFzZWQgb24gdGhlIGltYWdlCisg
ICAgICAgICAgIG9yaWVudGF0aW9uLiBJZiBpbWFnZSBvcmllbnRhdGlvbiBpcyBGcm9tSW1hZ2Us
IEltYWdlU291cmNlIHdpbGwgcXVlcnkKKyAgICAgICAgICAgdGhlIGFjdHVhbCBpbWFnZSBvcmll
bnRhdGlvbiBmcm9tIHRoZSBJbWFnZURlY29kZXIuIFRoZSBsb3cgbGV2ZWwgQVBJcworICAgICAg
ICAgICBtaWdodCB0cmFuc3Bvc2UgdGhlIHNpemUganVzdCBiZWZvcmUgY2FsbGluZyB0aGUgc3lz
dGVtIEFQSSB0byBkcmF3CisgICAgICAgICAgIHRoZSBpbWFnZS4KKworICAgICAgICAtLSBSZW5k
ZXJFbGVtZW50OjppbWFnZU9yaWVudGF0aW9uKCkgd2lsbCByZXR1cm4gSW1hZ2VPcmllbnRhdGlv
bjo6RnJvbUltYWdlCisgICAgICAgICAgIGZvciBhbGwgaW1hZ2VzIGFuZCBmb3IgYWxsIHBvcnRz
IHRpbGwgdGhlIENTUyBpbWFnZS1vcmllbnRhdGlvbiBzcGVjcworICAgICAgICAgICBpcyBmaW5h
bGl6ZWQuCisKKyAgICAgICAgLS0gVGhlIGRlZmF1bHQgb2YgSW1hZ2VQYWludGluZ09wdGlvbnMg
YXJndW1lbnQgb2YgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICB3aWxs
IGJlIGNoYW5nZWQgdG8geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfS4KKworICAgICAg
ICAtLSBJbWFnZSBlbGVtZW50OiBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdCgpIHdpbGwgcGFz
cyBpbWFnZU9yaWVudGF0aW9uKCkKKyAgICAgICAgICAgd2hpY2ggcmV0dXJucyBJbWFnZU9yaWVu
dGF0aW9uOjpGcm9tSW1hZ2UgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KKworICAg
ICAgICAtLSBDU1MgYmFja2dyb3VuZCBpbWFnZTogUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
RmlsbExheWVyRXh0ZW5kZWQgd2lsbAorICAgICAgICAgICBwYXNzIEltYWdlT3JpZW50YXRpb246
OkZyb21JbWFnZSBieSBkZWZhdWx0IHRvIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2Uo
KS4KKworICAgICAgICAtLSBJbWFnZXMgb24gY2FudmFzOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlOjpkcmF3SW1hZ2UoKSB3aWxsIHBhc3MKKyAgICAgICAgICAgSW1hZ2VPcmllbnRhdGlv
bjo6RnJvbUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4K
KworICAgICAgICAtLSBTVkcgaW1hZ2VzOiBSZW5kZXJTVkdJbWFnZTo6cGFpbnRGb3JlZ3JvdW5k
KCkgY2FsbHMgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICB3aXRoIHRo
ZSBkZWZhdWx0IEltYWdlUGFpbnRpbmdPcHRpb25zIHdoaWNoIGlzIG5vdyB7IEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSB9LgorCisgICAgICAgIC0tIFNWRyBmZUltYWdlIGZpbHRlcnM6IEZF
SW1hZ2U6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIGNhbGxzCisgICAgICAgICAgIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKCkgd2l0aCB0aGUgZGVmYXVsdCBJbWFnZVBhaW50aW5nT3B0aW9u
cworICAgICAgICAgICB3aGljaCBpcyBub3cgeyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2Ug
fS4KKworICAgICAgICAtLSBJbWFnZURvY3VtZW50OiBSZW5kZXJFbGVtZW50OjppbWFnZU9yaWVu
dGF0aW9uKCkgcmV0dXJucyBGcm9tSW1hZ2UKKyAgICAgICAgICAgYWx3YXlzIGFuZCBmb3IgYWxs
IHBvcnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1i
YWNrZ3JvdW5kLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWNhbnZhcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWRvY3VtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9y
aWVudGF0aW9uLWltYWdlLW9iamVjdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5o
dG1sCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRy
YXdJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUZyYW1lOjpzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVNvdXJjZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBERkRvY3Vt
ZW50SW1hZ2U6OnNpemUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BE
RkRvY3VtZW50SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVs
ZW1lbnQ6OmltYWdlT3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVj
dCk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6CisgICAgICAgICogc3ZnL2dy
YXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lt
YWdlRm9yQ29udGFpbmVyOjpzaXplIGNvbnN0KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2VGb3JDb250YWluZXIuaDoKKwogMjAxOS0wOC0yOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbCBpbWFnZSBkcmF3aW5nIGZ1bmN0
aW9ucyBzaG91bGQgdGFrZSBhbiBhcmd1bWVudCBvZiB0eXBlIEltYWdlUGFpbnRpbmdPcHRpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2UuY3BwCmluZGV4IDA2NWQ3ZTI2MmQ0YzAyZWRlNWIwY2MxMzA0ODIy
ZDFmOTU1YTU4ODAuLjM5NzUzNGE2N2UyZjA5Mzc5ODEzZTk0NmQ2NDViZjM2MjAzMzJkNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2UuY3BwCkBAIC0xNTc4LDE4ICsxNTc4LDIwIEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShEb2N1bWVudCYg
ZG9jdW1lbnQsIENhCiAgICAgICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpLnVwZGF0
ZUZyb21TZXR0aW5ncyhkb2N1bWVudC5zZXR0aW5ncygpKTsKICAgICB9CiAKKyAgICBJbWFnZVBh
aW50aW5nT3B0aW9ucyBvcHRpb25zID0geyBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9u
OjpGcm9tSW1hZ2UgfTsKKwogICAgIGlmIChyZWN0Q29udGFpbnNDYW52YXMobm9ybWFsaXplZERz
dFJlY3QpKSB7Ci0gICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0
LCBub3JtYWxpemVkU3JjUmVjdCwgeyBvcCwgYmxlbmRNb2RlIH0pOworICAgICAgICBjLT5kcmF3
SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIG9wdGlv
bnMpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlmIChpc0Z1
bGxDYW52YXNDb21wb3NpdGVNb2RlKG9wKSkgewogICAgICAgICBmdWxsQ2FudmFzQ29tcG9zaXRl
ZERyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwg
b3ApOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlmIChvcCA9
PSBDb21wb3NpdGVDb3B5KSB7CiAgICAgICAgIGNsZWFyQ2FudmFzKCk7Ci0gICAgICAgIGMtPmRy
YXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgeyBv
cCwgYmxlbmRNb2RlIH0pOworICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVk
RHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIG9wdGlvbnMpOwogICAgICAgICBkaWREcmF3RW50
aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwg
bm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCB7IG9wLCBibGVuZE1vZGUgfSk7
CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxp
emVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERyYXcobm9ybWFsaXplZERzdFJlY3Qp
OwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
Y3BwCmluZGV4IGVmOTNiMzUxZTc5MWQ1MjdkYWU4MGY4N2M1MjVhN2RjMTRlN2U0MjAuLmNlZmJl
MzJiNTZhNmRlY2E1YzkxMTM0OGVhYjEwYjEwNjZjOWVkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtMjgwLDEzICsyODAsMTAgQEAgRmxvYXRT
aXplIENhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50
KiByZW5kZXJlciwgU2l6ZVQKICAgICBpZiAoIW1faW1hZ2UpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBpZiAoaXM8Qml0bWFwSW1hZ2U+KCptX2ltYWdlKSAmJiByZW5kZXJlciAmJiByZW5k
ZXJlci0+aW1hZ2VPcmllbnRhdGlvbigpID09IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkK
LSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEJpdG1hcEltYWdlPigqbV9pbWFnZSkuc2l6ZVJlc3Bl
Y3RpbmdPcmllbnRhdGlvbigpOwotCiAgICAgaWYgKGlzPFNWR0ltYWdlPigqbV9pbWFnZSkgJiYg
c2l6ZVR5cGUgPT0gVXNlZFNpemUpCiAgICAgICAgIHJldHVybiBtX3N2Z0ltYWdlQ2FjaGUtPmlt
YWdlU2l6ZUZvclJlbmRlcmVyKHJlbmRlcmVyKTsKIAotICAgIHJldHVybiBtX2ltYWdlLT5zaXpl
KCk7CisgICAgcmV0dXJuIG1faW1hZ2UtPnNpemUocmVuZGVyZXIgPyByZW5kZXJlci0+aW1hZ2VP
cmllbnRhdGlvbigpIDogSW1hZ2VPcmllbnRhdGlvbihJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1h
Z2UpKTsKIH0KIAogTGF5b3V0U2l6ZSBDYWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIo
Y29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGZsb2F0IG11bHRpcGxpZXIsIFNpemVUeXBl
IHNpemVUeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmgKaW5kZXggMzIwMmZiZTMwNGVjZmVhNmZmYzhmZWI1Mjc2YjYwYzJiODU4ZTM5
Yi4uMmFkN2YxYzVjZTA3ZDUxMzM1NDgwMzE0YmJjNzQzNzc4MDFjZGM0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC04MSw4ICs4MSw3
IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fc291cmNlLT5ob3RTcG90KCk7IH0KIAogICAgIC8vIEZsb2F0U2l6ZSBk
dWUgdG8gb3ZlcnJpZGUuCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3NvdXJjZS0+c2l6ZSgpOyB9Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVu
dGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UtPnNpemVSZXNwZWN0aW5nT3JpZW50YXRp
b24oKTsgfQorICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24g
PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
c291cmNlLT5zaXplKG9yaWVudGF0aW9uKTsgfQogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRD
b2xvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaW5nbGVQaXhlbFNvbGlk
Q29sb3IoKTsgfQogICAgIGJvb2wgZnJhbWVJc0JlaW5nRGVjb2RlZEFuZElzQ29tcGF0aWJsZVdp
dGhPcHRpb25zQXRJbmRleChzaXplX3QgaW5kZXgsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYgZGVj
b2RpbmdPcHRpb25zKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS0+ZnJhbWVJc0JlaW5nRGVjb2Rl
ZEFuZElzQ29tcGF0aWJsZVdpdGhPcHRpb25zQXRJbmRleChpbmRleCwgZGVjb2RpbmdPcHRpb25z
KTsgfQogICAgIERlY29kaW5nU3RhdHVzIGZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KHNpemVf
dCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UtPmZyYW1lRGVjb2RpbmdTdGF0dXNBdElu
ZGV4KGluZGV4KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKaW5kZXggMWRkN2VhOWVjM2ZhNWViMjg5
YWYwYjBiYTcyOTAwNmNiOGI3ZTVjOC4uNDU3NjVjODMxNDUyMWU0OGFjYjBmOWRiMzllYTAzZDRl
YTZlYzNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2Nyb3NzZmFkZVNpemU7IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9u
ID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2Nyb3NzZmFkZVNpemU7IH0KIAogcHJvdGVjdGVkOgogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVk
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdl
LmgKaW5kZXggMTA4Njg4Yjk3NTY1N2RhNDdiMTc0ZmY1NzM0OTlkMWEyZThlNGE2My4uM2UwMTYx
NGMxNGRlZGZjNDU1OTIzZmE2ZDI0YjExMWFiMTQ0YzNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCkBAIC00MCw3ICs0MCw3IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3Ro
JiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50
cmluc2ljUmF0aW8pIG92ZXJyaWRlOwogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3NpemU7IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0
aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3NpemU7IH0KIAogICAgIC8vIEFzc3VtZSB0aGF0IGdlbmVyYXRlZCBjb250ZW50IGhhcyBu
byBkZWNvZGVkIGRhdGEgd2UgbmVlZCB0byB3b3JyeSBhYm91dAogICAgIHZvaWQgZGVzdHJveURl
Y29kZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8gPSB0cnVlKSBvdmVycmlkZSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5k
ZXggN2NlMWNiYjBhMzgxMGFmYzNkYmUyNWI0ZjJkZjQ5MzY4ODkzZTQxYy4uMTNmNWEyZjU1ZGI2
N2ZiMzYyZGQwY2U4ZGU2YTFmMTE5YjdjMWZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTM1OSw5ICszNTksOSBAQCBw
dWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jl
c3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBJbWFn
ZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKLSAgICBJbWFnZURyYXdSZXN1
bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0
IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbWFn
ZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2UgfSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKIAog
ICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXpl
JiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgPSB7IH0pOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlLCBJbWFn
ZTo6VGlsZVJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBkNTUwNjc3MzJmN2YzOWEzOTA5
OTg4YWI0YWVlMmI1N2FhOTVlZjBmLi4zNzIyYzIyNmUwMGViNTBmZmU0ZWU2ZGQ4NzIxZTVhM2Iy
MWY0OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTEx
MSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJp
bnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNI
ZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pOwogCi0gICAgdmlydHVhbCBGbG9hdFNp
emUgc2l6ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzaXplKEltYWdlT3Jp
ZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0ID0gMDsKICAgICBG
bG9hdFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNp
emUoKSk7IH0KICAgICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgp
OyB9CiAgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLmhlaWdodCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKaW5kZXgg
MmRmZWZhZWI1ZDE5MzM2ZGVkMjEyNThlZTFmZmY2Mzg2ZjU4YjkyZC4uMmNjNmIwMmE3ZDM1MDE1
NzFjZjIwOTM2NGIzNmVkMjVjMWQ4Mzk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRnJhbWUuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0NvbXBsZXRlKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvZGluZ1N0YXR1cyA9PSBEZWNvZGlu
Z1N0YXR1czo6Q29tcGxldGU7IH0KIAogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0OwotICAgIElu
dFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuICFtX29yaWVu
dGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkgPyBzaXplKCkgOiBzaXplKCkudHJhbnNwb3NlZFNp
emUoKTsgfQogICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXMoKSBjb25zdCB7IHJldHVybiBoYXNOYXRp
dmVJbWFnZSgpID8gKHNpemUoKS5hcmVhKCkgKiBzaXplb2YodWludDMyX3QpKS51bnNhZmVHZXQo
KSA6IDA7IH0KICAgICBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwoKSBjb25zdCB7
IHJldHVybiBtX3N1YnNhbXBsaW5nTGV2ZWw7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IDE4OTc2ZjkxOWViODFkYTM5NTY3
ZjI2YTE4YmFlN2E5YWYxZDMyNDMuLmYzOThkNzdjZGVhZTUwZWEyOTkxMDIwZjQ3NTQxNGY2NTdh
MGVjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNv
dXJjZS5jcHAKQEAgLTYzLDEwICs2Myw4IEBAIEltYWdlU291cmNlOjpJbWFnZVNvdXJjZShOYXRp
dmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlKQogCiAgICAgbV9kZWNvZGVkU2l6ZSA9IG1fZnJhbWVz
WzBdLmZyYW1lQnl0ZXMoKTsKIAotICAgIC8vIFRoZSBhc3N1bXB0aW9uIGlzIHRoZSBtZW1vcnkg
aW1hZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgd2l0aCB0aGUgZGVmYXVsdAotICAgIC8vIG9yaWVudGF0
aW9uLiBTbyBzZXQgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uIHRvIGJlIHRoZSBzYW1lIGFz
IG1fc2l6ZS4KICAgICBtX3NpemUgPSBtX2ZyYW1lc1swXS5zaXplKCk7Ci0gICAgbV9zaXplUmVz
cGVjdGluZ09yaWVudGF0aW9uID0gbV9zaXplOworICAgIG1fb3JpZW50YXRpb24gPSBJbWFnZU9y
aWVudGF0aW9uKEltYWdlT3JpZW50YXRpb246Ok5vbmUpOwogfQogCiBJbWFnZVNvdXJjZTo6fklt
YWdlU291cmNlKCkKQEAgLTU1OSwyMCArNTU3LDI3IEBAIE9wdGlvbmFsPEludFBvaW50PiBJbWFn
ZVNvdXJjZTo6aG90U3BvdCgpCiAgICAgcmV0dXJuIG1ldGFkYXRhPE9wdGlvbmFsPEludFBvaW50
PiwgKCZJbWFnZURlY29kZXI6OmhvdFNwb3QpPihXVEY6Om51bGxvcHQsICZtX2hvdFNwb3QpOwog
fQogCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplKCkKK0ltYWdlT3JpZW50YXRpb24gSW1hZ2VT
b3VyY2U6Om9yaWVudGF0aW9uKCkKIHsKKyAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhD
YWNoZUlmTmVlZGVkPEltYWdlT3JpZW50YXRpb24+KDAsICgmSW1hZ2VGcmFtZTo6b3JpZW50YXRp
b24pLCAmbV9vcmllbnRhdGlvbiwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEpOworfQor
CitJbnRTaXplIEltYWdlU291cmNlOjpzaXplKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24p
Cit7CisgICAgSW50U2l6ZSBzaXplOwogI2lmICFVU0UoQ0cpCiAgICAgLy8gSXQncyBwb3NzaWJs
ZSB0aGF0IHdlIGhhdmUgZGVjb2RlZCB0aGUgbWV0YWRhdGEsIGJ1dCBub3QgZnJhbWUgY29udGVu
dHMgeWV0LiBJbiB0aGF0IGNhc2UgSW1hZ2VEZWNvZGVyIGNsYWltcyB0bwogICAgIC8vIGhhdmUg
dGhlIHNpemUgYXZhaWxhYmxlLCBidXQgdGhlIGZyYW1lIGNhY2hlIGlzIGVtcHR5LiBSZXR1cm4g
dGhlIGRlY29kZXIgc2l6ZSB3aXRob3V0IGNhY2hpbmcgaW4gc3VjaCBjYXNlLgogICAgIGlmICht
X2ZyYW1lcy5pc0VtcHR5KCkgJiYgaXNEZWNvZGVyQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVy
biBtX2RlY29kZXItPnNpemUoKTsKKyAgICAgICAgc2l6ZSA9IG1fZGVjb2Rlci0+c2l6ZSgpOwor
ICAgIGVsc2UKICNlbmRpZgotICAgIHJldHVybiBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hlSWZO
ZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZyYW1lOjpzaXplKSwgJm1fc2l6ZSwgSW1hZ2VGcmFt
ZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOwotfQorICAg
ICAgICBzaXplID0gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPEludFNpemU+KDAs
ICgmSW1hZ2VGcmFtZTo6c2l6ZSksICZtX3NpemUsIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1ldGFk
YXRhLCBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KTsKKyAgICAKKyAgICBpZiAob3JpZW50YXRp
b24gPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAgICBvcmllbnRhdGlvbiA9
IHRoaXMtPm9yaWVudGF0aW9uKCk7CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OnNpemVSZXNwZWN0
aW5nT3JpZW50YXRpb24oKQotewotICAgIHJldHVybiBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hl
SWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZyYW1lOjpzaXplUmVzcGVjdGluZ09yaWVudGF0
aW9uKSwgJm1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6
TWV0YWRhdGEsIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOworICAgIHJldHVybiBvcmllbnRh
dGlvbi51c2VzV2lkdGhBc0hlaWdodCgpID8gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpIDogc2l6ZTsK
IH0KIAogQ29sb3IgSW1hZ2VTb3VyY2U6OnNpbmdsZVBpeGVsU29saWRDb2xvcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAppbmRleCBiYzc5MDk5
MzI3OGJjYjQyNTAzODY1ZmI1MTJhYjZmMmU5ODhlODNkLi5mNGU4MTg1NGQ5NzkwYzA4ZTE0ODcw
ODg5MTk5ODk0MzZjMzIyZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmgKQEAgLTkzLDkgKzkzLDEwIEBAIHB1YmxpYzoKICAgICBTdHJpbmcg
dXRpKCk7CiAgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCk7CiAgICAgT3B0aW9uYWw8SW50
UG9pbnQ+IGhvdFNwb3QoKTsKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCk7CiAK
ICAgICAvLyBJbWFnZSBtZXRhZGF0YSB3aGljaCBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIGZpcnN0
IEltYWdlRnJhbWUuCi0gICAgV0VCQ09SRV9FWFBPUlQgSW50U2l6ZSBzaXplKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgSW50U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0
aW9uOjpGcm9tSW1hZ2UpOwogICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigp
OwogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpOwogICAgIFN1YnNhbXBsaW5nTGV2
ZWwgbWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwoKTsKQEAgLTE5Niw3ICsxOTcsNyBAQCBwcml2YXRl
OgogCiAgICAgLy8gSW1hZ2UgbWV0YWRhdGEgd2hpY2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBm
aXJzdCBJbWFnZUZyYW1lLgogICAgIE9wdGlvbmFsPEludFNpemU+IG1fc2l6ZTsKLSAgICBPcHRp
b25hbDxJbnRTaXplPiBtX3NpemVSZXNwZWN0aW5nT3JpZW50YXRpb247CisgICAgT3B0aW9uYWw8
SW1hZ2VPcmllbnRhdGlvbj4gbV9vcmllbnRhdGlvbjsKICAgICBPcHRpb25hbDxDb2xvcj4gbV9z
aW5nbGVQaXhlbFNvbGlkQ29sb3I7CiAgICAgT3B0aW9uYWw8U3Vic2FtcGxpbmdMZXZlbD4gbV9t
YXhpbXVtU3Vic2FtcGxpbmdMZXZlbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCmluZGV4IGE2MGYxMjVh
MDExMDM3MzZiYTc1MTdlMzYzYWE0YTk4ZDYyMTA5ZDYuLjgwZjZiMTg3MjUyMjk2OGVhN2Q5NTc2
YjdlMDA1NjMzMzI1ODgyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFN0
cmluZyBQREZEb2N1bWVudEltYWdlOjpmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0CiAgICAgcmV0
dXJuICJwZGYiOwogfQogCi1GbG9hdFNpemUgUERGRG9jdW1lbnRJbWFnZTo6c2l6ZSgpIGNvbnN0
CitGbG9hdFNpemUgUERGRG9jdW1lbnRJbWFnZTo6c2l6ZShJbWFnZU9yaWVudGF0aW9uKSBjb25z
dAogewogICAgIEZsb2F0U2l6ZSBleHBhbmRlZENyb3BCb3hTaXplID0gRmxvYXRTaXplKGV4cGFu
ZGVkSW50U2l6ZShtX2Nyb3BCb3guc2l6ZSgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAppbmRleCAyN2Q5ZTc4
MDA3OThlM2UyZDFkZGExMmVkZmQ1ZDM2MDFiZmEzOTU3Li4xN2MwYWZjMTgxZjAyYzc3ODM1ZmU1
NGFmYjRmYTI4NzAxZDg2ODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoYm9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRy
dWUpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5n
dGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBp
bnRyaW5zaWNSYXRpbykgb3ZlcnJpZGU7Ci0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCA4ZWJlMDA3NmE4Y2M2NmVhYmZlMDQyOTFmYWVm
ZjU5NGZmMDkxODBlLi4wMzYzZTJlNDc4MjUyMDE2MDNkNTU0ZWRhZTNjNjE5MjM1MzM0ZTUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTk0LDM5
ICs5NCwzNiBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9u
KFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwgZmxvYXQgZAogICAgICAgICAKIFJldGFpblB0cjxO
U0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uKQogewotICAgIEZsb2F0U2l6ZSBzaXplID0gaW1hZ2UtPnNpemUo
KTsKLQogICAgIGlmIChpczxCaXRtYXBJbWFnZT4oKmltYWdlKSkgewogICAgICAgICBCaXRtYXBJ
bWFnZSYgYml0bWFwSW1hZ2UgPSBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKTsKLSAgICAg
ICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gYml0bWFwSW1hZ2Uuc2l6ZVJl
c3BlY3RpbmdPcmllbnRhdGlvbigpOwogCiAgICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBJbWFn
ZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCiAgICAgICAgICAgICBvcmllbnRhdGlvbiA9IGJpdG1h
cEltYWdlLm9yaWVudGF0aW9uRm9yQ3VycmVudEZyYW1lKCk7CiAKICAgICAgICAgaWYgKG9yaWVu
dGF0aW9uICE9IEltYWdlT3JpZW50YXRpb246Ok5vbmUpIHsKICAgICAgICAgICAgIC8vIENvbnN0
cnVjdCBhIGNvcnJlY3RseS1yb3RhdGVkIGNvcHkgb2YgdGhlIGltYWdlIHRvIHVzZSBhcyB0aGUg
ZHJhZyBpbWFnZS4KLSAgICAgICAgICAgIEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCks
IHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pOwotCi0gICAgICAgICAgICBSZXRhaW5QdHI8TlNJ
bWFnZT4gcm90YXRlZERyYWdJbWFnZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0
aFNpemU6KE5TU2l6ZSkoc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbildKTsKKyAgICAgICAgICAg
IEZsb2F0U2l6ZSBpbWFnZVNpemUgPSBpbWFnZS0+c2l6ZShvcmllbnRhdGlvbik7CisgICAgICAg
ICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gcm90YXRlZERyYWdJbWFnZSA9IGFkb3B0TlMoW1tOU0lt
YWdlIGFsbG9jXSBpbml0V2l0aFNpemU6KE5TU2l6ZSkoaW1hZ2VTaXplKV0pOwogICAgICAgICAg
ICAgW3JvdGF0ZWREcmFnSW1hZ2UgbG9ja0ZvY3VzXTsKIAogICAgICAgICAgICAgLy8gSW1hZ2VP
cmllbnRhdGlvbiB1c2VzIHRvcC1sZWZ0IGNvb3JkaW5hdGVzLCBuZWVkIHRvIGZsaXAgdG8gYm90
dG9tLWxlZnQsIGFwcGx5Li4uCi0gICAgICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zv
cm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VUcmFuc2xhdGlvbigwLCBkZXN0UmVjdC5oZWlnaHQo
KSk7CisgICAgICAgICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRy
YW5zZm9ybU1ha2VUcmFuc2xhdGlvbigwLCBpbWFnZVNpemUuaGVpZ2h0KCkpOwogICAgICAgICAg
ICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIDEsIC0xKTsK
LSAgICAgICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtQ29uY2F0KG9yaWVudGF0
aW9uLnRyYW5zZm9ybUZyb21EZWZhdWx0KHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pLCB0cmFu
c2Zvcm0pOworICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQo
b3JpZW50YXRpb24udHJhbnNmb3JtRnJvbURlZmF1bHQoaW1hZ2VTaXplKSwgdHJhbnNmb3JtKTsK
IAogICAgICAgICAgICAgaWYgKG9yaWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCi0gICAg
ICAgICAgICAgICAgZGVzdFJlY3QgPSBGbG9hdFJlY3QoZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55
KCksIGRlc3RSZWN0LmhlaWdodCgpLCBkZXN0UmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAgICAg
ICBpbWFnZVNpemUgPSBpbWFnZVNpemUudHJhbnNwb3NlZFNpemUoKTsKIAogICAgICAgICAgICAg
Ly8gLi4uYW5kIGZsaXAgYmFjay4KLSAgICAgICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJh
bnNmb3JtVHJhbnNsYXRlKHRyYW5zZm9ybSwgMCwgZGVzdFJlY3QuaGVpZ2h0KCkpOworICAgICAg
ICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1UcmFuc2xhdGUodHJhbnNmb3JtLCAw
LCBpbWFnZVNpemUuaGVpZ2h0KCkpOwogICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVU
cmFuc2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIDEsIC0xKTsKIAogICAgICAgICAgICAgUmV0YWluUHRy
PE5TQWZmaW5lVHJhbnNmb3JtPiBjb2NvYVRyYW5zZm9ybSA9IGFkb3B0TlMoW1tOU0FmZmluZVRy
YW5zZm9ybSBhbGxvY10gaW5pdF0pOwogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtIHNldFRy
YW5zZm9ybVN0cnVjdDoqKE5TQWZmaW5lVHJhbnNmb3JtU3RydWN0KikmdHJhbnNmb3JtXTsKICAg
ICAgICAgICAgIFtjb2NvYVRyYW5zZm9ybSBjb25jYXRdOwogCi0gICAgICAgICAgICBbaW1hZ2Ut
PnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVj
dCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0NvbXBvc2l0
aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOworICAgICAgICAgICAgRmxvYXRS
ZWN0IGltYWdlUmVjdChGbG9hdFBvaW50KCksIGltYWdlU2l6ZSk7CisgICAgICAgICAgICBbaW1h
Z2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJlY3Q6aW1hZ2VSZWN0IGZyb21SZWN0OmltYWdl
UmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246
MS4wXTsKIAogICAgICAgICAgICAgW3JvdGF0ZWREcmFnSW1hZ2UgdW5sb2NrRm9jdXNdOwogCkBA
IC0xMzQsOCArMTMxLDkgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21J
bWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb24gb3JpZW4KICAgICAgICAgfQogICAg
IH0KIAorICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUgPSBpbWFnZS0+c2l6ZSgpOwogICAgIGF1dG8g
ZHJhZ0ltYWdlID0gaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpOwotICAgIFtkcmFnSW1hZ2Ugc2V0
U2l6ZTooTlNTaXplKXNpemVdOworICAgIFtkcmFnSW1hZ2Ugc2V0U2l6ZTooTlNTaXplKWltYWdl
U2l6ZV07CiAgICAgcmV0dXJuIGRyYWdJbWFnZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDc0ODJjZTAyMGM5
NDEwZjU2ZWIwNjA0ZjNjNTNiZjliMWJkMjZjODQuLjIyMGFmZDczNTE4NjM5MGViNGM0MDFiYTA0
OTQwNzgzYjE2NzI3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmNwcApAQCAtOTQ3LDE1ICs5NDcsMjAgQEAgdm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50
SW5mbywgY28KICAgICAgICAgZ2VvbWV0cnkuY2xpcChMYXlvdXRSZWN0KHBpeGVsU25hcHBlZFJl
Y3QpKTsKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZTsKICAgICAgICAgaWYgKCFnZW9tZXRy
eS5kZXN0UmVjdCgpLmlzRW1wdHkoKSAmJiAoaW1hZ2UgPSBiZ0ltYWdlLT5pbWFnZShiYWNrZ3Jv
dW5kT2JqZWN0ID8gYmFja2dyb3VuZE9iamVjdCA6IHRoaXMsIGdlb21ldHJ5LnRpbGVTaXplKCkp
KSkgewotICAgICAgICAgICAgYXV0byBjb21wb3NpdGVPcCA9IG9wID09IENvbXBvc2l0ZVNvdXJj
ZU92ZXIgPyBiZ0xheWVyLmNvbXBvc2l0ZSgpIDogb3A7CiAgICAgICAgICAgICBjb250ZXh0LnNl
dERyYXdMdW1pbmFuY2VNYXNrKGJnTGF5ZXIubWFza1NvdXJjZVR5cGUoKSA9PSBNYXNrU291cmNl
VHlwZTo6THVtaW5hbmNlKTsKIAogICAgICAgICAgICAgaWYgKGlzPEJpdG1hcEltYWdlPihpbWFn
ZSkpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRl
RnJvbVNldHRpbmdzKHNldHRpbmdzKCkpOwogCi0gICAgICAgICAgICBhdXRvIGludGVycG9sYXRp
b24gPSBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsICZiZ0xheWVy
LCBnZW9tZXRyeS50aWxlU2l6ZSgpKTsKLSAgICAgICAgICAgIGF1dG8gZGVjb2RpbmdNb2RlID0g
ZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKTsKLSAgICAgICAgICAg
IGF1dG8gZHJhd1Jlc3VsdCA9IGNvbnRleHQuZHJhd1RpbGVkSW1hZ2UoKmltYWdlLCBnZW9tZXRy
eS5kZXN0UmVjdCgpLCB0b0xheW91dFBvaW50KGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSksIGdl
b21ldHJ5LnRpbGVTaXplKCksIGdlb21ldHJ5LnNwYWNlU2l6ZSgpLCB7IGNvbXBvc2l0ZU9wLCBi
Z0xheWVyLmJsZW5kTW9kZSgpLCBkZWNvZGluZ01vZGUsIGludGVycG9sYXRpb24gfSk7CisgICAg
ICAgICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0geworICAgICAgICAgICAgICAg
IG9wID09IENvbXBvc2l0ZVNvdXJjZU92ZXIgPyBiZ0xheWVyLmNvbXBvc2l0ZSgpIDogb3AsCisg
ICAgICAgICAgICAgICAgYmdMYXllci5ibGVuZE1vZGUoKSwKKyAgICAgICAgICAgICAgICBkZWNv
ZGluZ01vZGVGb3JJbWFnZURyYXcoKmltYWdlLCBwYWludEluZm8pLAorICAgICAgICAgICAgICAg
IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSwKKyAgICAgICAgICAgICAgICBjaG9vc2VJbnRl
cnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAqaW1hZ2UsICZiZ0xheWVyLCBnZW9tZXRyeS50aWxl
U2l6ZSgpKQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgYXV0byBkcmF3UmVzdWx0ID0g
Y29udGV4dC5kcmF3VGlsZWRJbWFnZSgqaW1hZ2UsIGdlb21ldHJ5LmRlc3RSZWN0KCksIHRvTGF5
b3V0UG9pbnQoZ2VvbWV0cnkucmVsYXRpdmVQaGFzZSgpKSwgZ2VvbWV0cnkudGlsZVNpemUoKSwg
Z2VvbWV0cnkuc3BhY2VTaXplKCksIG9wdGlvbnMpOwogICAgICAgICAgICAgaWYgKGRyYXdSZXN1
bHQgPT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZXF1ZXN0RGVjb2RpbmcpIHsKICAgICAgICAgICAg
ICAgICBBU1NFUlQoYmdJbWFnZS0+aXNDYWNoZWRJbWFnZSgpKTsKICAgICAgICAgICAgICAgICBi
Z0ltYWdlLT5jYWNoZWRJbWFnZSgpLT5hZGRDbGllbnRXYWl0aW5nRm9yQXN5bmNEZWNvZGluZygq
dGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXgg
MWIxMWUyZTNmMWNkMWVhNDdmODY3YTBlZDBkZDA4MGJhOGM5NzJjYS4uMjIwYjFhNjczNTkwZTZi
YTdjMjhmZmJiMTkwYzEwODUwZWE0NmZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcApAQCAtMjAzOSwxNiArMjAzOSw3IEBAIGJvb2wgUmVuZGVyRWxlbWVu
dDo6Y2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5b3V0KCkgY29uc3QKIAogSW1hZ2VPcmllbnRhdGlv
biBSZW5kZXJFbGVtZW50OjppbWFnZU9yaWVudGF0aW9uKCkgY29uc3QKIHsKLSNpZiBVU0UoQ0cp
IHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQotICAgIC8vIFRoaXMgY2FuIG9ubHkgYmUg
ZW5hYmxlZCBmb3IgcG9ydHMgd2hpY2ggaG9ub3IgdGhlIG9yaWVudGF0aW9uIGZsYWcgaW4gdGhl
aXIgZHJhd2luZyBjb2RlLgotICAgIGlmIChkb2N1bWVudCgpLmlzSW1hZ2VEb2N1bWVudCgpKQot
ICAgICAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOwotI2VuZGlmCi0gICAg
Ly8gUmVzcGVjdCB0aGUgaW1hZ2UncyBvcmllbnRhdGlvbiBpZiBpdCdzIGJlaW5nIHVzZWQgYXMg
YSBmdWxsLXBhZ2UgaW1hZ2Ugb3IgaXQncwotICAgIC8vIGFuIDxpbWc+IGFuZCB0aGUgc2V0dGlu
ZyB0byByZXNwZWN0IGl0IGV2ZXJ5d2hlcmUgaXMgc2V0LgotICAgIGlmIChzZXR0aW5ncygpLnNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgJiYgaXM8SFRNTEltYWdlRWxlbWVudD4oZWxl
bWVudCgpKSkKLSAgICAgICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZTsKLSAg
ICByZXR1cm4gc3R5bGUoKS5pbWFnZU9yaWVudGF0aW9uKCk7CisgICAgcmV0dXJuIEltYWdlT3Jp
ZW50YXRpb246OkZyb21JbWFnZTsKIH0KIAogdm9pZCBSZW5kZXJFbGVtZW50OjphZGp1c3RGcmFn
bWVudGVkRmxvd1N0YXRlT25Db250YWluaW5nQmxvY2tDaGFuZ2VJZk5lZWRlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCAzOTM1Y2I0NWExNGU2ZDc2ODc5
YTVkNzE4ZTUwYTQwNWYzOTQ4YTgyLi4yNmFhYTAzNzJlM2IzYjZiYjRiMzdlN2E0ZDhjNTc4ZjJk
ZTdlMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTYx
NywxMSArNjE3LDkgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QKICAgICAgICAgcmV0dXJuIElt
YWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAogICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdl
RWxlbWVudCA9IGlzPEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQoKSkgPyBkb3duY2FzdDxIVE1M
SW1hZ2VFbGVtZW50PihlbGVtZW50KCkpIDogbnVsbHB0cjsKLSAgICBDb21wb3NpdGVPcGVyYXRv
ciBjb21wb3NpdGVPcGVyYXRvciA9IGltYWdlRWxlbWVudCA/IGltYWdlRWxlbWVudC0+Y29tcG9z
aXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0ZVNvdXJjZU92ZXI7CiAKICAgICAvLyBGSVhNRTogRG9j
dW1lbnQgd2hlbiBpbWFnZSAhPSBpbWcuZ2V0KCkuCiAgICAgSW1hZ2UqIGltYWdlID0gaW1hZ2VS
ZXNvdXJjZSgpLmltYWdlKCkuZ2V0KCk7Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJw
b2xhdGlvbiA9IGltYWdlID8gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkocGFpbnRJbmZvLmNv
bnRleHQoKSwgKmltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUoKSkpIDogSW50ZXJw
b2xhdGlvbkRlZmF1bHQ7CiAKICNpZiBVU0UoQ0cpCiAgICAgaWYgKGlzPFBERkRvY3VtZW50SW1h
Z2U+KGltYWdlKSkKQEAgLTYzMSw4ICs2MjksMTQgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlbmRlcklt
YWdlOjpwYWludEludG9SZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QK
ICAgICBpZiAoaXM8Qml0bWFwSW1hZ2U+KGltYWdlKSkKICAgICAgICAgZG93bmNhc3Q8Qml0bWFw
SW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKHNldHRpbmdzKCkpOwogCi0gICAgYXV0
byBkZWNvZGluZ01vZGUgPSBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXcoKmltYWdlLCBwYWludElu
Zm8pOwotICAgIGF1dG8gZHJhd1Jlc3VsdCA9IHBhaW50SW5mby5jb250ZXh0KCkuZHJhd0ltYWdl
KCppbWcsIHJlY3QsIHsgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZTo6Tm9ybWFsLCBkZWNv
ZGluZ01vZGUsIGltYWdlT3JpZW50YXRpb24oKSwgaW50ZXJwb2xhdGlvbiB9KTsKKyAgICBJbWFn
ZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0geworICAgICAgICBpbWFnZUVsZW1lbnQgPyBpbWFn
ZUVsZW1lbnQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3NpdGVTb3VyY2VPdmVyLAorICAg
ICAgICBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXcoKmltYWdlLCBwYWludEluZm8pLAorICAgICAg
ICBpbWFnZU9yaWVudGF0aW9uKCksCisgICAgICAgIGltYWdlID8gY2hvb3NlSW50ZXJwb2xhdGlv
blF1YWxpdHkocGFpbnRJbmZvLmNvbnRleHQoKSwgKmltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShy
ZWN0LnNpemUoKSkpIDogSW50ZXJwb2xhdGlvbkRlZmF1bHQKKyAgICB9OworCisgICAgYXV0byBk
cmF3UmVzdWx0ID0gcGFpbnRJbmZvLmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgb3B0
aW9ucyk7CiAgICAgaWYgKGRyYXdSZXN1bHQgPT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZXF1ZXN0
RGVjb2RpbmcpCiAgICAgICAgIGltYWdlUmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpLT5hZGRDbGll
bnRXYWl0aW5nRm9yQXN5bmNEZWNvZGluZygqdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmgKaW5kZXggNjE0NTg1MzQwM2I0NzdhZWM3MTFjOGRkNjJmODgzNjU0OTll
MDJkNy4uOWFkOTM1OGM3MTFiYTIyMWMyZDkyYTVhNzk1OTlkYjU0MmI3ODVkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgog
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3KCkgY29uc3Q7CiAKICAgICBib29sIGlzU1ZHSW1hZ2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgRmxvYXRTaXplIHNpemUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2ludHJpbnNpY1NpemU7IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJ
bWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2ludHJpbnNpY1NpemU7IH0KIAogICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJp
dHlPcmlnaW4oKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAKaW5kZXggZDcwYTY0MGM2YTA0OTFlN2Ux
NjdmOTRjMTgwZTI3OTFhMzFlYWM4YS4uZWFlZmMzMWU0N2QwMjE1MWQ2OTBjNWNkNjVmNWU4MzFi
MzFhZjM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
Rm9yQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2VGb3JDb250YWluZXIuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotRmxvYXRTaXplIFNWR0ltYWdlRm9yQ29udGFpbmVyOjpzaXplKCkgY29uc3QKK0Zsb2F0
U2l6ZSBTVkdJbWFnZUZvckNvbnRhaW5lcjo6c2l6ZShJbWFnZU9yaWVudGF0aW9uKSBjb25zdAog
ewogICAgIEZsb2F0U2l6ZSBzY2FsZWRDb250YWluZXJTaXplKG1fY29udGFpbmVyU2l6ZSk7CiAg
ICAgc2NhbGVkQ29udGFpbmVyU2l6ZS5zY2FsZShtX2NvbnRhaW5lclpvb20pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaAppbmRleCA1
N2IyMDRkOTgzZmIwN2IxYTdlZDYxYTFhZmViNGViN2Y4YWEwZDQ0Li5lNjQ0ZjdhY2YzMGVjMjI0
ZGY4NTE1ZDg3ZjcyYzJhZTFiYjM0YTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6
CiAKICAgICBib29sIGlzU1ZHSW1hZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAK
LSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIEZsb2F0U2l6ZSBzaXplKElt
YWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IGZpbmFs
OwogCiAgICAgYm9vbCB1c2VzQ29udGFpbmVyU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
aW1hZ2UtPnVzZXNDb250YWluZXJTaXplKCk7IH0KICAgICBib29sIGhhc1JlbGF0aXZlV2lkdGgo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ltYWdlLT5oYXNSZWxhdGl2ZVdpZHRoKCk7IH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAwMGFlNTRlNjQ5YjE2NGIzMWZhNzFiZTRiNGNkMzg1NjljYTA1NzI2Li40ZGUxZjdiZTM5
ZTBjMTI5N2I5YmNhMDFiYjFhYjBjOGJiYjRiYWE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIw
MTktMDgtMjggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFWElGIG9yaWVudGF0aW9uIHNob3VsZCBiZSByZXNwZWN0ZWQgd2hlbiByZW5kZXJp
bmcgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDExMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBFeGlzdGluZyB0ZXN0cyBhcmUgbWFkZSByZWYtdGVzdHMuIE5ldyB0ZXN0cyB3ZXJlIGFkZGVk
IHRvIGNvdmVyIG1vcmUKKyAgICAgICAgY2FzZXMgZm9yIGRyYXdpbmcgaW1hZ2VzLgorCisgICAg
ICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBv
c2l0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLWNzcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1jc3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9l
eGlmLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2lt
YWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50LWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJh
Y2tncm91bmQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY2FudmFzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNvbnRlbnQtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29u
dGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1kb2N1bWVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1l
bGVtZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtb2Jq
ZWN0LWZpdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1pbWctZWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
c3ZnLWltYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5
LTA4LTI4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAg
ICAgICAgWExpbmtOYW1lcyBuYW1lc3BhY2UgaXMgcmVxdWlyZWQgYmVmb3JlIHRoZSAnaHJlZicg
YXR0cmlidXRlIG9mIFNWRyBhbmltYXRlIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZiMTU4YmVjNTZjMTllMjY5
ODVkZTAyODQ4NDZjNDkyMjVkYWYyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNv
bXBvc2l0ZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhl
IGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRp
b24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51
YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUp
LgotCi0KLUZsaXBwZWQgaG9yaXpvbnRhbGx5IAotUm90YXRlZCAxODDCsCAKLUZsaXBwZWQgdmVy
dGljYWxseSAKLQotUm90YXRlZCA5MMKwIENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90
YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5ICAK
LVJvdGF0ZWQgOTDCsCBDVyAKLWltZzEgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6ZSA9
IDEwMHB4IGJ5IDUwcHgKLWltZzMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9IDUw
cHggYnkgMTAwcHgKLWltZzUgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzYgc2l6ZSA9IDUwcHgg
YnkgMTAwcHgKLWltZzcgc2l6ZSA9IDUwcHggYnkgMTAwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4Y2ZmMDlhNDcyZjRiOTEwYzFmOWVkZTU2NTBlZWJh
MjMwNTJkZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4K
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbih0cnVlKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAg
ICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxk
KGxpKTsKLX0KLQotZnVuY3Rpb24gaW1hZ2VTaXplKGVsKSB7Ci0gICAgdmFyIGNvbXB1dGVkU3R5
bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkU3R5
bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKLX0KLQotCi1mdW5jdGlv
biBsb2FkKCkgewotICAgIGZvcih2YXIgaSA9IDE7IGkgPD0gNzsgaSsrKQotICAgICAgICBsb2co
ImltZyIgKyBpICsgIiBzaXplID0gIiArIGltYWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaW1nIiArIGkpKSkKLX0KLQotPC9zY3JpcHQ+Ci08c3R5bGU+Ci1pbWcgeyAtd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlWigwKTsgfQotZGl2IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBt
YXJnaW4tcmlnaHQ6IDIwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiAxMDBweDsgdmVy
dGljYWwtYWxpZ246IHRvcDsgfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9h
ZCgpIj4KLTxiPlRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBF
WElGIG9yaWVudGF0aW9uLiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5l
ciAob3IgYnkgbWFudWFsbHkgc2V0dGluZyBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbiB0byB0cnVlKS48L2I+PGJyPjxicj4KLTxkaXY+PGltZyBpZD0iaW1nMSIgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5
PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMy1sci5qcGciPjxicj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9Imlt
ZzMiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj48YnI+RmxpcHBl
ZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+Ci08ZGl2PjxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNSIgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8
L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5
IDwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTgtbGxvLmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPHVsIGlk
PSJjb25zb2xlIj48L3VsPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDIyNDViNjBiYmI4ZDJkMTE5ZTllMDdlODMwNWJk
NjMxMTg1NjEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLU5vbmUgb2YgdGhlIGltYWdlcyBzaG91
bGQgYmUgcm90YXRlZC4gVGhpcyB0ZXN0IGlzIG9ubHkgdmFsaWQgd2hlbiBydW4gd2l0aCB0ZXN0
UnVubmVyIChvciB3aXRoIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIG1hbnVh
bGx5IHNldCB0byB0cnVlKS4KLQotCi1Ob3JtYWwgCi1GbGlwcGVkIGhvcml6b250YWxseSAKLVJv
dGF0ZWQgMTgwwrAgCi1GbGlwcGVkIHZlcnRpY2FsbHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5k
IGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDVyAKLQotUm90YXRlZCA5MMKw
IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQg
OTDCsCBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENXIAotCi1VbmRl
ZmluZWQgKGludmFsaWQgdmFsdWUpIAotaW1nMSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMiBz
aXplID0gMTAwcHggYnkgNTBweAotaW1nMyBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNCBzaXpl
ID0gMTAwcHggYnkgNTBweAotaW1nNSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNiBzaXplID0g
MTAwcHggYnkgNTBweAotaW1nNyBzaXplID0gMTAwcHggYnkgNTBweAotaW1nOCBzaXplID0gMTAw
cHggYnkgNTBweAotaW1nOSBzaXplID0gMTAwcHggYnkgMTAwcHgKLWltZzEwIHNpemUgPSAxMDBw
eCBieSAxMDBweAotaW1nMTEgc2l6ZSA9IDEwMHB4IGJ5IDEwMHB4Ci1pbWcxMiBzaXplID0gMTAw
cHggYnkgMTAwcHgKLWltZzEzIHNpemUgPSAxMDBweCBieSA1MHB4CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzQxN2Y1NTg5MjEzMzY0NmQzODY2YTBiYWVlYjM2MTY4MmViMWZiYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVy
bmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KHRydWUpOwotCi1mdW5jdGlvbiBsb2coc3RyKSB7Ci0gICAgdmFyIGxpID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIik7Ci0gICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7Ci19Ci0KLWZ1bmN0
aW9uIGltYWdlU2l6ZShlbCkgewotICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZWwpOwotICAgIHJldHVybiBjb21wdXRlZFN0eWxlLndpZHRoICsgIiBieSAi
ICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7Ci19Ci0KLQotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBm
b3IodmFyIGkgPSAxOyBpIDw9IDEzOyBpKyspCi0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNp
emUgPSAiICsgaW1hZ2VTaXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQot
fQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWRpdi5pbWFnZSB7IGRpc3BsYXk6IGlubGluZS1ibG9j
azsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IH0KLWRpdi5jb250YWluZXIgeyBkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgd2lk
dGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci1pbWcgeyB3aWR0aDogMTAwcHg7IGhl
aWdodDogMTAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH0KLTwvc3R5bGU+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQoKSI+Ci08Yj5Ob25lIG9mIHRoZSBpbWFnZXMgc2hv
dWxkIGJlIHJvdGF0ZWQuIFRoaXMgdGVzdCBpcyBvbmx5IHZhbGlkIHdoZW4gcnVuIHdpdGggdGVz
dFJ1bm5lciAob3Igd2l0aCBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBtYW51
YWxseSBzZXQgdG8gdHJ1ZSkuPC9iPjxicj48YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxk
aXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMSIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZykiPjwvZGl2Pjxicj5Ob3JtYWw8L2Rpdj4KLTxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWcyIiBzdHlsZT0iY29u
dGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnKSI+PC9kaXY+PGJy
PkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYg
Y2xhc3M9ImltYWdlIiBpZD0iaW1nMyIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0zLWxyLmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+
Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nNCIgc3R5
bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGcpIj48
L2Rpdj48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250
YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nNSIgc3R5bGU9ImNvbnRlbnQ6IHVybChy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc2IiBzdHlsZT0iY29udGVudDogdXJsKHJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1c8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2Ui
IGlkPSJpbWc3IiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTctcmwuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0
aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBp
ZD0iaW1nOCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04
LWxsby5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+Ci08ZGl2
IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzkiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdl
OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2ltZz48YnI+Um90
YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNz
PSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzEwIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJs
KHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTEi
IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
Ny1ybC5qcGcpIj48L2ltZz48YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRp
Y2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTIiIHN0eWxl
PSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8u
anBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPGRpdiBjbGFz
cz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzEzIiBzdHlsZT0iY29udGVu
dDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGcpIj48L2Rpdj48YnI+VW5k
ZWZpbmVkIChpbnZhbGlkIHZhbHVlKTwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3Vs
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
ZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9l
eGlmLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZGY0ODgzMjNmNDk0YTA2Yjc0OTBhZjYwMzk3ZDE0ZjkyMDFhZTNhZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICsw
LDAgQEAKLVRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElG
IG9yaWVudGF0aW9uLiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAo
b3IgYnkgbWFudWFsbHkgc2V0dGluZyBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biB0byB0cnVlKS4KLQotCi1Ob3JtYWwgCi1GbGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQg
MTgwwrAgCi1GbGlwcGVkIHZlcnRpY2FsbHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZs
aXBwZWQgdmVydGljYWxseSAgCi1Sb3RhdGVkIDkwwrAgQ1cgCi0KLVVuZGVmaW5lZCAoaW52YWxp
ZCB2YWx1ZSkgCi1pbWcxIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWcyIHNpemUgPSAxMDBweCBi
eSA1MHB4Ci1pbWczIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc0IHNpemUgPSAxMDBweCBieSA1
MHB4Ci1pbWc1IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc2IHNpemUgPSA1MHB4IGJ5IDEwMHB4
Ci1pbWc3IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc4IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1p
bWc5IHNpemUgPSAxMDBweCBieSA1MHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzMxM2JlNTIzNGY1ZTI4Njdh
ZDRkNTYwMDZhNTM1ZTBlZmM2ZjQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1h
Z2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1U
aGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi4gSW4gaW1hZ2UgZG9jdW1lbnRzLCB0aGlzIGhhcHBlbnMgaW5kZXBlbmRlbnQgb2YgV2Vi
S2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24uCi0KLSAgICAKLSAgICAKLSAKLVBBU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1h
Z2UtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRp
b24taW1hZ2UtZG9jdW1lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTIx
YjNlNTU4Yjk0NDAyOGZhNmQwZmE1OTQ5ZTU4NzY2MGFhMDhkMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlm
LW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewotICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRlc3Qgb25seSBwYXNzZXMgaW4gRFJULiBJbiBicm93
c2VycywgdGhlIGNyb3NzLWlmcmFtZSBkb20gaW5zcGVjdGlvbiB1c3VhbGx5IGNhdXNlcyBhIHNl
Y3VyaXR5IGV4Y2VwdGlvbi4KLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci19Ci0K
LWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikp
OwotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsK
LSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKLX0KLQotZnVuY3Rpb24gaW1hZ2VTaXplKG5h
bWUpIHsKLSAgICB2YXIgaW1nID0gd2luZG93LmZyYW1lc1tuYW1lXS5kb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCdpbWcnKTsKLSAgICByZXR1cm4gW2ltZy5vZmZzZXRXaWR0aCwgaW1nLm9mZnNldEhl
aWdodF07Ci19Ci0KLQotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICB2YXIgZXhwZWN0ZWQgPSBbCi0g
ICAgICBbMTAwLCA1MF0sIFsxMDAsIDUwXSwgWzEwMCwgNTBdLCBbMTAwLCA1MF0sIAotICAgICAg
WzUwLCAxMDBdLCBbNTAsIDEwMF0sIFs1MCwgMTAwXSwgWzUwLCAxMDBdLCAKLSAgICAgIFsxMDAs
IDUwXSwKLSAgICBdOwotICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAgICBmb3IodmFyIGkgPSAx
OyBpIDw9IDk7IGkrKykgewotICAgICAgICB2YXIgcyA9IGltYWdlU2l6ZSgiaW1nIiArIGkpOwot
ICAgICAgICBpZiAoc1swXSAhPT0gZXhwZWN0ZWRbaSAtIDFdWzBdIHx8IHNbMV0gIT09IGV4cGVj
dGVkW2kgLSAxXVsxXSkKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICB9Ci0gICAg
bG9nKHN1Y2Nlc3MgPyAiUEFTUyIgOiAiRkFJTCIpOwotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4K
LWlmcmFtZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAyMHB4OyBtYXJn
aW4tYm90dG9tOiAxMHB4OyB3aWR0aDogMTIwcHg7IGhlaWdodDogMTEwcHg7IHZlcnRpY2FsLWFs
aWduOiB0b3A7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci08L3N0eWxlPgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCBy
ZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIEluIGltYWdlIGRvY3VtZW50cywgdGhp
cyBoYXBwZW5zIGluZGVwZW5kZW50IG9mIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uLjwvYj48YnI+PGJyPgotPGlmcmFtZSBuYW1lPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBu
YW1lPSJpbWcyIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIiBmcmFt
ZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWczIiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFt
ZSBuYW1lPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIg
ZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTxpZnJhbWUgbmFtZT0iaW1nNSIgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFt
ZT4KLTxpZnJhbWUgbmFtZT0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02
LXJ1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNyIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyIgZnJhbWVib3JkZXI9MD48L2lm
cmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi04LWxsby5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08YnI+Ci08aWZyYW1lIG5hbWU9
ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyIgZnJhbWVib3Jk
ZXI9MD48L2lmcmFtZT4KLTxicj4KLTx1bCBpZD0iY29uc29sZSI+PC91bD4KLTwvYm9keT4KLTwv
aHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDhjODNiMGQ1ZjNlZDVkZTkzMDliODYy
NzRmZTE3MTRiZjA1YThjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKHRydWUpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZh
ciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkp
OwotfQotCi1mdW5jdGlvbiBpbWFnZVNpemUoZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRTdHlsZSA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKLSAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53
aWR0aCArICIgYnkgIiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0aW9uIGxv
YWQoKSB7Ci0gICAgZm9yKHZhciBpID0gMTsgaSA8PSA5OyBpKyspCi0gICAgICAgIGxvZygiaW1n
IiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VTaXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJp
bWciICsgaSkpKQotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7IGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOyB9Ci1kaXYgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDog
MjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjog
dG9wOyB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhl
IGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRp
b24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51
YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUp
LjwvYj48YnI+PGJyPgotPGRpdj48aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIj48YnI+Tm9ybWFsPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzIi
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjxicj5GbGlwcGVkIGhv
cml6b250YWxseTwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTMtbHIuanBnIj48YnI+Um90YXRlZCAxODAmZGVnOzwvZGl2PgotPGRpdj48
aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+
PGJyPkZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGJyPgotPGRpdj48aW1nIGlkPSJpbWc1IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj48YnI+Um90YXRlZCA5MCZk
ZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzYi
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPjxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tNy1ybC5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseSA8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi04LWxsby5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxi
cj4KLTxkaXY+PGltZyBpZD0iaW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05
LXUuanBnIj48YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKTwvZGl2PgotPGJyPgotPHVsIGlk
PSJjb25zb2xlIj48L3VsPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0OWE1ZWQ1NTAwMDljMzcxNDBkODQxMTQ2ZWEwZjlk
NGYzMmM0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAg
IHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAg
ICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVy
dGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAg
ICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQor
PC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBjc3MgYmFja2dyb3VuZCBpbWFnZXMgc2hvdWxk
IGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAg
PGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9y
bWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90
YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7
Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJv
dGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVn
KTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAg
IDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3Vu
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE5YzNjYTQ1M2M2MTFlNDU4MTVlYjc2OGM1MjUwYTJhNDMxOGEx
YTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmll
bnRhdGlvbi1iYWNrZ3JvdW5kLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9t
OiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0
b3A7CisgICAgfQorICAgIGRpdi5pbWFnZSB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgIH0KKyAgICBk
aXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1
MHB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhl
IGNzcyBiYWNrZ3JvdW5kIGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVp
ciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0
eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwi
IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
Mi11ci5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAx
ODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1
cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+PC9kaXY+CisgICAgICAg
IDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0
eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1s
dS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFn
ZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJi
YWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcp
Ij48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0
aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5
bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUu
anBnKSI+PC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAg
PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRj
MTAyNjgxMDc2NTc5ZDY5YmM4Yzk2YjdmMWFiMWY1ZjM3Mjc5MDkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBk
aXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBt
YXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAg
ICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9Cisg
ICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6
IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4Owor
ICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSgpIHNob3VsZCByZXNwZWN0IHRoZSBpbWFnZSBF
WElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9
InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZs
aXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAx
ODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEp
IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
dHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
MjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAg
PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWNhbnZhcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkYTQxODI3OTU3NjU2ZmU2YjM0
ZGYzNjhiOWI1N2MxMDAwMDRjMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbApAQCAtMCwwICsxLDEyNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAg
ICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZl
cnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAg
d2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGlj
YWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9
CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQor
ICAgIGNhbnZhcy5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBo
ZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIGNhbnZhcy52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRo
OiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4K
KyAgICA8Yj5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZHJhd0ltYWdlKCkgc2hvdWxkIHJlc3Bl
Y3QgdGhlIGltYWdlIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXMx
Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNh
bnZhczIiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9y
aXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9
Imhvcml6b250YWwiIGlkPSJjYW52YXMzIj48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXM0Ij48L2NhbnZhcz4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3Mg
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNh
bnZhczUiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAgICAg
ICAgICAgPGNhbnZhcyBjbGFzcz0idmVydGljYWwiIGlkPSJjYW52YXM2Ij48L2NhbnZhcz4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczci
PjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBD
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczgiPjwvY2FudmFzPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNh
bnZhczkiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAo
aW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdmFyIG5hbWVzID0gWworICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIsICBpZCA6ICJjYW52YXMxIiB9LAorICAgICAgICAg
ICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIs
ICBpZCA6ICJjYW52YXMyIiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyIsICBpZCA6ICJjYW52YXMzIiB9LAorICAgICAg
ICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5q
cGciLCBpZCA6ICJjYW52YXM0IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyIsICBpZCA6ICJjYW52YXM1IiB9LAorICAg
ICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1
LmpwZyIsICBpZCA6ICJjYW52YXM2IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyIsICBpZCA6ICJjYW52YXM3IiB9LAor
ICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04
LWxsby5qcGciLCBpZCA6ICJjYW52YXM4IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6
ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIiwgICBpZCA6ICJjYW52YXM5IiB9
CisgICAgICAgICAgICBdOworCisgICAgICAgICAgICB2YXIgZHJhd0NvdW50ID0gMDsKKworICAg
ICAgICAgICAgbmFtZXMuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7CisgICAgICAgICAgICAgICAg
dmFyIGltYWdlID0gbmV3IEltYWdlOworICAgICAgICAgICAgICAgIGltYWdlLnNyYyA9IG5hbWUu
cmVzb3VyY2U7CisgICAgICAgICAgICAgICAgaW1hZ2UuZGVjb2RlKCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChu
YW1lLmlkKTsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzLndpZHRoID0gaW1hZ2Uud2lkdGg7
CisgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHQ7CisgICAg
ICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBjYW52YXMu
d2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoKytkcmF3Q291
bnQgPT0gbmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29u
dGVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24tY29udGVudC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwODVhODIyNjNiMmJmNDM4
MjgzNDQ3ZjVhNzJjODQ0OWUzZDcxNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7
CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAy
MHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBw
eDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9u
dGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0K
KyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0
OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBjc3MgY29udGVudCBpbWFn
ZXMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48
L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxl
WCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwg
MjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVy
dGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0
ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgs
IDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29u
dGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29u
dGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1OTE4ZWEzMjdiY2ZlYjliOGNjZDU3YzdhNDM4MDc1ODFj
YmE0MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9t
OiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0
b3A7CisgICAgfQorICAgIGRpdi5pbWFnZSB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAg
ICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgor
PGJvZHk+CisgICAgPGI+VGhlIGNzcyBjb250ZW50IGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQg
cmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdl
IGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6
b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11
ci5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1h
Z2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0zLWxyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNC1sb2wuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2Fs
bHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRp
Y2FsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUu
anBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Ug
dmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
Ny1ybC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5
bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9k
aXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1kb2N1bWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzdhMTM3
MWYyN2M0NDY4NTA2YjE0OTkxOWZkMzMyNjE1NTFjYjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYu
Y29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJn
aW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAg
d2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAg
ZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUy
cHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAg
ICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFw
eCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdl
cyBvZiBJbWFnZURvY3VtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBF
WElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9
InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZs
aXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAx
ODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEp
IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
dHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZl
cnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgt
MjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAg
PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjk1ZjE5ZGRmNzdjZjY2
YzM4YTkyMzA0YmM4OWIwOTc2OTU5ZTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDEw
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4Owor
ICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAg
ICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYu
dmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsK
KyAgICB9CisgICAgaWZyYW1lIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgfQorICAgIGlmcmFtZS5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIGlmcmFtZS52ZXJ0aWNhbCB7CisgICAgICAg
IHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8
Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIEltYWdlRG9jdW1lbnRzIHNob3VsZCBiZSByZW5k
ZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxv
YWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9u
bG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
Mi11ci5qcGciPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQg
aG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNz
PSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8
aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PC9pZnJhbWU+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAg
PGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9u
RnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBn
Ij48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
aWZyYW1lIGNsYXNzPSJ2ZXJ0aWNhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAg
ICAgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRo
aXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj48L2lmcmFtZT4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9
InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgPGlmcmFtZSBjbGFzcz0iaG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0
aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj48L2lmcmFtZT4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisg
ICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAg
ICB2YXIgaUZyYW1lTG9hZGVkQ291bnQgPSAwOworCisgICAgICAgICBmdW5jdGlvbiBvbkZyYW1l
TG9hZCgpIHsKKyAgICAgICAgICAgIGlmICgrK2lGcmFtZUxvYWRlZENvdW50ID09IDkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0LWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ODRlODU4ZTI0MDJhMjE4NmYyYjAyYmU3YzJkMDM5YWZmZGVk
M2ZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24taW1hZ2Utb2JqZWN0LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3Bs
YXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAg
bWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZl
cnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAg
d2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGlj
YWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9
CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9z
dHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O29iamVjdCZndDsgZWxlbWVu
dHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48
L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxl
WCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwg
MjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVy
dGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0
ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgs
IDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1h
Z2Utb2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1pbWFnZS1vYmplY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNGQ3MjgwMjUyYTAwNDY0NTUyYjk4NzIz
ZWU0MDdlZmI3NjRmZDcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0bWwKQEAgLTAsMCArMSw4MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAg
IHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAg
ICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVy
dGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAg
ICB9CisgICAgb2JqZWN0IHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAg
fQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O29iamVjdCZndDsg
ZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRh
dGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxvYmplY3Qg
dHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5q
cGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4K
KyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxv
YmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
NC1sb2wuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVj
dCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1
LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAg
ICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi02LXJ1LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlw
ZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGci
Pjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBD
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9i
amVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04
LWxsby5qcGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxvYmpl
Y3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11
LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChp
bnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZkNDY3NWEwOTRkOTNmMzBiNDAzNzlkOTRlODk2
ZDFiOTk5YjExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2lt
YWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMDUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAg
ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisg
ICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAg
ICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7Cisg
ICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2
LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7
CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAg
IH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcmZ3Q7IGVs
ZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRp
b24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJp
bWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PGltZyBpZD0iaW1nMyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8
aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRp
Y2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVw
eCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGlj
YWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4
KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzciIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nOCIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTog
dHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAo
aW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPHVsIGlkPSJjb25zb2xl
Ij48L3VsPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAg
ICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAg
ICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAg
ICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAg
ICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisKKyAgICAgICAg
IGZ1bmN0aW9uIGltYWdlU2l6ZShpbmRleCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIiArIGluZGV4KTsKKyAgICAgICAgICAgIHZhciBj
b21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7CisgICAgICAg
ICAgICBpZiAoZWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygidmVydGlj
YWwiKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS5oZWlnaHQgKyAiIGJ5
ICIgKyBjb21wdXRlZFN0eWxlLndpZHRoOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5
bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKKyAgICAgICAgfQorCisg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4geworICAg
ICAgICAgICAgZm9yKHZhciBpID0gMTsgaSA8PSA5OyBpKyspCisgICAgICAgICAgICAgICAgbG9n
KCJpbWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoaSkpOworICAgICAgICB9KTsKKyAg
ICA8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVu
dC1vYmplY3QtZml0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0LWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmE4NzI4MTJjZWUzMzlkZDMxMzQyOWU2MDU0YjRkOTFmN2U2MjVhYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1l
bGVtZW50LW9iamVjdC1maXQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDc4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTog
aW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJn
aW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGlj
YWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2LnNxdWFyZSB7CisgICAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0
O2ltZyZndDsgZWxlbWVudHMgd2l0aCBvYmplY3QtZml0IHByb3BlcnR5IHNob3VsZCBiZSByZW5k
ZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
c3F1YXJlIj4KKyAgICAgICAgICAgIDxkaXY+CisgICAgICAgICAgICAgICAgPGltZyBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFu
c2xhdGUoMCwgMjVweCk7Ij4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5z
bGF0ZSgwLCAyNXB4KSBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0
cmFuc2xhdGUoMCwgMjVweCkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKDAsIDI1cHgpIHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
c3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSg5
MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2Fs
ZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoMCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
aW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZk
NTM5YTU1OGUwMWI5NTNmZjljN2Y1Y2ZjMDdmMTc1MWJkNjdhNjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1v
YmplY3QtZml0Lmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+
CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAg
ICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsg
CisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cisg
ICAgfQorICAgIGRpdi5zcXVhcmUgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAg
ICBpbWcgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAg
IDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVudHMgd2l0aCBvYmplY3QtZml0IHBy
b3BlcnR5IHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRp
b24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAg
IDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJz
cXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTUtbHUuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAg
ICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWltZy1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZlOTZjNWRlMmRiNWNl
YmFlYjg3MjRmMDMzOWRiODM3NGIzMjBkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50Lmh0bWwKQEAgLTAsMCAr
MSwxMDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgewor
ICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBw
eDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7
IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRh
bCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9Cisg
ICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDog
MTAycHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNr
OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcm
Z3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3Jp
ZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1n
IGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgIDxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11
ci5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1n
IGlkPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2Fs
Ij4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNi1ydS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc3IiBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzgiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICA8aW1nIGlkPSJpbWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGci
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPHVsIGlkPSJjb25zb2xlIj48L3VsPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisKKyAgICAgICAgICBmdW5jdGlvbiBpbWFn
ZVNpemUoZWwpIHsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZWwpOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGgg
KyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKKyAgICAgICAgfQorCisgICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4geworICAgICAgICAgICAg
Zm9yKHZhciBpID0gMTsgaSA8PSA5OyBpKyspCisgICAgICAgICAgICAgICAgbG9nKCJpbWciICsg
aSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIg
KyBpKSkpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMTBiOTJmM2FlNWEzOWNlNjNmMTAyZDM3NTJlMTY0NjcxNDdiNTFlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3Zn
LWZlaW1hZ2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJs
b2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9t
OiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246
IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOwor
ICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAg
IHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgewor
ICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+
CisgICAgPGI+VGhlIGltYWdlcyBvZiBTVkcgJmx0O2ZlaW1hZ2UmZ3Q7IGVsZW1lbnRzIHNob3Vs
ZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAg
IDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5v
cm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJo
b3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5q
cGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJv
dGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSBy
b3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+
CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5q
cGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRl
Zyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAg
ICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVp
bWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZjI3YjRiNmYwODEwZWY1MWJhMjg1NDIwNzc4YjIzZDc1
NTZiNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5s
aW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1i
b3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxp
Z246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAy
OworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAg
ICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBzdmcg
eworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgc3ZnLmhvcml6
b250YWwgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAg
ICB9CisgICAgc3ZnLnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhl
aWdodDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMg
b2YgU1ZHICZsdDtmZWltYWdlJmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVj
dGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwi
PgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAg
PGZpbHRlciBpZD0iaW1nMSI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9
IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAg
ICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwo
I2ltZzEpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPSJpbWcyIj4KKyAgICAgICAgICAg
ICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIg
aHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciLz4KKyAgICAgICAgICAg
ICAgICA8L2ZpbHRlcj4KKyAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0
PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVybCgjaW1nMik7Ii8+CisgICAgICAgICAgICA8L3N2Zz4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICAgICAgPGZpbHRlciBpZD0iaW1nMyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdl
IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+Cisg
ICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZp
bHRlcjp1cmwoI2ltZzMpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0i
aW1nNCI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIx
MDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9s
LmpwZyIvPgorICAgICAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0
IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc0KTsiLz4K
KyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNs
YXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNSI+CisgICAg
ICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9
IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIi8+CisgICAg
ICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUi
IGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzUpOyIvPgorICAgICAgICAgICAg
PC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBj
bGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzYiPgorICAg
ICAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0
PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIvPgorICAg
ICAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAl
IiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc2KTsiLz4KKyAgICAgICAgICAg
IDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWlt
YWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+
CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9
ImZpbHRlcjp1cmwoI2ltZzcpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nOCI+CisgICAgICAgICAgICAgICAgICAgIDxmZWlt
YWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyIvPgorICAgICAgICAgICAgICAgIDwvZmlsdGVy
PgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxl
PSJmaWx0ZXI6dXJsKCNpbWc4KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
ICAgIDxmaWx0ZXIgaWQ9ImltZzkiPgorICAgICAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIw
IiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi05LXUuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAg
ICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1
cmwoI2ltZzkpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLXN2Zy1pbWFnZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE4Zjlk
ZDUwY2Y1NjYxMzdmYTAxZmZjMDRhZmYwMGYwYTIwODJmMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAg
ICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAg
ICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDog
NTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7Cisg
ICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1h
Z2VzIG9mIFNWRyAmbHQ7aW1hZ2UmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNw
ZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250
YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5
bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zv
cm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZ
KC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5
bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2Fs
ZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zv
cm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpv
bnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxp
ZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWZlNzViMTZjMDM2M2EwNzkxMDhiMjgxM2U4OTlhNjJjZDAxNjA0NQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5o
dG1sCkBAIC0wLDAgKzEsMTA5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYu
Y29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJn
aW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisKKyAgICBk
aXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJw
eDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAg
ICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIHN2ZyB7CisgICAgICAgIGJvcmRlcjogMXB4
IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBzdmcuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBzdmcudmVydGljYWwg
eworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8
L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBTVkcgJmx0O2ltYWdlJmd0OyBl
bGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0
aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWln
aHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+Cisg
ICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGlt
YWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTQtbG9sLmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1h
Z2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNS1sdS5qcGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAg
ICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+
CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGlt
YWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTctcmwuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAg
ICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwv
ZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA0Zjc1ZjRmZDhlOWI3MGExYzYyNTExZGI2ZjhiNWFkOWI4YjcwYWYwLi41MjFhZDBhZmI2
NzhmZmNmMWEwMzQwZmRkNGRhNTg5MjZkZTU1MDc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjkyNyw4ICsyOTI3LDYgQEAgd2Via2l0Lm9yZy9iLzEy
MDU5NiBjc3MzL21hc2tpbmcvbWFzay1yZXBlYXQtc3BhY2UtY29udGVudC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHUKIAogd2Via2l0Lm9yZy9iLzEyMDgzOSBsZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9h
bmltYXRpb25zL2Nyb3NzLWZhZGUtYmFja2dyb3VuZC1pbWFnZS5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xMjE5MDUgZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlv
bi5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xODA1ODEgY3NzMy9zaGFwZXMvc2hh
cGUtb3V0c2lkZS92YWx1ZXMvc2hhcGUtbWFyZ2luLTAwMS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvMTgwNTgxIGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW91
dHNpZGUtY2lyY2xlLTAwNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgwNTgxIGNz
czMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW91dHNpZGUtY2lyY2xlLTAwNS5o
dG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDMzYmY2Yjc2MzgwNmYzMGU5YTdmMzJmMTEwMmU1OGNmMTJmYzM1ODUuLmQzNTA0N2Ew
MzczNGJmMjM3YzIwMzM4NGY2MWM3MGNlNzM0NTI3Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yODExLDExICsyODExLDkgQEAgZmFzdC9oaXN0b3J5
L2xvY2F0aW9uLXJlcGxhY2UtaGFzaC5odG1sIFsgU2tpcCBdCiBmYXN0L2hpc3Rvcnkvc2F2ZXMt
c3RhdGUtYWZ0ZXItZnJhZ21lbnQtbmF2Lmh0bWwgWyBTa2lwIF0KIAogZmFzdC9pbWFnZXMvaW1h
Z2UtY29udHJvbHMtYmFzaWMuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1jb21wb3NpdGVkLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDA1MTYg
WyBEZWJ1ZyBdIGZhc3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNraXAg
XSAgIyBDcmFzaGluZwogZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLXdpdGgtYW5ub3RhdGlvbnMu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9pbWFnZXMvc3VwcG9ydC1icm9rZW4taW1h
Z2UtZGVsZWdhdGUuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlv
bi5odG1sIFsgRmFpbHVyZSBdCiAKIGZhc3QvaW5saW5lL3Bvc2l0aW9uZWRMaWZldGltZS5odG1s
IFsgRmFpbHVyZSBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377502</attachid>
            <date>2019-08-28 16:01:15 -0700</date>
            <delta_ts>2019-08-31 14:45:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201123-20190828160114.patch</filename>
            <type>text/plain</type>
            <size>106008</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODM1NzIxZDMwMzliYzVh
Y2EzMzlkMWU5OTI4Yjc0ODhkODJkNzY4Zi4uYzJiZjI1NDBkMmY0NWY0M2I5NzdjY2Y4ZmExNDkx
NTI5ODc4YTdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE5LTA4LTI4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRVhJRiBv
cmllbnRhdGlvbiBzaG91bGQgYmUgcmVzcGVjdGVkIHdoZW4gcmVuZGVyaW5nIGltYWdlcyAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTEyMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0tIEltYWdlOjpz
aXplKCkgd2lsbCByZXR1cm4gdGhlIHJlbmRlcmVkIHNpemUgYmFzZWQgb24gdGhlIGltYWdlCisg
ICAgICAgICAgIG9yaWVudGF0aW9uLiBJZiBpbWFnZSBvcmllbnRhdGlvbiBpcyBGcm9tSW1hZ2Us
IEltYWdlU291cmNlIHdpbGwgcXVlcnkKKyAgICAgICAgICAgdGhlIGFjdHVhbCBpbWFnZSBvcmll
bnRhdGlvbiBmcm9tIHRoZSBJbWFnZURlY29kZXIuIFRoZSBsb3cgbGV2ZWwgQVBJcworICAgICAg
ICAgICBtaWdodCB0cmFuc3Bvc2UgdGhlIHNpemUganVzdCBiZWZvcmUgY2FsbGluZyB0aGUgc3lz
dGVtIEFQSSB0byBkcmF3CisgICAgICAgICAgIHRoZSBpbWFnZS4KKworICAgICAgICAtLSBSZW5k
ZXJFbGVtZW50OjppbWFnZU9yaWVudGF0aW9uKCkgd2lsbCByZXR1cm4gSW1hZ2VPcmllbnRhdGlv
bjo6RnJvbUltYWdlCisgICAgICAgICAgIGZvciBhbGwgaW1hZ2VzIGFuZCBmb3IgYWxsIHBvcnRz
IHRpbGwgdGhlIENTUyBpbWFnZS1vcmllbnRhdGlvbiBzcGVjcworICAgICAgICAgICBpcyBmaW5h
bGl6ZWQuCisKKyAgICAgICAgLS0gVGhlIGRlZmF1bHQgb2YgSW1hZ2VQYWludGluZ09wdGlvbnMg
YXJndW1lbnQgb2YgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICB3aWxs
IGJlIGNoYW5nZWQgdG8geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfS4KKworICAgICAg
ICAtLSBJbWFnZSBlbGVtZW50OiBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdCgpIHdpbGwgcGFz
cyBpbWFnZU9yaWVudGF0aW9uKCkKKyAgICAgICAgICAgd2hpY2ggcmV0dXJucyBJbWFnZU9yaWVu
dGF0aW9uOjpGcm9tSW1hZ2UgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4KKworICAg
ICAgICAtLSBDU1MgYmFja2dyb3VuZCBpbWFnZTogUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
RmlsbExheWVyRXh0ZW5kZWQgd2lsbAorICAgICAgICAgICBwYXNzIEltYWdlT3JpZW50YXRpb246
OkZyb21JbWFnZSBieSBkZWZhdWx0IHRvIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1RpbGVkSW1hZ2Uo
KS4KKworICAgICAgICAtLSBJbWFnZXMgb24gY2FudmFzOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlOjpkcmF3SW1hZ2UoKSB3aWxsIHBhc3MKKyAgICAgICAgICAgSW1hZ2VPcmllbnRhdGlv
bjo6RnJvbUltYWdlIGJ5IGRlZmF1bHQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKS4K
KworICAgICAgICAtLSBTVkcgaW1hZ2VzOiBSZW5kZXJTVkdJbWFnZTo6cGFpbnRGb3JlZ3JvdW5k
KCkgY2FsbHMgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoKQorICAgICAgICAgICB3aXRoIHRo
ZSBkZWZhdWx0IEltYWdlUGFpbnRpbmdPcHRpb25zIHdoaWNoIGlzIG5vdyB7IEltYWdlT3JpZW50
YXRpb246OkZyb21JbWFnZSB9LgorCisgICAgICAgIC0tIFNWRyBmZUltYWdlIGZpbHRlcnM6IEZF
SW1hZ2U6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIGNhbGxzCisgICAgICAgICAgIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKCkgd2l0aCB0aGUgZGVmYXVsdCBJbWFnZVBhaW50aW5nT3B0aW9u
cworICAgICAgICAgICB3aGljaCBpcyBub3cgeyBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2Ug
fS4KKworICAgICAgICAtLSBJbWFnZURvY3VtZW50OiBSZW5kZXJFbGVtZW50OjppbWFnZU9yaWVu
dGF0aW9uKCkgcmV0dXJucyBGcm9tSW1hZ2UKKyAgICAgICAgICAgYWx3YXlzIGFuZCBmb3IgYWxs
IHBvcnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1i
YWNrZ3JvdW5kLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWNhbnZhcy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLWRvY3VtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9y
aWVudGF0aW9uLWltYWdlLW9iamVjdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5o
dG1sCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRy
YXdJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlciBjb25zdCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUZyYW1lOjpzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZVNvdXJjZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBERkRvY3Vt
ZW50SW1hZ2U6OnNpemUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BE
RkRvY3VtZW50SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVs
ZW1lbnQ6OmltYWdlT3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVj
dCk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6CisgICAgICAgICogc3ZnL2dy
YXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lt
YWdlRm9yQ29udGFpbmVyOjpzaXplIGNvbnN0KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2VGb3JDb250YWluZXIuaDoKKwogMjAxOS0wOC0yOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbCBpbWFnZSBkcmF3aW5nIGZ1bmN0
aW9ucyBzaG91bGQgdGFrZSBhbiBhcmd1bWVudCBvZiB0eXBlIEltYWdlUGFpbnRpbmdPcHRpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2UuY3BwCmluZGV4IDA2NWQ3ZTI2MmQ0YzAyZWRlNWIwY2MxMzA0ODIy
ZDFmOTU1YTU4ODAuLjM5NzUzNGE2N2UyZjA5Mzc5ODEzZTk0NmQ2NDViZjM2MjAzMzJkNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2UuY3BwCkBAIC0xNTc4LDE4ICsxNTc4LDIwIEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShEb2N1bWVudCYg
ZG9jdW1lbnQsIENhCiAgICAgICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpLnVwZGF0
ZUZyb21TZXR0aW5ncyhkb2N1bWVudC5zZXR0aW5ncygpKTsKICAgICB9CiAKKyAgICBJbWFnZVBh
aW50aW5nT3B0aW9ucyBvcHRpb25zID0geyBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9u
OjpGcm9tSW1hZ2UgfTsKKwogICAgIGlmIChyZWN0Q29udGFpbnNDYW52YXMobm9ybWFsaXplZERz
dFJlY3QpKSB7Ci0gICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0
LCBub3JtYWxpemVkU3JjUmVjdCwgeyBvcCwgYmxlbmRNb2RlIH0pOworICAgICAgICBjLT5kcmF3
SW1hZ2UoKmltYWdlLCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIG9wdGlv
bnMpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlmIChpc0Z1
bGxDYW52YXNDb21wb3NpdGVNb2RlKG9wKSkgewogICAgICAgICBmdWxsQ2FudmFzQ29tcG9zaXRl
ZERyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwg
b3ApOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIGlmIChvcCA9
PSBDb21wb3NpdGVDb3B5KSB7CiAgICAgICAgIGNsZWFyQ2FudmFzKCk7Ci0gICAgICAgIGMtPmRy
YXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgeyBv
cCwgYmxlbmRNb2RlIH0pOworICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVk
RHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIG9wdGlvbnMpOwogICAgICAgICBkaWREcmF3RW50
aXJlQ2FudmFzKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwg
bm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCB7IG9wLCBibGVuZE1vZGUgfSk7
CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxp
emVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERyYXcobm9ybWFsaXplZERzdFJlY3Qp
OwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
Y3BwCmluZGV4IGVmOTNiMzUxZTc5MWQ1MjdkYWU4MGY4N2M1MjVhN2RjMTRlN2U0MjAuLmNlZmJl
MzJiNTZhNmRlY2E1YzkxMTM0OGVhYjEwYjEwNjZjOWVkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtMjgwLDEzICsyODAsMTAgQEAgRmxvYXRT
aXplIENhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50
KiByZW5kZXJlciwgU2l6ZVQKICAgICBpZiAoIW1faW1hZ2UpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBpZiAoaXM8Qml0bWFwSW1hZ2U+KCptX2ltYWdlKSAmJiByZW5kZXJlciAmJiByZW5k
ZXJlci0+aW1hZ2VPcmllbnRhdGlvbigpID09IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkK
LSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEJpdG1hcEltYWdlPigqbV9pbWFnZSkuc2l6ZVJlc3Bl
Y3RpbmdPcmllbnRhdGlvbigpOwotCiAgICAgaWYgKGlzPFNWR0ltYWdlPigqbV9pbWFnZSkgJiYg
c2l6ZVR5cGUgPT0gVXNlZFNpemUpCiAgICAgICAgIHJldHVybiBtX3N2Z0ltYWdlQ2FjaGUtPmlt
YWdlU2l6ZUZvclJlbmRlcmVyKHJlbmRlcmVyKTsKIAotICAgIHJldHVybiBtX2ltYWdlLT5zaXpl
KCk7CisgICAgcmV0dXJuIG1faW1hZ2UtPnNpemUocmVuZGVyZXIgPyByZW5kZXJlci0+aW1hZ2VP
cmllbnRhdGlvbigpIDogSW1hZ2VPcmllbnRhdGlvbihJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1h
Z2UpKTsKIH0KIAogTGF5b3V0U2l6ZSBDYWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIo
Y29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGZsb2F0IG11bHRpcGxpZXIsIFNpemVUeXBl
IHNpemVUeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmgKaW5kZXggMzIwMmZiZTMwNGVjZmVhNmZmYzhmZWI1Mjc2YjYwYzJiODU4ZTM5
Yi4uMmFkN2YxYzVjZTA3ZDUxMzM1NDgwMzE0YmJjNzQzNzc4MDFjZGM0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC04MSw4ICs4MSw3
IEBAIHB1YmxpYzoKICAgICBPcHRpb25hbDxJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fc291cmNlLT5ob3RTcG90KCk7IH0KIAogICAgIC8vIEZsb2F0U2l6ZSBk
dWUgdG8gb3ZlcnJpZGUuCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3NvdXJjZS0+c2l6ZSgpOyB9Ci0gICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVu
dGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UtPnNpemVSZXNwZWN0aW5nT3JpZW50YXRp
b24oKTsgfQorICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24g
PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
c291cmNlLT5zaXplKG9yaWVudGF0aW9uKTsgfQogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRD
b2xvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLT5zaW5nbGVQaXhlbFNvbGlk
Q29sb3IoKTsgfQogICAgIGJvb2wgZnJhbWVJc0JlaW5nRGVjb2RlZEFuZElzQ29tcGF0aWJsZVdp
dGhPcHRpb25zQXRJbmRleChzaXplX3QgaW5kZXgsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYgZGVj
b2RpbmdPcHRpb25zKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS0+ZnJhbWVJc0JlaW5nRGVjb2Rl
ZEFuZElzQ29tcGF0aWJsZVdpdGhPcHRpb25zQXRJbmRleChpbmRleCwgZGVjb2RpbmdPcHRpb25z
KTsgfQogICAgIERlY29kaW5nU3RhdHVzIGZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KHNpemVf
dCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UtPmZyYW1lRGVjb2RpbmdTdGF0dXNBdElu
ZGV4KGluZGV4KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKaW5kZXggMWRkN2VhOWVjM2ZhNWViMjg5
YWYwYjBiYTcyOTAwNmNiOGI3ZTVjOC4uNDU3NjVjODMxNDUyMWU0OGFjYjBmOWRiMzllYTAzZDRl
YTZlYzNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2Nyb3NzZmFkZVNpemU7IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9u
ID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2Nyb3NzZmFkZVNpemU7IH0KIAogcHJvdGVjdGVkOgogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVk
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdl
LmgKaW5kZXggMTA4Njg4Yjk3NTY1N2RhNDdiMTc0ZmY1NzM0OTlkMWEyZThlNGE2My4uM2UwMTYx
NGMxNGRlZGZjNDU1OTIzZmE2ZDI0YjExMWFiMTQ0YzNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCkBAIC00MCw3ICs0MCw3IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3Ro
JiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50
cmluc2ljUmF0aW8pIG92ZXJyaWRlOwogCi0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3NpemU7IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0
aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3NpemU7IH0KIAogICAgIC8vIEFzc3VtZSB0aGF0IGdlbmVyYXRlZCBjb250ZW50IGhhcyBu
byBkZWNvZGVkIGRhdGEgd2UgbmVlZCB0byB3b3JyeSBhYm91dAogICAgIHZvaWQgZGVzdHJveURl
Y29kZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8gPSB0cnVlKSBvdmVycmlkZSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5k
ZXggN2NlMWNiYjBhMzgxMGFmYzNkYmUyNWI0ZjJkZjQ5MzY4ODkzZTQxYy4uMTNmNWEyZjU1ZGI2
N2ZiMzYyZGQwY2U4ZGU2YTFmMTE5YjdjMWZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTM1OSw5ICszNTksOSBAQCBw
dWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jl
c3VsdCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0aW5hdGlvbiwgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBJbWFn
ZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKLSAgICBJbWFnZURyYXdSZXN1
bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0
IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7
IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbWFn
ZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
biwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2UgfSk7CisgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJbWFnZShJbWFnZSYsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJbWFn
ZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsKIAog
ICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHNvdXJjZSwgY29uc3QgRmxvYXRTaXpl
JiB0aWxlU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5n
T3B0aW9ucyYgPSB7IH0pOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3VGlsZWRJbWFnZShJbWFn
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgSW1hZ2U6OlRpbGVSdWxlLCBJbWFn
ZTo6VGlsZVJ1bGUsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBkNTUwNjc3MzJmN2YzOWEzOTA5
OTg4YWI0YWVlMmI1N2FhOTVlZjBmLi4zNzIyYzIyNmUwMGViNTBmZmU0ZWU2ZGQ4NzIxZTVhM2Iy
MWY0OWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTEx
MSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJp
bnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNI
ZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pOwogCi0gICAgdmlydHVhbCBGbG9hdFNp
emUgc2l6ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzaXplKEltYWdlT3Jp
ZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0ID0gMDsKICAgICBG
bG9hdFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNp
emUoKSk7IH0KICAgICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgp
OyB9CiAgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLmhlaWdodCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKaW5kZXgg
MmRmZWZhZWI1ZDE5MzM2ZGVkMjEyNThlZTFmZmY2Mzg2ZjU4YjkyZC4uMmNjNmIwMmE3ZDM1MDE1
NzFjZjIwOTM2NGIzNmVkMjVjMWQ4Mzk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRnJhbWUuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0NvbXBsZXRlKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvZGluZ1N0YXR1cyA9PSBEZWNvZGlu
Z1N0YXR1czo6Q29tcGxldGU7IH0KIAogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0OwotICAgIElu
dFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuICFtX29yaWVu
dGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkgPyBzaXplKCkgOiBzaXplKCkudHJhbnNwb3NlZFNp
emUoKTsgfQogICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXMoKSBjb25zdCB7IHJldHVybiBoYXNOYXRp
dmVJbWFnZSgpID8gKHNpemUoKS5hcmVhKCkgKiBzaXplb2YodWludDMyX3QpKS51bnNhZmVHZXQo
KSA6IDA7IH0KICAgICBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwoKSBjb25zdCB7
IHJldHVybiBtX3N1YnNhbXBsaW5nTGV2ZWw7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCmluZGV4IDE4OTc2ZjkxOWViODFkYTM5NTY3
ZjI2YTE4YmFlN2E5YWYxZDMyNDMuLmYzOThkNzdjZGVhZTUwZWEyOTkxMDIwZjQ3NTQxNGY2NTdh
MGVjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNv
dXJjZS5jcHAKQEAgLTYzLDEwICs2Myw4IEBAIEltYWdlU291cmNlOjpJbWFnZVNvdXJjZShOYXRp
dmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlKQogCiAgICAgbV9kZWNvZGVkU2l6ZSA9IG1fZnJhbWVz
WzBdLmZyYW1lQnl0ZXMoKTsKIAotICAgIC8vIFRoZSBhc3N1bXB0aW9uIGlzIHRoZSBtZW1vcnkg
aW1hZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgd2l0aCB0aGUgZGVmYXVsdAotICAgIC8vIG9yaWVudGF0
aW9uLiBTbyBzZXQgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uIHRvIGJlIHRoZSBzYW1lIGFz
IG1fc2l6ZS4KICAgICBtX3NpemUgPSBtX2ZyYW1lc1swXS5zaXplKCk7Ci0gICAgbV9zaXplUmVz
cGVjdGluZ09yaWVudGF0aW9uID0gbV9zaXplOworICAgIG1fb3JpZW50YXRpb24gPSBJbWFnZU9y
aWVudGF0aW9uKEltYWdlT3JpZW50YXRpb246Ok5vbmUpOwogfQogCiBJbWFnZVNvdXJjZTo6fklt
YWdlU291cmNlKCkKQEAgLTU1OSwyMCArNTU3LDI3IEBAIE9wdGlvbmFsPEludFBvaW50PiBJbWFn
ZVNvdXJjZTo6aG90U3BvdCgpCiAgICAgcmV0dXJuIG1ldGFkYXRhPE9wdGlvbmFsPEludFBvaW50
PiwgKCZJbWFnZURlY29kZXI6OmhvdFNwb3QpPihXVEY6Om51bGxvcHQsICZtX2hvdFNwb3QpOwog
fQogCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplKCkKK0ltYWdlT3JpZW50YXRpb24gSW1hZ2VT
b3VyY2U6Om9yaWVudGF0aW9uKCkKIHsKKyAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhD
YWNoZUlmTmVlZGVkPEltYWdlT3JpZW50YXRpb24+KDAsICgmSW1hZ2VGcmFtZTo6b3JpZW50YXRp
b24pLCAmbV9vcmllbnRhdGlvbiwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEpOworfQor
CitJbnRTaXplIEltYWdlU291cmNlOjpzaXplKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24p
Cit7CisgICAgSW50U2l6ZSBzaXplOwogI2lmICFVU0UoQ0cpCiAgICAgLy8gSXQncyBwb3NzaWJs
ZSB0aGF0IHdlIGhhdmUgZGVjb2RlZCB0aGUgbWV0YWRhdGEsIGJ1dCBub3QgZnJhbWUgY29udGVu
dHMgeWV0LiBJbiB0aGF0IGNhc2UgSW1hZ2VEZWNvZGVyIGNsYWltcyB0bwogICAgIC8vIGhhdmUg
dGhlIHNpemUgYXZhaWxhYmxlLCBidXQgdGhlIGZyYW1lIGNhY2hlIGlzIGVtcHR5LiBSZXR1cm4g
dGhlIGRlY29kZXIgc2l6ZSB3aXRob3V0IGNhY2hpbmcgaW4gc3VjaCBjYXNlLgogICAgIGlmICht
X2ZyYW1lcy5pc0VtcHR5KCkgJiYgaXNEZWNvZGVyQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVy
biBtX2RlY29kZXItPnNpemUoKTsKKyAgICAgICAgc2l6ZSA9IG1fZGVjb2Rlci0+c2l6ZSgpOwor
ICAgIGVsc2UKICNlbmRpZgotICAgIHJldHVybiBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hlSWZO
ZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZyYW1lOjpzaXplKSwgJm1fc2l6ZSwgSW1hZ2VGcmFt
ZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOwotfQorICAg
ICAgICBzaXplID0gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPEludFNpemU+KDAs
ICgmSW1hZ2VGcmFtZTo6c2l6ZSksICZtX3NpemUsIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1ldGFk
YXRhLCBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KTsKKyAgICAKKyAgICBpZiAob3JpZW50YXRp
b24gPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKQorICAgICAgICBvcmllbnRhdGlvbiA9
IHRoaXMtPm9yaWVudGF0aW9uKCk7CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OnNpemVSZXNwZWN0
aW5nT3JpZW50YXRpb24oKQotewotICAgIHJldHVybiBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hl
SWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZyYW1lOjpzaXplUmVzcGVjdGluZ09yaWVudGF0
aW9uKSwgJm1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6
TWV0YWRhdGEsIFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOworICAgIHJldHVybiBvcmllbnRh
dGlvbi51c2VzV2lkdGhBc0hlaWdodCgpID8gc2l6ZS50cmFuc3Bvc2VkU2l6ZSgpIDogc2l6ZTsK
IH0KIAogQ29sb3IgSW1hZ2VTb3VyY2U6OnNpbmdsZVBpeGVsU29saWRDb2xvcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAppbmRleCBiYzc5MDk5
MzI3OGJjYjQyNTAzODY1ZmI1MTJhYjZmMmU5ODhlODNkLi5mNGU4MTg1NGQ5NzkwYzA4ZTE0ODcw
ODg5MTk5ODk0MzZjMzIyZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmgKQEAgLTkzLDkgKzkzLDEwIEBAIHB1YmxpYzoKICAgICBTdHJpbmcg
dXRpKCk7CiAgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCk7CiAgICAgT3B0aW9uYWw8SW50
UG9pbnQ+IGhvdFNwb3QoKTsKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCk7CiAK
ICAgICAvLyBJbWFnZSBtZXRhZGF0YSB3aGljaCBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIGZpcnN0
IEltYWdlRnJhbWUuCi0gICAgV0VCQ09SRV9FWFBPUlQgSW50U2l6ZSBzaXplKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgSW50U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0
aW9uOjpGcm9tSW1hZ2UpOwogICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigp
OwogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpOwogICAgIFN1YnNhbXBsaW5nTGV2
ZWwgbWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwoKTsKQEAgLTE5Niw3ICsxOTcsNyBAQCBwcml2YXRl
OgogCiAgICAgLy8gSW1hZ2UgbWV0YWRhdGEgd2hpY2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBm
aXJzdCBJbWFnZUZyYW1lLgogICAgIE9wdGlvbmFsPEludFNpemU+IG1fc2l6ZTsKLSAgICBPcHRp
b25hbDxJbnRTaXplPiBtX3NpemVSZXNwZWN0aW5nT3JpZW50YXRpb247CisgICAgT3B0aW9uYWw8
SW1hZ2VPcmllbnRhdGlvbj4gbV9vcmllbnRhdGlvbjsKICAgICBPcHRpb25hbDxDb2xvcj4gbV9z
aW5nbGVQaXhlbFNvbGlkQ29sb3I7CiAgICAgT3B0aW9uYWw8U3Vic2FtcGxpbmdMZXZlbD4gbV9t
YXhpbXVtU3Vic2FtcGxpbmdMZXZlbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCmluZGV4IGE2MGYxMjVh
MDExMDM3MzZiYTc1MTdlMzYzYWE0YTk4ZDYyMTA5ZDYuLjgwZjZiMTg3MjUyMjk2OGVhN2Q5NTc2
YjdlMDA1NjMzMzI1ODgyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFN0
cmluZyBQREZEb2N1bWVudEltYWdlOjpmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0CiAgICAgcmV0
dXJuICJwZGYiOwogfQogCi1GbG9hdFNpemUgUERGRG9jdW1lbnRJbWFnZTo6c2l6ZSgpIGNvbnN0
CitGbG9hdFNpemUgUERGRG9jdW1lbnRJbWFnZTo6c2l6ZShJbWFnZU9yaWVudGF0aW9uKSBjb25z
dAogewogICAgIEZsb2F0U2l6ZSBleHBhbmRlZENyb3BCb3hTaXplID0gRmxvYXRTaXplKGV4cGFu
ZGVkSW50U2l6ZShtX2Nyb3BCb3guc2l6ZSgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaAppbmRleCAyN2Q5ZTc4
MDA3OThlM2UyZDFkZGExMmVkZmQ1ZDM2MDFiZmEzOTU3Li5lZDlkMTZkMjg1YTEzMmY2NzBmZjA4
NGNlMTMwMDdmM2Q0NTRmNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoYm9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRy
dWUpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5n
dGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBp
bnRyaW5zaWNSYXRpbykgb3ZlcnJpZGU7Ci0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRh
dGlvbjo6RnJvbUltYWdlKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEltYWdlRHJhd1Jlc3VsdCBk
cmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pIG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRl
eCA4ZWJlMDA3NmE4Y2M2NmVhYmZlMDQyOTFmYWVmZjU5NGZmMDkxODBlLi4wMzYzZTJlNDc4MjUy
MDE2MDNkNTU0ZWRhZTNjNjE5MjM1MzM0ZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTk0LDM5ICs5NCwzNiBAQCBSZXRhaW5QdHI8TlNJbWFn
ZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwg
ZmxvYXQgZAogICAgICAgICAKIFJldGFpblB0cjxOU0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9t
SW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogewotICAg
IEZsb2F0U2l6ZSBzaXplID0gaW1hZ2UtPnNpemUoKTsKLQogICAgIGlmIChpczxCaXRtYXBJbWFn
ZT4oKmltYWdlKSkgewogICAgICAgICBCaXRtYXBJbWFnZSYgYml0bWFwSW1hZ2UgPSBkb3duY2Fz
dDxCaXRtYXBJbWFnZT4oKmltYWdlKTsKLSAgICAgICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09y
aWVudGF0aW9uID0gYml0bWFwSW1hZ2Uuc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpOwogCiAg
ICAgICAgIGlmIChvcmllbnRhdGlvbiA9PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCiAg
ICAgICAgICAgICBvcmllbnRhdGlvbiA9IGJpdG1hcEltYWdlLm9yaWVudGF0aW9uRm9yQ3VycmVu
dEZyYW1lKCk7CiAKICAgICAgICAgaWYgKG9yaWVudGF0aW9uICE9IEltYWdlT3JpZW50YXRpb246
Ok5vbmUpIHsKICAgICAgICAgICAgIC8vIENvbnN0cnVjdCBhIGNvcnJlY3RseS1yb3RhdGVkIGNv
cHkgb2YgdGhlIGltYWdlIHRvIHVzZSBhcyB0aGUgZHJhZyBpbWFnZS4KLSAgICAgICAgICAgIEZs
b2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24p
OwotCi0gICAgICAgICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gcm90YXRlZERyYWdJbWFnZSA9IGFk
b3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6KE5TU2l6ZSkoc2l6ZVJlc3BlY3Rp
bmdPcmllbnRhdGlvbildKTsKKyAgICAgICAgICAgIEZsb2F0U2l6ZSBpbWFnZVNpemUgPSBpbWFn
ZS0+c2l6ZShvcmllbnRhdGlvbik7CisgICAgICAgICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gcm90
YXRlZERyYWdJbWFnZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6KE5T
U2l6ZSkoaW1hZ2VTaXplKV0pOwogICAgICAgICAgICAgW3JvdGF0ZWREcmFnSW1hZ2UgbG9ja0Zv
Y3VzXTsKIAogICAgICAgICAgICAgLy8gSW1hZ2VPcmllbnRhdGlvbiB1c2VzIHRvcC1sZWZ0IGNv
b3JkaW5hdGVzLCBuZWVkIHRvIGZsaXAgdG8gYm90dG9tLWxlZnQsIGFwcGx5Li4uCi0gICAgICAg
ICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VU
cmFuc2xhdGlvbigwLCBkZXN0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgICAgICBDR0FmZmluZVRy
YW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VUcmFuc2xhdGlvbigwLCBp
bWFnZVNpemUuaGVpZ2h0KCkpOwogICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFu
c2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIDEsIC0xKTsKLSAgICAgICAgICAgIHRyYW5zZm9ybSA9IENH
QWZmaW5lVHJhbnNmb3JtQ29uY2F0KG9yaWVudGF0aW9uLnRyYW5zZm9ybUZyb21EZWZhdWx0KHNp
emVSZXNwZWN0aW5nT3JpZW50YXRpb24pLCB0cmFuc2Zvcm0pOworICAgICAgICAgICAgdHJhbnNm
b3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQob3JpZW50YXRpb24udHJhbnNmb3JtRnJvbURl
ZmF1bHQoaW1hZ2VTaXplKSwgdHJhbnNmb3JtKTsKIAogICAgICAgICAgICAgaWYgKG9yaWVudGF0
aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCi0gICAgICAgICAgICAgICAgZGVzdFJlY3QgPSBGbG9h
dFJlY3QoZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCksIGRlc3RSZWN0LmhlaWdodCgpLCBkZXN0
UmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAgICAgICBpbWFnZVNpemUgPSBpbWFnZVNpemUudHJh
bnNwb3NlZFNpemUoKTsKIAogICAgICAgICAgICAgLy8gLi4uYW5kIGZsaXAgYmFjay4KLSAgICAg
ICAgICAgIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtVHJhbnNsYXRlKHRyYW5zZm9ybSwg
MCwgZGVzdFJlY3QuaGVpZ2h0KCkpOworICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVU
cmFuc2Zvcm1UcmFuc2xhdGUodHJhbnNmb3JtLCAwLCBpbWFnZVNpemUuaGVpZ2h0KCkpOwogICAg
ICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIDEs
IC0xKTsKIAogICAgICAgICAgICAgUmV0YWluUHRyPE5TQWZmaW5lVHJhbnNmb3JtPiBjb2NvYVRy
YW5zZm9ybSA9IGFkb3B0TlMoW1tOU0FmZmluZVRyYW5zZm9ybSBhbGxvY10gaW5pdF0pOwogICAg
ICAgICAgICAgW2NvY29hVHJhbnNmb3JtIHNldFRyYW5zZm9ybVN0cnVjdDoqKE5TQWZmaW5lVHJh
bnNmb3JtU3RydWN0KikmdHJhbnNmb3JtXTsKICAgICAgICAgICAgIFtjb2NvYVRyYW5zZm9ybSBj
b25jYXRdOwogCi0gICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJblJl
Y3Q6ZGVzdFJlY3QgZnJvbVJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoKCksIHNpemUu
aGVpZ2h0KCkpIG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFj
dGlvbjoxLjBdOworICAgICAgICAgICAgRmxvYXRSZWN0IGltYWdlUmVjdChGbG9hdFBvaW50KCks
IGltYWdlU2l6ZSk7CisgICAgICAgICAgICBbaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpIGRyYXdJ
blJlY3Q6aW1hZ2VSZWN0IGZyb21SZWN0OmltYWdlUmVjdCBvcGVyYXRpb246TlNDb21wb3NpdGlu
Z09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MS4wXTsKIAogICAgICAgICAgICAgW3JvdGF0
ZWREcmFnSW1hZ2UgdW5sb2NrRm9jdXNdOwogCkBAIC0xMzQsOCArMTMxLDkgQEAgUmV0YWluUHRy
PE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3Jp
ZW50YXRpb24gb3JpZW4KICAgICAgICAgfQogICAgIH0KIAorICAgIEZsb2F0U2l6ZSBpbWFnZVNp
emUgPSBpbWFnZS0+c2l6ZSgpOwogICAgIGF1dG8gZHJhZ0ltYWdlID0gaW1hZ2UtPnNuYXBzaG90
TlNJbWFnZSgpOwotICAgIFtkcmFnSW1hZ2Ugc2V0U2l6ZTooTlNTaXplKXNpemVdOworICAgIFtk
cmFnSW1hZ2Ugc2V0U2l6ZTooTlNTaXplKWltYWdlU2l6ZV07CiAgICAgcmV0dXJuIGRyYWdJbWFn
ZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCmluZGV4IDc0ODJjZTAyMGM5NDEwZjU2ZWIwNjA0ZjNjNTNiZjliMWJkMjZj
ODQuLjIyMGFmZDczNTE4NjM5MGViNGM0MDFiYTA0OTQwNzgzYjE2NzI3OWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtOTQ3
LDE1ICs5NDcsMjAgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJF
eHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICAgICAgZ2VvbWV0cnku
Y2xpcChMYXlvdXRSZWN0KHBpeGVsU25hcHBlZFJlY3QpKTsKICAgICAgICAgUmVmUHRyPEltYWdl
PiBpbWFnZTsKICAgICAgICAgaWYgKCFnZW9tZXRyeS5kZXN0UmVjdCgpLmlzRW1wdHkoKSAmJiAo
aW1hZ2UgPSBiZ0ltYWdlLT5pbWFnZShiYWNrZ3JvdW5kT2JqZWN0ID8gYmFja2dyb3VuZE9iamVj
dCA6IHRoaXMsIGdlb21ldHJ5LnRpbGVTaXplKCkpKSkgewotICAgICAgICAgICAgYXV0byBjb21w
b3NpdGVPcCA9IG9wID09IENvbXBvc2l0ZVNvdXJjZU92ZXIgPyBiZ0xheWVyLmNvbXBvc2l0ZSgp
IDogb3A7CiAgICAgICAgICAgICBjb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNrKGJnTGF5ZXIu
bWFza1NvdXJjZVR5cGUoKSA9PSBNYXNrU291cmNlVHlwZTo6THVtaW5hbmNlKTsKIAogICAgICAg
ICAgICAgaWYgKGlzPEJpdG1hcEltYWdlPihpbWFnZSkpCiAgICAgICAgICAgICAgICAgZG93bmNh
c3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKHNldHRpbmdzKCkpOwog
Ci0gICAgICAgICAgICBhdXRvIGludGVycG9sYXRpb24gPSBjaG9vc2VJbnRlcnBvbGF0aW9uUXVh
bGl0eShjb250ZXh0LCAqaW1hZ2UsICZiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6ZSgpKTsKLSAg
ICAgICAgICAgIGF1dG8gZGVjb2RpbmdNb2RlID0gZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCpp
bWFnZSwgcGFpbnRJbmZvKTsKLSAgICAgICAgICAgIGF1dG8gZHJhd1Jlc3VsdCA9IGNvbnRleHQu
ZHJhd1RpbGVkSW1hZ2UoKmltYWdlLCBnZW9tZXRyeS5kZXN0UmVjdCgpLCB0b0xheW91dFBvaW50
KGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSksIGdlb21ldHJ5LnRpbGVTaXplKCksIGdlb21ldHJ5
LnNwYWNlU2l6ZSgpLCB7IGNvbXBvc2l0ZU9wLCBiZ0xheWVyLmJsZW5kTW9kZSgpLCBkZWNvZGlu
Z01vZGUsIGludGVycG9sYXRpb24gfSk7CisgICAgICAgICAgICBJbWFnZVBhaW50aW5nT3B0aW9u
cyBvcHRpb25zID0geworICAgICAgICAgICAgICAgIG9wID09IENvbXBvc2l0ZVNvdXJjZU92ZXIg
PyBiZ0xheWVyLmNvbXBvc2l0ZSgpIDogb3AsCisgICAgICAgICAgICAgICAgYmdMYXllci5ibGVu
ZE1vZGUoKSwKKyAgICAgICAgICAgICAgICBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXcoKmltYWdl
LCBwYWludEluZm8pLAorICAgICAgICAgICAgICAgIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFn
ZSwKKyAgICAgICAgICAgICAgICBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0LCAq
aW1hZ2UsICZiZ0xheWVyLCBnZW9tZXRyeS50aWxlU2l6ZSgpKQorICAgICAgICAgICAgfTsKKwor
ICAgICAgICAgICAgYXV0byBkcmF3UmVzdWx0ID0gY29udGV4dC5kcmF3VGlsZWRJbWFnZSgqaW1h
Z2UsIGdlb21ldHJ5LmRlc3RSZWN0KCksIHRvTGF5b3V0UG9pbnQoZ2VvbWV0cnkucmVsYXRpdmVQ
aGFzZSgpKSwgZ2VvbWV0cnkudGlsZVNpemUoKSwgZ2VvbWV0cnkuc3BhY2VTaXplKCksIG9wdGlv
bnMpOwogICAgICAgICAgICAgaWYgKGRyYXdSZXN1bHQgPT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRS
ZXF1ZXN0RGVjb2RpbmcpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoYmdJbWFnZS0+aXNDYWNo
ZWRJbWFnZSgpKTsKICAgICAgICAgICAgICAgICBiZ0ltYWdlLT5jYWNoZWRJbWFnZSgpLT5hZGRD
bGllbnRXYWl0aW5nRm9yQXN5bmNEZWNvZGluZygqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMWIxMWUyZTNmMWNkMWVhNDdmODY3YTBlZDBk
ZDA4MGJhOGM5NzJjYS4uMjIwYjFhNjczNTkwZTZiYTdjMjhmZmJiMTkwYzEwODUwZWE0NmZmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMjAzOSwx
NiArMjAzOSw3IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6Y2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5
b3V0KCkgY29uc3QKIAogSW1hZ2VPcmllbnRhdGlvbiBSZW5kZXJFbGVtZW50OjppbWFnZU9yaWVu
dGF0aW9uKCkgY29uc3QKIHsKLSNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVD
VDJEKQotICAgIC8vIFRoaXMgY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgcG9ydHMgd2hpY2ggaG9u
b3IgdGhlIG9yaWVudGF0aW9uIGZsYWcgaW4gdGhlaXIgZHJhd2luZyBjb2RlLgotICAgIGlmIChk
b2N1bWVudCgpLmlzSW1hZ2VEb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gSW1hZ2VPcmllbnRh
dGlvbjo6RnJvbUltYWdlOwotI2VuZGlmCi0gICAgLy8gUmVzcGVjdCB0aGUgaW1hZ2UncyBvcmll
bnRhdGlvbiBpZiBpdCdzIGJlaW5nIHVzZWQgYXMgYSBmdWxsLXBhZ2UgaW1hZ2Ugb3IgaXQncwot
ICAgIC8vIGFuIDxpbWc+IGFuZCB0aGUgc2V0dGluZyB0byByZXNwZWN0IGl0IGV2ZXJ5d2hlcmUg
aXMgc2V0LgotICAgIGlmIChzZXR0aW5ncygpLnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KCkgJiYgaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCgpKSkKLSAgICAgICAgcmV0dXJuIElt
YWdlT3JpZW50YXRpb246OkZyb21JbWFnZTsKLSAgICByZXR1cm4gc3R5bGUoKS5pbWFnZU9yaWVu
dGF0aW9uKCk7CisgICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZTsKIH0KIAog
dm9pZCBSZW5kZXJFbGVtZW50OjphZGp1c3RGcmFnbWVudGVkRmxvd1N0YXRlT25Db250YWluaW5n
QmxvY2tDaGFuZ2VJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcAppbmRleCAzOTM1Y2I0NWExNGU2ZDc2ODc5YTVkNzE4ZTUwYTQwNWYzOTQ4YTgyLi4yNmFh
YTAzNzJlM2IzYjZiYjRiMzdlN2E0ZDhjNTc4ZjJkZTdlMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTYxNywxMSArNjE3LDkgQEAgSW1hZ2VEcmF3UmVz
dWx0IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBGbG9hdFJlY3QKICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsK
IAogICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCA9IGlzPEhUTUxJbWFnZUVsZW1l
bnQ+KGVsZW1lbnQoKSkgPyBkb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkpIDog
bnVsbHB0cjsKLSAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IGltYWdl
RWxlbWVudCA/IGltYWdlRWxlbWVudC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0ZVNv
dXJjZU92ZXI7CiAKICAgICAvLyBGSVhNRTogRG9jdW1lbnQgd2hlbiBpbWFnZSAhPSBpbWcuZ2V0
KCkuCiAgICAgSW1hZ2UqIGltYWdlID0gaW1hZ2VSZXNvdXJjZSgpLmltYWdlKCkuZ2V0KCk7Ci0g
ICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvbiA9IGltYWdlID8gY2hvb3NlSW50
ZXJwb2xhdGlvblF1YWxpdHkocGFpbnRJbmZvLmNvbnRleHQoKSwgKmltYWdlLCBpbWFnZSwgTGF5
b3V0U2l6ZShyZWN0LnNpemUoKSkpIDogSW50ZXJwb2xhdGlvbkRlZmF1bHQ7CiAKICNpZiBVU0Uo
Q0cpCiAgICAgaWYgKGlzPFBERkRvY3VtZW50SW1hZ2U+KGltYWdlKSkKQEAgLTYzMSw4ICs2Mjks
MTQgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QKICAgICBpZiAoaXM8Qml0bWFwSW1hZ2U+KGlt
YWdlKSkKICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNl
dHRpbmdzKHNldHRpbmdzKCkpOwogCi0gICAgYXV0byBkZWNvZGluZ01vZGUgPSBkZWNvZGluZ01v
ZGVGb3JJbWFnZURyYXcoKmltYWdlLCBwYWludEluZm8pOwotICAgIGF1dG8gZHJhd1Jlc3VsdCA9
IHBhaW50SW5mby5jb250ZXh0KCkuZHJhd0ltYWdlKCppbWcsIHJlY3QsIHsgY29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZTo6Tm9ybWFsLCBkZWNvZGluZ01vZGUsIGltYWdlT3JpZW50YXRpb24o
KSwgaW50ZXJwb2xhdGlvbiB9KTsKKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0g
eworICAgICAgICBpbWFnZUVsZW1lbnQgPyBpbWFnZUVsZW1lbnQtPmNvbXBvc2l0ZU9wZXJhdG9y
KCkgOiBDb21wb3NpdGVTb3VyY2VPdmVyLAorICAgICAgICBkZWNvZGluZ01vZGVGb3JJbWFnZURy
YXcoKmltYWdlLCBwYWludEluZm8pLAorICAgICAgICBpbWFnZU9yaWVudGF0aW9uKCksCisgICAg
ICAgIGltYWdlID8gY2hvb3NlSW50ZXJwb2xhdGlvblF1YWxpdHkocGFpbnRJbmZvLmNvbnRleHQo
KSwgKmltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUoKSkpIDogSW50ZXJwb2xhdGlv
bkRlZmF1bHQKKyAgICB9OworCisgICAgYXV0byBkcmF3UmVzdWx0ID0gcGFpbnRJbmZvLmNvbnRl
eHQoKS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgb3B0aW9ucyk7CiAgICAgaWYgKGRyYXdSZXN1bHQg
PT0gSW1hZ2VEcmF3UmVzdWx0OjpEaWRSZXF1ZXN0RGVjb2RpbmcpCiAgICAgICAgIGltYWdlUmVz
b3VyY2UoKS5jYWNoZWRJbWFnZSgpLT5hZGRDbGllbnRXYWl0aW5nRm9yQXN5bmNEZWNvZGluZygq
dGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggNjE0NTg1
MzQwM2I0NzdhZWM3MTFjOGRkNjJmODgzNjU0OTllMDJkNy4uOWFkOTM1OGM3MTFiYTIyMWMyZDky
YTVhNzk1OTlkYjU0MmI3ODVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3KCkg
Y29uc3Q7CiAKICAgICBib29sIGlzU1ZHSW1hZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9Ci0gICAgRmxvYXRTaXplIHNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ludHJpbnNp
Y1NpemU7IH0KKyAgICBGbG9hdFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmll
bnRhdGlvbjo6RnJvbUltYWdlKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ludHJpbnNpY1NpemU7
IH0KIAogICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFp
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5l
ci5jcHAKaW5kZXggZDcwYTY0MGM2YTA0OTFlN2UxNjdmOTRjMTgwZTI3OTFhMzFlYWM4YS4uZWFl
ZmMzMWU0N2QwMjE1MWQ2OTBjNWNkNjVmNWU4MzFiMzFhZjM2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwCkBAIC0yNyw3
ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRmxvYXRTaXplIFNWR0ltYWdlRm9y
Q29udGFpbmVyOjpzaXplKCkgY29uc3QKK0Zsb2F0U2l6ZSBTVkdJbWFnZUZvckNvbnRhaW5lcjo6
c2l6ZShJbWFnZU9yaWVudGF0aW9uKSBjb25zdAogewogICAgIEZsb2F0U2l6ZSBzY2FsZWRDb250
YWluZXJTaXplKG1fY29udGFpbmVyU2l6ZSk7CiAgICAgc2NhbGVkQ29udGFpbmVyU2l6ZS5zY2Fs
ZShtX2NvbnRhaW5lclpvb20pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHSW1hZ2VGb3JDb250YWluZXIuaAppbmRleCA1N2IyMDRkOTgzZmIwN2IxYTdlZDYxYTFhZmVi
NGViN2Y4YWEwZDQ0Li5lNjQ0ZjdhY2YzMGVjMjI0ZGY4NTE1ZDg3ZjcyYzJhZTFiYjM0YTVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWlu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWlu
ZXIuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU1ZHSW1hZ2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0
IGZpbmFsOworICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVu
dGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCB1c2VzQ29udGFpbmVy
U2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW1hZ2UtPnVzZXNDb250YWluZXJTaXplKCk7
IH0KICAgICBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lt
YWdlLT5oYXNSZWxhdGl2ZVdpZHRoKCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMGFlNTRlNjQ5YjE2NGIzMWZhNzFi
ZTRiNGNkMzg1NjljYTA1NzI2Li40ZGUxZjdiZTM5ZTBjMTI5N2I5YmNhMDFiYjFhYjBjOGJiYjRi
YWE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTktMDgtMjggIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBFWElGIG9yaWVudGF0aW9uIHNo
b3VsZCBiZSByZXNwZWN0ZWQgd2hlbiByZW5kZXJpbmcgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDExMjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeGlzdGluZyB0ZXN0cyBhcmUgbWFkZSBy
ZWYtdGVzdHMuIE5ldyB0ZXN0cyB3ZXJlIGFkZGVkIHRvIGNvdmVyIG1vcmUKKyAgICAgICAgY2Fz
ZXMgZm9yIGRyYXdpbmcgaW1hZ2VzLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1jb21wb3NpdGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdl
LWRvY3VtZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9l
eGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWJhY2tncm91bmQtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52
YXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24tY2FudmFzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFn
ZS1vYmplY3QtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9i
amVjdC1maXQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1h
Z2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1zdmctZmVpbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFn
ZS1vcmllbnRhdGlvbi1zdmctaW1hZ2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTA4LTI4ICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgWExpbmtOYW1lcyBuYW1lc3BhY2Ug
aXMgcmVxdWlyZWQgYmVmb3JlIHRoZSAnaHJlZicgYXR0cmlidXRlIG9mIFNWRyBhbmltYXRlIGVs
ZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMTZiMTU4YmVjNTZjMTllMjY5ODVkZTAyODQ4NDZjNDkyMjVkYWYyYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCBy
ZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBy
dW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLgotCi0KLUZsaXBwZWQgaG9yaXpvbnRhbGx5
IAotUm90YXRlZCAxODDCsCAKLUZsaXBwZWQgdmVydGljYWxseSAKLQotUm90YXRlZCA5MMKwIEND
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDC
sCBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5ICAKLVJvdGF0ZWQgOTDCsCBDVyAKLWltZzEgc2l6
ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzMgc2l6ZSA9
IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzUgc2l6ZSA9IDUw
cHggYnkgMTAwcHgKLWltZzYgc2l6ZSA9IDUwcHggYnkgMTAwcHgKLWltZzcgc2l6ZSA9IDUwcHgg
YnkgMTAwcHgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50
YXRpb24tY29tcG9zaXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1jb21wb3NpdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4
Y2ZmMDlhNDcyZjRiOTEwYzFmOWVkZTU2NTBlZWJhMjMwNTJkZTEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbih0cnVl
KTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1
ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKLX0KLQotZnVuY3Rpb24gaW1hZ2VT
aXplKGVsKSB7Ci0gICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShlbCk7Ci0gICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRl
ZFN0eWxlLmhlaWdodDsKLX0KLQotCi1mdW5jdGlvbiBsb2FkKCkgewotICAgIGZvcih2YXIgaSA9
IDE7IGkgPD0gNzsgaSsrKQotICAgICAgICBsb2coImltZyIgKyBpICsgIiBzaXplID0gIiArIGlt
YWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIiArIGkpKSkKLX0KLQotPC9zY3Jp
cHQ+Ci08c3R5bGU+Ci1pbWcgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsgfQot
ZGl2IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIwcHg7IG1hcmdpbi1i
b3R0b206IDEwcHg7IHdpZHRoOiAxMDBweDsgdmVydGljYWwtYWxpZ246IHRvcDsgfQotPC9zdHls
ZT4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLTxiPlRoZSBpbWFnZXMgc2hvdWxk
IGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLiBUaGlzIHRlc3Qg
Y2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFudWFsbHkgc2V0dGluZyBX
ZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVlKS48L2I+PGJyPjxicj4K
LTxkaXY+PGltZyBpZD0iaW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVy
LmpwZyI+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzIi
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjxicj5Sb3RhdGVkIDE4
MCZkZWc7PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzMiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNC1sb2wuanBnIj48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+Ci08
ZGl2PjxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5q
cGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4K
LTxkaXY+PGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1
LmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNiIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+PGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IDwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc3
IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi1jc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmll
bnRhdGlvbi1jc3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
MDIyNDViNjBiYmI4ZDJkMTE5ZTllMDdlODMwNWJkNjMxMTg1NjEzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4
aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICsw
LDAgQEAKLU5vbmUgb2YgdGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZC4gVGhpcyB0ZXN0IGlz
IG9ubHkgdmFsaWQgd2hlbiBydW4gd2l0aCB0ZXN0UnVubmVyIChvciB3aXRoIFdlYktpdFNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIG1hbnVhbGx5IHNldCB0byB0cnVlKS4KLQotCi1Ob3Jt
YWwgCi1GbGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQgMTgwwrAgCi1GbGlwcGVkIHZlcnRp
Y2FsbHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0
ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJv
dGF0ZWQgOTDCsCBDVyAKLQotUm90YXRlZCA5MMKwIENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5
IAotUm90YXRlZCA5MMKwIENDVyAKLVJvdGF0ZWQgOTDCsCBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNh
bGx5IAotUm90YXRlZCA5MMKwIENXIAotCi1VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpIAotaW1n
MSBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMiBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMyBz
aXplID0gMTAwcHggYnkgNTBweAotaW1nNCBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNSBzaXpl
ID0gMTAwcHggYnkgNTBweAotaW1nNiBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNyBzaXplID0g
MTAwcHggYnkgNTBweAotaW1nOCBzaXplID0gMTAwcHggYnkgNTBweAotaW1nOSBzaXplID0gMTAw
cHggYnkgMTAwcHgKLWltZzEwIHNpemUgPSAxMDBweCBieSAxMDBweAotaW1nMTEgc2l6ZSA9IDEw
MHB4IGJ5IDEwMHB4Ci1pbWcxMiBzaXplID0gMTAwcHggYnkgMTAwcHgKLWltZzEzIHNpemUgPSAx
MDBweCBieSA1MHB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWNzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi1jc3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQxN2Y1NTg5MjEz
MzY0NmQzODY2YTBiYWVlYjM2MTY4MmViMWZiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLWNzcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotCi1mdW5jdGlvbiBs
b2coc3RyKSB7Ci0gICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAg
ICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2YXIg
Y29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0gICAgY29uc29s
ZS5hcHBlbmRDaGlsZChsaSk7Ci19Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewotICAgIHZh
ciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAgIHJldHVy
biBjb21wdXRlZFN0eWxlLndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7Ci19
Ci0KLQotZnVuY3Rpb24gbG9hZCgpIHsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDEzOyBpKysp
Ci0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VTaXplKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWRp
di5pbWFnZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7
IH0KLWRpdi5jb250YWluZXIgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDog
MjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjog
dG9wOyB9Ci1pbWcgeyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJhY2tncm91bmQtcmVw
ZWF0OiBuby1yZXBlYXQ7IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImxvYWQo
KSI+Ci08Yj5Ob25lIG9mIHRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQuIFRoaXMgdGVzdCBp
cyBvbmx5IHZhbGlkIHdoZW4gcnVuIHdpdGggdGVzdFJ1bm5lciAob3Igd2l0aCBXZWJLaXRTaG91
bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBtYW51YWxseSBzZXQgdG8gdHJ1ZSkuPC9iPjxicj48
YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMSIg
c3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyki
PjwvZGl2Pjxicj5Ob3JtYWw8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFz
cz0iaW1hZ2UiIGlkPSJpbWcyIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTItdXIuanBnKSI+PC9kaXY+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9kaXY+
Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMyIgc3R5
bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZykiPjwv
ZGl2Pjxicj5Sb3RhdGVkIDE4MCZkZWc7PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxk
aXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nNCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rpdj48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5
PC9kaXY+Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBp
ZD0iaW1nNSIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01
LWx1LmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRp
Y2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlk
PSJpbWc2IiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYt
cnUuanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWc3IiBzdHlsZT0iY29udGVudDog
dXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnKSI+PC9kaXY+PGJyPlJvdGF0
ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJj
b250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nOCIgc3R5bGU9ImNvbnRlbnQ6IHVy
bChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcpIj48L2Rpdj48YnI+Um90YXRl
ZCA5MCZkZWc7IENXPC9kaXY+Ci08YnI+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9
ImltZzkiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNS1sdS5qcGcpIj48L2ltZz48YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzEw
IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTYtcnUuanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+PGltZyBpZD0iaW1nMTEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1
cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2ltZz48YnI+Um90YXRl
ZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+PGltZyBpZD0iaW1nMTIiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDVzwvZGl2PgotPGJyPgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJp
bWFnZSIgaWQ9ImltZzEzIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTktdS5qcGcpIj48L2Rpdj48YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKTwvZGl2
PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY0ODgzMjNmNDk0YTA2Yjc0OTBhZjYw
Mzk3ZDE0ZjkyMDFhZTNhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSBpbWFnZXMgc2hvdWxkIGJl
IHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLiBUaGlzIHRlc3QgY2Fu
IG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFudWFsbHkgc2V0dGluZyBXZWJL
aXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVlKS4KLQotCi1Ob3JtYWwgCi1G
bGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQgMTgwwrAgCi1GbGlwcGVkIHZlcnRpY2FsbHkg
Ci0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0ZWQgOTDC
sCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAgCi1Sb3RhdGVk
IDkwwrAgQ1cgCi0KLVVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkgCi1pbWcxIHNpemUgPSAxMDBw
eCBieSA1MHB4Ci1pbWcyIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWczIHNpemUgPSAxMDBweCBi
eSA1MHB4Ci1pbWc0IHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWc1IHNpemUgPSA1MHB4IGJ5IDEw
MHB4Ci1pbWc2IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc3IHNpemUgPSA1MHB4IGJ5IDEwMHB4
Ci1pbWc4IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc5IHNpemUgPSAxMDBweCBieSA1MHB4CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdl
LWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3Jp
ZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0NzMxM2JlNTIzNGY1ZTI4NjdhZDRkNTYwMDZhNTM1ZTBlZmM2ZjQyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1UaGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVk
IHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi4gSW4gaW1hZ2UgZG9jdW1lbnRzLCB0
aGlzIGhhcHBlbnMgaW5kZXBlbmRlbnQgb2YgV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24uCi0KLSAgICAKLSAgICAKLSAKLVBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1hZ2UtZG9jdW1lbnQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTIxYjNlNTU4Yjk0NDAyOGZhNmQwZmE1OTQ5ZTU4
NzY2MGFhMDhkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRl
c3Qgb25seSBwYXNzZXMgaW4gRFJULiBJbiBicm93c2VycywgdGhlIGNyb3NzLWlmcmFtZSBkb20g
aW5zcGVjdGlvbiB1c3VhbGx5IGNhdXNlcyBhIHNlY3VyaXR5IGV4Y2VwdGlvbi4KLSAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhzdHIpIHsKLSAgICB2
YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotICAgIGxpLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOwotICAgIHZhciBjb25zb2xlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxp
KTsKLX0KLQotZnVuY3Rpb24gaW1hZ2VTaXplKG5hbWUpIHsKLSAgICB2YXIgaW1nID0gd2luZG93
LmZyYW1lc1tuYW1lXS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKTsKLSAgICByZXR1cm4g
W2ltZy5vZmZzZXRXaWR0aCwgaW1nLm9mZnNldEhlaWdodF07Ci19Ci0KLQotZnVuY3Rpb24gbG9h
ZCgpIHsKLSAgICB2YXIgZXhwZWN0ZWQgPSBbCi0gICAgICBbMTAwLCA1MF0sIFsxMDAsIDUwXSwg
WzEwMCwgNTBdLCBbMTAwLCA1MF0sIAotICAgICAgWzUwLCAxMDBdLCBbNTAsIDEwMF0sIFs1MCwg
MTAwXSwgWzUwLCAxMDBdLCAKLSAgICAgIFsxMDAsIDUwXSwKLSAgICBdOwotICAgIHZhciBzdWNj
ZXNzID0gdHJ1ZTsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDk7IGkrKykgewotICAgICAgICB2
YXIgcyA9IGltYWdlU2l6ZSgiaW1nIiArIGkpOwotICAgICAgICBpZiAoc1swXSAhPT0gZXhwZWN0
ZWRbaSAtIDFdWzBdIHx8IHNbMV0gIT09IGV4cGVjdGVkW2kgLSAxXVsxXSkKLSAgICAgICAgICAg
IHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICB9Ci0gICAgbG9nKHN1Y2Nlc3MgPyAiUEFTUyIgOiAiRkFJ
TCIpOwotfQotCi08L3NjcmlwdD4KLTxzdHlsZT4KLWlmcmFtZSB7IGRpc3BsYXk6IGlubGluZS1i
bG9jazsgbWFyZ2luLXJpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB3aWR0aDogMTIw
cHg7IGhlaWdodDogMTEwcHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGJvcmRlcjogMXB4IHNvbGlk
IGJsYWNrOyB9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+
VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50
YXRpb24uIEluIGltYWdlIGRvY3VtZW50cywgdGhpcyBoYXBwZW5zIGluZGVwZW5kZW50IG9mIFdl
YktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLjwvYj48YnI+PGJyPgotPGlmcmFtZSBu
YW1lPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBmcmFt
ZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWcyIiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTItdXIuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFt
ZSBuYW1lPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIiBm
cmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWc0IiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxi
cj4KLTxpZnJhbWUgbmFtZT0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01
LWx1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNiIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lm
cmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nOCIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciIGZyYW1lYm9yZGVyPTA+
PC9pZnJhbWU+Ci08YnI+Ci08aWZyYW1lIG5hbWU9ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tOS11LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTx1bCBp
ZD0iY29uc29sZSI+PC91bD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwZDhjODNiMGQ1ZjNlZDVkZTkzMDliODYyNzRmZTE3MTRiZjA1YThjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKHRydWUpOwot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsK
LQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3Ry
KSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
OwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5jdGlvbiBpbWFnZVNpemUo
ZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVs
KTsKLSAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkgIiArIGNvbXB1dGVkU3R5
bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAgZm9yKHZhciBpID0gMTsg
aSA8PSA5OyBpKyspCi0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VT
aXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQotfQotCi08L3NjcmlwdD4K
LTxzdHlsZT4KLWltZyB7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci1kaXYgeyBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsg
d2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci08L3N0eWxlPgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCBy
ZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4gb25seSBiZSBy
dW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktpdFNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLjwvYj48YnI+PGJyPgotPGRpdj48aW1nIGlk
PSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj48YnI+Tm9y
bWFsPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMi11ci5qcGciPjxicj5GbGlwcGVkIGhvcml6b250YWxseTwvZGl2PgotPGRpdj48aW1n
IGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj48YnI+
Um90YXRlZCAxODAmZGVnOzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PGJyPkZsaXBwZWQgdmVydGljYWxseTwvZGl2
PgotPGJyPgotPGRpdj48aW1nIGlkPSJpbWc1IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTUtbHUuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNh
bGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNi1ydS5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXPC9kaXY+Ci08ZGl2PjxpbWcg
aWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPjxicj5S
b3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSA8L2Rpdj4KLTxkaXY+PGlt
ZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciPjxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTxkaXY+PGltZyBpZD0iaW1nOSIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj48YnI+VW5kZWZpbmVkIChpbnZh
bGlkIHZhbHVlKTwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0
OWE1ZWQ1NTAwMDljMzcxNDBkODQxMTQ2ZWEwZjlkNGYzMmM0Y2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+Cisg
ICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAg
ICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisg
ICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAg
fQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVp
Z2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJw
eDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRo
ZSBjc3MgYmFja2dyb3VuZCBpbWFnZXMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3BlY3RpbmcgdGhl
aXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVY
KC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zv
cm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xh
dGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNs
YXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQor
ICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
aW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5YzNjYTQ1
M2M2MTFlNDU4MTVlYjc2OGM1MjUwYTJhNDMxOGExYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5l
ciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0
OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5pbWFnZSB7
CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICBiYWNrZ3JvdW5kLXJl
cGVhdDogbm8tcmVwZWF0OworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBkaXYudmVydGlj
YWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9
Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBiYWNrZ3JvdW5kIGltYWdlcyBzaG91
bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAg
ICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJy
Pk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1
cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rpdj4KKyAgICAgICAg
PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImJh
Y2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyki
PjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250
YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tNC1sb2wuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZl
cnRpY2FsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NX
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwi
IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
OC1sbG8uanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8
L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5V
bmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZh
cy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjMTAyNjgxMDc2NTc5ZDY5YmM4Yzk2YjdmMWFi
MWY1ZjM3Mjc5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAg
ICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAg
dmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAg
ICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0
aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAg
IH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8
L3N0eWxlPgorPGJvZHk+CisgICAgPGI+Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmRyYXdJbWFn
ZSgpIHNob3VsZCByZXNwZWN0IHRoZSBpbWFnZSBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8
YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3Jt
YWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAg
PGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90
YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAg
PC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5V
bmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jYW52YXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhkYTQxODI3OTU3NjU2ZmU2YjM0ZGYzNjhiOWI1N2MxMDAwMDRjMTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1j
YW52YXMuaHRtbApAQCAtMCwwICsxLDEyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+Cisg
ICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAg
ICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQor
ICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0
OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsK
KyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIGNhbnZhcy5ob3Jpem9udGFsIHsKKyAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIGNh
bnZhcy52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEw
MHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuZHJhd0ltYWdlKCkgc2hvdWxkIHJlc3BlY3QgdGhlIGltYWdlIEVYSUYgb3JpZW50YXRp
b24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMg
Y2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXMxIj48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNh
bnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczIiPjwvY2FudmFzPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwiIGlkPSJjYW52YXMzIj48
L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9Imhvcml6b250YWwi
IGlkPSJjYW52YXM0Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcyA9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczUiPjwvY2FudmFzPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGlj
YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0idmVydGlj
YWwiIGlkPSJjYW52YXM2Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFz
IGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9ImNhbnZhczciPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNhbCIgaWQ9
ImNhbnZhczgiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNh
bnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczkiPjwvY2FudmFzPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4K
KyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgd2luZG93Lm9u
bG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIG5hbWVzID0gWworICAgICAgICAg
ICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIs
ICBpZCA6ICJjYW52YXMxIiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIsICBpZCA6ICJjYW52YXMyIiB9LAorICAgICAg
ICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpw
ZyIsICBpZCA6ICJjYW52YXMzIiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciLCBpZCA6ICJjYW52YXM0IiB9LAorICAg
ICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1
LmpwZyIsICBpZCA6ICJjYW52YXM1IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIsICBpZCA6ICJjYW52YXM2IiB9LAor
ICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03
LXJsLmpwZyIsICBpZCA6ICJjYW52YXM3IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6
ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciLCBpZCA6ICJjYW52YXM4IiB9
LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi05LXUuanBnIiwgICBpZCA6ICJjYW52YXM5IiB9CisgICAgICAgICAgICBdOworCisgICAgICAg
ICAgICB2YXIgZHJhd0NvdW50ID0gMDsKKworICAgICAgICAgICAgbmFtZXMuZm9yRWFjaChmdW5j
dGlvbihuYW1lKSB7CisgICAgICAgICAgICAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlOworICAg
ICAgICAgICAgICAgIGltYWdlLnNyYyA9IG5hbWUucmVzb3VyY2U7CisgICAgICAgICAgICAgICAg
aW1hZ2UuZGVjb2RlKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCBjYW52
YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lLmlkKTsKKyAgICAgICAgICAgICAgICAg
ICAgY2FudmFzLndpZHRoID0gaW1hZ2Uud2lkdGg7CisgICAgICAgICAgICAgICAgICAgIGNhbnZh
cy5oZWlnaHQgPSBpbWFnZS5oZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb250ZXh0
ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQu
ZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoKytkcmF3Q291bnQgPT0gbmFtZXMubGVuZ3RoKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQwODVhODIyNjNiMmJmNDM4MjgzNDQ3ZjVhNzJjODQ0OWUzZDcxNWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlv
bi1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRv
bTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWdu
OiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsK
KyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAg
ICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsK
KyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5
PgorICAgIDxiPlRoZSBjc3MgY29udGVudCBpbWFnZXMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3Bl
Y3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVko
LTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxl
WSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlk
IHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1OTE4
ZWEzMjdiY2ZlYjliOGNjZDU3YzdhNDM4MDc1ODFjYmE0MDgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWwKQEAg
LTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5l
ciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0
OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5pbWFnZSB7
CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBkaXYuaG9yaXpv
bnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAg
IH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGNzcyBjb250
ZW50IGltYWdlcyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVu
dGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50
OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rpdj4KKyAgICAg
ICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJjb250ZW50OiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJy
PkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRl
bnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZykiPjwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJj
b250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+PC9kaXY+
CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVy
dGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1s
dS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iY29udGVudDogdXJsKHJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1
cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGcpIj48L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Ug
dmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
OC1sbG8uanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8
L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQg
KGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzdhMTM3MWYyN2M0NDY4NTA2YjE0OTkxOWZkMzMyNjE1
NTFjYjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
b3JpZW50YXRpb24tZG9jdW1lbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBt
YXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVy
dGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3
aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNh
bCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0K
KyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0
eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBJbWFnZURvY3VtZW50cyBzaG91bGQg
YmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8
YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3Jt
YWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAg
PGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90
YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAg
PC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5V
bmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1kb2N1bWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tZG9jdW1lbnQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41Mjk1ZjE5ZGRmNzdjZjY2YzM4YTkyMzA0YmM4OWIwOTc2OTU5ZTAzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5
bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4
OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cisg
ICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAg
aGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDog
NTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaWZyYW1lIHsKKyAgICAg
ICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorICAgIGlmcmFtZS5ob3Jpem9udGFs
IHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQor
ICAgIGlmcmFtZS52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9m
IEltYWdlRG9jdW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYg
b3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8
aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj48L2lmcmFtZT4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjwvaWZyYW1lPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9Im9uRnJh
bWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj48
L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBv
bmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTQtbG9sLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpZnJh
bWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJ2ZXJ0aWNhbCIgb25s
b2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02
LXJ1LmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9InZl
cnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTctcmwuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2Fs
Ij4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVM
b2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PC9p
ZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisg
ICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGlmcmFtZSBjbGFzcz0iaG9y
aXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi05LXUuanBnIj48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICB2YXIgaUZyYW1lTG9hZGVkQ291bnQgPSAw
OworCisgICAgICAgICBmdW5jdGlvbiBvbkZyYW1lTG9hZCgpIHsKKyAgICAgICAgICAgIGlmICgr
K2lGcmFtZUxvYWRlZENvdW50ID09IDkpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1h
Z2Utb2JqZWN0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODRlODU4
ZTI0MDJhMjE4NmYyYjAyYmU3YzJkMDM5YWZmZGVkM2ZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0LWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAg
ZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAg
bWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAg
ICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQor
ICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0
OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsK
KyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVy
OiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBp
bWFnZXMgb2YgJmx0O29iamVjdCZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIHJlc3Bl
Y3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFs
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVko
LTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHls
ZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxl
WSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cg
YW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlk
IHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Utb2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNGQ3MjgwMjUyYTAwNDY0NTUyYjk4NzIzZWU0MDdlZmI3NjRmZDcwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1hZ2Ut
b2JqZWN0Lmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+Cisg
ICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAg
ICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisg
ICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAg
fQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVp
Z2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJw
eDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgb2JqZWN0IHsKKyAgICAgICAg
Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxi
PlRoZSBpbWFnZXMgb2YgJmx0O29iamVjdCZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVk
IHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPG9i
amVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0y
LXVyLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBo
b3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0i
aW1hZ2UvanBlZyIgZGF0YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjwv
b2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0
YT0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj48L29iamVjdD4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNh
bGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVn
IiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyI+PC9vYmplY3Q+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRp
Y2FsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRh
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciPjwvb2JqZWN0PgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAg
IDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJo
b3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxvYmplY3QgdHlwZT0iaW1hZ2UvanBlZyIgZGF0YT0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50
YXRpb24taW1nLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjZkNDY3NWEwOTRkOTNmMzBiNDAzNzlkOTRlODk2ZDFiOTk5YjExOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxl
PgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cisg
ICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7
IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwor
ICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAg
IGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6
IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGltZyB7CisgICAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8
Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCBy
ZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpv
bnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgt
MSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nMyIgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4
MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEp
IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9
ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0
cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0i
aW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90
YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgor
ICAgICAgICAgICAgPGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3Rh
dGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9Imlt
ZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4K
KyAgICA8YnI+CisgICAgPHVsIGlkPSJjb25zb2xlIj48L3VsPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hp
bGQobGkpOworICAgICAgICB9CisKKyAgICAgICAgIGZ1bmN0aW9uIGltYWdlU2l6ZShpbmRleCkg
eworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1n
IiArIGluZGV4KTsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZWxlbWVudCk7CisgICAgICAgICAgICBpZiAoZWxlbWVudC5wYXJlbnRFbGVt
ZW50LmNsYXNzTGlzdC5jb250YWlucygidmVydGljYWwiKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gY29tcHV0ZWRTdHlsZS5oZWlnaHQgKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLndpZHRoOwor
ICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRl
ZFN0eWxlLmhlaWdodDsKKyAgICAgICAgfQorCisgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIChldmVudCkgPT4geworICAgICAgICAgICAgZm9yKHZhciBpID0gMTsgaSA8
PSA5OyBpKyspCisgICAgICAgICAgICAgICAgbG9nKCJpbWciICsgaSArICIgc2l6ZSA9ICIgKyBp
bWFnZVNpemUoaSkpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0LWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1v
YmplY3QtZml0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE4NzI4MTJjZWUzMzlkZDMxMzQy
OWU2MDU0YjRkOTFmN2U2MjVhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50LW9iamVjdC1maXQtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDc4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYu
Y29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJn
aW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAg
d2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAg
ZGl2LnNxdWFyZSB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxi
b2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZndDsgZWxlbWVudHMgd2l0aCBvYmpl
Y3QtZml0IHByb3BlcnR5IHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYg
b3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxkaXY+
CisgICAgICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCk7Ij4KKyAgICAgICAg
ICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFy
ZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KSBzY2FsZVgoLTEpOyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJz
cXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCkgcm90YXRlKDE4
MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHNjYWxl
WCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9y
bTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVy
dGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAy
NXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0
ZSgwLCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCkgcm90YXRl
KDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KDAsIDI1cHgpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZh
bGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQt
b2JqZWN0LWZpdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNTM5YTU1OGUwMWI5NTNmZjljN2Y1Y2ZjMDdm
MTc1MWJkNjdhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1pbWctZWxlbWVudC1vYmplY3QtZml0Lmh0bWwKQEAgLTAsMCArMSw4
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAK
KyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisg
ICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5zcXVhcmUgeworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBpbWcgeworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47
CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgJmx0O2ltZyZn
dDsgZWxlbWVudHMgd2l0aCBvYmplY3QtZml0IHByb3BlcnR5IHNob3VsZCBiZSByZW5kZXJlZCBy
ZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJl
Ij4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4K
KyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpw
ZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZk
ZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi00LWxvbC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTYtcnUuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpw
ZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAg
PC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tOS11LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZp
bmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24taW1nLWVsZW1lbnQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLWltZy1lbGVtZW50Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWZlOTZjNWRlMmRiNWNlYmFlYjg3MjRmMDMzOWRiODM3NGIzMjBkZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLWltZy1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206
IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjog
dG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDI7Cisg
ICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAg
d2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGltZyB7Cisg
ICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4K
KyAgICA8Yj5UaGUgaW1hZ2VzIG9mICZsdDtpbWcmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5k
ZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAg
ICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5O
b3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzIiIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIu
anBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGci
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9Imlt
ZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8aW1nIGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTctcmwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
bWcgaWQ9ImltZzgiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rp
dj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc5IiBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PHVsIGlkPSJjb25zb2xlIj48L3VsPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIGxv
ZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxp
Iik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShz
dHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgICAg
ICB9CisKKyAgICAgICAgICBmdW5jdGlvbiBpbWFnZVNpemUoZWwpIHsKKyAgICAgICAgICAgIHZh
ciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOworICAgICAgICAg
ICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhl
aWdodDsKKyAgICAgICAgfQorCisgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIChldmVudCkgPT4geworICAgICAgICAgICAgZm9yKHZhciBpID0gMTsgaSA8PSA5OyBpKysp
CisgICAgICAgICAgICAgICAgbG9nKCJpbWciICsgaSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIgKyBpKSkpOworICAgICAgICB9KTsKKyAgICA8
L3NjcmlwdD4KKzwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
c3ZnLWZlaW1hZ2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTBiOTJmM2FlNWEzOWNlNjNm
MTAyZDM3NTJlMTY0NjcxNDdiNTFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVy
IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6
IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEw
MHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6
b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAg
fQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWln
aHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiBTVkcg
Jmx0O2ZlaW1hZ2UmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRo
ZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxl
WCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNs
YXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5z
bGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkK
KyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZjI3
YjRiNmYwODEwZWY1MWJhMjg1NDIwNzc4YjIzZDc1NTZiNWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1s
CkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29u
dGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4t
cmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhv
cml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7Cisg
ICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBo
ZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBzdmcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsKKyAgICB9CisgICAgc3ZnLmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgc3ZnLnZlcnRpY2FsIHsKKyAg
ICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHls
ZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgU1ZHICZsdDtmZWltYWdlJmd0OyBlbGVt
ZW50cyBzaG91bGQgYmUgcmVuZGVyZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9u
LjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nMSI+CisgICAgICAg
ICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+CisgICAgICAg
ICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhl
aWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzEpOyIvPgorICAgICAgICAgICAgPC9z
dmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8
ZmlsdGVyIGlkPSJpbWcyIj4KKyAgICAgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIgeT0i
MCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMi11ci5qcGciLz4KKyAgICAgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAgICAgICAg
ICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVybCgj
aW1nMik7Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2
ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nMyI+
CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBo
ZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIi8+
CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9
IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzMpOyIvPgorICAgICAg
ICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVn
OworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNCI+CisgICAgICAgICAgICAgICAgICAg
IDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIvPgorICAgICAgICAgICAgICAgIDwv
ZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUi
IHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc0KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAg
ICAgICAgPGZpbHRlciBpZD0iaW1nNSI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9
IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTUtbHUuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAg
ICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRl
cjp1cmwoI2ltZzUpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAg
ICAgICAgIDxmaWx0ZXIgaWQ9ImltZzYiPgorICAgICAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4
PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi02LXJ1LmpwZyIvPgorICAgICAgICAgICAgICAgIDwvZmlsdGVyPgorICAg
ICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0
ZXI6dXJsKCNpbWc2KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAg
ICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1n
NyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAl
IiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBn
Ii8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lk
dGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzcpOyIvPgorICAg
ICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAg
ICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1n
OCI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAl
IiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpw
ZyIvPgorICAgICAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdp
ZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc4KTsiLz4KKyAg
ICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxzdmcgY2xh
c3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzkiPgorICAg
ICAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0
PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIi8+CisgICAg
ICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUi
IGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzkpOyIvPgorICAgICAgICAgICAg
PC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZh
bHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tc3ZnLWltYWdlLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE4ZjlkZDUwY2Y1NjYxMzdmYTAxZmZjMDRhZmYwMGYw
YTIwODJmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdl
LW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAg
IG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2
ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAg
IHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRp
Y2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAg
fQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwv
c3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIFNWRyAmbHQ7aW1hZ2UmZ3Q7IGVs
ZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRp
b24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBz
Y2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9u
dGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4MGRl
Zyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4MGRl
Zyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1
cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSBy
b3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0y
NXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkg
cm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9u
LXN2Zy1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tc3ZnLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZlNzViMTZjMDM2M2EwNzkxMDhiMjgxM2U4
OTlhNjJjZDAxNjA0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMTA5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1h
cmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGlj
YWwtYWxpZ246IHRvcDsKKyAgICB9CisKKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdp
ZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2Fs
IHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQor
ICAgIHN2ZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBz
dmcuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1
MHB4OworICAgIH0KKyAgICBzdmcudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhl
IGltYWdlcyBvZiBTVkcgJmx0O2ltYWdlJmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcmVuZGVyZWQg
cmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6
b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0i
MTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVy
LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxzdmcg
Y2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAwJSIg
aGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyIv
PgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRl
ZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIvPgorICAgICAg
ICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNh
bGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAw
JSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciLz4KKyAgICAgICAg
ICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBD
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxz
dmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUi
IGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGci
Lz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2
ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIi8+CisgICAgICAg
ICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxz
dmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUi
IGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBn
Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8
c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11Lmpw
ZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5k
ZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0Zjc1ZjRmZDhlOWI3MGExYzYyNTEx
ZGI2ZjhiNWFkOWI4YjcwYWYwLi41MjFhZDBhZmI2NzhmZmNmMWEwMzQwZmRkNGRhNTg5MjZkZTU1
MDc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjky
Nyw4ICsyOTI3LDYgQEAgd2Via2l0Lm9yZy9iLzEyMDU5NiBjc3MzL21hc2tpbmcvbWFzay1yZXBl
YXQtc3BhY2UtY29udGVudC5odG1sIFsgSW1hZ2VPbmx5RmFpbHUKIAogd2Via2l0Lm9yZy9iLzEy
MDgzOSBsZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL2Nyb3NzLWZhZGUtYmFja2dy
b3VuZC1pbWFnZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xMjE5
MDUgZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtp
dC5vcmcvYi8xODA1ODEgY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS92YWx1ZXMvc2hhcGUtbWFy
Z2luLTAwMS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgwNTgxIGNzczMvc2hhcGVz
L3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW91dHNpZGUtY2lyY2xlLTAwNC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMTgwNTgxIGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFs
dWVzL3NoYXBlLW91dHNpZGUtY2lyY2xlLTAwNS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDMzYmY2Yjc2MzgwNmYzMGU5YTdm
MzJmMTEwMmU1OGNmMTJmYzM1ODUuLmQzNTA0N2EwMzczNGJmMjM3YzIwMzM4NGY2MWM3MGNlNzM0
NTI3Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
ODExLDExICsyODExLDkgQEAgZmFzdC9oaXN0b3J5L2xvY2F0aW9uLXJlcGxhY2UtaGFzaC5odG1s
IFsgU2tpcCBdCiBmYXN0L2hpc3Rvcnkvc2F2ZXMtc3RhdGUtYWZ0ZXItZnJhZ21lbnQtbmF2Lmh0
bWwgWyBTa2lwIF0KIAogZmFzdC9pbWFnZXMvaW1hZ2UtY29udHJvbHMtYmFzaWMuaHRtbCBbIEZh
aWx1cmUgXQotZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDA1MTYgWyBEZWJ1ZyBdIGZhc3QvaW1hZ2VzL2xhcmdl
LXNpemUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNraXAgXSAgIyBDcmFzaGluZwogZmFzdC9pbWFnZXMv
cGRmLWFzLWltYWdlLXdpdGgtYW5ub3RhdGlvbnMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
ZmFzdC9pbWFnZXMvc3VwcG9ydC1icm9rZW4taW1hZ2UtZGVsZWdhdGUuaHRtbCBbIEZhaWx1cmUg
XQotZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIFsgRmFpbHVyZSBdCiAKIGZhc3Qv
aW5saW5lL3Bvc2l0aW9uZWRMaWZldGltZS5odG1sIFsgRmFpbHVyZSBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377807</attachid>
            <date>2019-08-31 14:45:25 -0700</date>
            <delta_ts>2019-08-31 17:47:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201123-20190831144524.patch</filename>
            <type>text/plain</type>
            <size>165773</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFiZGI5YzFjYTdlNGY3
YzEwNDIxY2IwZTIzZDhlOGNhZDQ5ZDYzZS4uYzBiZDRmNDUzY2Q1YmNhNzBkNjBmMGYxNDA4MjEx
Y2E5ZDFjNGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDE5LTA4LTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRVhJRiBv
cmllbnRhdGlvbiBzaG91bGQgYmUgcmVzcGVjdGVkIHdoZW4gcmVuZGVyaW5nIGltYWdlcyAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTEyMworCisg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAtLSBJbWFnZTo6c2l6
ZSgpIHdpbGwgcmV0dXJuIHRoZSByZW5kZXJlZCBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZQorICAg
ICAgICAgICBvcmllbnRhdGlvbi4gSWYgaW1hZ2Ugb3JpZW50YXRpb24gaXMgRnJvbUltYWdlLCBJ
bWFnZVNvdXJjZSB3aWxsIHF1ZXJ5CisgICAgICAgICAgIHRoZSBhY3R1YWwgaW1hZ2Ugb3JpZW50
YXRpb24gZnJvbSB0aGUgSW1hZ2VEZWNvZGVyLiBUaGUgbG93IGxldmVsIEFQSXMKKyAgICAgICAg
ICAgbWlnaHQgdHJhbnNwb3NlIHRoZSBzaXplIGp1c3QgYmVmb3JlIGNhbGxpbmcgdGhlIHN5c3Rl
bSBBUEkgdG8gZHJhdworICAgICAgICAgICB0aGUgaW1hZ2UuCisKKyAgICAgICAgLS0gUmVuZGVy
RWxlbWVudDo6aW1hZ2VPcmllbnRhdGlvbigpIHdpbGwgcmV0dXJuIEltYWdlT3JpZW50YXRpb246
OkZyb21JbWFnZQorICAgICAgICAgICBmb3IgYWxsIGltYWdlcyBhbmQgZm9yIGFsbCBwb3J0cyB0
aWxsIHRoZSBDU1MgaW1hZ2Utb3JpZW50YXRpb24gc3BlY3MKKyAgICAgICAgICAgaXMgZmluYWxp
emVkLgorCisgICAgICAgIC0tIFRoZSBkZWZhdWx0IG9mIEltYWdlUGFpbnRpbmdPcHRpb25zIGFy
Z3VtZW50IG9mIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkKKyAgICAgICAgICAgd2lsbCBi
ZSBjaGFuZ2VkIHRvIHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0uCisKKyAgICAgICAg
LS0gSW1hZ2UgZWxlbWVudDogUmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoKSB3aWxsIHBhc3Mg
aW1hZ2VPcmllbnRhdGlvbigpCisgICAgICAgICAgIHdoaWNoIHJldHVybnMgSW1hZ2VPcmllbnRh
dGlvbjo6RnJvbUltYWdlIHRvIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkuCisKKyAgICAg
ICAgLS0gQ1NTIGJhY2tncm91bmQgaW1hZ2U6IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZp
bGxMYXllckV4dGVuZGVkIHdpbGwKKyAgICAgICAgICAgcGFzcyBJbWFnZU9yaWVudGF0aW9uOjpG
cm9tSW1hZ2UgYnkgZGVmYXVsdCB0byBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKCku
CisKKyAgICAgICAgLS0gSW1hZ2VzIG9uIGNhbnZhczogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6ZHJhd0ltYWdlKCkgd2lsbCBwYXNzCisgICAgICAgICAgIEltYWdlT3JpZW50YXRpb246
OkZyb21JbWFnZSBieSBkZWZhdWx0IHRvIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkuCisK
KyAgICAgICAgLS0gU1ZHIGltYWdlczogUmVuZGVyU1ZHSW1hZ2U6OnBhaW50Rm9yZWdyb3VuZCgp
IGNhbGxzIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKCkKKyAgICAgICAgICAgd2l0aCB0aGUg
ZGVmYXVsdCBJbWFnZVBhaW50aW5nT3B0aW9ucyB3aGljaCBpcyBub3cgeyBJbWFnZU9yaWVudGF0
aW9uOjpGcm9tSW1hZ2UgfS4KKworICAgICAgICAtLSBTVkcgZmVJbWFnZSBmaWx0ZXJzOiBGRUlt
YWdlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBjYWxscworICAgICAgICAgICBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZSgpIHdpdGggdGhlIGRlZmF1bHQgSW1hZ2VQYWludGluZ09wdGlvbnMK
KyAgICAgICAgICAgd2hpY2ggaXMgbm93IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0u
CisKKyAgICAgICAgLS0gSW1hZ2VEb2N1bWVudDogUmVuZGVyRWxlbWVudDo6aW1hZ2VPcmllbnRh
dGlvbigpIHJldHVybnMgRnJvbUltYWdlCisgICAgICAgICAgIGFsd2F5cyBhbmQgZm9yIGFsbCBw
b3J0cy4KKworICAgICAgICBUZXN0czogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1iYWNr
Z3JvdW5kLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24t
Y2FudmFzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24t
Y29udGVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9u
LWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9leGlm
LW9yaWVudGF0aW9uLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZSk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZElt
YWdlOjppbWFnZVNpemVGb3JSZW5kZXJlciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRl
ZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUZyYW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lOjpzaXplUmVzcGVj
dGluZ09yaWVudGF0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6SW1h
Z2VTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlU291cmNlOjpzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UERG
RG9jdW1lbnRJbWFnZTo6c2l6ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvUERGRG9jdW1lbnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6aW1hZ2VPcmllbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludElu
dG9SZWN0KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKKyAgICAgICAgKiBz
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VGb3JDb250YWluZXI6OnNpemUgY29uc3QpOgorICAgICAgICAqIHN2Zy9ncmFwaGlj
cy9TVkdJbWFnZUZvckNvbnRhaW5lci5oOgorCiAyMDE5LTA4LTMwICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gUGFzcyBGb3JtYXR0aW5nQ29udGV4dCB0
byBHZW9tZXRyeS9RdWlya3MvQmxvY2tNYXJnaW5Db2xsYXBzaW5nIGNsYXNzZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAKaW5kZXggMDY1ZDdlMjYyZDRjMDJlZGU1YjBjYzEzMDQ4MjJkMWY5NTVhNTg4
MC4uMzk3NTM0YTY3ZTJmMDkzNzk4MTNlOTQ2ZDY0NWJmMzYyMDMzMmQ2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAKQEAgLTE1NzgsMTggKzE1NzgsMjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwg
Q2EKICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRp
bmdzKGRvY3VtZW50LnNldHRpbmdzKCkpOwogICAgIH0KIAorICAgIEltYWdlUGFpbnRpbmdPcHRp
b25zIG9wdGlvbnMgPSB7IG9wLCBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb246OkZyb21JbWFn
ZSB9OworCiAgICAgaWYgKHJlY3RDb250YWluc0NhbnZhcyhub3JtYWxpemVkRHN0UmVjdCkpIHsK
LSAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6
ZWRTcmNSZWN0LCB7IG9wLCBibGVuZE1vZGUgfSk7CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1h
Z2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAg
ICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2UgaWYgKGlzRnVsbENhbnZhc0Nv
bXBvc2l0ZU1vZGUob3ApKSB7CiAgICAgICAgIGZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdl
KCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CiAgICAg
ICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKICAgICB9IGVsc2UgaWYgKG9wID09IENvbXBvc2l0
ZUNvcHkpIHsKICAgICAgICAgY2xlYXJDYW52YXMoKTsKLSAgICAgICAgYy0+ZHJhd0ltYWdlKCpp
bWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCB7IG9wLCBibGVuZE1v
ZGUgfSk7CisgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBu
b3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMo
KTsKICAgICB9IGVsc2UgewotICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdlLCBub3JtYWxpemVk
RHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIHsgb3AsIGJsZW5kTW9kZSB9KTsKKyAgICAgICAg
Yy0+ZHJhd0ltYWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0
LCBvcHRpb25zKTsKICAgICAgICAgZGlkRHJhdyhub3JtYWxpemVkRHN0UmVjdCk7CiAgICAgfQog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXgg
ZWY5M2IzNTFlNzkxZDUyN2RhZTgwZjg3YzUyNWE3ZGMxNGU3ZTQyMC4uY2VmYmUzMmI1NmE2ZGVj
YTVjOTExMzQ4ZWFiMTBiMTA2NmM5ZWRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0yODAsMTMgKzI4MCwxMCBAQCBGbG9hdFNpemUgQ2FjaGVk
SW1hZ2U6OmltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVy
LCBTaXplVAogICAgIGlmICghbV9pbWFnZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGlm
IChpczxCaXRtYXBJbWFnZT4oKm1faW1hZ2UpICYmIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pbWFn
ZU9yaWVudGF0aW9uKCkgPT0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKQotICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCptX2ltYWdlKS5zaXplUmVzcGVjdGluZ09yaWVu
dGF0aW9uKCk7Ci0KICAgICBpZiAoaXM8U1ZHSW1hZ2U+KCptX2ltYWdlKSAmJiBzaXplVHlwZSA9
PSBVc2VkU2l6ZSkKICAgICAgICAgcmV0dXJuIG1fc3ZnSW1hZ2VDYWNoZS0+aW1hZ2VTaXplRm9y
UmVuZGVyZXIocmVuZGVyZXIpOwogCi0gICAgcmV0dXJuIG1faW1hZ2UtPnNpemUoKTsKKyAgICBy
ZXR1cm4gbV9pbWFnZS0+c2l6ZShyZW5kZXJlciA/IHJlbmRlcmVyLT5pbWFnZU9yaWVudGF0aW9u
KCkgOiBJbWFnZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkpOwogfQog
CiBMYXlvdXRTaXplIENhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlcihjb25zdCBSZW5k
ZXJFbGVtZW50KiByZW5kZXJlciwgZmxvYXQgbXVsdGlwbGllciwgU2l6ZVR5cGUgc2l6ZVR5cGUp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
aAppbmRleCAzMjAyZmJlMzA0ZWNmZWE2ZmZjOGZlYjUyNzZiNjBjMmI4NThlMzliLi4yYWQ3ZjFj
NWNlMDdkNTEzMzU0ODAzMTRiYmM3NDM3NzgwMWNkYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTgxLDggKzgxLDcgQEAgcHVibGlj
OgogICAgIE9wdGlvbmFsPEludFBvaW50PiBob3RTcG90KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9zb3VyY2UtPmhvdFNwb3QoKTsgfQogCiAgICAgLy8gRmxvYXRTaXplIGR1ZSB0byBvdmVy
cmlkZS4KLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291
cmNlLT5zaXplKCk7IH0KLSAgICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZS0+c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbigpOyB9Cisg
ICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IEltYWdlT3Jp
ZW50YXRpb246OkZyb21JbWFnZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UtPnNp
emUob3JpZW50YXRpb24pOyB9CiAgICAgQ29sb3Igc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UtPnNpbmdsZVBpeGVsU29saWRDb2xvcigpOyB9
CiAgICAgYm9vbCBmcmFtZUlzQmVpbmdEZWNvZGVkQW5kSXNDb21wYXRpYmxlV2l0aE9wdGlvbnNB
dEluZGV4KHNpemVfdCBpbmRleCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJiBkZWNvZGluZ09wdGlv
bnMpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLT5mcmFtZUlzQmVpbmdEZWNvZGVkQW5kSXNDb21w
YXRpYmxlV2l0aE9wdGlvbnNBdEluZGV4KGluZGV4LCBkZWNvZGluZ09wdGlvbnMpOyB9CiAgICAg
RGVjb2RpbmdTdGF0dXMgZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgoc2l6ZV90IGluZGV4KSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZS0+ZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgoaW5kZXgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAxZGQ3ZWE5ZWMzZmE1ZWIyODlhZjBiMGJhNzI5
MDA2Y2I4YjdlNWM4Li40NTc2NWM4MzE0NTIxZTQ4YWNiMGY5ZGIzOWVhMDNkNGVhNmVjM2IxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
Ym9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3Jvc3Nm
YWRlU2l6ZTsgfQorICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9y
aWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3Jvc3NmYWRl
U2l6ZTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAppbmRleCAx
MDg2ODhiOTc1NjU3ZGE0N2IxNzRmZjU3MzQ5OWQxYTJlOGU0YTYzLi4zZTAxNjE0YzE0ZGVkZmM0
NTU5MjNmYTZkMjRiMTExYWIxNDRjM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNp
Y1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRp
bykgb3ZlcnJpZGU7CiAKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fc2l6ZTsgfQorICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFn
ZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2l6ZTsg
fQogCiAgICAgLy8gQXNzdW1lIHRoYXQgZ2VuZXJhdGVkIGNvbnRlbnQgaGFzIG5vIGRlY29kZWQg
ZGF0YSB3ZSBuZWVkIHRvIHdvcnJ5IGFib3V0CiAgICAgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEo
Ym9vbCAvKmRlc3Ryb3lBbGwqLyA9IHRydWUpIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCA3Y2UxY2Ji
MGEzODEwYWZjM2RiZTI1YjRmMmRmNDkzNjg4OTNlNDFjLi4xM2Y1YTJmNTVkYjY3ZmIzNjJkZDBj
ZThkZTZhMWYxMTliN2MxZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzU5LDkgKzM1OSw5IEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9h
dCBsaW5lV2lkdGgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgSW1hZ2VEcmF3UmVzdWx0IGRyYXdJ
bWFnZShJbWFnZSYsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3RpbmF0aW9uLCBjb25zdCBJbWFnZVBh
aW50aW5nT3B0aW9ucyYgPSB7IH0pOwotICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jlc3Vs
dCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwotICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3SW1h
Z2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBGbG9hdFJlY3Qm
IHNvdXJjZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRQb2lu
dCYgZGVzdGluYXRpb24sIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgSW1hZ2VPcmll
bnRhdGlvbjo6RnJvbUltYWdlIH0pOworICAgIFdFQkNPUkVfRVhQT1JUIEltYWdlRHJhd1Jlc3Vs
dCBkcmF3SW1hZ2UoSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSB9KTsK
KyAgICBJbWFnZURyYXdSZXN1bHQgZHJhd0ltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEltYWdlUGFpbnRpbmdP
cHRpb25zJiA9IHsgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH0pOwogCiAgICAgSW1hZ2VE
cmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvbiwgY29uc3QgRmxvYXRQb2ludCYgc291cmNlLCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXpl
LCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9
IHsgfSk7CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXdUaWxlZEltYWdlKEltYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0aW5hdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2UsIGNvbnN0IEZs
b2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBJbWFnZTo6VGlsZVJ1bGUsIEltYWdlOjpUaWxlUnVs
ZSwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmID0geyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZS5oCmluZGV4IGQ1NTA2NzczMmY3ZjM5YTM5MDk5ODhhYjRhZWUy
YjU3YWE5NWVmMGYuLjM3MjJjMjI2ZTAwZWI1MGZmZTRlZTZkZDg3MjFlNWEzYjIxZjQ5YzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaApAQCAtMTExLDcgKzExMSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5z
aW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxv
YXRTaXplJiBpbnRyaW5zaWNSYXRpbyk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzaXplKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9
IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkgY29uc3QgPSAwOwogICAgIEZsb2F0UmVjdCBy
ZWN0KCkgY29uc3QgeyByZXR1cm4gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSgpKTsgfQog
ICAgIGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpLndpZHRoKCk7IH0KICAgICBm
bG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBzaXplKCkuaGVpZ2h0KCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaAppbmRleCAyZGZlZmFlYjVk
MTkzMzZkZWQyMTI1OGVlMWZmZjYzODZmNThiOTJkLi4yY2M2YjAyYTdkMzUwMTU3MWNmMjA5MzY0
YjM2ZWQyNWMxZDgzOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VGcmFtZS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29tcGxl
dGUoKSBjb25zdCB7IHJldHVybiBtX2RlY29kaW5nU3RhdHVzID09IERlY29kaW5nU3RhdHVzOjpD
b21wbGV0ZTsgfQogCiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3Q7Ci0gICAgSW50U2l6ZSBzaXpl
UmVzcGVjdGluZ09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gIW1fb3JpZW50YXRpb24udXNl
c1dpZHRoQXNIZWlnaHQoKSA/IHNpemUoKSA6IHNpemUoKS50cmFuc3Bvc2VkU2l6ZSgpOyB9CiAg
ICAgdW5zaWduZWQgZnJhbWVCeXRlcygpIGNvbnN0IHsgcmV0dXJuIGhhc05hdGl2ZUltYWdlKCkg
PyAoc2l6ZSgpLmFyZWEoKSAqIHNpemVvZih1aW50MzJfdCkpLnVuc2FmZUdldCgpIDogMDsgfQog
ICAgIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3Vic2FtcGxpbmdMZXZlbDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggMTg5NzZmOTE5ZWI4MWRhMzk1NjdmMjZhMThiYWU3
YTlhZjFkMzI0My4uZjM5OGQ3N2NkZWFlNTBlYTI5OTEwMjBmNDc1NDE0ZjY1N2EwZWNkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApA
QCAtNjMsMTAgKzYzLDggQEAgSW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKE5hdGl2ZUltYWdlUHRy
JiYgbmF0aXZlSW1hZ2UpCiAKICAgICBtX2RlY29kZWRTaXplID0gbV9mcmFtZXNbMF0uZnJhbWVC
eXRlcygpOwogCi0gICAgLy8gVGhlIGFzc3VtcHRpb24gaXMgdGhlIG1lbW9yeSBpbWFnZSB3aWxs
IGJlIGRpc3BsYXllZCB3aXRoIHRoZSBkZWZhdWx0Ci0gICAgLy8gb3JpZW50YXRpb24uIFNvIHNl
dCBtX3NpemVSZXNwZWN0aW5nT3JpZW50YXRpb24gdG8gYmUgdGhlIHNhbWUgYXMgbV9zaXplLgog
ICAgIG1fc2l6ZSA9IG1fZnJhbWVzWzBdLnNpemUoKTsKLSAgICBtX3NpemVSZXNwZWN0aW5nT3Jp
ZW50YXRpb24gPSBtX3NpemU7CisgICAgbV9vcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb24o
SW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSk7CiB9CiAKIEltYWdlU291cmNlOjp+SW1hZ2VTb3VyY2Uo
KQpAQCAtNTU5LDIwICs1NTcsMjcgQEAgT3B0aW9uYWw8SW50UG9pbnQ+IEltYWdlU291cmNlOjpo
b3RTcG90KCkKICAgICByZXR1cm4gbWV0YWRhdGE8T3B0aW9uYWw8SW50UG9pbnQ+LCAoJkltYWdl
RGVjb2Rlcjo6aG90U3BvdCk+KFdURjo6bnVsbG9wdCwgJm1faG90U3BvdCk7CiB9CiAKLUludFNp
emUgSW1hZ2VTb3VyY2U6OnNpemUoKQorSW1hZ2VPcmllbnRhdGlvbiBJbWFnZVNvdXJjZTo6b3Jp
ZW50YXRpb24oKQogeworICAgIHJldHVybiBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hlSWZOZWVk
ZWQ8SW1hZ2VPcmllbnRhdGlvbj4oMCwgKCZJbWFnZUZyYW1lOjpvcmllbnRhdGlvbiksICZtX29y
aWVudGF0aW9uLCBJbWFnZUZyYW1lOjpDYWNoaW5nOjpNZXRhZGF0YSk7Cit9CisKK0ludFNpemUg
SW1hZ2VTb3VyY2U6OnNpemUoSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3sKKyAgICBJ
bnRTaXplIHNpemU7CiAjaWYgIVVTRShDRykKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgd2Ug
aGF2ZSBkZWNvZGVkIHRoZSBtZXRhZGF0YSwgYnV0IG5vdCBmcmFtZSBjb250ZW50cyB5ZXQuIElu
IHRoYXQgY2FzZSBJbWFnZURlY29kZXIgY2xhaW1zIHRvCiAgICAgLy8gaGF2ZSB0aGUgc2l6ZSBh
dmFpbGFibGUsIGJ1dCB0aGUgZnJhbWUgY2FjaGUgaXMgZW1wdHkuIFJldHVybiB0aGUgZGVjb2Rl
ciBzaXplIHdpdGhvdXQgY2FjaGluZyBpbiBzdWNoIGNhc2UuCiAgICAgaWYgKG1fZnJhbWVzLmlz
RW1wdHkoKSAmJiBpc0RlY29kZXJBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJuIG1fZGVjb2Rl
ci0+c2l6ZSgpOworICAgICAgICBzaXplID0gbV9kZWNvZGVyLT5zaXplKCk7CisgICAgZWxzZQog
I2VuZGlmCi0gICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxJbnRT
aXplPigwLCAoJkltYWdlRnJhbWU6OnNpemUpLCAmbV9zaXplLCBJbWFnZUZyYW1lOjpDYWNoaW5n
OjpNZXRhZGF0YSwgU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCk7Ci19CisgICAgICAgIHNpemUg
PSBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hlSWZOZWVkZWQ8SW50U2l6ZT4oMCwgKCZJbWFnZUZy
YW1lOjpzaXplKSwgJm1fc2l6ZSwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIFN1YnNh
bXBsaW5nTGV2ZWw6OkRlZmF1bHQpOworICAgIAorICAgIGlmIChvcmllbnRhdGlvbiA9PSBJbWFn
ZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpCisgICAgICAgIG9yaWVudGF0aW9uID0gdGhpcy0+b3Jp
ZW50YXRpb24oKTsKIAotSW50U2l6ZSBJbWFnZVNvdXJjZTo6c2l6ZVJlc3BlY3RpbmdPcmllbnRh
dGlvbigpCi17Ci0gICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxJ
bnRTaXplPigwLCAoJkltYWdlRnJhbWU6OnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24pLCAmbV9z
aXplUmVzcGVjdGluZ09yaWVudGF0aW9uLCBJbWFnZUZyYW1lOjpDYWNoaW5nOjpNZXRhZGF0YSwg
U3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCk7CisgICAgcmV0dXJuIG9yaWVudGF0aW9uLnVzZXNX
aWR0aEFzSGVpZ2h0KCkgPyBzaXplLnRyYW5zcG9zZWRTaXplKCkgOiBzaXplOwogfQogCiBDb2xv
ciBJbWFnZVNvdXJjZTo6c2luZ2xlUGl4ZWxTb2xpZENvbG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IGJjNzkwOTkzMjc4YmNiNDI1
MDM4NjVmYjUxMmFiNmYyZTk4OGU4M2QuLmY0ZTgxODU0ZDk3OTBjMDhlMTQ4NzA4ODkxOTk4OTQz
NmMzMjJkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuaApAQCAtOTMsOSArOTMsMTAgQEAgcHVibGljOgogICAgIFN0cmluZyB1dGkoKTsKICAg
ICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKTsKICAgICBPcHRpb25hbDxJbnRQb2ludD4gaG90
U3BvdCgpOworICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24oKTsKIAogICAgIC8vIElt
YWdlIG1ldGFkYXRhIHdoaWNoIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgZmlyc3QgSW1hZ2VGcmFt
ZS4KLSAgICBXRUJDT1JFX0VYUE9SVCBJbnRTaXplIHNpemUoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBJbnRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21J
bWFnZSk7CiAgICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CiAgICAgQ29s
b3Igc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgU3Vic2FtcGxpbmdMZXZlbCBtYXhpbXVt
U3Vic2FtcGxpbmdMZXZlbCgpOwpAQCAtMTk2LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAKICAgICAv
LyBJbWFnZSBtZXRhZGF0YSB3aGljaCBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIGZpcnN0IEltYWdl
RnJhbWUuCiAgICAgT3B0aW9uYWw8SW50U2l6ZT4gbV9zaXplOwotICAgIE9wdGlvbmFsPEludFNp
emU+IG1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbjsKKyAgICBPcHRpb25hbDxJbWFnZU9yaWVu
dGF0aW9uPiBtX29yaWVudGF0aW9uOwogICAgIE9wdGlvbmFsPENvbG9yPiBtX3NpbmdsZVBpeGVs
U29saWRDb2xvcjsKICAgICBPcHRpb25hbDxTdWJzYW1wbGluZ0xldmVsPiBtX21heGltdW1TdWJz
YW1wbGluZ0xldmVsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKaW5kZXggYTYwZjEyNWEwMTEwMzczNmJh
NzUxN2UzNjNhYTRhOThkNjIxMDlkNi4uODBmNmIxODcyNTIyOTY4ZWE3ZDk1NzZiN2UwMDU2MzMz
MjU4ODIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
UERGRG9jdW1lbnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgU3RyaW5nIFBERkRv
Y3VtZW50SW1hZ2U6OmZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QKICAgICByZXR1cm4gInBkZiI7
CiB9CiAKLUZsb2F0U2l6ZSBQREZEb2N1bWVudEltYWdlOjpzaXplKCkgY29uc3QKK0Zsb2F0U2l6
ZSBQREZEb2N1bWVudEltYWdlOjpzaXplKEltYWdlT3JpZW50YXRpb24pIGNvbnN0CiB7CiAgICAg
RmxvYXRTaXplIGV4cGFuZGVkQ3JvcEJveFNpemUgPSBGbG9hdFNpemUoZXhwYW5kZWRJbnRTaXpl
KG1fY3JvcEJveC5zaXplKCkpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCmluZGV4IDI3ZDllNzgwMDc5OGUzZTJk
MWRkYTEyZWRmZDVkMzYwMWJmYTM5NTcuLmVkOWQxNmQyODVhMTMyZjY3MGZmMDg0Y2UxMzAwN2Yz
ZDQ1NGY1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L1BERkRvY3VtZW50SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9QREZEb2N1bWVudEltYWdlLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29sIC8qZGVzdHJveUFsbCovID0gdHJ1ZSkgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmlu
c2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1Jh
dGlvKSBvdmVycmlkZTsKLSAgICBGbG9hdFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2UpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSkgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmluZGV4IDhlYmUwMDc2
YThjYzY2ZWFiZmUwNDI5MWZhZWZmNTk0ZmYwOTE4MGUuLjAzNjNlMmU0NzgyNTIwMTYwM2Q1NTRl
ZGFlM2M2MTkyMzUzMzRlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQpAQCAtOTQsMzkgKzk0LDM2IEBAIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2
ZURyYWdJbWFnZVRvRnJhY3Rpb24oUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBmbG9hdCBkCiAg
ICAgICAgIAogUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFn
ZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAgRmxvYXRTaXpl
IHNpemUgPSBpbWFnZS0+c2l6ZSgpOwotCiAgICAgaWYgKGlzPEJpdG1hcEltYWdlPigqaW1hZ2Up
KSB7CiAgICAgICAgIEJpdG1hcEltYWdlJiBiaXRtYXBJbWFnZSA9IGRvd25jYXN0PEJpdG1hcElt
YWdlPigqaW1hZ2UpOwotICAgICAgICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24g
PSBiaXRtYXBJbWFnZS5zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CiAKICAgICAgICAgaWYg
KG9yaWVudGF0aW9uID09IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkKICAgICAgICAgICAg
IG9yaWVudGF0aW9uID0gYml0bWFwSW1hZ2Uub3JpZW50YXRpb25Gb3JDdXJyZW50RnJhbWUoKTsK
IAogICAgICAgICBpZiAob3JpZW50YXRpb24gIT0gSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSkgewog
ICAgICAgICAgICAgLy8gQ29uc3RydWN0IGEgY29ycmVjdGx5LXJvdGF0ZWQgY29weSBvZiB0aGUg
aW1hZ2UgdG8gdXNlIGFzIHRoZSBkcmFnIGltYWdlLgotICAgICAgICAgICAgRmxvYXRSZWN0IGRl
c3RSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbik7Ci0KLSAgICAg
ICAgICAgIFJldGFpblB0cjxOU0ltYWdlPiByb3RhdGVkRHJhZ0ltYWdlID0gYWRvcHROUyhbW05T
SW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTooTlNTaXplKShzaXplUmVzcGVjdGluZ09yaWVudGF0
aW9uKV0pOworICAgICAgICAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdlLT5zaXplKG9y
aWVudGF0aW9uKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU0ltYWdlPiByb3RhdGVkRHJhZ0lt
YWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTooTlNTaXplKShpbWFn
ZVNpemUpXSk7CiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZSBsb2NrRm9jdXNdOwogCiAg
ICAgICAgICAgICAvLyBJbWFnZU9yaWVudGF0aW9uIHVzZXMgdG9wLWxlZnQgY29vcmRpbmF0ZXMs
IG5lZWQgdG8gZmxpcCB0byBib3R0b20tbGVmdCwgYXBwbHkuLi4KLSAgICAgICAgICAgIENHQWZm
aW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVRyYW5zbGF0aW9u
KDAsIGRlc3RSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIENHQWZmaW5lVHJhbnNmb3JtIHRy
YW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVRyYW5zbGF0aW9uKDAsIGltYWdlU2l6ZS5o
ZWlnaHQoKSk7CiAgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxl
KHRyYW5zZm9ybSwgMSwgLTEpOwotICAgICAgICAgICAgdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFu
c2Zvcm1Db25jYXQob3JpZW50YXRpb24udHJhbnNmb3JtRnJvbURlZmF1bHQoc2l6ZVJlc3BlY3Rp
bmdPcmllbnRhdGlvbiksIHRyYW5zZm9ybSk7CisgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0Fm
ZmluZVRyYW5zZm9ybUNvbmNhdChvcmllbnRhdGlvbi50cmFuc2Zvcm1Gcm9tRGVmYXVsdChpbWFn
ZVNpemUpLCB0cmFuc2Zvcm0pOwogCiAgICAgICAgICAgICBpZiAob3JpZW50YXRpb24udXNlc1dp
ZHRoQXNIZWlnaHQoKSkKLSAgICAgICAgICAgICAgICBkZXN0UmVjdCA9IEZsb2F0UmVjdChkZXN0
UmVjdC54KCksIGRlc3RSZWN0LnkoKSwgZGVzdFJlY3QuaGVpZ2h0KCksIGRlc3RSZWN0LndpZHRo
KCkpOworICAgICAgICAgICAgICAgIGltYWdlU2l6ZSA9IGltYWdlU2l6ZS50cmFuc3Bvc2VkU2l6
ZSgpOwogCiAgICAgICAgICAgICAvLyAuLi5hbmQgZmxpcCBiYWNrLgotICAgICAgICAgICAgdHJh
bnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1UcmFuc2xhdGUodHJhbnNmb3JtLCAwLCBkZXN0UmVj
dC5oZWlnaHQoKSk7CisgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVRy
YW5zbGF0ZSh0cmFuc2Zvcm0sIDAsIGltYWdlU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgICAgICB0
cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxlKHRyYW5zZm9ybSwgMSwgLTEpOwogCiAg
ICAgICAgICAgICBSZXRhaW5QdHI8TlNBZmZpbmVUcmFuc2Zvcm0+IGNvY29hVHJhbnNmb3JtID0g
YWRvcHROUyhbW05TQWZmaW5lVHJhbnNmb3JtIGFsbG9jXSBpbml0XSk7CiAgICAgICAgICAgICBb
Y29jb2FUcmFuc2Zvcm0gc2V0VHJhbnNmb3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1
Y3QqKSZ0cmFuc2Zvcm1dOwogICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtIGNvbmNhdF07CiAK
LSAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpkZXN0UmVj
dCBmcm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkg
b3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07
CisgICAgICAgICAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2VTaXpl
KTsKKyAgICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDppbWFn
ZVJlY3QgZnJvbVJlY3Q6aW1hZ2VSZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9u
U291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwogCiAgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFn
ZSB1bmxvY2tGb2N1c107CiAKQEAgLTEzNCw4ICsxMzEsOSBAQCBSZXRhaW5QdHI8TlNJbWFnZT4g
Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbgogICAgICAgICB9CiAgICAgfQogCisgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IGltYWdl
LT5zaXplKCk7CiAgICAgYXV0byBkcmFnSW1hZ2UgPSBpbWFnZS0+c25hcHNob3ROU0ltYWdlKCk7
Ci0gICAgW2RyYWdJbWFnZSBzZXRTaXplOihOU1NpemUpc2l6ZV07CisgICAgW2RyYWdJbWFnZSBz
ZXRTaXplOihOU1NpemUpaW1hZ2VTaXplXTsKICAgICByZXR1cm4gZHJhZ0ltYWdlOwogfQogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKaW5kZXggNzQ4MmNlMDIwYzk0MTBmNTZlYjA2MDRmM2M1M2JmOWIxYmQyNmM4NC4uMjIwYWZk
NzM1MTg2MzkwZWI0YzQwMWJhMDQ5NDA3ODNiMTY3Mjc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC05NDcsMTUgKzk0Nywy
MCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjbwogICAgICAgICBnZW9tZXRyeS5jbGlwKExheW91
dFJlY3QocGl4ZWxTbmFwcGVkUmVjdCkpOwogICAgICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlOwog
ICAgICAgICBpZiAoIWdlb21ldHJ5LmRlc3RSZWN0KCkuaXNFbXB0eSgpICYmIChpbWFnZSA9IGJn
SW1hZ2UtPmltYWdlKGJhY2tncm91bmRPYmplY3QgPyBiYWNrZ3JvdW5kT2JqZWN0IDogdGhpcywg
Z2VvbWV0cnkudGlsZVNpemUoKSkpKSB7Ci0gICAgICAgICAgICBhdXRvIGNvbXBvc2l0ZU9wID0g
b3AgPT0gQ29tcG9zaXRlU291cmNlT3ZlciA/IGJnTGF5ZXIuY29tcG9zaXRlKCkgOiBvcDsKICAg
ICAgICAgICAgIGNvbnRleHQuc2V0RHJhd0x1bWluYW5jZU1hc2soYmdMYXllci5tYXNrU291cmNl
VHlwZSgpID09IE1hc2tTb3VyY2VUeXBlOjpMdW1pbmFuY2UpOwogCiAgICAgICAgICAgICBpZiAo
aXM8Qml0bWFwSW1hZ2U+KGltYWdlKSkKICAgICAgICAgICAgICAgICBkb3duY2FzdDxCaXRtYXBJ
bWFnZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3Moc2V0dGluZ3MoKSk7CiAKLSAgICAgICAg
ICAgIGF1dG8gaW50ZXJwb2xhdGlvbiA9IGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KGNvbnRl
eHQsICppbWFnZSwgJmJnTGF5ZXIsIGdlb21ldHJ5LnRpbGVTaXplKCkpOwotICAgICAgICAgICAg
YXV0byBkZWNvZGluZ01vZGUgPSBkZWNvZGluZ01vZGVGb3JJbWFnZURyYXcoKmltYWdlLCBwYWlu
dEluZm8pOwotICAgICAgICAgICAgYXV0byBkcmF3UmVzdWx0ID0gY29udGV4dC5kcmF3VGlsZWRJ
bWFnZSgqaW1hZ2UsIGdlb21ldHJ5LmRlc3RSZWN0KCksIHRvTGF5b3V0UG9pbnQoZ2VvbWV0cnku
cmVsYXRpdmVQaGFzZSgpKSwgZ2VvbWV0cnkudGlsZVNpemUoKSwgZ2VvbWV0cnkuc3BhY2VTaXpl
KCksIHsgY29tcG9zaXRlT3AsIGJnTGF5ZXIuYmxlbmRNb2RlKCksIGRlY29kaW5nTW9kZSwgaW50
ZXJwb2xhdGlvbiB9KTsKKyAgICAgICAgICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMg
PSB7CisgICAgICAgICAgICAgICAgb3AgPT0gQ29tcG9zaXRlU291cmNlT3ZlciA/IGJnTGF5ZXIu
Y29tcG9zaXRlKCkgOiBvcCwKKyAgICAgICAgICAgICAgICBiZ0xheWVyLmJsZW5kTW9kZSgpLAor
ICAgICAgICAgICAgICAgIGRlY29kaW5nTW9kZUZvckltYWdlRHJhdygqaW1hZ2UsIHBhaW50SW5m
byksCisgICAgICAgICAgICAgICAgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlLAorICAgICAg
ICAgICAgICAgIGNob29zZUludGVycG9sYXRpb25RdWFsaXR5KGNvbnRleHQsICppbWFnZSwgJmJn
TGF5ZXIsIGdlb21ldHJ5LnRpbGVTaXplKCkpCisgICAgICAgICAgICB9OworCisgICAgICAgICAg
ICBhdXRvIGRyYXdSZXN1bHQgPSBjb250ZXh0LmRyYXdUaWxlZEltYWdlKCppbWFnZSwgZ2VvbWV0
cnkuZGVzdFJlY3QoKSwgdG9MYXlvdXRQb2ludChnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCkpLCBn
ZW9tZXRyeS50aWxlU2l6ZSgpLCBnZW9tZXRyeS5zcGFjZVNpemUoKSwgb3B0aW9ucyk7CiAgICAg
ICAgICAgICBpZiAoZHJhd1Jlc3VsdCA9PSBJbWFnZURyYXdSZXN1bHQ6OkRpZFJlcXVlc3REZWNv
ZGluZykgewogICAgICAgICAgICAgICAgIEFTU0VSVChiZ0ltYWdlLT5pc0NhY2hlZEltYWdlKCkp
OwogICAgICAgICAgICAgICAgIGJnSW1hZ2UtPmNhY2hlZEltYWdlKCktPmFkZENsaWVudFdhaXRp
bmdGb3JBc3luY0RlY29kaW5nKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmNwcAppbmRleCBkNDJmYjRkMjAyOTQxMTQ4MWU5NjlmYzg2OWJjOWUxYmE5MTJk
ZjI4Li4yZDA2MmI1ZmJiOWVhNjAwZTBmOGQxYzFjNjIzNTU3MjQwNTMzZGE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0yMDUzLDE2ICsyMDUzLDcg
QEAgYm9vbCBSZW5kZXJFbGVtZW50OjpjaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKSBjb25z
dAogCiBJbWFnZU9yaWVudGF0aW9uIFJlbmRlckVsZW1lbnQ6OmltYWdlT3JpZW50YXRpb24oKSBj
b25zdAogewotI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCi0gICAg
Ly8gVGhpcyBjYW4gb25seSBiZSBlbmFibGVkIGZvciBwb3J0cyB3aGljaCBob25vciB0aGUgb3Jp
ZW50YXRpb24gZmxhZyBpbiB0aGVpciBkcmF3aW5nIGNvZGUuCi0gICAgaWYgKGRvY3VtZW50KCku
aXNJbWFnZURvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpGcm9t
SW1hZ2U7Ci0jZW5kaWYKLSAgICAvLyBSZXNwZWN0IHRoZSBpbWFnZSdzIG9yaWVudGF0aW9uIGlm
IGl0J3MgYmVpbmcgdXNlZCBhcyBhIGZ1bGwtcGFnZSBpbWFnZSBvciBpdCdzCi0gICAgLy8gYW4g
PGltZz4gYW5kIHRoZSBzZXR0aW5nIHRvIHJlc3BlY3QgaXQgZXZlcnl3aGVyZSBpcyBzZXQuCi0g
ICAgaWYgKHNldHRpbmdzKCkuc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSAmJiBpczxI
VE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkpKQotICAgICAgICByZXR1cm4gSW1hZ2VPcmllbnRh
dGlvbjo6RnJvbUltYWdlOwotICAgIHJldHVybiBzdHlsZSgpLmltYWdlT3JpZW50YXRpb24oKTsK
KyAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOwogfQogCiB2b2lkIFJlbmRl
ckVsZW1lbnQ6OmFkanVzdEZyYWdtZW50ZWRGbG93U3RhdGVPbkNvbnRhaW5pbmdCbG9ja0NoYW5n
ZUlmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4
IDM5MzVjYjQ1YTE0ZTZkNzY4NzlhNWQ3MThlNTBhNDA1ZjM5NDhhODIuLjI2YWFhMDM3MmUzYjNi
NmJiNGIzN2U3YTRkOGM1NzhmMmRlN2UzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcApAQCAtNjE3LDExICs2MTcsOSBAQCBJbWFnZURyYXdSZXN1bHQgUmVuZGVy
SW1hZ2U6OnBhaW50SW50b1JlY3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVj
dAogICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWROb3RoaW5nOwogCiAgICAgSFRN
TEltYWdlRWxlbWVudCogaW1hZ2VFbGVtZW50ID0gaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVu
dCgpKSA/IGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQoKSkgOiBudWxscHRyOwot
ICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gaW1hZ2VFbGVtZW50ID8g
aW1hZ2VFbGVtZW50LT5jb21wb3NpdGVPcGVyYXRvcigpIDogQ29tcG9zaXRlU291cmNlT3ZlcjsK
IAogICAgIC8vIEZJWE1FOiBEb2N1bWVudCB3aGVuIGltYWdlICE9IGltZy5nZXQoKS4KICAgICBJ
bWFnZSogaW1hZ2UgPSBpbWFnZVJlc291cmNlKCkuaW1hZ2UoKS5nZXQoKTsKLSAgICBJbnRlcnBv
bGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9uID0gaW1hZ2UgPyBjaG9vc2VJbnRlcnBvbGF0aW9u
UXVhbGl0eShwYWludEluZm8uY29udGV4dCgpLCAqaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJl
Y3Quc2l6ZSgpKSkgOiBJbnRlcnBvbGF0aW9uRGVmYXVsdDsKIAogI2lmIFVTRShDRykKICAgICBp
ZiAoaXM8UERGRG9jdW1lbnRJbWFnZT4oaW1hZ2UpKQpAQCAtNjMxLDggKzYyOSwxNCBAQCBJbWFn
ZURyYXdSZXN1bHQgUmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEZsb2F0UmVjdAogICAgIGlmIChpczxCaXRtYXBJbWFnZT4oaW1hZ2UpKQogICAg
ICAgICBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3Moc2V0
dGluZ3MoKSk7CiAKLSAgICBhdXRvIGRlY29kaW5nTW9kZSA9IGRlY29kaW5nTW9kZUZvckltYWdl
RHJhdygqaW1hZ2UsIHBhaW50SW5mbyk7Ci0gICAgYXV0byBkcmF3UmVzdWx0ID0gcGFpbnRJbmZv
LmNvbnRleHQoKS5kcmF3SW1hZ2UoKmltZywgcmVjdCwgeyBjb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlOjpOb3JtYWwsIGRlY29kaW5nTW9kZSwgaW1hZ2VPcmllbnRhdGlvbigpLCBpbnRlcnBv
bGF0aW9uIH0pOworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMgPSB7CisgICAgICAg
IGltYWdlRWxlbWVudCA/IGltYWdlRWxlbWVudC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBv
c2l0ZVNvdXJjZU92ZXIsCisgICAgICAgIGRlY29kaW5nTW9kZUZvckltYWdlRHJhdygqaW1hZ2Us
IHBhaW50SW5mbyksCisgICAgICAgIGltYWdlT3JpZW50YXRpb24oKSwKKyAgICAgICAgaW1hZ2Ug
PyBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwYWludEluZm8uY29udGV4dCgpLCAqaW1hZ2Us
IGltYWdlLCBMYXlvdXRTaXplKHJlY3Quc2l6ZSgpKSkgOiBJbnRlcnBvbGF0aW9uRGVmYXVsdAor
ICAgIH07CisKKyAgICBhdXRvIGRyYXdSZXN1bHQgPSBwYWludEluZm8uY29udGV4dCgpLmRyYXdJ
bWFnZSgqaW1nLCByZWN0LCBvcHRpb25zKTsKICAgICBpZiAoZHJhd1Jlc3VsdCA9PSBJbWFnZURy
YXdSZXN1bHQ6OkRpZFJlcXVlc3REZWNvZGluZykKICAgICAgICAgaW1hZ2VSZXNvdXJjZSgpLmNh
Y2hlZEltYWdlKCktPmFkZENsaWVudFdhaXRpbmdGb3JBc3luY0RlY29kaW5nKCp0aGlzKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAppbmRleCA2MTQ1ODUzNDAzYjQ3N2Fl
YzcxMWM4ZGQ2MmY4ODM2NTQ5OWUwMmQ3Li45YWQ5MzU4YzcxMWJhMjIxYzJkOTJhNWE3OTU5OWRi
NTQyYjc4NWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaApAQCAtNDgs
NyArNDgsNyBAQCBwdWJsaWM6CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcoKSBjb25zdDsKIAog
ICAgIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLSAgICBG
bG9hdFNpemUgc2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW50cmluc2ljU2l6ZTsgfQor
ICAgIEZsb2F0U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpG
cm9tSW1hZ2UpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW50cmluc2ljU2l6ZTsgfQogCiAgICAg
Ym9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcAppbmRl
eCBkNzBhNjQwYzZhMDQ5MWU3ZTE2N2Y5NGMxODBlMjc5MWEzMWVhYzhhLi5lYWVmYzMxZTQ3ZDAy
MTUxZDY5MGM1Y2Q2NWY1ZTgzMWIzMWFmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAKQEAgLTI3LDcgKzI3LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1GbG9hdFNpemUgU1ZHSW1hZ2VGb3JDb250YWluZXI6
OnNpemUoKSBjb25zdAorRmxvYXRTaXplIFNWR0ltYWdlRm9yQ29udGFpbmVyOjpzaXplKEltYWdl
T3JpZW50YXRpb24pIGNvbnN0CiB7CiAgICAgRmxvYXRTaXplIHNjYWxlZENvbnRhaW5lclNpemUo
bV9jb250YWluZXJTaXplKTsKICAgICBzY2FsZWRDb250YWluZXJTaXplLnNjYWxlKG1fY29udGFp
bmVyWm9vbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2VGb3JDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZv
ckNvbnRhaW5lci5oCmluZGV4IDU3YjIwNGQ5ODNmYjA3YjFhN2VkNjFhMWFmZWI0ZWI3ZjhhYTBk
NDQuLmU2NDRmN2FjZjMwZWMyMjRkZjg1MTVkODdmNzJjMmFlMWJiMzRhNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oCkBAIC00
Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIEZsb2F0U2l6ZSBzaXplKCkgY29uc3QgZmluYWw7Cisg
ICAgRmxvYXRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZy
b21JbWFnZSkgY29uc3QgZmluYWw7CiAKICAgICBib29sIHVzZXNDb250YWluZXJTaXplKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9pbWFnZS0+dXNlc0NvbnRhaW5lclNpemUoKTsgfQogICAgIGJv
b2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW1hZ2UtPmhhc1Jl
bGF0aXZlV2lkdGgoKTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc3ODc4M2Y3M2VmZGMwMGUyZmVhZGRkZGRlMGYwMWYy
YzBiOWI3N2IuLjFmNzdjNzIxMWZiNjY1MzUxOTRjODFjOGRjY2U0N2U0ODAyMGUwYjggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MyBAQAorMjAxOS0wOC0zMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhh
bGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEVYSUYgb3JpZW50YXRpb24gc2hvdWxkIGJlIHJl
c3BlY3RlZCB3aGVuIHJlbmRlcmluZyBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTEyMworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBFeGlzdGluZyB0ZXN0cyBhcmUgbWFkZSByZWYtdGVzdHMuIE5l
dyB0ZXN0cyB3ZXJlIGFkZGVkIHRvIGNvdmVyIG1vcmUKKyAgICAgICAgY2FzZXMgZm9yIGRyYXdp
bmcgaW1hZ2VzLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1iYWNr
Z3JvdW5kLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYt
b3JpZW50YXRpb24tYmFja2dyb3VuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWNhbnZhcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3Np
dGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9p
bWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tZWxlbWVudC1leHBlY3RlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWVsZW1l
bnQtb2JqZWN0LWZpdC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWVsZW1lbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVu
dC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9leGlmLW9yaWVu
dGF0aW9uLWltYWdlLWRvY3VtZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50Lmh0bWw6CisgICAgICAg
ICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1v
YmplY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlv
bi1zdmctZmVpbWFnZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tc3ZnLWltYWdlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4
cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxOS0wOC0zMCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ5MzM4LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWJhY2tn
cm91bmQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjdhMzFkYzNiNjQ1MDlkZTEzMjE1MTYw
NGNjODUwYzQyYWM3ZGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi1iYWNrZ3JvdW5kLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAK
KyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisg
ICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsK
KyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBk
aXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJw
eDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBDU1MgYmFja2dyb3VuZCBpbWFnZXMg
c2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4K
KyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0x
KTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250
YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4
KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkw
ZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVw
eCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGlj
YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgy
NzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWJhY2tncm91
bmQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tYmFja2dy
b3VuZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwYjQ5MjZkMDY5N2E5YWRiZGZkYmM1YTU5ZDMzZmY2NzIw
YzVkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWJhY2tncm91bmQuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0
b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246
IHRvcDsKKyAgICB9CisgICAgZGl2LmltYWdlIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7CisgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgfQorICAg
IGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6
IDUwcHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MHB4Owor
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5U
aGUgQ1NTIGJhY2tncm91bmQgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhl
aXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBz
dHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFs
IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTItdXIuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImltYWdlIGhvcml6b250YWwiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
MTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTog
dXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZykiPjwvZGl2PgorICAgICAg
ICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBz
dHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUt
bHUuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImJhY2tncm91bmQtaW1h
Z2U6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZykiPjwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0i
YmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBn
KSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVy
dGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImltYWdlIHZlcnRpY2FsIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJs
KHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZykiPjwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIGhvcml6b250YWwiIHN0
eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11
LmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAg
IDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1jYW52YXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24tY2FudmFzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ3
NTIyMzMzZGEyMWRmMmI3ZmE0YzVhYzg1ZWQzN2Q2YzhlYjkzYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY2FudmFzLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2
LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFy
Z2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAg
IHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAg
IGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1
MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5kcmF3SW1hZ2UoKSBzaG91bGQgcm90YXRlIHRoZSBpbWFnZXMgcmVz
cGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250
YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEt
dWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5
bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxl
WSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zv
cm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2Nh
bGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBD
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJy
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6
b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFs
aWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jYW52YXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWM1YWJk
YmU1Yzg1OTYxMTllNWFiMDM3NDM2OGIxMmFlYjI3MmUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jYW52YXMuaHRtbApAQCAtMCww
ICsxLDEyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7
CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAy
MHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFs
IHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAg
ICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAx
MDJweDsKKyAgICB9CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxh
Y2s7CisgICAgfQorICAgIGNhbnZhcy5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgfQorICAgIGNhbnZhcy52ZXJ0aWNhbCB7Cisg
ICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5
bGU+Cis8Ym9keT4KKyAgICA8Yj5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuZHJhd0ltYWdlKCkg
c2hvdWxkIHJvdGF0ZSB0aGUgaW1hZ2VzIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlv
bi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBj
bGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczEiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2Fu
dmFzIGNsYXNzPSJob3Jpem9udGFsIiBpZD0iY2FudmFzMiI+PC9jYW52YXM+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwi
PgorICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIgaWQ9ImNhbnZhczMiPjwv
Y2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0iaG9yaXpvbnRhbCIg
aWQ9ImNhbnZhczQiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxj
YW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFzNSI+PC9jYW52YXM+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNh
bGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJ2ZXJ0aWNh
bCIgaWQ9ImNhbnZhczYiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcyA9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxjYW52YXMg
Y2xhc3M9InZlcnRpY2FsIiBpZD0iY2FudmFzNyI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cyA9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxjYW52YXMgY2xhc3M9InZlcnRpY2FsIiBpZD0i
Y2FudmFzOCI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2Fu
dmFzIGNsYXNzPSJob3Jpem9udGFsIiBpZD0iY2FudmFzOSI+PC9jYW52YXM+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2Pgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICB3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgbmFtZXMgPSBbCisgICAgICAgICAg
ICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiwg
IGlkIDogImNhbnZhczEiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIiwgIGlkIDogImNhbnZhczIiIH0sCisgICAgICAg
ICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBn
IiwgIGlkIDogImNhbnZhczMiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIsIGlkIDogImNhbnZhczQiIH0sCisgICAg
ICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUu
anBnIiwgIGlkIDogImNhbnZhczUiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIiwgIGlkIDogImNhbnZhczYiIH0sCisg
ICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTct
cmwuanBnIiwgIGlkIDogImNhbnZhczciIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTog
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyIsIGlkIDogImNhbnZhczgiIH0s
CisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTktdS5qcGciLCAgIGlkIDogImNhbnZhczkiIH0KKyAgICAgICAgICAgIF07CisKKyAgICAgICAg
ICAgIHZhciBkcmF3Q291bnQgPSAwOworCisgICAgICAgICAgICBuYW1lcy5mb3JFYWNoKGZ1bmN0
aW9uKG5hbWUpIHsKKyAgICAgICAgICAgICAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2U7CisgICAg
ICAgICAgICAgICAgaW1hZ2Uuc3JjID0gbmFtZS5yZXNvdXJjZTsKKyAgICAgICAgICAgICAgICBp
bWFnZS5kZWNvZGUoKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5hbWUuaWQpOworICAgICAgICAgICAgICAgICAg
ICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aDsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFz
LmhlaWdodCA9IGltYWdlLmhlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRleHQg
PSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5k
cmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmICgrK2RyYXdDb3VudCA9PSBuYW1lcy5sZW5ndGgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI3YmFhMmFiY2Y2YzIwMmU5MTQzNjY4Mjc2Y2IwNGRmNmZiYzkwNjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLWNvbXBvc2l0ZWQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2lu
LWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2Fs
LWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6
IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgewor
ICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAg
aW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4K
Kzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgdGhlIGNvbXBvc2l0ZWQgJmx0O2ltZyZndDsg
ZWxlbWVudHMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0
aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBpZD0i
aW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICA8aW1nIGlkPSJpbWcyIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpbWcgaWQ9ImltZzMiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PGltZyBpZD0iaW1nNCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIg
c3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc1IiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1
cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRp
Y2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVw
eCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc3IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzgiIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQg
KGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDx1bCBpZD0iY29uc29s
ZSI+PC91bD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBsb2coc3RyKSB7CisgICAg
ICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgICAgICAg
ICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7CisgICAgICAg
ICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Cisg
ICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICAgICAgfQorCisgICAgICAg
ICBmdW5jdGlvbiBpbWFnZVNpemUoaW5kZXgpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIgKyBpbmRleCk7CisgICAgICAgICAgICB2YXIg
Y29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpOworICAgICAg
ICAgICAgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInZlcnRp
Y2FsIikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUuaGVpZ2h0ICsgIiBi
eSAiICsgY29tcHV0ZWRTdHlsZS53aWR0aDsKKyAgICAgICAgICAgIHJldHVybiBjb21wdXRlZFN0
eWxlLndpZHRoICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7CisgICAgICAgIH0KKwor
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgIGZvcih2YXIgaSA9IDE7IGkgPD0gOTsgaSsrKQorICAgICAgICAgICAgICAgIGxv
ZygiaW1nIiArIGkgKyAiIHNpemUgPSAiICsgaW1hZ2VTaXplKGkpKTsKKyAgICAgICAgfSk7Cisg
ICAgPC9zY3JpcHQ+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24t
Y29tcG9zaXRlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2
YjE1OGJlYzU2YzE5ZTI2OTg1ZGUwMjg0ODQ2YzQ5MjI1ZGFmMmMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDE4ICswLDAgQEAKLVRoZSBpbWFnZXMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVp
ciBFWElGIG9yaWVudGF0aW9uLiBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1
bm5lciAob3IgYnkgbWFudWFsbHkgc2V0dGluZyBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbiB0byB0cnVlKS4KLQotCi1GbGlwcGVkIGhvcml6b250YWxseSAKLVJvdGF0ZWQgMTgw
wrAgCi1GbGlwcGVkIHZlcnRpY2FsbHkgCi0KLVJvdGF0ZWQgOTDCsCBDQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVkIDkwwrAgQ1cgYW5kIGZsaXBw
ZWQgdmVydGljYWxseSAgCi1Sb3RhdGVkIDkwwrAgQ1cgCi1pbWcxIHNpemUgPSAxMDBweCBieSA1
MHB4Ci1pbWcyIHNpemUgPSAxMDBweCBieSA1MHB4Ci1pbWczIHNpemUgPSAxMDBweCBieSA1MHB4
Ci1pbWc0IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc1IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1p
bWc2IHNpemUgPSA1MHB4IGJ5IDEwMHB4Ci1pbWc3IHNpemUgPSA1MHB4IGJ5IDEwMHB4CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBvc2l0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9z
aXRlZC5odG1sCmluZGV4IDk4Y2ZmMDlhNDcyZjRiOTEwYzFmOWVkZTU2NTBlZWJhMjMwNTJkZTEu
LjdiNTAyNzRhYzNlNmNlZTNiNjZkZmI5Mjc4YjEzYWQ4ODljMDQ3Y2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29tcG9zaXRlZC5o
dG1sCkBAIC0xLDQ2ICsxLDEwMyBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24odHJ1ZSk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KHRydWUpOwotCi1mdW5jdGlvbiBsb2coc3RyKSB7Ci0gICAgdmFyIGxp
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAgICBsaS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKLSAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Ci0gICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7Ci19
Ci0KLWZ1bmN0aW9uIGltYWdlU2l6ZShlbCkgewotICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAgIHJldHVybiBjb21wdXRlZFN0eWxlLndpZHRo
ICsgIiBieSAiICsgY29tcHV0ZWRTdHlsZS5oZWlnaHQ7Ci19Ci0KLQotZnVuY3Rpb24gbG9hZCgp
IHsKLSAgICBmb3IodmFyIGkgPSAxOyBpIDw9IDc7IGkrKykKLSAgICAgICAgbG9nKCJpbWciICsg
aSArICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIg
KyBpKSkpCi19Ci0KLTwvc2NyaXB0PgorPCFET0NUWVBFIGh0bWw+CiA8c3R5bGU+Ci1pbWcgeyAt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsgfQotZGl2IHsgZGlzcGxheTogaW5saW5l
LWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IHdpZHRoOiAx
MDBweDsgdmVydGljYWwtYWxpZ246IHRvcDsgfQorICAgIGRpdi5jb250YWluZXIgeworICAgICAg
ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisg
ICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAg
ICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7Cisg
ICAgICAgIHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2
LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7
CisgICAgfQorICAgIGltZyB7IAorICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl
WigwKTsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQogPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ibG9hZCgpIj4KLTxiPlRoZSBpbWFnZXMgc2hvdWxkIGJl
IHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLiBUaGlzIHRlc3QgY2Fu
IG9ubHkgYmUgcnVuIHdpdGggdGVzdFJ1bm5lciAob3IgYnkgbWFudWFsbHkgc2V0dGluZyBXZWJL
aXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiB0byB0cnVlKS48L2I+PGJyPjxicj4KLTxk
aXY+PGltZyBpZD0iaW1nMSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpw
ZyI+PGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzIiIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjxicj5Sb3RhdGVkIDE4MCZk
ZWc7PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzMiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNC1sb2wuanBnIj48YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08YnI+Ci08ZGl2
PjxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGci
Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHk8L2Rpdj4KLTxk
aXY+PGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1Lmpw
ZyI+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1c8L2Rpdj4KLTxkaXY+PGltZyBpZD0iaW1nNiIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyI+PGJyPlJvdGF0ZWQgOTAmZGVn
OyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5IDwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc3IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PGJyPlJvdGF0ZWQgOTAm
ZGVnOyBDVzwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgorPGJvZHk+CisgICAg
PGI+VGhlIGltYWdlcyBvZiB0aGUgY29tcG9zaXRlZCAmbHQ7aW1nJmd0OyBlbGVtZW50cyBzaG91
bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAg
IDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWcxIiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9Imlt
ZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZk
ZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc0IiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAg
ICAgICAgICAgIDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
NS1sdS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBD
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
bWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc3IiBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTctcmwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAg
ICAgICAgIDxpbWcgaWQ9ImltZzgiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1s
bG8uanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc5IiBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8
YnI+CisgICAgPHVsIGlkPSJjb25zb2xlIj48L3VsPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1
bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkp
OworICAgICAgICB9CisKKyAgICAgICAgICBmdW5jdGlvbiBpbWFnZVNpemUoZWwpIHsKKyAgICAg
ICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwor
ICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAiIGJ5ICIgKyBjb21wdXRl
ZFN0eWxlLmhlaWdodDsKKyAgICAgICAgfQorCisgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIChldmVudCkgPT4geworICAgICAgICAgICAgZm9yKHZhciBpID0gMTsgaSA8
PSA5OyBpKyspCisgICAgICAgICAgICAgICAgbG9nKCJpbWciICsgaSArICIgc2l6ZSA9ICIgKyBp
bWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIgKyBpKSkpOworICAgICAgICB9
KTsKKyAgICA8L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY29udGVudC1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb250ZW50LWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTQwMjE3NTNjNmMwNjY0NDc3MWY4NTFjODc3YmRlMmIyYTA5MTIz
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50
YXRpb24tY29udGVudC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1hcmdpbi1i
b3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0aWNhbC1h
bGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAx
MDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAg
ICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGlt
ZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwvc3R5bGU+Cis8
Ym9keT4KKyAgICA8Yj5UaGUgQ1NTIGNvbnRlbnQgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVkIHJl
c3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpv
bnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
MS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2Fs
ZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IEND
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlt
ZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNm
b3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBz
dHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNj
YWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxp
bWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5z
Zm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZh
bGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTc3
NjhlOTdjZjY2MDA1N2JmODk0ZjBmNzAyNTg2Y2U0ZWJlZWFmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb250ZW50Lmh0bWwKQEAg
LTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5l
ciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0
OiAyMHB4OworICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5pbWFnZSB7
CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBkaXYuaG9yaXpv
bnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAg
IH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIENTUyBjb250
ZW50IGltYWdlcyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50
YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6
IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZykiPjwvZGl2PgorICAgICAg
ICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+
RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iY29udGVu
dDogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnKSI+PC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgaG9yaXpvbnRhbCIgc3R5bGU9ImNv
bnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGcpIj48L2Rpdj4K
KyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0
aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1
LmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UgdmVydGljYWwiIHN0eWxlPSJjb250ZW50OiB1cmwocmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2ZXJ0aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVy
bChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZykiPjwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSB2
ZXJ0aWNhbCIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04
LWxsby5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJpbWFnZSBob3Jpem9udGFsIiBzdHlsZT0iY29udGVudDogdXJsKHJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTktdS5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAo
aW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAyMjQ1YjYwYmJiOGQyZDExOWU5ZTA3ZTgzMDVi
ZDYzMTE4NTYxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNzcy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Ob25lIG9mIHRoZSBpbWFnZXMgc2hv
dWxkIGJlIHJvdGF0ZWQuIFRoaXMgdGVzdCBpcyBvbmx5IHZhbGlkIHdoZW4gcnVuIHdpdGggdGVz
dFJ1bm5lciAob3Igd2l0aCBXZWJLaXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiBtYW51
YWxseSBzZXQgdG8gdHJ1ZSkuCi0KLQotTm9ybWFsIAotRmxpcHBlZCBob3Jpem9udGFsbHkgCi1S
b3RhdGVkIDE4MMKwIAotRmxpcHBlZCB2ZXJ0aWNhbGx5IAotCi1Sb3RhdGVkIDkwwrAgQ0NXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ0NXIAotUm90YXRlZCA5MMKwIENX
IGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ1cgCi0KLVJvdGF0ZWQgOTDC
sCBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDQ1cgCi1Sb3RhdGVk
IDkwwrAgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSAKLVJvdGF0ZWQgOTDCsCBDVyAKLQotVW5k
ZWZpbmVkIChpbnZhbGlkIHZhbHVlKSAKLWltZzEgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzIg
c2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzMgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzQgc2l6
ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzUgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzYgc2l6ZSA9
IDEwMHB4IGJ5IDUwcHgKLWltZzcgc2l6ZSA9IDEwMHB4IGJ5IDUwcHgKLWltZzggc2l6ZSA9IDEw
MHB4IGJ5IDUwcHgKLWltZzkgc2l6ZSA9IDEwMHB4IGJ5IDEwMHB4Ci1pbWcxMCBzaXplID0gMTAw
cHggYnkgMTAwcHgKLWltZzExIHNpemUgPSAxMDBweCBieSAxMDBweAotaW1nMTIgc2l6ZSA9IDEw
MHB4IGJ5IDEwMHB4Ci1pbWcxMyBzaXplID0gMTAwcHggYnkgNTBweApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tY3NzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDc0MTdmNTU4OTIxMzM2NDZkMzg2NmEwYmFlZWIzNjE2ODJlYjFmYmMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDU1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKHRydWUpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCh0cnVlKTsKLQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoc3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5j
dGlvbiBpbWFnZVNpemUoZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGVsKTsKLSAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkg
IiArIGNvbXB1dGVkU3R5bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAg
Zm9yKHZhciBpID0gMTsgaSA8PSAxMzsgaSsrKQotICAgICAgICBsb2coImltZyIgKyBpICsgIiBz
aXplID0gIiArIGltYWdlU2l6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIiArIGkpKSkK
LX0KLQotPC9zY3JpcHQ+Ci08c3R5bGU+Ci1kaXYuaW1hZ2UgeyBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci1kaXYuY29udGFpbmVyIHsgZGlzcGxheTog
aW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IHdp
ZHRoOiAxMDBweDsgdmVydGljYWwtYWxpZ246IHRvcDsgfQotaW1nIHsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDEwMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9Ci08L3N0eWxlPgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+Tm9uZSBvZiB0aGUgaW1hZ2VzIHNo
b3VsZCBiZSByb3RhdGVkLiBUaGlzIHRlc3QgaXMgb25seSB2YWxpZCB3aGVuIHJ1biB3aXRoIHRl
c3RSdW5uZXIgKG9yIHdpdGggV2ViS2l0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gbWFu
dWFsbHkgc2V0IHRvIHRydWUpLjwvYj48YnI+PGJyPgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48
ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzEiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGcpIj48L2Rpdj48YnI+Tm9ybWFsPC9kaXY+Ci08ZGl2
IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nMiIgc3R5bGU9ImNv
bnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZykiPjwvZGl2Pjxi
cj5GbGlwcGVkIGhvcml6b250YWxseTwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2
IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzMiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMy1sci5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCAxODAmZGVnOzwvZGl2
PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzQiIHN0
eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnKSI+
PC9kaXY+PGJyPkZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGJyPgotPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIgaWQ9ImltZzUiIHN0eWxlPSJjb250ZW50OiB1cmwo
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGcpIj48L2Rpdj48YnI+Um90YXRlZCA5
MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250
YWluZXIiPjxkaXYgY2xhc3M9ImltYWdlIiBpZD0iaW1nNiIgc3R5bGU9ImNvbnRlbnQ6IHVybChy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXPC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxkaXYgY2xhc3M9ImltYWdl
IiBpZD0iaW1nNyIgc3R5bGU9ImNvbnRlbnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZykiPjwvZGl2Pjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVy
dGljYWxseTwvZGl2PgotPGRpdiBjbGFzcz0iY29udGFpbmVyIj48ZGl2IGNsYXNzPSJpbWFnZSIg
aWQ9ImltZzgiIHN0eWxlPSJjb250ZW50OiB1cmwocmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
OC1sbG8uanBnKSI+PC9kaXY+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVzwvZGl2PgotPGJyPgotPGRp
diBjbGFzcz0iY29udGFpbmVyIj48aW1nIGlkPSJpbWc5IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFn
ZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTUtbHUuanBnKSI+PC9pbWc+PGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseTwvZGl2PgotPGRpdiBjbGFz
cz0iY29udGFpbmVyIj48aW1nIGlkPSJpbWcxMCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVy
bChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZykiPjwvaW1nPjxicj5Sb3RhdGVk
IDkwJmRlZzsgQ0NXPC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzEx
IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9u
LTctcmwuanBnKSI+PC9pbWc+PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0
aWNhbGx5PC9kaXY+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiPjxpbWcgaWQ9ImltZzEyIiBzdHls
ZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxv
LmpwZykiPjwvaW1nPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+PGRpdiBjbGFzcz0iaW1hZ2UiIGlkPSJpbWcxMyIgc3R5bGU9ImNvbnRl
bnQ6IHVybChyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnKSI+PC9kaXY+PGJyPlVu
ZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSk8L2Rpdj4KLTxicj4KLTx1bCBpZD0iY29uc29sZSI+PC91
bD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2V4aWYtb3JpZW50YXRpb24tZWxlbWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1lbGVtZW50LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWQxOGE2ODU1MjMwNWMxOTA2NTk5YTkyNjVjZWQxZjVmMjRhNGYxOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tZWxlbWVudC1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTA1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4K
KyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAg
ICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAK
KyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAg
ICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBo
ZWlnaHQ6IDUycHg7CisgICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1
MnB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+
VGhlIGltYWdlcyBvZiB0aGUgICZsdDtpbWcmZ3Q7IGVsZW1lbnRzIHNob3VsZCBiZSByb3RhdGVk
IHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxi
cj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzEiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1h
bAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nMiIgc3JjPSJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVY
KC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiByb3RhdGUo
MTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzQiIHNyYz0icmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgt
MSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVk
IHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBp
ZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9
InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgt
MSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlk
PSJpbWc2IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0i
dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwi
PgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNyIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSBy
b3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+
CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc4IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJv
dGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBpZD0i
aW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2
PgorICAgIDxicj4KKyAgICA8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRD
aGlsZChsaSk7CisgICAgICAgIH0KKworICAgICAgICAgZnVuY3Rpb24gaW1hZ2VTaXplKGluZGV4
KSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJp
bWciICsgaW5kZXgpOworICAgICAgICAgICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50KTsKKyAgICAgICAgICAgIGlmIChlbGVtZW50LnBhcmVudEVs
ZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2ZXJ0aWNhbCIpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBjb21wdXRlZFN0eWxlLmhlaWdodCArICIgYnkgIiArIGNvbXB1dGVkU3R5bGUud2lkdGg7
CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkgIiArIGNvbXB1
dGVkU3R5bGUuaGVpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBmb3IodmFyIGkgPSAxOyBp
IDw9IDk7IGkrKykKKyAgICAgICAgICAgICAgICBsb2coImltZyIgKyBpICsgIiBzaXplID0gIiAr
IGltYWdlU2l6ZShpKSk7CisgICAgICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24tZWxlbWVudC1vYmplY3QtZml0LWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWVsZW1lbnQtb2JqZWN0LWZp
dC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExODg4ZmIyNTgyYWY0N2U2YTEzMzk0ZmRhMzMy
NDgyYTVlOWJmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9l
eGlmLW9yaWVudGF0aW9uLWVsZW1lbnQtb2JqZWN0LWZpdC1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsNzggQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgewor
ICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBw
eDsgCisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7
IAorICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuc3F1YXJlIHsK
KyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+
VGhlIGltYWdlcyBvZiB0aGUgJmx0O2ltZyZndDsgZWxlbWVudHMgd2l0aCBvYmplY3QtZml0IHBy
b3BlcnR5IHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlv
bi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGRpdj4KKyAgICAgICAg
ICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0
eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KTsiPgorICAgICAgICAgICAgPC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5
bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHNjYWxlWCgtMSk7Ij4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
IHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoMTgwZGVnKTsiPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUi
PgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwu
anBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCkgc2NhbGVYKC0xKSByb3Rh
dGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGlj
YWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291
cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xh
dGUoMCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgpIHJvdGF0
ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsg
Q0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0ic3F1YXJlIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDI1cHgp
IHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+
CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5q
cGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAyNXB4KSByb3RhdGUoMjcwZGVnKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMjVweCk7
Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUp
CisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLWVsZW1lbnQtb2JqZWN0LWZpdC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1lbGVtZW50LW9iamVjdC1maXQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZGI2NDIwOWU5YjY1NDQ2NzhhOTE4MzRmYTA3YzUzZDViYmMwOWQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1lbGVt
ZW50LW9iamVjdC1maXQuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
dHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAx
MHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRv
cDsKKyAgICB9CisgICAgZGl2LnNxdWFyZSB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAg
fQorICAgIGltZyB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+
CisgICAgPGI+VGhlIGltYWdlcyBvZiB0aGUgJmx0O2ltZyZndDsgZWxlbWVudHMgd2l0aCBvYmpl
Y3QtZml0IHByb3BlcnR5IHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBv
cmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAgICAgICAgICAgPGltZyBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAg
ICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUiPgorICAg
ICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9k
aXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNS1sdS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzcXVhcmUi
PgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwu
anBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5k
IGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNxdWFyZSI+CisgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3F1YXJlIj4KKyAg
ICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisg
ICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9l
eGlmLW9yaWVudGF0aW9uLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4
aWYtb3JpZW50YXRpb24tZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlYjgyNDFmMjg5MDZmYWM2
ZjljMTRhOGQ5NGE0OGEwNGFjOGM1NjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDEwMiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OyAKKyAg
ICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdpZHRoOiAxMDBweDsgCisgICAg
ICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ob3Jpem9udGFsIHsKKyAg
ICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYu
dmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsK
KyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAg
fQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgdGhlICAmbHQ7aW1nJmd0
OyBlbGVtZW50cyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50
YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlk
PSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5q
cGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlk
PSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzUiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tNS1sdS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tNi1ydS5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc3IiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZl
cnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzgiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tOC1sbG8uanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8
aW1nIGlkPSJpbWc5IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAg
ICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPHVsIGlkPSJjb25zb2xlIj48L3VsPgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGZ1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBsaSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUu
YXBwZW5kQ2hpbGQobGkpOworICAgICAgICB9CisKKyAgICAgICAgICBmdW5jdGlvbiBpbWFnZVNp
emUoZWwpIHsKKyAgICAgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZWwpOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUud2lkdGggKyAi
IGJ5ICIgKyBjb21wdXRlZFN0eWxlLmhlaWdodDsKKyAgICAgICAgfQorCisgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4geworICAgICAgICAgICAgZm9y
KHZhciBpID0gMTsgaSA8PSA5OyBpKyspCisgICAgICAgICAgICAgICAgbG9nKCJpbWciICsgaSAr
ICIgc2l6ZSA9ICIgKyBpbWFnZVNpemUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltZyIgKyBp
KSkpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmNDg4MzIzZjQ5NGEwNmI3NDkwYWY2MDM5N2QxNGY5
MjAxYWUzYWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgaW1hZ2VzIHNob3VsZCBiZSByb3RhdGVk
IHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi4gVGhpcyB0ZXN0IGNhbiBvbmx5IGJl
IHJ1biB3aXRoIHRlc3RSdW5uZXIgKG9yIGJ5IG1hbnVhbGx5IHNldHRpbmcgV2ViS2l0U2hvdWxk
UmVzcGVjdEltYWdlT3JpZW50YXRpb24gdG8gdHJ1ZSkuCi0KLQotTm9ybWFsIAotRmxpcHBlZCBo
b3Jpem9udGFsbHkgCi1Sb3RhdGVkIDE4MMKwIAotRmxpcHBlZCB2ZXJ0aWNhbGx5IAotCi1Sb3Rh
dGVkIDkwwrAgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgCi1Sb3RhdGVkIDkwwrAgQ0NXIAot
Um90YXRlZCA5MMKwIENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkgIAotUm90YXRlZCA5MMKwIENX
IAotCi1VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpIAotaW1nMSBzaXplID0gMTAwcHggYnkgNTBw
eAotaW1nMiBzaXplID0gMTAwcHggYnkgNTBweAotaW1nMyBzaXplID0gMTAwcHggYnkgNTBweAot
aW1nNCBzaXplID0gMTAwcHggYnkgNTBweAotaW1nNSBzaXplID0gNTBweCBieSAxMDBweAotaW1n
NiBzaXplID0gNTBweCBieSAxMDBweAotaW1nNyBzaXplID0gNTBweCBieSAxMDBweAotaW1nOCBz
aXplID0gNTBweCBieSAxMDBweAotaW1nOSBzaXplID0gMTAwcHggYnkgNTBweApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVu
dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlv
bi1pbWFnZS1kb2N1bWVudC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5YTQ4NzZiYTExYTg4
MjRkYWVkMDNjNWIzN2NmYzI3NDMxMzU0MzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50LWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNv
bnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2lu
LXJpZ2h0OiAyMHB4OyAKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgCisgICAgICAgIHdp
ZHRoOiAxMDBweDsgCisgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRp
di5ob3Jpem9udGFsIHsKKyAgICAgICAgd2lkdGg6IDEwMjsKKyAgICAgICAgaGVpZ2h0OiA1MnB4
OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAg
ICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMg
b2YgdGhlIEltYWdlRG9jdW1lbnRzIHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIg
RVhJRiBvcmllbnRhdGlvbi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxl
PSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5G
bGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
MTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogc2NhbGVYKC0x
KSByb3RhdGUoMTgwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06
IHRyYW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDkwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2
ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQg
dmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAg
ICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAg
IDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3VtZW50LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDczMTNiZTUyMzRmNWUyODY3YWQ0ZDU2MDA2
YTUzNWUwZWZjNmY0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3Vt
ZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGhlIGltYWdl
cyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIElu
IGltYWdlIGRvY3VtZW50cywgdGhpcyBoYXBwZW5zIGluZGVwZW5kZW50IG9mIFdlYktpdFNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLgotCi0gICAgCi0gICAgCi0gCi1QQVNTCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLWRvY3Vt
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdl
LWRvY3VtZW50Lmh0bWwKaW5kZXggOTIxYjNlNTU4Yjk0NDAyOGZhNmQwZmE1OTQ5ZTU4NzY2MGFh
MDhkMS4uMTIzMjFhZTRiZjhiZWY0MzgzNGU2N2I0OTViOTNiYWFhMTgwNjIxYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1kb2N1bWVu
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24taW1h
Z2UtZG9jdW1lbnQuaHRtbApAQCAtMSw1OSArMSwxMDMgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgLy8gTm90ZSB0aGF0IHRoaXMgdGVz
dCBvbmx5IHBhc3NlcyBpbiBEUlQuIEluIGJyb3dzZXJzLCB0aGUgY3Jvc3MtaWZyYW1lIGRvbSBp
bnNwZWN0aW9uIHVzdWFsbHkgY2F1c2VzIGEgc2VjdXJpdHkgZXhjZXB0aW9uLgotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLX0KLQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZh
ciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkp
OwotfQotCi1mdW5jdGlvbiBpbWFnZVNpemUobmFtZSkgewotICAgIHZhciBpbWcgPSB3aW5kb3cu
ZnJhbWVzW25hbWVdLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpOwotICAgIHJldHVybiBb
aW1nLm9mZnNldFdpZHRoLCBpbWcub2Zmc2V0SGVpZ2h0XTsKLX0KLQotCi1mdW5jdGlvbiBsb2Fk
KCkgewotICAgIHZhciBleHBlY3RlZCA9IFsKLSAgICAgIFsxMDAsIDUwXSwgWzEwMCwgNTBdLCBb
MTAwLCA1MF0sIFsxMDAsIDUwXSwgCi0gICAgICBbNTAsIDEwMF0sIFs1MCwgMTAwXSwgWzUwLCAx
MDBdLCBbNTAsIDEwMF0sIAotICAgICAgWzEwMCwgNTBdLAotICAgIF07Ci0gICAgdmFyIHN1Y2Nl
c3MgPSB0cnVlOwotICAgIGZvcih2YXIgaSA9IDE7IGkgPD0gOTsgaSsrKSB7Ci0gICAgICAgIHZh
ciBzID0gaW1hZ2VTaXplKCJpbWciICsgaSk7Ci0gICAgICAgIGlmIChzWzBdICE9PSBleHBlY3Rl
ZFtpIC0gMV1bMF0gfHwgc1sxXSAhPT0gZXhwZWN0ZWRbaSAtIDFdWzFdKQotICAgICAgICAgICAg
c3VjY2VzcyA9IGZhbHNlOwotICAgIH0KLSAgICBsb2coc3VjY2VzcyA/ICJQQVNTIiA6ICJGQUlM
Iik7Ci19Ci0KLTwvc2NyaXB0PgorPCFET0NUWVBFIGh0bWw+CiA8c3R5bGU+Ci1pZnJhbWUgeyBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRvbTog
MTBweDsgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IDExMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsgfQorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsKKyAgICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICB2
ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAg
IHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRp
Y2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAg
fQorICAgIGlmcmFtZSB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0K
KyAgICBpZnJhbWUuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
aGVpZ2h0OiA1MHB4OworICAgIH0KKyAgICBpZnJhbWUudmVydGljYWwgeworICAgICAgICB3aWR0
aDogNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9CiA8L3N0eWxlPgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUgcm90YXRl
ZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIEluIGltYWdlIGRvY3VtZW50cywg
dGhpcyBoYXBwZW5zIGluZGVwZW5kZW50IG9mIFdlYktpdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uLjwvYj48YnI+PGJyPgotPGlmcmFtZSBuYW1lPSJpbWcxIiBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFt
ZSBuYW1lPSJpbWcyIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIiBm
cmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpbWczIiBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBnIiBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPgotPGlm
cmFtZSBuYW1lPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpw
ZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTxpZnJhbWUgbmFtZT0iaW1nNSIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01LWx1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lm
cmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi02LXJ1LmpwZyIgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nNyIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi03LXJsLmpwZyIgZnJhbWVib3JkZXI9MD48
L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi04LWxsby5qcGciIGZyYW1lYm9yZGVyPTA+PC9pZnJhbWU+Ci08YnI+Ci08aWZyYW1lIG5h
bWU9ImltZzkiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyIgZnJhbWVi
b3JkZXI9MD48L2lmcmFtZT4KLTxicj4KLTx1bCBpZD0iY29uc29sZSI+PC91bD4KLTwvYm9keT4K
LTwvaHRtbD4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgdGhlIEltYWdlRG9jdW1lbnRz
IHNob3VsZCBiZSByb3RhdGVkIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBvcmllbnRhdGlvbi48L2I+
CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9Imhv
cml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tMS11bC5qcGciPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGlmcmFtZSBjbGFzcz0i
aG9yaXpvbnRhbCIgb25sb2FkPSJvbkZyYW1lTG9hZCh0aGlzKSIgc3JjPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi0yLXVyLmpwZyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciPjwvaWZyYW1lPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4K
KyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9Imhvcml6b250YWwiIG9ubG9hZD0ib25GcmFtZUxv
YWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIj48L2lm
cmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlmcmFtZSBjbGFzcz0idmVydGlj
YWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tNS1sdS5qcGciPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4K
KyAgICAgICAgICAgIDxpZnJhbWUgY2xhc3M9InZlcnRpY2FsIiBvbmxvYWQ9Im9uRnJhbWVMb2Fk
KHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj48L2lmcmFt
ZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
dmVydGljYWwiPgorICAgICAgICAgICAgPGlmcmFtZSBjbGFzcz0idmVydGljYWwiIG9ubG9hZD0i
b25GcmFtZUxvYWQodGhpcykiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5q
cGciPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAg
PGlmcmFtZSBjbGFzcz0idmVydGljYWwiIG9ubG9hZD0ib25GcmFtZUxvYWQodGhpcykiIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIj48L2lmcmFtZT4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8
YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8aWZyYW1lIGNsYXNzPSJob3Jpem9udGFsIiBvbmxvYWQ9
Im9uRnJhbWVMb2FkKHRoaXMpIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTktdS5q
cGciPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52
YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKKyAgICAgICAgIHZhciBpRnJhbWVMb2FkZWRDb3VudCA9IDA7CiAKKyAgICAgICAgIGZ1
bmN0aW9uIG9uRnJhbWVMb2FkKCkgeworICAgICAgICAgICAgaWYgKCsraUZyYW1lTG9hZGVkQ291
bnQgPT0gOSkgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWltYWdlLW9iamVjdC1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1v
YmplY3QtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTgzNmUxNjQxOGQ1N2RiMjU0MzU5YmQy
NGI0MTgyOGZkNmU1ZTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAg
ICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7
IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4OyAK
KyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250YWwg
eworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQorICAg
IGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6IDEw
MnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsK
KyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiB0aGUgJmx0O29i
amVjdCZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElG
IG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogc2NhbGVYKC0xKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBw
ZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHJv
dGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAm
ZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJv
dGF0ZSgxODBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0
aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJh
bnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpIHNjYWxlWSgtMSk7Ij4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRp
Y2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVw
eCwgMjVweCkgcm90YXRlKDkwZGVnKTsiPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRy
YW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0
aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1
cHgsIDI1cHgpIHJvdGF0ZSgyNzBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAg
ICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9k
aXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWltYWdlLW9iamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhp
Zi1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzRkYTllYmFkM2Jl
YzdkOTdhZDZmMGRlODA5MGNjNDQ4YzYzYmNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1pbWFnZS1vYmplY3QuaHRtbApAQCAtMCww
ICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsK
KyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIw
cHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEwMHB4
OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6b250
YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAgfQor
ICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWlnaHQ6
IDEwMnB4OworICAgIH0KKyAgICBvYmplY3QgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiB0aGUg
Jmx0O29iamVjdCZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVp
ciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAg
ICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdl
L2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIj48L29iamVj
dD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
Imhvcml6b250YWwiPgorICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRh
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpwZyI+PC9vYmplY3Q+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhp
Zi1vcmllbnRhdGlvbi00LWxvbC5qcGciPjwvb2JqZWN0PgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAg
ICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTUtbHUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAg
ICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi03LXJsLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8b2JqZWN0IHR5cGU9ImltYWdlL2pwZWciIGRhdGE9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTgtbGxvLmpwZyI+PC9vYmplY3Q+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAg
ICAgICAgICAgPG9iamVjdCB0eXBlPSJpbWFnZS9qcGVnIiBkYXRhPSJyZXNvdXJjZXMvZXhpZi1v
cmllbnRhdGlvbi05LXUuanBnIj48L29iamVjdD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLXN2Zy1mZWltYWdl
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9u
LXN2Zy1mZWltYWdlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY2NWJkZWYxMGVlNWY5ZWM2
ODkxNjZiZDBjZmFkMTgxMDFkMDI5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVy
IHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6
IDIwcHg7IAorICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAKKyAgICAgICAgd2lkdGg6IDEw
MHB4OyAKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhvcml6
b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7CisgICAg
fQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBoZWln
aHQ6IDEwMnB4OworICAgIH0KKyAgICBpbWcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhlIGltYWdlcyBvZiB0aGUg
U1ZHICZsdDtmZWltYWdlJmd0OyBlbGVtZW50cyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5n
IHRoZWlyIEVYSUYgb3JpZW50YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
IiBzdHlsZT0idHJhbnNmb3JtOiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAg
IDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNj
YWxlWCgtMSkgcm90YXRlKDE4MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5G
bGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAg
PGltZyBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJh
bnNmb3JtOiB0cmFuc2xhdGUoLTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsi
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZs
aXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJh
bnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRy
YW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEp
OyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBm
bGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0i
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRy
YW5zbGF0ZSgtMjVweCwgMjVweCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5q
cGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1
ZSkKKyAgICA8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2V4aWYtb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tc3ZnLWZlaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjFj
NTg0OTI2NmNjYmZiM2M3ODZhNGY4NTQ1NWJiZDc3NzQyOWJkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1zdmctZmVpbWFnZS5odG1s
CkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29u
dGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4t
cmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhv
cml6b250YWwgeworICAgICAgICB3aWR0aDogMTAyOworICAgICAgICBoZWlnaHQ6IDUycHg7Cisg
ICAgfQorICAgIGRpdi52ZXJ0aWNhbCB7CisgICAgICAgIHdpZHRoOiA1MnB4OworICAgICAgICBo
ZWlnaHQ6IDEwMnB4OworICAgIH0KKyAgICBzdmcgeworICAgICAgICBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsKKyAgICB9CisgICAgc3ZnLmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICB9CisgICAgc3ZnLnZlcnRpY2FsIHsKKyAg
ICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHls
ZT4KKzxib2R5PgorICAgIDxiPlRoZSBpbWFnZXMgb2YgdGhlIFNWRyAmbHQ7ZmVpbWFnZSZndDsg
ZWxlbWVudHMgc2hvdWxkIGJlIHJvdGF0ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0
aW9uLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nMSI+CisgICAg
ICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9
IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+CisgICAg
ICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUi
IGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzEpOyIvPgorICAgICAgICAgICAg
PC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAg
ICA8ZmlsdGVyIGlkPSJpbWcyIj4KKyAgICAgICAgICAgICAgICAgICAgPGZlaW1hZ2UgeD0iMCIg
eT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMi11ci5qcGciLz4KKyAgICAgICAgICAgICAgICA8L2ZpbHRlcj4KKyAgICAgICAg
ICAgICAgICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsdGVyOnVy
bCgjaW1nMik7Ii8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5GbGlwcGVkIGhvcml6b250YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAg
PHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1n
MyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAl
IiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIuanBn
Ii8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lk
dGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzMpOyIvPgorICAg
ICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAm
ZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0iaW1nNCI+CisgICAgICAgICAgICAgICAg
ICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIvPgorICAgICAgICAgICAgICAg
IDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc0KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICAgICAgPGZpbHRlciBpZD0iaW1nNSI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdl
IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTUtbHUuanBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+Cisg
ICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZp
bHRlcjp1cmwoI2ltZzUpOyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0idmVydGljYWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzYiPgorICAgICAgICAgICAgICAgICAgICA8ZmVpbWFn
ZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIvPgorICAgICAgICAgICAgICAgIDwvZmlsdGVyPgor
ICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJm
aWx0ZXI6dXJsKCNpbWc2KTsiLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0i
aW1nNyI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIx
MDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwu
anBnIi8+CisgICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qg
d2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzcpOyIvPgor
ICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8c3ZnIGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGZpbHRlciBpZD0i
aW1nOCI+CisgICAgICAgICAgICAgICAgICAgIDxmZWltYWdlIHg9IjAiIHk9IjAiIHdpZHRoPSIx
MDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxv
LmpwZyIvPgorICAgICAgICAgICAgICAgIDwvZmlsdGVyPgorICAgICAgICAgICAgICAgIDxyZWN0
IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWx0ZXI6dXJsKCNpbWc4KTsiLz4K
KyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxzdmcg
Y2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9ImltZzkiPgor
ICAgICAgICAgICAgICAgICAgICA8ZmVpbWFnZSB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVp
Z2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIi8+Cisg
ICAgICAgICAgICAgICAgPC9maWx0ZXI+CisgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbHRlcjp1cmwoI2ltZzkpOyIvPgorICAgICAgICAg
ICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlk
IHZhbHVlKQorICAgIDwvZGl2PgorICAgIDxicj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24tc3ZnLWltYWdlLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZGIwOGUyMzI3ZDE0OWE0YzY3MDM4YzRmY2FhNmQ2
ZTZlNjdjZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlm
LW9yaWVudGF0aW9uLXN2Zy1pbWFnZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAg
IG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2
ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAg
IHdpZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRp
Y2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAg
fQorICAgIGltZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKzwv
c3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5UaGUgaW1hZ2VzIG9mIHRoZSBTVkcgJmx0O2ltYWdlJmd0
OyBlbGVtZW50cyBzaG91bGQgYmUgcm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50
YXRpb24uPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNy
Yz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBz
cmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3Jt
OiBzY2FsZVgoLTEpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jp
em9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogcm90YXRlKDE4
MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDE4
MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBzcmM9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGUo
LTI1cHgsIDI1cHgpIHJvdGF0ZSg5MGRlZykgc2NhbGVZKC0xKTsiPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQor
ICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKC0yNXB4LCAyNXB4
KSByb3RhdGUoOTBkZWcpOyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5
MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxpbWcgc3JjPSJyZXNvdXJj
ZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRl
KC0yNXB4LCAyNXB4KSByb3RhdGUoMjcwZGVnKSBzY2FsZVkoLTEpOyI+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8aW1nIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciIHN0eWxlPSJ0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjVweCwgMjVw
eCkgcm90YXRlKDI3MGRlZyk7Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1n
IHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rpdj4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRp
b24tc3ZnLWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLXN2Zy1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NGI3ZmM3ZDc0NTMyN2Q1MDBkYjI3N2Mw
NmZmYTFhODNkZjViOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9leGlmLW9yaWVudGF0aW9uLXN2Zy1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMTA5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1h
cmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGlj
YWwtYWxpZ246IHRvcDsKKyAgICB9CisKKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdp
ZHRoOiAxMDI7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2Fs
IHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQor
ICAgIHN2ZyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICBz
dmcuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1
MHB4OworICAgIH0KKyAgICBzdmcudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTBweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+VGhl
IGltYWdlcyBvZiB0aGUgU1ZHICZsdDtpbWFnZSZndDsgZWxlbWVudHMgc2hvdWxkIGJlIHJvdGF0
ZWQgcmVzcGVjdGluZyB0aGVpciBFWElGIG9yaWVudGF0aW9uLjwvYj4KKyAgICA8YnI+CisgICAg
PGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAg
ICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGhyZWY9InJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAg
ICAgIDxzdmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxpbWFnZSB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0y
LXVyLmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxz
dmcgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgICAgIDxpbWFnZSB3aWR0aD0iMTAw
JSIgaGVpZ2h0PSIxMDAlIiBocmVmPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxyLmpw
ZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90
YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPHN2ZyBjbGFzcz0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9
IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIvPgorICAg
ICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0
aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxzdmcgY2xhc3M9
InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEwMCUiIGhlaWdodD0i
MTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciLz4KKyAgICAg
ICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVn
OyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5q
cGciLz4KKyAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8c3ZnIGNsYXNz
PSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICAgICAgPGltYWdlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9
IjEwMCUiIGhyZWY9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTctcmwuanBnIi8+CisgICAg
ICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRl
ZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAg
IDxzdmcgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8u
anBnIi8+CisgICAgICAgICAgICA8L3N2Zz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICA8c3ZnIGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgICAgICA8aW1hZ2Ugd2lkdGg9
IjEwMCUiIGhlaWdodD0iMTAwJSIgaHJlZj0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11
LmpwZyIvPgorICAgICAgICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwZDhjODNiMGQ1ZjNlZDVkZTkzMDliODYyNzRmZTE3MTRiZjA1YThjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2V4aWYtb3JpZW50YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KHRydWUpOwotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCh0cnVlKTsKLQotZnVuY3Rpb24gbG9nKHN0cikgewotICAgIHZhciBsaSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImxpIik7Ci0gICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoc3RyKSk7Ci0gICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpOwotICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwotfQotCi1mdW5jdGlvbiBp
bWFnZVNpemUoZWwpIHsKLSAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGVsKTsKLSAgICByZXR1cm4gY29tcHV0ZWRTdHlsZS53aWR0aCArICIgYnkgIiArIGNv
bXB1dGVkU3R5bGUuaGVpZ2h0OwotfQotCi0KLWZ1bmN0aW9uIGxvYWQoKSB7Ci0gICAgZm9yKHZh
ciBpID0gMTsgaSA8PSA5OyBpKyspCi0gICAgICAgIGxvZygiaW1nIiArIGkgKyAiIHNpemUgPSAi
ICsgaW1hZ2VTaXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciICsgaSkpKQotfQotCi08
L3NjcmlwdD4KLTxzdHlsZT4KLWltZyB7IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyB9Ci1kaXYg
eyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDsgbWFyZ2luLWJvdHRv
bTogMTBweDsgd2lkdGg6IDEwMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9Ci08L3N0eWxlPgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPGI+VGhlIGltYWdlcyBzaG91bGQgYmUg
cm90YXRlZCByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24uIFRoaXMgdGVzdCBjYW4g
b25seSBiZSBydW4gd2l0aCB0ZXN0UnVubmVyIChvciBieSBtYW51YWxseSBzZXR0aW5nIFdlYktp
dFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIHRvIHRydWUpLjwvYj48YnI+PGJyPgotPGRp
dj48aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
Ij48YnI+Tm9ybWFsPC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzIiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tMi11ci5qcGciPjxicj5GbGlwcGVkIGhvcml6b250YWxseTwvZGl2Pgot
PGRpdj48aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTMtbHIu
anBnIj48YnI+Um90YXRlZCAxODAmZGVnOzwvZGl2PgotPGRpdj48aW1nIGlkPSJpbWc0IiBzcmM9
InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyI+PGJyPkZsaXBwZWQgdmVydGlj
YWxseTwvZGl2PgotPGJyPgotPGRpdj48aW1nIGlkPSJpbWc1IiBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTUtbHUuanBnIj48YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5PC9kaXY+Ci08ZGl2PjxpbWcgaWQ9ImltZzYiIHNyYz0icmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tNi1ydS5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXPC9kaXY+Ci08
ZGl2PjxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5q
cGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseSA8L2Rpdj4K
LTxkaXY+PGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxs
by5qcGciPjxicj5Sb3RhdGVkIDkwJmRlZzsgQ1c8L2Rpdj4KLTxicj4KLTxkaXY+PGltZyBpZD0i
aW1nOSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi05LXUuanBnIj48YnI+VW5kZWZp
bmVkIChpbnZhbGlkIHZhbHVlKTwvZGl2PgotPGJyPgotPHVsIGlkPSJjb25zb2xlIj48L3VsPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBhMTc1NmY2YWQ1ZDc4MDBjOGM4YzcyYzRhYWRhZmIzNGI3ZmU5NDQzLi40NTc4NTdk
ZjYzYThkNTQ1ZmFmZGZhYTVlMzRmYzA2MmU4ZDU4OWMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk0NCw4ICsyOTQ0LDYgQEAgd2Via2l0Lm9yZy9i
LzEyMDU5NiBjc3MzL21hc2tpbmcvbWFzay1yZXBlYXQtc3BhY2UtY29udGVudC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHUKIAogd2Via2l0Lm9yZy9iLzEyMDgzOSBsZWdhY3ktYW5pbWF0aW9uLWVuZ2lu
ZS9hbmltYXRpb25zL2Nyb3NzLWZhZGUtYmFja2dyb3VuZC1pbWFnZS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xMjE5MDUgZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRh
dGlvbi5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xODA1ODEgY3NzMy9zaGFwZXMv
c2hhcGUtb3V0c2lkZS92YWx1ZXMvc2hhcGUtbWFyZ2luLTAwMS5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMTgwNTgxIGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBl
LW91dHNpZGUtY2lyY2xlLTAwNC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgwNTgx
IGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLW91dHNpZGUtY2lyY2xlLTAw
NS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jb21wb3NpdGVkLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0aW9uLWNvbXBv
c2l0ZWQtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjE3MTM0
Yzg3MzBiYTlmYTIxY2NiOGM4N2JhYzM4MzY1ODkzNTJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpsaXRlcmFsIDQ3NzI1CnpjbVo1bzF5RWUrKG5XJU0yciMmWDtPK3pgU24hYkc/KFIwWXk5SVlB
a2Y0SipBcTAxS20lLWYhYERmcTAtVCY9WQp6LUt2cUErdXhuTy1DdihSZVAkdyo2e1JzeWlCTXIr
VUAmQjVLNzR8S2Z2MTNoZnp2PW5ndWF2RTdVJSRkcG0ma2YKemE1MShwSE1Wd2t3VDBtXjx1QEBp
RzI9QWlGeWIqfT1RSzZzO2IzRnE8fUA8bDxLWiRrPFlMRlcxZCtoTmh7REt6Cno1Y30pX2R6Nmlt
WEotNz09aldkT3s9RzR4Rj5lWThTNEZlTkVSX2p8b2AmWClXRzM+SCs/KFBMVWxaT15zdGhYagp6
RD1yWDE2YW5iUXkrXm1KbW9MNzR4NTluUj1BJk0jeDl6dCtZbWtvOUN0PVE4cChXPj5vbDhpemJJ
d3xBIXZ9fFYKenZ+V311fDJWaVEjPGhhQC1oPzJCYH5Uek1nQyhUK15hPStYX0o1OW00NGluX1Bu
Xj97R09zPn17X2xZcD8oJmI8Cnp1UmkzTnkpeUJpTXo1IU97bDVsYXEzMlZQez0rNkxQQU1VRERR
PTAxQFBGRWJvLWMjK3VlWXFFTD1rMDFsb19mMQp6PWMxdFkxNnBgUmNTa2JLVW0kQlFafFJ9MGlM
Zm9FITQpYn55Nnw2blJpK3NXSnImZl5EfSVHbWBYeHtubDJRPlYKekQwSXZIREJCPz90PUdCekxg
QnU1dXVrKWFWVlpKc1E5Z1NUPFRiM209VFJNRlRRUig9XktNSkZ5eEtPUHAyeXtBCnpMZThWeCZL
RG89ci1DUyFBMkp0JnI+S25PMjkwYUpVWHM3Y048QEVqRio1cGZLM2BXRUh8c2MkYUg5ZTV5VUN2
bwp6PFhHRzVBcENvSUxISTRCeFBGZ1k8UTRWeEdmJDhFTmA4WV5zKXZjRVpJYGpfX3EmOzxsMXNU
PjA1U1VMIUgrVzgKejkqVVF4R25YbVJqanpZVntIQT0pZGtCYFMkfH4/aCRUUkkpeldXPyV1aHA+
bj84YE9HWUZYZGtsZlReY3VgbW42CnpNPXttTjlKI2smJihAd1hXcUU4eUBPYS1qYm8leUZoQmR1
KEtKS3RPMD0mJkRZWCV1XlRHeVVOQDljRFp1NGxGIQp6MEFTd0Vkai1mWmYoYEA1JUJGKGMmWkMr
a2hEeXBPKTE9aCtCOWhCVG55VFd7P0B9IVo9ZiReVz1MKkMhV1JyckUKemBeP3UocEVpPCteeXtE
U0FhOzBCb24pUHdKKEReU2huZypFKD1oPlVfSzYkbFp6fjJJU2VuKVlnLV9RPGMkUzdeCnoxdXRZ
RV5MQGYqT1pKYFo9Ym9JK29sblIxSClEUiF3RlIxMThvRl9qTyVobF9Ubn1BWHpVdilrVj56UyY4
ODQoPgp6TTxDeW1XXmhpX0pIOyUzU3BGamJMOV9FMkViYEpVKF9nSCtZOFhhWjtKRFEqaTZ3a3pW
OUNwc1JgdjBjQT9ZYkwKejdCaDl8aUBJKnx7dGpwRWVZQWVxKkt9WXVaS31SNkBEfD5iYisxSD9L
elJ0KT1jPHJBMjZjeSlrQFRzVm1RYXlDCnpJXnBAeU08aHlgSWo2RFExTD1WVHtwfGBrK2RiIXlk
KEQ9MiorR0lGPGExcjdBN2h+TjgoZUM/TEU3fkVhNDN6Mgp6JnZhKForSHElOHgwXyl0I1RJVmR4
IWs7K0FaUFRfY3xUJm1ZMyZePCZOc21Le3s4enhRdWsle2hlUTFyQjFweWIKenMzXmQrbXtLbFFe
RW0tcmJNb0I8PlEmUVlee3ZkPUg5P2N9eypUVGU9VmE2cDRaLT5qeWAkRElPaFZVSkJNZDNDCnpB
OWEtdWpaKkJjeiZARkhpaGgkPmMleXtvU3ZafG9GVnxJbXotcmRjTjJsT09WaUVHZSUlX058b0Qr
Vj9RRWxPcgp6O2A8NSlTKnM3YV9JPVc5YjFAfFJsaCRCVnBxNkVFdmR6b1dFaWJrIVlkS0FjYWcw
OUFhe1pqMV4mT3FJbSlBcyoKejhkWGIxbjJNIWQyblk1eVBKXllOdCp4IV5rOHhLJHJYRDRNV2g7
YHhhcjR9I0JsOTZFeXUmZX17a2wyMT1jKWFKCnpGLUo8VzhRKWRacDctTm0xQiFqS0dBUmVLVWU+
bT16KXR0cl9hfVZzVW1oPkpPX3pZKz9CZ04qPWJFUlIjIWx8Zgp6a3BPTXNHZUBvbCZ1VE1rWGpJ
Mk5JbmZmaklyJHlVZ0Z2MHdVfHNpPjlwLW5AbSlDUnBhYUhQODxgbUpCbVVNNlgKej5OPlhfXlN2
MC1EXjB2WlpsR35eczY+VyhQTTM1ZDRyYXR0JXMpZkFedThrdHYyQ19ROEJfQitXIyNTZ0pqPFEj
Cno1cFBqQmZpeClkP2QmIXheT2dSTjRNTWZsd3JrI0xsVDE0YGBuKX1sTFlzdlJ2SFlGPUBfZ0k1
KzlLP0ZGI1kzZwp6QyM3cFVpN0hiVyFkc3Uwbmp3fSRlOHZgezRAZXtxcUlKYHM8Um8qU3VTeURl
UzNSaDI5dEloIUsweERCSSsjVWcKekxoPTNhbi0lQzVhYkNZWSU0JGdPeUc+MWctVSZAcGRWJE1m
Jk1qalhuI2hpZTxmOyRSX0goLUtHNHJwMzs2JCVCCnp1PkFQNisqZSR3VEAxczYzZjJuYWdhc1pS
PH5xcjJUYU8hWFN+TmJgY1JzbSFsYWwqbFM/QnVQb05Fb1kteitqZAp6RVE1cyEqcyl4SWA9JiVk
XjJAdlBJS1NtNzA4LVhHe2RVekd5KipYe3NtRlQyI0ghYVJEWkF+U0lRQj83WFA8LTsKek0rLVF8
aV58RH1ZflZQfUk1dEFufEFka3l3WENYUmFtLUxCcmRIbzVmPH5+KT4haTZ2VXdTVV9GNlV+ck5I
JWVLCnozYGQjLSRGX0VhMmp8cVpXOCNWQkNabXR4Q1laRGFxbykwJjw8TG04cG4wWiFYRDhqTTVC
SkN+aU11N3tVSV4mSwp6Oy1hTUlJYmB+b05lU3BeeHtyan4hQ3ZTKiUxPkptSnh8bUdeXkloP0JO
aHdtdlN6S0JXTyt9Q2oqNXJkTnwqRmMKelU8dShuKjlnejZHV3tvcCpxNFhIRHREb2MlZUs9Rmh9
MGNqQExyK09uOT5vPmA7Y3dyTDEkJlUrPGd+PEw8dFV8CnpXdn59QHdMITxlcVZXQ3BVTjVveil6
ajczYTVeWFQ9ZTllYz9vZj1WOHxWZ3V0UDdmNGVGVElBQEV4SkN3ejF0TAp6Oyg9Kn0mbStSP2VT
c3tlJkhZMn04OH07WHppWnojNkNAWm5qflNAN1R3R3s7VCllbXx1S0tjPm5VYWlAISs0YGgKel9x
I2U/QysoKSgwV0JuUClIPmZDX0d4RkpxSH55JHZUeGcrYVVndy1SRzlIbUA5Y2RiT1U/ZSNnSlZV
OT0wRnxaCnoxTGtlbW1NbUBkbzZhQj1tXmQ8emI9YTMxanhpPD9xM2RiWWlIJElGR1NDY3NHSlls
Yk0oZCF2Q2dscDxqISkoKgp6RXhOM2FgJktvQGR+SEY1QWBDOCVQWG10Iz5oIWI0Z040ZHVtI2RB
RzYkOHdqeEpVSjBVNFVhVSVeTCgkKktacD8Kejw+czFibTRVYG1xN3JvWlMqQD9FVzU+c3M3WSV8
aWJPT2U2cj93MCltd3VGMDl3MG5iUiN4c15PKTFAcSYod3x5Cnp3PC0mR18pTTNvYDE8VzdWODJO
flNaQXppPDUrWVdWdHh7NjY/d2NXNXM0OTNDRl9tKHUoR21abS1kcSp4JnlMdQp6PlVrJmZhekN+
cnFHa0pkMmtJaz5uamU8aW08VHhtYUspMVd4NCtWe3dsakh2KjJUQk5Wbj4yST98TjloTWVZOzkK
enRabTRzPVNGMEE7KVkjYDxrKVZtIz1hSSE2Q2dJaWpQSUs5QzBsM19gdnFPRWJ1Sl9vRTNLPkE4
ejZAMiZDPXZQCnpUdlYqOXMqJGsya1JxZ3p0T0IzTkBUMiFIRyh1ZTdIWmwhIUM+fGlrJGVlSk44
dilHI1QpdWxFZlhfKXtJYSMkUQp6MTlKOSRnbXtDaGRPRS1kKDhWQzVtb1Y+d04jZnBxTnA5Pk5q
IX1vbVReRStYVjRLNmZWSDkoTmdXNHJ7RVk5TmgKem5IfkBQUjU3OE1rcDEtZykhT1M+Wjc9dTZH
cmBOQzU5Jnd2aiFOSGlVRTExb2pgO2hCJSsqQFoxfUt4P2h7ek1jCnpvQlRGNmRiflNGemAkTzA4
RGVoeXkjanhDI0Q8fCtgMzYzaUpmbjcwZktpOyR6N3FEK3B0QjB5bnh6eV9GZz8hNQp6c1UpfEsx
YWdWflpSKlFNR0M1aHxEZlAmKi1ATUcoVlFwYWs+fkNEJWczYTNAblY3VnNTYUUzV1hkbDA3SHhE
ej8KekslKipadD5zS3VAU3dDJUZlKjk+Jm5gclZGNmojLV5VSHlJbFRQZzhZODt1Kzsjd0VlPkEy
NHBAIUZaTytOJWtXCno2SjFpKFdKXkRePlolPDEzXyZKWU5FSztaeG8hUWM4NXVCTWBGZj96X0wy
SnVEa3s9dzUrcTlOaylgS31wRHl1JQp6K1RXdnhuSiQ+NW1uV0dRT2BqMWV1PE0/VlRfJW83N3Nv
fG1paWcybjRTX1BAUD9KTm9nZ1ZKWGpNb2JBJDgmKFkKemd4YmIyK31fSFpjPyh6alF8JUdWcSZT
KElRcWgybzUoKFVjRzxNQGgwNWU+fTVLQWpTaX1WcUleX3x6QVU5VGxvCnomdlczTGU3Y2Rwb2Qr
RVQwKiMwV0BXTiFSQW12d01icHU4U3I/RVBSMDZAQ3EzMG5WKzU2ZiN+Y1p2ekhJdl9ubQp6PDl3
eCYrTCZ8LXQpQ3c4SGVMNk5RO0RXZjtmTH5taDlkUTUoeEAxbCghQiFDYWtVaSo0Z1JFYUlZc1c8
emdtfnYKendLKUBLWiVmMUk0WSNlSVE5SHB2T31YaDlYTVpScS1kYjtXQHE8RmFZPElHPDVWKT1n
M09SM3BrMjN6bDlDNVNeCnpWK3kjdUkmeSZqRnNKUzZDUkhWMGFIbDdeZ25aZ3NVfE9UZT93OUUw
N1VaO1pPXz9+UUVFa0YjbnBacHpEPy0oJQp6Qm94fjdAZHdVZWRFM1Q/cU9YKUBGWXp+RDk+RjR+
RHs7UnJxczYxdl5wNVVqYCY1cGEjK35FKVNRJUhLYHhjWSQKemdee3l9bVcqQGoqSDdsMUh9ekZP
MmsqSWBySHVHNFU1Q0AkbUBlayhRe3JQeF9BRVFpYlY7WE5nQFFUSldvZ1UlCnp3OHN6c2pVN20w
Z05xaSNTeDFJPDNmUytKNlY7UFJuO0g8RGRDTmo0WH03fnM2LXUmemslQH51e3VMTTEhUj5hJQp6
ZWQobjJSMWR1ajhaPHExJHJxJDdzbm5nZnhld0ROZl9+bnQ2Q2dDb21DbHpaYD9aPU95azZQfFVv
QzxzbFRqdGcKej85cGJMaj9jYHhKISFfO0UpJFp2dnNydUxZZVhwb0wxa3xialZ9NiFzSGFyLWUy
NkVCOFowRSlLZjdKK0N1azNICnplekxsd0IocD0/ZS1PPmRITXZWKHVGOE8+WmFeI294eGxYeWk4
QXB2KHxrbmtTVW94aF9hN19SejgtdHM+e3tARwp6LXBAWXx0YF9qZFRafTlnKm5JYUUrJXhTP21Z
WHt5Nj45N3k5PihBOV9UX2lGPjNRPFkhSzB5RFdTPEs8RyQ0K08KemVzd0ZwTCkleG5MPUY4VWdW
bnY7RWdNRn16TG87SEpuUDFTRmpyUit2flg5IUI7NUBFVmpfKTZxMFI5cVNnWE5jCnpDQWdfRlBr
UzJSSDBLeWhiUVUtazk4RWtIQmBtJjdCMmVkbD08KUAxMnwqIUFHZjtGKz5iMzw2KkIoLUM2TDJ0
WQp6b3BpTkNHJlIwNC1hTWpuPCglcDRvKTFNKUdsdk93d3VSYWlfV21MPTQ7dGReMXMrIzR1MH1H
bGpJVF9Ma0pNP0wKenJPIT1wUHRUOH5oWl5aKz9GYlV8VDw5ezRpOTN4QSVKfTdVeCR5MDVnUjwo
MXhBdzt6MXY+SUZfcDNod2JFYTtDCnp3KjtIZi0hOFlnaX01P2phVSExdiM2TVM4cT54Ti1GVyR2
Uy0haWlMKkl1Q011ODd4M0hxSmJsO2w9Um48YlJIQgp6aSNkSE9GZDd9RWhrYktVUno7KmA7Z2Ji
bUVZS0s1RkA/TDs9djVMUjRSSH0qPzY9eHlTUyF3QWtIXkd5MGtqYUMKek9YXj1WeU83bm9He29u
JjNCSlFzS0p0TXFUMzBwUzhsMFd3V3RrVWcrenIkUEtoOyVVSzhvaCVWIUlWTGFGWntACnpmWTVU
PjZmMV9sY1V4Xn0kT1c9ZlZDSiV4S15wPzkqcHcrMFhIUEBMbjFNaGZZcj96MEVtN3FicXh+SlVj
dmo/dwp6TyM/U1BkcVUpVDlMbT48ak92a3s+bXRuPHRpZm1nWEljUThIPGRJYHNXb0daeC1BQjYk
eGNjc3hkeiNuTUFvS30KenBoNDZpQFQ4UGR6amB4cEd8XmRZOE1yVVcqfDt7VEZTUVROIWsrTXRH
Z3U5UTItM3A5NEpSI2kwcEZxQEpDUTtuCnokJnRMUXhqQElGb3A+LVc1Sk8/LW9Lam9xSzB2OH4j
NHRKPiMyczBtU1lFdCFgRXFSVSpTZERmXl5LRnpvQ0lpOAp6a185ZiU9enQ3eWUkNShRYW13di1x
MWY0R19weHMkIVBAckdtdUQmTnBxKnM7Xn1jaHcpZ2FHRnUxfXFyVW9ubFgKek9Jej9SK3BMJnNF
bz91NmU5fV51TyNMdTNJbDZFWGw0Oy0zdFVlNSlmIVNoaHJeIyM9O053UnVLP2tvSEcoa1BqCnpY
Z0krPEdrIWVKU2g9dGkoa18mKzZRSCV6czZpJG41WlB8ZWV3Z05rdjJwJlYqQ3xOe1lfO1pxd3N+
VnA5RkhINQp6KUdIOCpsczV4U2hsdEYwbylHKHhlaHxnM2N2QGhlTiVtKyQ+b1pAa2JlOXZSdVBA
aH5lPVlWOzdOZXNKQHpoajMKekI5M3dlT2pnN1BeRi1hbjxPNWI4XjApPHxOUzV6UzxwfXg0MWZY
WD1CMHJiJUY0QSEwM1Q5SG04aHF4c1dHfC1rCno1KW1ORko4KmdGPClrKmY2eTw3TCk4SXMwKFFz
NEIyZmR+PyNqdD0jOV4xdmJfQHFkP3M2WUo3I0cwRU5ObGwyXgp6bj9AK3w9bUpwMWJONTw1aHhS
YXJkeD1NZyRnTT5uWWh1IzVTMTg7Z3o2SGJOWld9c2c+ODdad0dyOGFiV3JMYVoKemc8TnlDPzJl
QitVcFlxfV9vUEtHKGchQ1VLU1A/YnBrKilSdWg2STJQSnRHaT9LSTVQekgrdnJ0OzxtTXliaz5Y
CnpyVFB4ZDtAJmxLS2t2U3BNcjZ7fjxMVipKeX52P0tvWFRXJksmNGo4VjRERjRXJW85SDRzI2BK
ODBjNWYqUGk4NQp6WWtyZ3JGM1deZXA9TGNqaFolMXZmVjk/fUw+b05OUn4oU01tfTJUKlVGR2FC
QFo9RHk5YjF4ekhsa3hsSlgtNm8Kek1EMzQyJnI9V0Rqbl8/TV5IQEhXZCMtKkRtcjFaTSZYPDRx
bk5RSV5GJS1TWkBxa21udC0/ciROcEt2JlBhZGdOCnohTztkODRWVCFpJHVPNUZ4JFZqYnJmeUUk
Zm41cStgMVM7bEZCZDYyMzR4Kj4yVSMkNjdXaHFIUnphKjNDTWwjbgp6TDgkTFhhN1JAPjw0bUhH
QGN5STNFIylybmF5TWtwOz55dDlYRXxEZHJrR313b3otUTdPb1o8MjV7bFhIQHJiTmsKenZSPGNK
NGpiPX5zZnRqPjx1N1NCPjNxelE1WWZQfFR1OHUyXiRwbmB1QWFLQlVlfU56ZkREeD89VW1LaD9A
SnJ9CnpmQDU5al5ueUcmcH5Ma2Q/MVQqQSRGcV5gZDk2V200aVFeWCZWaHc7bXc4ODFXN18+blN8
WighQWFFYmAkRVR2TAp6OyRoU3QrKT9saj1iO2VKaVFKKFkxSEVzVyZNKmh5IU56byh2d0tsZVNw
RGNpd0N8Z1huaihxYzxHSnJKZDh+R1UKenZBfSRael9pVnxQS356T0IoaSlqO215S0RoV2UyRHt7
eD5CWXtodElQZE8xd3t1P2wle0drcCVQYC1xb2d3eXMmCnpkUXxPKk8pJjtzcWpUey1XbSlOZ2A4
UVJUUVo0Zmk1T2JyMWFKTjEyOytIfkw7dyVLWkZNe21mUDd6JVkwWkpNdgp6TUdVbzNfJUg2fGQ+
aDUqMFdLI3x4VjcpbXc4YFpoWFAoWDJGP3U/PnVUKXYyUzAkdzNnRn0lU1JUbWhQM1dNJVQKemR+
NUNmOTR2TFdAMG5LVWw0MmMlZ0h4QmtiJD42YXRkWX1vQVltMmpxYVQkaDxMdU49MyNSZS00bWda
b3N9bH59CnpgbX5tfjRgeD1oSUteQiRkXkRyJmd4d0xPPylqekV0MWRHYWw+MDB3dmF1UnpwST1T
Ry19ZE5Aa01aYFdgTWRRYQp6KnNLYFhecTVueUpqO2VhM0dyNkJQLSplNHZ4bWx9V1hFX2tpQmVU
PmRRPW5Kbl4kQ0V4TmR3QllSR1o1ZExlfEIKejkrKk1qZD5FOFI1cX0lTWN9dlk9OzU8bFFeN35k
ND16YTY1UzMjdGomITxLSHB7TSgoN001TH5HUGM/QEJoQS00CnpVWFZVeWE+JTlJQlo3fF8zR3dS
I1NJTk0+aWk5eGdKITNMfkZ0I3VSc2JvZ2RJdEVQNSYtalhmJnAwUXxjbDI5Tgp6ZFhlKGs2QDNJ
aD8heHp5OTN0QDdURWVkSU9HYEFCXj5hOzx7KURMOWJGJEg8V0V9d1djN1hROVJ6WHIwRnh2NFYK
ekV4TWEzPX1JKm11Wm81PVZ7RDVufEpvIzxGZjRLPm9nX2A0QzIqazUwUjV3JndvRlBFcTVBX18m
WDYyeWk1cFh4CnozUD16eXZNaz0wJV9xdyY/WV93UzQ5PU9xUHtjeTtRVlMkX21YMkpUc3d8QnVl
N0VqIy1vX1BvYih0Y2xDXjl5VQp6cjxrZlNjLWhWTVBGRzt7USpNeT5XNVdLblM3N2JPNU9hUkgj
c3RmYXRMOEwrcysrTX1KajdIO3gmR1phMWdLYzAKejswYDUjZFRWPCZ3bCtBYDkydiZoNyF8QDMk
OFpWV1pyZjtPb3dIXzFHcENJYHF7YiQ0LVp7RSl6RytDMTlhPGpxCnpWITYwdDlTSn02N1o8JFQj
QFFiSVVBIXw3LUl5NDRman1tMVRiLWsqV2ZqQFBmdj5jVCo5dmxBU1NidEhISDJASgp6QmteRj0w
aCZ7eHVYdmM8QTZ2dnYxQzUqKmxZdHk4Q3M/MGpIUDxTemtyLWc4SzZ7NkIyUUYjKCk8KmgtTDVB
MigKelZvd3tPKyN4SDtnTH1AQCNYRFVzZzhRcnpTODcoJDBWZ2RFb3MqTDhqcG1QZzN+RlhePF8/
PmpMKyZeRiZsZCFVCnpyeUY2bndCYG9la2QoXlQ8KEdWSypQS0h4KHIhRGhLWWE3JGJFZks2Tk84
VClgUmRmb0RtZj5TQFheT05AV3Nragp6KTAmcUtsZTxFQWdjJj90KWdUZEw1PTtvJTM/IzV4cCth
QjN3d1J6PWNlWmY7IU9JfjBRdV85QD1oYzJ9Vm9JYEoKekM5YXJzQXZKKlU5M3Z3OCgtViFJcmJU
Szk/KTJ7KWRYSU5QaiopdEczM3Y0UHo2bD81dTJQcjVwSWd1cUY/STFICnpTOC0+WjRDbEFnYj53
SVc/ZU5SQ3VScTtKP0dSUyorUjJCVVUyS3kpN00qVX53X1QrUyhmd0FuJGkhMzZAcUdtIQp6K3st
S1NqKX08eD97bj1oNDltUFd6OFIrISRFK1VlVyVhPl5YKXJDUm4lfnlRa2h3c3RuR25tM1BFejcm
ej1pd30KenNCX0ZmVT9qUHBgZGE4dlE/fkVSe3VaPD9WeXh0bmNvO35LMTNBP0dsST5JOSheWmFL
by18QiQobX4taj4qPkIwCnpMSCZ8TV5FQ0k2SWdAK3B6fGp0Yj0pX1UmdmpLI0ZYfDRLXmNINDtL
VWhJcm5Se0tfPHRJdnQ5MHc/OHktPTMxMwp6PE99KUJ1Z0QoTjQrIWJNJW57bXVBNSlTc3U1U28z
XlooMiF1QGdGayZ9WlRPN1ZZUldeNlpfezJzUz9zS3B3Nk8KeiN4VFpDTkkqI0JuaHZqNl9Fa240
JS1zRUUzLVRWfnpPXnomc047aDc9ajF9SSpMa0J4P2BHKyZTNlp6fjNkd1NGCnpae0s0VDRFb1d2
Sy08WiZrX0hIciojVGUpXz8mZWlgSkN+Wj4mTjI7Ylchfmp0fTFvQipxY1ptP0lSMU9jU1R9VQp6
KiFRQDhFUTs5RWZITEdudWxRRWMlWH1iQnlpODFPPDN8eFE7aWBzX3FCSk5EQnY+VUxWMngyVzF2
e0dWRnw7ITEKelF1dGNCeno4emJJbGkodFhrSGArZ0ZXfTkwS0BUcDxeSWtLam9lcWBCNlZYRld7
TndoK3loKyhDMzw2SDI2Q2UzCnpROXM4aSZjLUZNP3E0eUhfJWxPa2VgVEAmUGNMNSt8MEcoR2Q7
RVdyQCZLNUNucnxEVnFKa303eytIR048R0RQZAp6M0BKVVZuSEpseSVPYDFpcVF8MTchUWV9dkBp
KkZUdThgMzU4TnJQLWNCP2JheWY8OExVQEg7MlR3VTA8RyMyKCoKenpOaW1qZGllOEJUZWwjbFJs
dSgzamtaMCZONlBSPHtiJDVyXjRoYCpldFdMLXhnUDhEKjNWcSklSTRuNXpWcmAyCnpUd1l0N1lH
Xm54ZWZUUWVoaygteiRFKkhhOUBeZFZzPjFeWmNveFVWSStZRDJtTzg0SF9+S2tLeXRfeStAM3lG
ZAp6YlNQclZNdEF2SDVjXy1GMDgqNWxYKj82XmQ+SDVET2BET1MlfXFre2BjRFZ5eSkmTUt5LT5v
KUNoZ3RtbV5yKHcKemIxUmZgd3wlO3ZZZG94TTlZdnh5PlR1R2hjQEMkSkohNH1WXkMoOW0mfjtK
SzwzVigoTmJAeisjbzZNKyt8N2xiCnoqaF5FQWU8Q1RkaG12RXApTno4NyFaKUN9ZG40Nj1adldT
Nkw3OW1oVF9oKWVRMVUmJSZCJGhyJXRGTlBkLWB2NQp6dlF4QFZLRTFHWXd5aylidypTIzZIPDUp
UjIqeyFFJWM7dlh2eUxleFNtJChaKkl4PEUkZiRGNFJPaU8+WDBlKVUKek4zZWEySVE9UzMyNysh
SXNVMitBXnZecmV8RzZ1OXpoMzxpeH1HeCM4dz1VP1hLRmU0UTZAO2d6b2tgIyNUX3FQCnpWSmAh
fUg3cFI4RUpAOUI3T3ZVIUJjKikxejtYY2lvMWRHNnt+VXxecntrbH05V3VoXjlpUDRWe1o4c0Yj
NCE1Sgp6bF5iLSMoUj07fVYyZ1ptalArOVY4NGR2XnUjQ0pOITljKipwTUtwZGItfC1BQUIpQ3w1
RWpfa0hgS0g3Vj9UMUEKeksmfEg1I3JyJTtLUldUTmpzZlF8Jkx+MnZMMjEqUGFod3AoamR0OTcl
WEdHd1IyP1QtQ1VYe3xGSUJOKUZlTXhCCno0JlI/TlE3Z1c/ezRMM0VoejxEX2RMRUxNVTAxcDUh
TXkob2Y2aj40WSg7aDcxeGstSXR9XiluITM7UTNkVXlOUQp6LWdEazMmYmV+QXYhTVM+cjk/NTF4
bT9rWlpNa1E4el93M0RjeilIJm5UPUYkd1loNlgqLV9eN3llYitLeXd+QiQKek9TS31FVlBkO2BR
Rkc2cUx5N0dHcn4xRDRKTGtgTT5OKj0hb3hRWTlacTxRcGBXVkJ0WkFNQEY/eWZlWVNXaDVYCnpL
MWNCcW5DdU9USGd5d0g9ZExHaihAaCs9PFc7aXRGaGRvVnVPbntfZCkpcnVqKytpK25IZ1B4bWQ7
cjRrMD17cQp6d2dPRXxRV18mZEh+NW5TYitzWWttPzhJZnA2JG1iMUhxTyRDU041dGl7OU9DQ0Eh
dUdlSk57UytOeHxsdjRYT34Kem1SU3I5NTJTQU1oTX5adlc5VlJAI2p0RGlQQWZtVnMxcEF8XzI2
RHk9a2tRck1UdXJBOFA2fUBxeEtQQktzfHlECnpIQUh0JGFFJmBfbSZwMyklfCpmR3BUb051RCZe
c1Jla2pNPnt3fV5nVjZYUiQma20jaElneH5Td2E/RCtBTT0lbwp6RnA8Wk5hSXxsX1pWUlQ0NHAm
fVI2VmxSbTlAMHk4dCtyUGNfQ0FieXtLUEFebmB+OGAmekBCd257WDEpWUd4bWQKejYmUTlkJEpF
eCNja2V6WGJvK3NLI1UoTVVkJkBZTXw2N3NBcDVAKXloOTBpaF5eN2AxWGtnMlA8UFMhaWRSRCtX
CnpNNVpfM2d5VGZ5c29VI2ohOHx3b1M+KlhWUElfQ1NANXsmQWRFKz5YI3VjfEh3PylnNnlAbjti
JWdiJHFnP248cwp6e0tGVmRgQ1BlZ0F3Y0YzOU9APSQ3NzdZfXZtRGBgaUBzVTNXKDd5RXUjKS1C
antRTXA/I25oez1lPGA4dHxhcEgKejRaYDNGdz5RPkhLb2lDcnFfdDBqSFVNajV2JmYrX15mQjRF
PmJPeyN4PzBPdm10ekBARURWeG5kbmI1cHpuOGNZCnpuTm9EUnZnQGJPPEcyQCt3QUl6c051PWdD
eEYwQX07VzdEczY0VnUtY09UP21oNTJzYSU9JCokdGF7bWwhe0lFcgp6JXR1TUVzTTFwZWVkR0Bh
PmBqSSsyQD8+a3dRclo1bTZaQllKRmFOM1FiaCk0O1JjMkkwMlV7eS0xRC1qdl9WV3kKemY+M2Z7
JU4lOXBTUDtYOzY2KXBTaHd8N1EwdjdkYk4jNWV7e1o7NTNndHxzN3BJdFJJVUcwc2goNk5je01o
Sm9ECnpNY0Z4djttQDkmMFAlYXokTWUxfHR7ako3Q15AfmBTWms4PEF9e2shR0FrJmpaKFZNcSk8
VjNeLShGTXFTMVkjXwp6M29kRTRqTW5ZNnQzIUZ2a0xvISZzUjwybHNaWSMlaEF4NVVYUCVSJEF1
MEB+WkQzRzV5NytQKnNrPV9GVH4rI04Kel50IWI2Zjk5bkRnU2QyLUcqYDtsTSleP1F2P3t0YCot
N3EmdUotNTk0NHdxUj55Q2ErNEllMXpxTUUqdihxUVVXCno5bWVhcSQ2NTF4ZEQ8ZVdoV1lLUlpR
b3crOSVxIUYrVl9ZKDBkbH0/c1hhNFJhPStVTVliRDNXLXYxYXV0NGtxSQp6IykoO2V6aFBKZHF1
NiZmV2lhVCh3OHNfYG9mQGxhMz5+UUlkJD0+Ozl9RVBBdFc3RDJ0aDlhI25QSmhxK3hGPX4Kei1m
WjdAWm5LOUgpRi1EXmVvdV87OXNwbzhuYiM0IWBSX29INnt6Ukh3XlB7UzxtTXUmKk8lPzVLNFZX
UlFoP09XCnp2WSlscSpiZ1RWVkRKNm88KFBFb3dKU1ZGYTJMeUs7NXxCR3pjMXZOVX04YDd4RilQ
bSt9JU1JeyNDYEIoZGQ/Kwp6Y2F0bnB2S2hwdWBSdjE3VklxU1l2KWNCQHhIQGQyJTByfXZEeEd3
RCNKI3BuQjdAbD4oNys2X2J2dmRhQyZGP20Kei1sS2teeHNLWWBfZDJjQChtaT96NXhkWnZIeCMl
O2p+XlhYPFEzaEkrY3kqQVp4U1NZR3BWI25lQzNefXohT291Cnp0TUQ2K3g0Vy19aXApaT8+OGlS
MVUlUDQ0c01feFhiPzl4NSYmYDZiZVRzWXlJPHt4IVJjcH5hWE04SEZ1PXowMwp6M21nOHhXeGB7
K2tlOGN4Yn10YnI8SHg8KzJpJlhKaHdSeXpIVjtCWSZASzU+UUZGPmdodW03Q3FCXj99RTRTQGMK
enM+e0JJVG0mc3A8YVd5Tk9vd3V7U1RMQH48bVp7PzhgWWZyVSpYe0dLV0ZEWmw9NnlMRz5tKHJ5
V1RIR0dYXjwzCnp5dDhfS057ZlFjSHw/SH0zNWV6Rm1ydipETEF1JUtIbTQpR3lCfG9UaDJWMzQ+
RFc9eWtsRE07ZVFDPj1udD17Ygp6bDx2NV9PPztNQ1NNQkpBP3x0YDFVJD5rRjgrIStyWVkzOHcy
OVdvNSsyT21DN0dJeT55UloyKTkoTz1hKCV0ancKemQmaXY1YyMhMHJoVXwjalpxdjxrSy17dyQt
QUYyaDZuMFozTn5+cHY9JmheSzBRTyhxU29lJiokbE1qWjMlUDFxCnptTmNETXkjZTw4NHNPfTV2
KiVDYzxhSEBgbU5rJCprPmB6LXRPbj87Sj1Ib3FhaXd+Xno/NHA+TT1VOTAzYCRUOwp6JkBscTJk
fDZ2UFJkXj8zZ1Z0MTwrfD5UVmVYYDFtWHYhemRicWx4SmJ2MHB4ay1iQ0wtcFlnMjY7e0A/RHZh
fUQKej5YZnV6UDBHYlFwbHRPUkFRUGQ2dU9kVnk1LWRaPEI1SU1zLT9qb2xDdTh1YVlOSyN9dkNE
QzhpPj42Zmh4NT9rCnp8QUEqajNneTxOWGdleTQ1QE5fejt3QHJ4IUF1eykxKiVpfiVRTklTMEV3
KUIjXyN8UlR8ZmRZMlpOWXJjJHtpMAp6JUptbD8+SHFeIWQqNTlhV0tJIUJWQVokZjU/MU1XaiZn
TU5neG01UGx1NG0wQlpBSmNiI01pa0djNjV2XmN3KjQKenZnKEU2Wm1hQSlOc0N5ezw9Kk4oNUhm
ck5ON3NzMiU5WWU3Y30oNyNrUD5YXzRxakA9QlN5MmpVflAtbklzSTgyCno+WnozelV8JVFUM2lv
IWdBQD8xemw5RV91ZCNqTzhLTkRNUiRBcXc8SktQTHVzJW5SX1g7a00rOTlQLVAtRVNPOwp6NzVB
I3IzQSNqYFl2em5VNEwoMWVgVnBmSTxAQEohZ21MMGRAUUlGbUMtfSlIZm4lUHc1elhNVFRxRHtR
JGdRcWcKekhKI0tGMHRvcDZRYypvVDVCcEJqRWpePVRfRT0zWjVYZUp7aER1XzVIbFhBP2lNSEMr
XmNIQ3ZsP1hBa2sxe0QhCnppNmhWMEBWKWclOWhZS2ZfIU04aGwlUUpzPnBzeFdVXl4qMjg3YW40
QihiZj9VUT9+eU5oYkpLMH18U1czRzYoSAp6cCtOaGdyd3h9JW0obXtIeTslZDNaPjtlczx9bjNa
PCVXTEA7bUtLbjlDU3N3MTJFI3hpQ2YwdzRAcVUrKTlAYGMKenNYQ0w1WkstM1ZqTU5XQDtzU15k
RWM3PyUrdmxpUj19NzJPYGdEd1l0S2o2PFo5bS09Q0pfcWJsV0UxcTY2WT5BCno2Jn16P0pfMjk5
WjJHOWo9QTxTem5CKzkrRCs9eT0peTc3aGtHN1AmQSQkYy0zck4lNCp2dEE4az9mIShuZmZROwp6
M1RlT1E8N049fjVRMktPNlJoNVVEIVBAPFcrPVlBREhhcj0+Si17RnZDcWRaJCQrKzdQSEsrVW1t
ZnhVen0qTCsKelVEeDllVkpSc3pFclVhfCp2bS00RUdYIzlzPkg5UTJYMV89cFhMZztLcmhnRHA3
M0I+P1JfJHNyS3lfMXRqYGZzCnpEP2N+JDZ7aWYmODUlTGFZcjAoaE4tZ2EpKWQjfFUtWGVlREJZ
UGFPdzFLKX5RYGszPkchSEgwa0ZuIzQ/ZDFycwp6eURfWnBeSjV3WkR6akQzRk8qT2pqP1IyRkte
O2JYc2ZQI1h3RGg8e29idFZvJnx3O2ElOVc0JU5weHlPRUh0JmYKek1pUnYrcFE3eSprRSlZdGBG
OG5QbSpjUy1RcVYoKHluM1VBO0RQcz5DUmtuQUNJfXhFWH52M2FMeT5RYlBmX31TCno9WkdSdDMl
ZWpYbnpwPjU8bXQ8RDRAT2NZX0VrK3dJIVEhbThYRXJQR2dzdSNKdXJyaXVTT2V3aShAYHlLcEti
IQp6c3krKWN7aG80c0xYRWJrUHkwTkkrQHF6QlpgRG5OWXFOe1J7VD0kSGNfWT59KERXN2g7eUM4
bzQ3dzY2ZjZXNjwKelFHNHhwZFVWKmg9RWJwRktBd3xCMUo2IVdtJDZue252flMtZ3hTT0FQS15i
b3hjaHghTVVGbXB4bCN2Q2duQDk8CnpEYD5qPkpjc2FrOCNaNntIOHNUfHdtdnpFbHdES2FEY0pv
JXFgcn05aVVVekJaQFphMFY8R3Jqe0c0ITFzZE9URgp6PVgmTiE/fTI1bSlTWHN2Y2t7PENLWCRr
S1RhaU9TPVlAKEBOM1d6WHBCR0FAZXhSRktXND8oZEBJdCh9a2h+OHoKeiYoKCNVViN6V2w1VTls
YzZndzJ2bkJ8Yio4d0hZaVY2TX4wNUVfZHRRIyZ7NUFzdFBvZj4tMDQydVhxSkFxK2hvCnp4PEJ0
eDAmRkchQmNsMnRuKWVwfHR4R29RaXNzfiFpQ0VeYGUwRkg4WmxESFElPkRIZi0rcjdpIVFQfXto
X04xOAp6aF9xc1c+YFQ1SlQ2WW02SzkrVD8jNCRUWSY9bStOa1FgbSRjRzAmMXU2b1VmR0U4aUhi
O2NhamdVPD0mRWtPajIKejR4bmA8PEVSaDt3fHY4Z2M/SEhnfEtMU0d7UGxUcGFUYUo5NGh5a3Rg
SSFmeD8oSmhTVjZ0KFJoY0I3TEspNHFOCnpCNy0kY2I/bj0oMT1tUGVhWSFKYkx8QVFMMHZPbj9B
dUl0blpOSlNxYjwjbTZDRSFGPzlXazF2N3dPQmI5JUIpKgp6QGhMRlFDKzdxYlN9UU5PR0Q1cUc3
e3FRUi13UngwLWglYzE3ekVRO0chKSQqczMzSWtleVN4cF5TZiFoU25aOWIKejQ3UFdyWH5OJkco
R3A+UXVSdHVLKl84fHBUbDJjKm9vbGBjTWElSj58SGZzRzJLXzk4I2VYT1Q1OUchQkJDOyVwCnpp
Z1VMVFBkWS1raklFc3pOQz5NcENDfHJuZTImN1MoayZPdWJtaCg8OD0jUDctUkI0MFBlKzlQTGor
UyZFQlRKegp6UD9lOG9Ec044Vjc5XjB2ZkR4ZCpKT0FrOyE0LXsqYCZIdGQ/NGNGTkx4T0taUV59
c3RGMml+Y0hUNzBjVkoqP08KekR5YVptVCpTUW4tZSY2aiFzcWk1NWNNfEhSc2VtTXZ4c0lTXlkp
RHdTPTR+UHB8YW9JRHdiez1BN1RgOXxHLURXCnpoZVhgfXdBIVU/dS08Jm1xJE05RWxiKncxPngz
MHBQKjs0VCNvZDMwT2V5bTNCK1g7I0pxVE40PV5nbERhdlMxawp6O2RfVkRQT0NpKF5KaDd9M20p
aEpeRCR4fURuUihyXj18MGgpOUhGZ2AxVnEzMl48PjtefXV6VlNwJiNoczBEMnYKemlxTkZ6Qk83
Z1N5JT9hcTwoRCN+OC08K3JrKDF9PWsmdjRvTHo3YkolTWZBaHhOQ24yd0lzUkVaRGdoOUlsNCVl
CnpQPXYyYT42eGBmQHRNY0QqcDEtMSRwZVlgRDVeWilsRXlfN0h1ZE5heWJ+MWRVV0ZHckw5Yjw/
MnlNMkByezlGMgp6TmxmbTIxY0pUNkF6SVVzXmE/JlhCR1ckTzE5PGJLZn57ZWh0VnE3MVdJP3tk
KlFsfk1zRGJDQD01Mz56Vk5KQDAKelhMOWU3KUg4XzlINitsS2dUOyUranl+ODtXNCsxbkF5ViRt
RVV9Kl5rRkwrLSlxbk4xUj87IVV5dG4oUkBhTV9nCnpvdkorZilJO3g7bGF8NWdac0BPMXpyamZH
U0dyO1JUbGlaJjQ5RGtKSjtSS2JUP19xdHtRfSMkd0pjckE1bzJLcwp6TUZ9a19DQWs2Yng0X1lB
LWomTEdrPilPRj1jWFk7KjUwR3RPcDxOND5wQHNJPjBLVm8lKCRhPkpxd2ZLaT9vSSoKekpjR3FW
cndOfk8wdEI7N0FOVVVtT1pzfEVGbWErfGtyUnBUPFVMRzZLVm9gMUIybns/O19tI0c8UE1TKHRg
YnY2Cno+Jll5TThAU2NhdW07X2RQOT0yRUdVXlZpUXZRTC1EQXg9I1ZeaEpHbjwlJDVqcihqRDkr
dz9QVzdKUD81QDQkKQp6OU4lJHZBTyZAMlBfUCgoNzY/e2RqUWtIN0A7THk7YHNCeF5AKUVKM1JD
IWJVRlkkTCktLWx3T0xnMSVBTFZPR2QKej1TP1YqQmczNVUhdlpaaDk9QzwoVD1FSmh6SkI+QlpR
SEtvX3VoR1RjLXl1a2o+diZrbCRPO2JUVFlMKUF4PipDCnotMT52VjQ+a1BveUZOSHtHfmMhN281
clk+bGYjLWtMPGRVMFFyQnAtUnk1dDs1I3NrQkRqS34/SFk2OH1rMz9zVwp6O2V9SlRkeX5ydiQr
aE58SEdja19AO0h1dHt0JkUmcDZrb0VyeX4kO15wSktsV34/WVhPZHFxfldHQmxlfE1XcWAKenVm
YDw0QikxREBCV1p5dlN8aU89WjtGTCtjfEJ9QF93JW89SnhwLTMhcil0QSQ3PXwxJTtXbypzOXVM
UyhmOFh1Cnombi1MKHZERUpSWEZJdEZVZStWN0lZRTVOdFNnfW5aenBafXV8IXxGbTlmYWlXc2pP
KXtaWEFzZT41QFU5Tj1Wewp6PkhNTlhVdm5YMVMmPkQ4fEt0KD81UC1pTDN3SWRyQV83PyRMJDk5
fCNAUFF1bkpFI1lCfWk5fjxEYSlQKDEpfWgKenc2ODBmVylfKmFWI1ZoaFdLNm1KIVQ7NiNOXkM4
aDxCV09iKEYmOHxtfXNwYE9+YndhI3dPPzR4aEM+VGx+cEVPCnomJH5hUXVAYWYwNWFtJX0kY3F0
ei1SVm9MQnJmc2JVRVo9cj4yfXhedzVgcn1NNUdoSSU9c2AhbkpZQSl2fWZMcgp6eU1CaT0mR2E2
clFueVBNXjtjMyQ0NXN2JFhyWXtnIXtrYEsmKXc/d0VCTD5GODcqNnB3ckRzNmlVS1lJZFAmMFAK
eiEoJFBWKGJCVHxhPiFMSFchWmNtQDEldyFDdnxBeHZkU3M+PkFheUxoKjxOZEAxSyZtRzFTSUg2
Jng4a3t3c09+Cnp1bXc9c2A9aDdqIVRuMX1PUDRNeEo5VTtxa3xGcUtaMmlCWVJ9PlF9dkVfR2dr
Xkx2Vm1zYk43Kj92d2I1JnZfTwp6YHJCTVRCP2JJanEqI2BTZUBjUXNyfSg0QzRfPHQ+Xz9MdjNB
OEtYJD1MRjVhTTdle25wPC1kcDk4YHNXRT1teXcKendMLSR6XjdiRHhXR1pEJUkxVypVQT1VaFVF
eExeejUxUmxsbyUkfiZGb1BVYTMyWHt2O1FINjFCdjMwKD53NXxSCnomQHpYTW54Z2M+ZH1tUyRg
T2dqaHxJM2U7ZkxnJk0oZnlaNXhzKGEmdUg+RVg8TnNSSjNBckM7QWZRbjB7fCk+ewp6T1B4JFow
YmYpamg/bnVOTUtKP3p2YUUkdDEmRyhBZlpiRn1DbEU4fF9ycUcrISEzb1lJJF5lTzs/QGtVWCFr
dSYKekxIanc2ekVUQkBYP1k4WU5jPSR2N24zMTJORTNBP1pgcHNqQ1JsZFlkeDF+dyFXI1R+YSYm
QjM7cXRqaF9ZclFACnpjcV9WamUlUmdCQmx9I3QrZn47SmpNYz5tdTwjekIlb043UXZJKHUrNzNO
R0E1P14hR1liZ0hMYDVCcF9iV19+IQp6RU1Dc2lUWkwmKzdfbDVEXiFWUUB8NzJ3VTR3TmZ3eD5k
Tno0QERMXzxDeylwajkoYER3STxkbHJOWSVLIWxNNFcKelZnM0pTR2s/WiZoLVNVazdLNzYxU2B6
cGllNlJVZEctTXdYYmZ6bCo8cHwpYiY/TU1SLUQoVEBTSmJhc1J+Z19LCnpzUjVMQjRzUVlQdzU0
OGApSEQ3dzYyYElNX0FsSC0weGphVDRQMlZPY0ZvM3B4R2lJJjZOPCh7S30yZGE+PWJoPAp6SFRn
JD9pPn19VEp+Mn15Tng0dHsqZ013M2k7azxsUntMc0RKPjhDK0VjJWM1dXBvaHg3PV84ViY+RHco
OWIlX30KemZGM2hXUXw5PkxkKHVEY0o+Z24zdjFzVEhKZ2Jec1Q7cFJCa3UrNytXQjVfdHd5KUg5
V1MxMU1KVG17KGc3eTgwCnpEfSluKnBPOGNTXnBDVXNrKDE7by1nRkpNK21BbXNVTXVTM0EoWCs7
JWNBZW9Xdn4kOCpzPSs/N0BBYlMkQiY2YAp6U2FyKXwkdlEwOTVFSlBoNzY0TnA+NF9aa3h4Rjt+
VGNTVE0wKjVoJjVZPnhsPnp8QDA1eklgKl8zOy1FN0pUY00Kemk5OEdHJUVTdXQ+fSgtLVApe0wo
LS09K1V7KTRlUEdaRVBlbzdCQTNyPEQ0e1JEa1kzYXl4KWhDVH5NYWJQQHdRCnpVJFYkVCR9Pn1U
dUxgJDwjTzhSZi1sUj0zbjM9QFJgeyVyWU5JNHJ+NW44VmRvMF5DMlVqZypyUkxGYUlsfkV3bQp6
UDclM0B8SjhfMiVhYSpFelNjRjE7bnJnYGdsdCEmRzh3M2IrMkhCMEJ5MFRFX1dWdGg9LWkpPl9V
fUFHZWZAYEwKelNKPzJoUk1vbnc0WmdlP0hyc141aH0wXyMrIUM/fmFNWTNFIXFOdGlrb2VuS1Qo
MzdfSHpjN0dQWiQ/ZkFMMVg4Cno5NGFwN0I3YlQ5U0wpR1ZUa3lmWndlQEM7QlooKkw0Y157SzUw
eWY1VEFxRXM4LXlzMGg4fTBCbC1ZakM3TDY4dAp6JHAjP2g7IyZUO2slcHh+UzN6bzRuOEs7T0U1
UnI3ZFg2fCZpd3k1eVVSdVFZPDEhNno3JT5HLUA2RnZWWkVZJEgKelhjPTBua05HI05jczs3RztT
aSs+cVJ8Xz85V3IjSWIjQVJ+UnNjTXNIVyN5N0hjIVh1cGElOVAleDt0OGsoNjNqCnp3PXsjT2FA
Zn1HY0NyYDNFPjJZYmUqYDBUei13ZUs5Ykk4PGZxOUltU2YxWkg9PDdgdjxZdT80N0J8XzIxX15s
fgp6bzkoMGhRcTw8VVhSfm5CS2BZPDJLeC1kXmpBTUROMExSSFpidkQoSyFEe2BWR0w0c2JSP05u
LT9ZaUluKUNsTjIKemt6QjEjPT5hZGowP151emhOdUp2OUlSNHA7JHooR3tDeC1oZEBAS2k/dHFC
d0VQV1omK21+Y00/Nnh7JUdmVGB5Cno7Wk9zd1RYck1SZXtePHdyUT4lP1Q1Q15nKVg8WXRPPkVa
MTF8KFJpN0B6ckotTGVwRkl7ZVA9NiphdUE9Kzt+cAp6ekxleWlYQWRFMEglT2sjc2JmU1UmOS1w
bG9sUTckKmNSM15wR0VkY0dvbz9TOCs2JUpuOyhUKWZzRSNOTj0/I0IKemA0U1owODdiI3ZieTJ9
fWN6PXplTj1YQWtBXjVkUmNxT1ooMGk4NEkrXnRXLXdlWGxCVipja3VOV058dSk8T0JfCnp2KHsj
UTReYSEyPTkjMX0pZUIzayQwaWU+WXJpKmtgfSNZQVctR1VCQ1RLPS1xPSEoPHlSQTtTblk8QzE+
Smw3dQp6dkdwLVhiISpXcC1mfTRsXmNxTDtAayF0X1F4SzV7Zmhyb1RzKC0yfWBUWlc1V2d6bCkh
SCMoZWN+YnRsZVozdz0KejlrfEc0JlZocjBCQ1Y7cT4qOHwtPDA7e2pGTCF8UHErSEA1RXd0fUJa
bUx4NmAmVTlscG0xZnV6RENUUCFad1U2Cnoxcj80OXV1c15XX2tjUzQ2Snt9a0hwKilhREFwR3tV
dC03c1o9QjZ0bXgheWpOUDdMeUM5SGUzckBxfCt1K08tagp6Zkk4QWMkYTIoN3dWdiNWd0BuaDFB
LXlPdW5GekhZUT9JWEhLaz9fNVhGUWpQWlI+ZjQ2QHtLQSN0JmhmdVlPIWMKeno9aiY7ZXRlSkJf
ZVI+YGwwcSZyYm1nU1FvMXhaMGF3JVdicFd+SiN3ViVuQWxKNVo3SEFGeVMjVzBHe0g5fG1nCno8
PTBFZzFLUiRxK0Z1blJVOTwqJFBXaiUlKDN2a1hpPEN+ZD9MRHNVSDt0WiFNTjh2VXkmZm45dEdR
JlYzbX5kVwp6diNxOXpQQmhKSm18I3EyMV9gMVBwRWJnU0JBZUZgZnl4KC0pRSN8WC0kLUZvQVFk
KUZ7MEswWEwjYXFwTTMqQXgKeiFFYUBuSzh2SGw9Yko2eUYoeFNJMzlPKDdTQ0dxS1AzX2RydnxC
bkN6SmtjSkJ6eTNFT3VMZm52ckdwPW5CYXhfCno5JkdMNGxESkp6O148dWJUU1VKWTIqRVdAPEpz
TX1lYk50JXklZE9me2RmOFZFV1duVGZEY1o/JihqRDFaT2pKTAp6M3VzeGc8cEgtMkdJUSZuRnQ0
SC1VaThkRmdrVFpBUE9Se3ROX304TkVOI3E3M1BpKytHSztHTD51MTxASjU9SCMKenFHJGA/fEsh
X25eKSRHek4wN150KSYqUnxJQD0mQDlCSkE+c1JHdWNDWS09MEVqdHxERlFqTnoqVn1aQXRiN0d8
CnpkaipEdXVPcWdGODs+S2xDe2tJRnQ0NH0tbD14TSZlbnxTKWQ+aF5gaDBtdTZaam1UVlQ2cVZ8
c1VVQnxjWnQqewp6OFQ9ZDJPc0J6ZzRxPD09K1VMaE47VV9mMSpGX3k7bSh0JCpDMW5Ta3NCZmBI
JjIoMEJLcm43amY5R0Emazk4TyoKenRweGwrPjx0QHQ/TEtYNTZ0Rz5Ebj9MMWQoZGY0fEhnTXBn
VFE8emNDVklFWk9aQEUzIT5uVngoVT5BNyZDIyklCnpncHJRSEZRTE4lJiVvJDh3Vj19PGk3K3NK
QVNTe2ooPDEtNDJzaURVbjZhIShBKndrQWdUa0MzTXF1SHNFTTNZdAp6Tz9aSW04YX5HOTh1PnU9
X3NfJFd6MkpKWk1lbFpje1ozb2k9Q3Y9eF43Ql85WTlISiMqRzV1JChBQ0NQIXRGaj0Kel5aK3A3
TzxiZVRINXszMTwyRzQ7Rj09IVBFRlNmTlBiP1QmeWJeXzY3cmVFTnJlPjtwckFfUXRBTD8jYjJw
ZitVCnpYRzZBNU0hJU81a3tUYl5ycXRYfGslXiVWKmNeSSRzVUJNTz58THUmT314SX5gRjNPfm8y
b1dnLVErPFcqPDhRKQp6VDh4fFlzSFZrPGlMR1cjY3chOUojNFZUN25qQ0c/Pit6ayo4Zjt3R1Q2
c2U9a0taYXx7TiskUEZrdHU+SXtZZC0KelFyfVMmIUxFVF9hcV9+RlZIbyhrM0M8Rjlia0UxKjF0
UFJ6WWlRNj5CS21QZjk1OXUpNkM9TTg7RGVVSWVxVnNYCnprPkEhYkAkd2FIcV5UbGhzYVhKX3hu
THt2c2NlczA3dVgxQztVST87Wm4oYnRKKWp9My1tI0J0WENrZ0hqPUVtVgp6dlcpOGI2X3JOKHpl
KTgmRjBUfUpAYCh0fFNtcVV2WXB2O2JTaWtyM0hqVERDWDcwb1FCNTRYQnJgQXo0eWMtQX0KenZ1
Vil4UW5TdWBJViRofnk7ZkcwN2dWZjgmXlZgLVZeRjFrP09gd0dXSj10K244OHpIaWpvUUdNWWtx
akZnPE9iCnp2YUVXQkFiZF9gMnwxWTl4WV4jaHcwKUgzc2dxMTA0eEpmcVJrbl90bHV1KzBkUytf
KkYld2xkczR8LU0tOXtLUwp6QzVyPXlANDR1YnVPazQ8MTdCOSNFY35gOzZCaXZsajRDPn52U1hI
Z1dWZytRcGstQ0d5P3U/OCNZRyV2OENlV00Kek5DMz5BYmczX0JZbyteR2VyTWZ2Z3JKKWlsanBA
VSp0JEdmNUpIOypNQ3Z8Nk12Tm0zZWY0P0ZSakhGaTBIWiVCCnpTJGZjcmpIMSEpcz1vailSRUJz
UENxUUkteX5hWX5WWkZHPTZlV0Y5ISQhWno5OEdnSC03JlNqO1RJUWlqUHxhbQp6cjY4WTYjckJY
YklgckZFajtIaE40T19VKGVDWW4+cyQ0aCFEZVRVKGpHJDR4e3EyWVN8TW4jVDQ2aUxCKS1RZl8K
ejApPCErY1kpcyo+WXdwdGFgIWNjbz09TXZZel8pQ2RBJFNiQVVnfk1HUHgoclV2Yj5wMFhhLWBu
XmgxNUt2cnZxCnp5K2hAQmBjcFklJDktamVgTFNDRjVpRDJESW9rUCUpWD13fXY7PVJqU2lPSVg1
WDR5bkl4TSU4dDNuSyNAPGJuUAp6MjZhVjVkb20ocGpQNGkqQ0I2ZTI1TkVNd2QxLXlndCYmQ2g8
d1B6Jkg7Sk5NTz9zbzNJcFNkJihDI3hmQi1CZngKekVoMUduJiFNZVFnQS1NKzRiSXxgWipMRTh6
blJZRHhsfGNeZ05vWDF4ZzJWfWgkdHN0K2V0M0NBbHdNS3dNQ2V4Cnp1e1FSfVUzeFpsVExyZGk5
OX4yJTtgKClyVzVQP05GfXFGU21DQzJSWThEXnlkTjROQm1UcC1VTkZRWVJEQGpLYgp6QCt7RSQ4
UFdgWTxkNih1PGQtU3J2aGRTWW9le099NFU1Wm13e0dXVWIpNWllY2FeSFlNJWZyS1ojQz9YcCNC
aVMKeilwZUAyZFdGaClNJCtPfSlVdGd5LVJVfC1RXz9iTnAtVThVPyNWOGdfNX5rUCk5RkotV3dV
dWV3cn1IdHFqV2tjCno1VlRNcUNncFlxUjl8NDVQWSF6fCg7RkE0OEh6UHltMlZyO0pNOT1TNlhz
bkBTPUBQSWFqKHMzOW8/MUpUYXVGaAp6a2xOYnRveVRrJHBsdi0rZTNZSV4xeyFUTlRpVlZaLT8y
TkYtZWhzX2V5d3x3bWVsMXEhen4paGVCYXROa2tXQDUKelExN3hhNW1ueDkrWkxtNWxmP3xXYHIh
NERAeEg/NlQmM1pGPVRIbTBoZVl2d1lqWmFyIUREVX1IUjVUOU4tU3ArCnohVGU1cD1uVVdNYWBm
PXs4aWgzZW9+T1k7cD8wY0RHVHZnUjJAPDZkfEU5JXBTNHJmIWd+THApN0ZVc3tePClCfQp6VmR6
X1VtUzskeHUtJFZoWk1Ia2wxSjBpeUJ3JnxEY15YRXV0dSRgJm10bkpeRmU7ay10UCEyKWFCbH1P
OFEtcUkKelk5KHduMEZ7cEdsU1E8THtARmNzeCQmSjdUe1Y7YihyK0Zrbl5NPEctYWM4Uk1IUXB2
aHVXX2JXUDEwO3I1bkN2CnpINzlBZE49OE5qdzdLMVpOcGIxNmZvayNIekJWQH17bnAxbEZYPEh6
dlV8UCNDRnNkVkpaPiZ3TFZremRuYWBjewp6NE0oV3M3JW1lYWl3d3lNUjt8OFFeTCFmTVZ4UHhz
d29pXl41OGUwIykmWn5jUWAoN0I2YWVkYmhzPlc7elJVP1kKei1RP3x6QU8pemRfJUNSYzFWRmZ+
NH1FOH5zdkRJMGYqMF4oK1dXTFhyX2EwY0t9UXM/VD8ofTxUUUx0Y2J9ajkqCnp2fEtEfTJ+SU9r
SVpCUk4yez5FUEQjKyZ+JGtwX2xyS01LYDEkbzBwbmM2IVJ0bkxjMGFhPHkkfEkxLU87ZGVkRgp6
JmwpY1l7IXRmK3RzbyZiNEpuY3NsSW1mMzxEZ3o3Qnc5I2FNSDlZUmtFS01pTVA/PkZNKURWJGhF
JGpzdGR2aEcKenB5TD9JP3RHWnpKN1FTKT9LMjZgcXxqakgobis4aV9LfCVIUzw4QWskQUg9cng8
RFdiJTNoUUl3dThvR3gxb29ECnpuZHpaYTZlP1ExPyk7PlIoejBQWiVBOE5Xb2VFU30tcWVKLTta
V1RtZ2leTjNURWxNdnEqbXA0WFUjJERNWlB6Ywp6YE9aZDElSS0/Vj5gYT5RUSVWT05VOFFPLTZq
TFpKczNNaTNPYHt3angoMnQxWFhpSjRtelhYbCVmNWhyYG4jV24KelIlaFglYCZkKHVyeFIxdmM+
bWMpKXVVU01abDc8N0FwbUBpZEZOMXN2VDhPYDREOW02WGlsZFhjPl9SXkFsemg1Cno5TGtURDM5
bWw8O2hPQTV5YElYfTE1TDxzZkVqX0YpeTx2WDJ1b31JajlLQSM2R1N0eU9XNnZGMlJkO0Q1dl5m
OQp6fDhgUkRPKWZuakV6ezdUIT1uYVZMcSlUajtWcTlON0ljZjx5NVgjRT5Bdm1RPSNwakVfJHVs
JSY0d1hoUT9gY1QKekcpX2RuIVFXbnpwQWckcS1lRik0aENjJGNZWU5mVnlwNyVCelJHQkJKVyQ7
b1gzYmMmPTBqSENTdSslTEZ0X3xpCnp4Z3FecFdkPW0kbnc1O3g9e1UkPzBASWhoS2MpV2U9TTBw
UXRGdityYE5EaktwN010YFZsNH4weTVKfnZfZnFnRwp6ISlDRn45QUpBRismI1ljd2pZJGhxS3gt
dk5wSGF+TndUWXxCUG9EUyslb1NNWWs2US1UdSVJY0FCQm5WZEw3V3oKekhhX3olbTxoIU45eCRo
aytjMlBKKTNzcCs/RmlpWjBhaWlpelhCI1U5XmlLekJvTXshMT5FPntUVWQyeWQoQyU+CnpGUmwm
PChEcSNGUzhzbDZ0Km1LKj4zQFQ1eTMpIUF2V18mSipKfilPYHYrcGdzIU45SC1WZXN0NnZAK1Q1
MmlzOwp6N1FOUjJqQjl7XipoKmZrdlUofSFIMGduSTY8cnpIbTtBckVqNWx3OFFtSXVNLTxSYilU
UjFkPDArXys0TXZPPy0KekdWRWxAJmlGbUNUVmZqSDI2Tj4rWTg4WHJadiZLZHdtLW53bCYzfDJo
XkNhIXlicWE9I3lxOyFLX1lLLVpBPCZMCnpaOX5Zekp6cVdTN31fKnJzWXl7c0ZiZjslI08wJFpa
Sz9mbzlsclJ1dndsPU5qa0NISEQtZipaPH5CaFQzZGUtagp6PDdrT0Q3bnF4Mj1UJXM3VXstejZZ
bzZOc047OWIweSRqVmNLJVMweEYjTFRJcHtjYWtDOD1vb3J2e1JFTVFEJGEKek1DfVVXPDxeVDZf
U2ImX05NLUtAX2xTfF5TMU95QXpNclBke1MzRjFyIyt3aWNRMFFgMnxHJi03QzZQcUp1R1k+Cnoo
NDw0ejUoR0dOeiVPSSVuPSYmI09+UDFxPjd9TmNjIWNSdDt9e3M/VClxVyVvZSV1Yz1IWVIjK05V
dWlZfiotIwp6O1dvXlAoTTdZXkhvT1B9eWtsOV5KS3J6YUpmaEJONDFJOXZ4dS0rVCFPOWVKPnYx
NnRTaURTamxOZHJtdHolfjYKenolRDFTVFBPfVFlI000WEtHI3MyKFQxbiV6dVVRQE49PV42SDYo
S0M4TTAqNlVlUXdpR2srRntkUzApTGY5RV8pCnpPLVdwQjkpKXk+TXUlJT5uV243OXIzayY5NGhR
WGJVSmZud2hRREEybi1GP1lwIXJHZSRmb3Q0NExlKDRCSUtNQgp6e0N0OWZ3YmZRVHtPcDsmRnIj
a0oqOGY5akRgRjgpe3BhaXpOPXU1NHB1OFBBPCZOe0Z6JHN3Yjxqeks/MjlVeXwKekRCYUdvIXM2
b147P0IyfVdlNXJOOUtDZUYhPChSXld+Um1SaWcjVDxpV3FhaVM9NnxmaTNpfXgxIShaMTx7QiVy
CnprK3l6XyVjKDlkJEVlPyNQVWE9PXh0SGFXZitkSXcpUyYmKjxBY0E7UGcqTFFZayNSK0R8YCg1
IypYKjVEPntpbQp6SylNfXRfV2BNYy1LI0h0ZC14encwcjAwenk2YWtxVllwMkkzYTk9fHlSR3N6
bkEtQD1qeTMtS3RVdCVKZ2w/SlkKejlxbm1lI1ZiRnJucW9wKXoyT2lLJGJeekhZc1lJaTVJMEVB
ZyNkaT45a0Y8ZkZROyNRIUBgRmRvI041b1oyI1N8CnpUUGVXZ24oXmI1PmNidHEzJVZYYCN8eEl+
WEdfdSU+Q2lVTyZjaCEzI0Axakx2cmBXNXBxQ2FaUm9oY1VUKypVQgp6OEpzXkUwbW4zJHQldGlC
OEEjOHZibDh8KVFHTFRsWT5JMnNSY0ZwRFpySkdCbn1CUXx0S2VtdUZfSVo4JlZZZG4KelVfTVZu
U1lFV1RXNHFqQ3JaQUE3b2coQWF3JWJSKzl8NTNmdyF4KHY0RUdJeHY2JnNWeW0/NjQ9a2V0NGhw
WHcxCnokSVNnazVKUiZuRSlKfHRlKVRlOGI8dl44S0QlYXZlYnRXLT5Bal9EeXx4Mm5TNWt+KSsh
WlVURz5XQDNnO017OAp6VVp8OWJwPEp6MXc8aFErUUl3QTJVRihvZEpIS19jZ2R3TlJTe3pKfHFV
VntWSG9zaUxTYTY3ezszK2R7d0dAOGQKeklPSjtOdF8jejh2JF5BVSh0QUJleHNXWVhzcjtYMUti
K1Z+elpMRW95dX1ScSVEMDc1REBgNmMxQUZMU3ZuTCthCno2RXI2aDZAYHRXVTglUEJtSGYkQjct
Y2E5V1A9a3M8ZWd1NHZuVFopZVdycjkxU0FGP2lvSDN4Jk5+MCFkSnFsZQp6c1diQWBLMEh5NSN9
dj81bW5FTH5ZKjdRPEhoZ0FKOFZmP1JqZ2J9JlRueTUmbkI+Qz02SzRDOzAka1YwIVRqKkoKekZ8
UVNHMlAtd1kkOUV6dFh4bkpUI2RyXmh1WVl+cmxrWV9OUCkkWVVsQzE0aU9Ma3U7dTdAXkdRJVNu
cUVSMmtTCnpvK3w/OXdCPylqeCo2a0g9aTl1dkpXVnJHX1B9SUMwJGR7UFV6QWI2QU9EXjRmODQk
R1RVSmZqMXU2fkYtSnlWaAp6YlYkY1RPUEE3KGwkM09yTlQtNXlIekZZMi1ROFclb2UhTzdLY2Vz
Vm8kb3EtIVRINkRPRSFEPCUtbk93JXZ4Kk0KekNfTChGPVV+VVc1WjJaemByNCZRdWx6KGw9OUFm
b3cjS2YoJkZKTGVSXy1ycyNlJVZxbE1Ub0BnQ2JFKzR1eX1HCnpMeS1NdTwkYC1acyYrZEhuKDVj
am1OeHJ7ZkdwbXNtNWc+bj9Rcm5jWV5PNjUxJW8rb2JrdjI1c2ZtSSNjJXlUKQp6Mkt6THh8ODkh
PXkxbiNLWGg9cm56PUkrcCZ5bW1BZy1RNztGY20rSnZHUC1tPGF2dTdKd2lxfishdlVYVEMxKGAK
em1kYH5DemNIUzxfZmdQY19YVStATFJAI1phcWw5UXZBN1ExdFVoVVNHUUh+RzRpUDg9cnZAbD13
cF9YPDxIb1hSCnpFUDM+RT1LKG9XeTU5Ul5Zd1dyd3MmfVFGaT42SjYyZlMmfHRsalQjYHtvO2NF
akNUQ2Vpa0UjJjVvQFU1ZUUkIQp6a0oxekM9S1hBZCVVMUo+cCpFaFEmbX17cXJiJWVrOCVnPEhE
SCt9TndkJWprIXBmS0ZPek0+e2koR0VSKTJFcXkKejdEdzJQRmNHcktmNSglPT0rZiNsX21xOHk7
cml0eHYkZn15ZSUhfGp1TiNlSylEZXpOQEdeekZkKUVvPyVqYGlRCnpAQCVjfHNgRzloME5WQ0Am
dTI9TSNvdDMtVyskM0dlUzlwdSl5UVZjKDxWZl52MSslK0dqSzFyQ3AoZ3B1MnN2bQp6bS0lbFc5
TWxPcGY4YlZ6UTxzQU5TIW57ciN1SFNOe0YkPWI8YD49fmElQyQ8WWIrQjFuUW5jQT03ck54KC0t
SnMKemJmKyM+PFhXUH4oZUB1aSY0TjxUUD0oTU1kfVg7ZXtuJD0kTXtDaFZ6cnclUlNte0UjU2Z1
RWZMTVVpZ0ZzcHFYCnorbXQ7N3RNazA+e2wyY3coPldQWEh2TTt5QG1lLUxDTkBHdXNxVnoqR2g8
KFkwUjZ7dE59MF5Zb0tiITREX0klWgp6RTRSP01uYn0wZVY5d2ZJajNCfkd5RjMpYEtfKmhDTUha
eWZRK3V5NiQ9cyF2WlBFNypGciE2WTUoVkBCY190N0QKeks0PkMrMmRQNzQ9S3t9ZXltRkhQN09i
c0pWRDB3dUpmKVEpbCEyI343MjM2dnQ/MXx7dD5iQF9LP3FGejJoZUUyCno9OExFfDBoQ3NzVCMl
OFRTSzZIbXdgfS1qIX1AKUM7VWB3fj8pKEw5JmNCLWFNI3smU25GckhNNVcyQzVzRno3Pwp6OzZ2
PDVFNyR8JGozdWgkY1U/QmdYWnxyWkZ3UGlhWWcrWlU5djJlcjNfN1IzSGJ4dW1xWTNKUmVSVUty
Ti0+ZHIKelRjT2R8WW0maF41WSh4bmVhXm9sbEVJYXtNezArR1IkMFgybzd2elY5OypNUHFpbyVe
Q3R+WT13bzhkWjBXWis/CnpFbHlkQiR5WDdDczxtKD1AeihkI3NfKmNNVE9TQjF1ZCljbVJ9Zndk
JjRUTTQ3OHtDQEBheVIze3hBTz5YREdAKgp6OUdzTXY/UExzeXBrdj0oOF96bCNaYm5Te2JNdlE8
RkRSK0JOMj1VbERib0RjcW9VTihWKUohSHtVNjJ8WCh3Z1UKek1nRHs1PWlAK21IcShuTXVTfTVv
M1JkcEhEYVdhOEdreXd7UnxeSmQ+WUM0ZjVLbjVOPjVtLXhwQipOQS0mbi1yCnpyZj1DM3xFMEIw
S1hBfVBScit1Z2UpIUooJiE3Q01jPUFQfGFvUFYhPVF1Qzlua0lMZWtMUyg7QEp2JGpYfWkzXwp6
IXYwaTFOPTgkbnBhd254I0tWQHhaWXRrOChSOGB3Jkl1ZW1mMVkwVXkweX4hcjd5aGNDPHg8VVlg
aW9BcUItfkEKeml1eDd2P3IjKE1fUiErPmBae2hxSVpnbiliJCVeVSRlTTVlbXRQU2VNQU4wS1d4
cTk0MzgzUHFWfEFQfl8qVEFQCno/P1okXzhnRihCRjkxMFJfZ0hra2VVfCEtU2dtfmszMTJ8PjhH
KzJEMSYjYW5HaCMwNTxaaXczbytPR2dofWUkUAp6ZXJmbGRpaF9YZ3lrJlZmV0ElYV5yfjhGdihp
QDlkMnZgMT5Sck8ta3BgRkgkZmkoOSs5PT9xajZARDg0KVUxLWAKejBnJCZKT1Q4YiFYO24qWmQk
WnRTQSk4Mm5pfSkwYC1HWnZDKXpKRThJK2ZmUitpcEAqek4zYjYwUlV6bC0mWn1+Cnp7QGdkJjxG
d2M1X01uOz1IM0x3Izc9LVlnSnsxJkt5RVd9O0A9TzJBT2dMenVCQjFDdDY+Qzx4eml0RF9ANz1a
WQp6TWQjKTQzampiWWJPfDZUYDRoUXE0THdOVnJWeld7ZFQ5NWp3NCkzMGk+JWJmRHNqSG9oRy1Y
UEZRRSZaREpHWVkKektPNl5vOVlTRWIhezV2TkBjaT45LTF8PEZCSUBHQE10QCltVD5iWEBxZHND
KSo4Nkhfb3wwZTtHd2o+ZG9zdUxlCnp1SUNvdF4ydThEa3tpN3lmUEtHUkh2K1ReIW5gaVopMmAz
KWJ6TlN9bldsTkp4KktHUm5iOEdEP3MtWk1KMiVSXwp6LVQ5a1dgZmsyZFJMMXtWWVNka0tKfj1r
Vl9oPytnMiQyJXYxS2BqMWBIaFc+LT0telFpSHVwXnhfTXFLSn5MUngKekYzMipSUiN7cFRvc3U0
fXRnT19xdSNuT1NKKD9XNGcpTGllMWtebjAwcyphdTMoclhMaV9QSVE4O0hLZ3A7bkorCnpVNz5S
N3ZjSSlfR1ZTfEswR0M+ZDRqfWlkUnp2NzdNcGZXRFNxTDcxWH5QVFRfcT1ne0BZMyhFaFZpdzNH
a1JJeAp6Qk9YSFZzNSV9ZW9uQ0p9alk5UTVwQGVQYGJzRzAzbk5OY2tYfGRrJXt5bDArRkdXMGFD
Jmo+PGc5dXM3TEEwRncKej9kfHtxe1AyKl9xWHpeXlk1K20wMCYrOHMqNz5yantJZkgwY2FoJEFT
Jmp9NEdlX1EhP25oSmFfanhIQDRsMVduCnotVkFqZWF4IyFTPzVaYEYkI0VAQ3RlR181K2ohczNG
T2h+bERCOWFsTj05aFk+aE8rd0whJTRie2FPeWdgeSVLJgp6NVlPNWshTHZ6XylxMV5PSzBHJWoh
KSYhNSFRcG1oIzx2IzZ6N0pVVFd3OSMmKVhQbHF5NGV3dy0rczZ+YSl2b00Kej9Qc29MQUxidU5e
PCF2OHNtRWk+RTNFXjdyMVFadnNvT2R6WUk+ZjRsdHUhMm8lZjxrUnVSRFpAST05UDYzPFN4Cno8
d3ZTN3U9Pj5zZT0hPkFITm5mclhWdDlXSiVefDk7ajNVVyhFKGBLSVpIfSo9a01XKUZaQGVJWCtO
fiohQXRrPgp6QFJBTXlQK3lZdnQ9bntBPEsrQHhRXzVEWD0wYGRxbFN9THtzTmZPcnJBUiYzNGN3
I0ROJnE0KnhvdlR6USE1QnEKenJDVCs9OD82Jio8O0V4PT8/WEA7aXVQUCRSSVR+dUp2dVNXcUpU
JTNUPH1RVDstemNLcUIjS2I9TSRQenhRM2xjCnpMMz5Ub0l1cHVMT21qMXlfT1JYe2JZN3EhUE95
ZjdAT0Z2P0l0ITN6ODV2ZlItKE0xUWgyPTZJJWloazhtT21BKAp6el5hS0BAQmp+YjRIV0JVQWRA
UmwtSyl4TTI5bnFYPDtgTThUXlk+OVRVVkAjNkNoeGZBeyVAbnd5SUR7PDNIZ0sKenFjIzFhOHZV
RW00UGRpbTAmYXsoJl5tQHhVXilDSFU1PzdYcVlnaWkxfHgrR0wrT2Bsd3FMa0wzQzZMa0k1bGk/
CnpNRjJFPVU8IzF5eCp8Z08wayM0M0xWbHFHMCReVGJ7PnB3ekR9RUR6WVJ9QHJwNT9qejszPFNi
YSNfWlFkYjJTUAp6cn4mTnllWColb2Z2KlJJMW4hOUhlR2RTXkFpKmVaY157YDZAISM4N2soXzhs
eGVjQDdBJmY5bSZYZSFlVyg2KTYKenUrYzl9eGYpPjVgQTUpcnc8KFQ+RGdYKm57cEhBOyRSZ2Nf
cCgkdXlDKT9GXmNxI241dyl9I0VmIVcxdkJsNnBMCnpoJSM2Zzl1WFMlN0tIPF5RO0Q+NWZ1WmhC
dTYpWF8qMkQzJipAd0tYYG1aXjg2QFJOPCY+OUE8TVM2IXhsR1VjYQp6YC1HPFpDNlNYVC1NV1l7
bzM8JWUrPEZaUHAxY017QmolI2tfR3hpPlJESWlYZFY9fi1DK0xqS2Ytdn53cUxnMnsKejxqZVl6
PnRTLSUoMDR8djlINWd+Y2EhYWhQNiZTdUAkVVdmeDRyYHcjLTlKN0IwKmtZcXtsa3RBdiNReChX
NVpsCnpMUmt7Rlh+R1F2XmorO2p0ezxrPklvN2dCQ2BUczkzKlF7RDxgNWl0elYwbmM5Qnc1fnBX
PXtBNy1uNUxzVmI5ZAp6ejNuTm1qTElsVHReMFJ3aHlveVV2IWgqI283RWcpIzk+QnolLW0wMVZw
UFNMY0hgV1IlQjleeXBaQm00a0luSisKem9Sd0VaKmVRZTlBKEhfYjVNVC1mTTl9b2dBUk1WR2ZQ
aTw0UX51JV44a0gmWHYrbmd6YjRHUVFRPTB1fFFPQkJ9CnpxJT1tSldpKXUqQDlFOWtjITchUSpD
T35uYjFsTytTSHwqbTxKY30+dCN5YSMxejd0RXNzXml8azYrMHQlPWUkcgp6MGE3UzAyNnhYcXhj
Km5YQishTzd1Sm4xd1Ita1JfM3BjSDNsIzBnWm4mUkk4NW1adiZNdmwtYWJCUVA/Vm9pbzwKeitH
dmtDYE17YkRQJW9QMnJFST5yKlZmeX1pUEheWEUmPz1UdGdsTHdSNmxWcihHdSQtR2t4aFVtZVYl
K3ZleU1HCnpOX21BZXxHUFN0JX5WYUsqdUJqYy0wRGRMKF80RmkwNEBXI1AxaVNeYHlxSEY9aDJI
dVopU3hsIys7S3B5bCE9Twp6YyUqZXBhKDxTTlchbkZqU3lmVTQoQzs/IT9kPSglcmw+VmImXnxw
bWlDVk0/N3clOWxIVkpaR3RMKn1PeDZofUsKejZUaEc5WUB2dkEyeSpBcFBpWV53dHdNejBuNGd1
VV9ZYFg8R1hfVD54MGFeJiQ5XjQ9ZC1iS24ke2U8PkNWO3tRCnpadll+Qjs7elBVaWRJQ05jREdL
MGlqN1Jye1RhNUtObWhHK25MKFl+PiZgezVDTmU7TEpKdH5aU0tqT15hWnUxdgp6MjFwNz4tRTNz
V08tQXZvV2hzNGlrWVRGTG1QX1I1RXcwXjZ5Z0tWPVpuaCopSlN5VVdOVyU/QklGNT9yY1RWJXoK
ejZRaD0hZH4kMF81KVNGfWA8cDs+VV9qeFoqcG9pajg2fnAjeHgpVVNwRXhRUVRJbztCSSUpbUl4
QVBGZWJCQSZXCno8eDRFOCg1OWhQSzJIUjlHeypnPlNCeVZAOXdONjw8NkY9Pi04WD1UTFB2RF4r
ZEs0VTF3LTIpdj94cT80JDFBOwp6KmF2bGMjaDcpZCpScW9NK01rNXFXPiEmU3tTSCY1RlJKKXZ6
aUFsSnRDN2xgZyFedlpsdUM1WkMkTlc2bGd9ZlUKem97NzUkP3dXPHZoSj82Rjx3XmpeMmh4VX1C
dUhDKWopSi0kMFZ5eC0rKzthYTNzVyh2PUghKjEtYEtWbylaIW16CnpPOz9DR0UjcnN4YVpRd3I0
MCNHQ08jJGR5NUhnY3BFfClBTGk5c2lybzE3JmdPVGw5bXlYbEllJk8qR0l8RGZWWgp6bGsjWiQr
V054fC1ORH1wOSpLdzVqTmpMc2s9Wlk5KUElKmhvTFdSM3BJTk8/KE9FcHNacWNXfks0YDdCcVk8
cGAKemh2d0pTWlkobnBnaF9leHJObk8rM3VMZnA0ODNOWTV5V2t6cH1aOTF5PEkxayZfKXEtQnow
UjxJV1RNMmVURmtlCnpFP2FKcXlkaFcyPn14bnxRQFYjekcqeHooMVZqMmlpRGdLTzR9OFdZJkRa
Xio9eldWY0d8RDRoPGJlSXQ9bmR7cgp6Um9acEQqWmR9bmRHX0M1TH4jLUReLXk9PGdyU3FzZ3Jr
JD8tQWAkNThvZDlNT1dvZ2wpc3VQcFB9e0gtKkt9R3UKenR2UGorcnxKR2JjMXh1PU1pQXh1RHlS
c1hXViFXd1MtRSFVcDJqNXZHIUY4X3B1TT1tdEpmdjNSZWIkbCszYF80Cnp7Z3V3SWs7fHBMSF4j
WCRwSWR6Z3F9MkFeIyE0PUw2a3M8TFJKdjY/YkFIbm91MXh0fkNUPDEmaDg2VDkxPDlaSgp6LSt3
KStWMiUqTGVqSX08V0wyZDd7QD5SO3tWQDNvU1dCbDZmcmZwUkAzSlZscHZ0Xjd1ZXh1LXMjRlky
b1pYSkUKektnKkJAZiszaXc3PlJWe1ZZZUYlU0BPNzhxSktwKjZlZldzdl5aKU1BT0paNTM5cSs2
Mnopbk07UlZQTlJSaUltCnpKa3RQO2dNfSV4eUtfc1ZabWImeVJxcnlpTVVoR3wqaV8pMkF2Wkdj
clBfd1pLbVloMHF5K047TlRiKm9qQDNAPwp6UXRiTlowe3BqTWxVYnwhWHolZFVZQzZZfnI/d2pn
Yi1rYlZgfWFqU3VjRXdgVVo0RVRPWTF6ZFU3NlNwYEw3SVoKeiNIOVZgIV9zPGlhNDxEQ3JhVzM8
XnhpJVJOSnF1bjJjRHpRVGgwVWRuRlN5eHZAOC09ZCNveysxNU9sX3pudW1NCnptQFBtO21zPFY2
enZzcmVaMkNqc1orPnNhMn5BQiVHMm8hNDdVeX43ejZfcDwwPSNiRmEzVUdJJC11OTZHYEBpKgp6
YUxVbVB6JjRnekhmNXc7MW9DWmlLMHBke0FEeyhSViN7OzQjO099NClkUDlvSzlHfUBTflorPjlk
MXBrPX5iZH4KekVzUWlsQiRHJnpiS2A4YXozPFB4MWVvdUxaNWw+X3lvTE9Ccz1DUC1MVUZZRXsk
OH5kY3ohVnpOYlp8MiFgTyQ4CnpLTE9OMz8tfjUmRHstU2JZYWwtSlU5VSRVUkUqMDVvWmF+V0dQ
bXMpbXM8TjwwT3w5PjBUUXQ8KX1zfmJFJishPAp6MGsjRWxXU259UFk0UCshTTJJLSVRcysxTj99
M2hQNH1oTk5UbkskSkxBN0VOS3V4P0R3REI2Um5sJk41e2YhXyoKejVjIyN3dD9IV092PSgpa3ha
OU9GJUBPKUh5VVBHO19sJHp+alk8aUxLQzt2JkglPUkmem8zNHheazVgMD5LZXlzCno5V0c2dk9J
Wk0mP3YwMjZsX3NEU057Tz8xRlZEYitYSH5iOEpMLT9HeVdPMiU4XiNqeGF0O3U+MVFmUT1GOyVO
MAp6MElwaSZjR31+ZT1AfXNZQzsmK2hERzM8N1FkMHFxdTdxdTdAOVdVcHp6cG4rQ35Rd2FmLXNv
Q3NxfWFta2doVGQKemU9fkw1NEEzaT8rQ0IkKmomKn0qPFB2ZEc5TEEpYDl1e2l0RFp8V3p0KCZl
KmdkUEN4TyQ+djl6JDVTJExeTikxCnpNZU4zOXVjJGlXM1pEY1ZZVztDVlE0NzxJOHlkKk0taE1m
RVUzSkw5ck13dzE2PHE2e0lEJHhBd3UjfDlGbjlxbgp6bmRlKTBGI1RDU09eR0ZCKTN5IXtzK1NN
SktpTCV0KmY3S0ooSHtYKVJNND9veGMtQCM4eipWLWY3cUVGcT44d1kKelRCVEZvNVUkRzZQb3pL
V2A3fFNYZlFDcWglPW0xLSU7QzIkZj9IdVhQIWVvans7Wm4mU1QhYjFLTVNkPHljO2tqCnohal5+
QWpOXjJzVmxfKyVnLXF6LXdXIXBRYD5wbFZiWHw9e2p8bmRUZmlnP0xKNzJRc1FfS0tXKjhjNFpq
bCt3Kgp6P2R7XztOWlJhVzR1cVJaaCl8amZlVnhFKjQ8Km9zUStaeWhUVkZpJHJhS1ZBbkIzQyVn
RnVafksxdjE8WTBySjIKeilsKF5nOz5IV2pkN3kzO3NMZmFaMSNrZHVEJVgoJk88OFZHemhnbylB
I1R+RHlzQ0RYYDYwPXFkWVdsVTV2OWt7CnolJkpJVzJ4fFRCJiZaWlFIdXkjJERNQyE+cEdRQX5s
fEtCOGB5N1g9T35pZk1QK1poXkByUmlVWX5VMn5HTzkhJAp6O0pfezB6OTZsWDBrV3ptSCQ3aHwh
XmEpVmxCVSZ+UEh+YXBNZCgpOFRSeWxqUD9hKmZqcnMyX0t4KnwxZkQxVmYKejthRzU0YX1Semho
ektDNCYtPkxQKFM3KkFWQ3R1R2R6MjduSmBGVFBjOHdUekU2dXghMkFNSXFSQjVtZVBGe28rCnpQ
LSVQMkdINF5ycEs8KWt2XlRxWGVjWF85MzVaYyUpYSs1MGpBbTRKYzcrcGZVMmYwcjgpV01KVG1M
NHwpV2o3Mgp6NnJYLT1QWlgkRi1KST18O3p1bH0zJTZOcClCdzdjYX44cnBzI0c9N3slSCZ0ckJV
cyV1fmB3a2VPaE1VcmJRYjMKenRCUSg+dFNSbVIkcGpXNnJmdHF1YyNSajJ5dikkeUFSajskWXdj
X14kITJiUUd8T3R7bXFGQDJQXzBjbkNMMnxKCnpeWngxM1dBQzN6U0MjcmY0aVUzJHRlbyh6Kisx
eSRwcDFTQ0pmZWxkc0x+KXA1YHJ2MjtMME1XT1ZQVi1zR19aOAp6YHZeIzdafG5PMnErdzshez0q
eiYyNnN+WTZpdGRSM2UqIWQpUldqdkJURHo0Kkp0JHhnUi0hSGNjNUZvJCtpd1cKelIyI3NxbSN8
SWVyVEw1cSQ/bGtqe2tJcW81UkJ4KWhUcVdHQVZ6I2cqPy02fVd5Y3UoNF5FVz9rXiojK3Y8OCFU
CnoqazgzS0s4eyFnbStPYCllJF9WaCk4U3kqVVpgNGgock9OYk9acUpZK2phfkgtQzdaUklQXyox
dW1RNFNmWV45agp6aT1XIU9vZit6KFQ0Y0NsRmE3fjk8Zz9MQz9eTjgkU35vRiNVM35ebG94ZzNS
SnJPM3VUVU9HdVZRJHhtQkJJdXUKek5ZfldHLXVOTHZTNzFPOGFENTBSYjBNSTFFZEE7fWZzMmBU
KTMjTTI7I09ONzUrZF5DejhrPTs5RzVDMlc3M0RNCnpedGU/OzQtPWI/TkRKPEhTa0pWekcxZVF8
Q0tKSDcmSTN3ZTJMVldIbGpWZmw3WFFYb1BDOSp0I2VHUUwtJiNfegp6QUlHJDBiJTJZJmdBfU9z
I1VjODUlWXcjekZeRyh+ZzV4O3c7Z2EhcVQmdEdjNChoQEpaTUBHZ3J8eUZFNnxaWFIKemtEQkk5
WW9XKXNmczlBUFZNQGRGVDkhTkNLUmlPeztSK0R6Xnc9YWw5TitMQ3A4Y3VsYSsqLTY3KW9UVE47
PFVkCnoyVVViPStMO04rMkNWVVc7SjlUMUUxSjZQPllFd0JMQzFfTkNDSlB9dVdaNzZGNklAISh7
fFF+YENRVTchZUhDUQp6PCEmV1IteWs+ckQlKGpjLTR7dDtkSmo9JGxQU2d6Smo2R2doQURgQD9T
XnxvbkFoKUM8dGxqSGE2LTVxPUNxPSoKeiNTV1hieW98dSNaSGtNRipUNSh1P3ZwQTxsUl5IXnpe
JFBmMmdzZzc8Snd2cGB4dmFVPiVPT0ljfUQ/Kmw7JTBpCnpPOFNaOXI0fWRtYVl7ckhkQig4JmVu
dDtrY2EqLXt2ZGQ9QyVPeXQqU2ZiQyp3NkcxNW5QWEgxREZMYjhHS0gyRgp6KH1zOCVBc2gyWWp7
X2pxNWhzTHgtSk8qa0FBOGFfQEltQ2pfWUVQVTgxI1J8JEYob3QyMkVzbzIkMj1POE11aHsKejM+
KlR8akVUPWFzZV90fHN3OTcxMmdAZ0Q+VG9EUjdtaCo5SGheOGIxR0NRYSVEPUd3KGl5fHVlbmdR
O0VacXhuCnpkLWYtfTF9Kmo5S1RyJjd4ZWF5MzBUPThFViNHLXg7Si12Y3JnPEk7MW96K0F6YlJZ
PWxLaHd2YXtoXlVPVFBnMgp6JVgxWEp7VHFwWTIlSGNNTWZ7JjNgdEs8SXpWbn15Y24kIzRTQUlA
P3tURH5eQUVYbHp6fHJIaj03YXZyK0A1fXIKejJLV1dwSU1TIzg8ITRYdFFOKUIkMDZyYEV7LTRk
dTchZCVhUFp6V1BCIWx0cTheekxKMHZwTmlWNiZrQVBwaD40Cnp6P1E4dFpFeGhpd0M5UCUwMV5r
I2B2ciYrYVIyU2t7JSFUUz99Y0hpPlo3bT5EfDc5JW1hViVwRWM0eC1xWml1awp6cVBAaUlYRCtt
fElCV0d1JkYld2gjYFpYNS1QY1Z6cEtMbilFYz4xWFREQHp1NmJJezs5YDN9PUtjNSNjWUxDNTMK
enNmPFhyc19AWWY1fiYhOFEjV21eXnxETzZeQWNJUHYzKnBtSE5JSCk2PEdGRmZuQV9sM2l1NnVV
Q2xkfk5AYEtICnpWYXp5SCQxeE88RlJUNHhOTzFuKlAld359N0w7QmQ7d1chVngjdn5YWD9efFNM
KlczMlI+UzM8TlApQlAtOXB2Nwp6d3tRe3lxIW05d2Z7dlBoXjJHRkZxPDFHNFhJQFBqPjFRU0Fv
VUs+S19OXzhzK0Ylfm4wcFAjJTViX1Q2UyQzb0AKejJVbURURyshKzRkdEZOfVNEQiRmV31eKjck
ZStJIU9NZUNid2hacGVFJUxQNm55aWY2SHt9PFcmdlclKVkxaDZhCno8QiEyQE9RY09qZDVMRXg/
TThxeXApKEsxYSQoO2BfXmZPNSM2SkpTQ2BuOFAkd31ZcTc3aipZRk5qbndAaEFLcwp6K0BoO31N
SFRmOEVLLStfN3hmQjx3PTZzSFdIWktzU004ZzlWbz0xPlJeNC1xezl2ZHx5ZVIwaXomWjB1QUN4
ITIKem0rTlk4KTxpYFF6a3hAaCVJKVlOeGpIVXxBfnVXfEJMIX5NSjlnTCV5ZU58PiEpc1Q/TDZf
P1JxNyRePFRGamhXCno0Iypack9ad2xKMzRnVl43eXA0NWJyVVZjczA9aSFzWXJJbU98e2g7PWQx
aUB6RU1TaHo2TlE2aHtUQTBxe3NwIwp6ZWJPaC1mUmU8TW47NGxLNj4xKX0jUVprTVptNGZBXjs1
ZllnK2QjfnZXeWZQQ20tPmFlLVBUPk5ve1Y0KzZgQEcKejYrVyMyUl5MUGRpalBwaXVJTEEoS3Aq
NjszciMlQ2RVV2lfaTBvOUVBcEp+LWhXJSpobE1qfi17cTE3XyNSVCppCnppWlgpYGBWVF9wRyE0
cTc3ZCV7PDZFUCtiaGVMbl5zWmwxTio9V20obiVfPUJEfEBwUWg9O3NtKkcyQzBCTSk1WAp6emhZ
Qi00cH4wdyFpVzxjJnk8a2dgazlHVk1pPH5rZVooI3ZLN1AteG5gVCR3QFBsZWc4dkRIcTxrTG5m
ezxkcD0KenA0U2pvMEdHfExKR2lSI1deTTNnQDE0aW5wPSVGXkMkUyVqUzVGO2ZKPDRkeiFpJm5G
XlBVVnROM0UzXjUpfmNsCnolWW0kK2NSbkNGNmJ4WGZLKzF5e1VvPTY5IVhYPTUhZikwIypleUV2
c0owfHg2Mn0tSVF8MCR9WHlMYEgmaFpPMAp6TEF3Z0NEJkt6biprdks/ZGJ9MnVqR3paRT9GKUd5
MmpiSjFuUFhWeEpGeCpod1E0JmpaMkgpPnJeNTdJe2A8UE4KemRGRkVraCo+N2FLREVuSF5iaXhy
VEltemhVOHZ6dlh3c2xUbTVfJHMlYWF5YXs2eEl5YzxMekNyYSotPUZuJH54Cnp6O3RIM2FQRDxB
PihRdmlmbFRIPE9NQ3dJMmpPUSQ8aFNmXk9ZaXZlTyZVQiohZChLXzdsTT5rNStQRnNLd3x6Mwp6
WkJLZW4peCpwOCRaempedis/TVoyVkVGeChZOzglZnEoYWQ9cGU0cDd5aVo1bjR4QihQUmkkTWZf
fSk9MikzJlkKenhfSXtHajFfIUtyazh1UzB4NndBPDUqNz9vOyNVIyU5ZXs0Yj9XamEpTWhlX0Uw
aFdoZSE7VF45KTE1TyljRDNmCnpiK25AKUBGR0dKNnAoeE9vP1ZiKm9yd24+bTRga0tHTVMxe1Bz
WDdQQ0d8IVc8MEYoZ0pZOCVXIWVtKDdASzRPNgp6c0FPV0xrSjlDa3ArJE5BR18tXmB2cn5INkFF
NjNfNSsrYFh7fiM9Witofm14d0lsTiZxPW94cTkyOT96TCUxU2kKenVKO31DK2UpTnEoPHxVUGgx
eiQjQDR3bVMxaSQ4b2U0M2YmUUBkam9IIThZYTZWUz9KQl89MERpNjxzc0tYP2dKCnpaRnZhUno1
WXtCVl8talpIMiFqQU5lUWBVQiZQWGVTNzUqYl47WDZVKCslWjZKX2h1KD9weytBbT5gTlVRVmRk
Ygp6b2BUYThQZmlvd3RkZjRTcjw5ZzZoYTd3UDNjbmM5NE9WYVRyXkhscnVHV3lqbXJze3FfIzhh
YDhDP1pPUEBYJW0KenpzdFNPTl9iZU9BbmA7QGFuOS0kd0M4JDV4K0g/U2d8eV4taXgrWVg8P2lD
Q181ezMrUjY/KXkkY0B+TUlVO243CnpaSXJ6em0zcl8jSzImZTUtaSQtXnBNZXNHRjM4a0B8OXFe
fSVHcUJ8ajgjRmFzQlM1MkBZVEVNajFSJVB7MVpSRQp6Y0xVbj1vTDJrP28oYmdTM1N+eyshQjR1
QEteVztqPkZuYktgZl42I2h6S1Q3ZDNUPlgyR3AoYjB0Y15kO3djJW4Kek50YGFPWD9yRmpZT2VD
ZEBgeGlmPnVLOGQqaXAkelQxfFpeZV55ZGRpO29zYW9wXkR7VjJYI2x6XzFXT2AlNkdMCnoqTW1q
WFotTWZhd1NpWmJXPmMoVy1SMTdqcXBqTTFCZjw2TnZ3dUdEcjViMXRIKiZZUnomSU9FaE5VcC1O
ZHkzVQp6OHVhb3krZyY/fEh8Ji0ldnY8e2x4cishazxGQD09bWM0YE4/Nz9rP2R6dj13OHVufS0r
cUJgQGU8NzlVR0VnSkYKejlZUHxRZHBaJjVwXlRjJEFEIzl0KW54UT1zOGg8MitqPXZMU2M+WGh1
RSREVDgjOVlWK3lXdipmYE99P1czVmlICnp3Z1ZAOVdvfU12dmswRExYcDUkRmdDNGEzVzJKfF51
O0AhSkdjQVl2ZWBCI1E5TzxAa1RXZzktKF5ZekskRVFVdQp6Y1JiRCEtQGNrTyhvJVJLR2p2WGNu
ajtSZWhUWCh4QTxtc0MmYU54bklYLSl6cTFyQFZSX28qc24mQUptby1rdnMKeks3JUVXZlJBOHUk
VEw5WXMtST92NHtqenozfVNwJC1hUStwaE5tdWJvNXxmbnt+aiskSiYhbUh3RWpQc3VvV1lyCnpQ
cUkyMEx5RkclcTcmNCtAMDdjcm4tSzlQUDZgeUpkK1glJExVfihsan40VDgpZGZFKjhAaGZzQTs8
T3w8N3hmMQp6TFU1bF9jLSM2eTM+O3xMO2h2WSpxcGY9R0hiTV9AYE1ub1JzX1lWKVhSM2pZMUVT
N30mTVQmYHRGe2Y8SnhtSEsKejRkeVNWI04yT0Y8QTdiMkUtbDV+N3o9PkUhMV9UaExGSGxzWThU
cUUlQEt4STFvI31XNXpeaExKKjw0aT5VXlVtCnp0M3RKNVhvbENVal9mdHJMam1ANHMmVVR9JTc1
MkJWPl58Q3tkTDVRfDJ6UG5PKiUmQGJMXz53XkNlSDw/ZTk5UQp6RXdgY1ZZRTQqWjMmREBBYTAj
JTRDbXdifVNEX215S3N6YCohMEArdjNkRkl9OVJTTmVzM25TSzxWYWFhPW9RSzEKelhmVStWY0s1
SW04bz8lT3c7I1YtSk4/dldKRjVOXiUhblAkUG1HISlEJXhRdCVmWi1iWksjJHx5fGZ1dXEmTWJk
CnomezM/JGkoPmB+ZGlIc2hgVTQxWmZuK0okejB+SjRaOWJXMWZOQ3syM2lgR1R6VitTKmRTYVZF
Q1ojUEdnXnx8SAp6bUdLJiRnaDxuN217VklMajlkT3E3SUxReWAjcD9kWjw+JnpnVyM8T3hMYnpm
Um5DUig8OyZgWUJPWDdOUmV7disKemd8Qj5EY3o+QnszdjxUY2hocWpnekRUSUN5cEhIRE9hVXly
ME9xYSpXZSt2MStraWFwPz5UJGBpPzBfVU1NbCloCnpmKFI1MElsZmJTVFVVTW11ZyVjS3lGal5a
STxjfjZnenlEeGRtSH1VKlcoaGljV1VZejtaMitqdTY9S35wc0paRAp6XzZ9WEFueXpUfjsjdWF5
WFI+dUcjIz16Pk1SNFFrT3p8QilJd2psclREbm09MllzSTBMPUJEZzB5SmtAb1c0d2cKenpoRTM8
cHUqOSl4UFA3NzNMc1hLLWgkbmNiMzluajIqP0Y2UHZoVjtoaUZEcl5qZVlWKys9PFBwWiUobEB3
TmswCnpTQXR5NE5IWWVtc3QhLTRxblk5dV49QDFRPkZvUGIkPzxvZ2pwWVFnQjkwUmQzY1BrfTZg
Q09xN0AhJFBMa2RQQQp6QkI/Rm9tWmVDZmRWUjswKDJtNTlYKWtlZXo5TUZ2d3dFdU42d2Q2STRq
WVFHNHl8TjtRSkk/Q2koSUszKDRIbyUKemhjKUZKeUBkQnl1NjshVkIyPH44KVU9JG1ueU5KMDdm
M1pBIWUxUERAZ3JlQUJmaWFiViZNSUw+dDVSVjZubkFXCnorazVrYUh9VmFnczl2SlRoeyFGaXdN
cnU1KGUlTmZaI3EoM0lMQmcjUj09MEQ7MnFtUHEzUGwqI3ZDOVlJMUxJUQp6VGtaYEBTWC1qQkNx
MSokVylYYnBlbzkjR3NDS3xBUXVhQ2E8ZzBqMi1QVXV+eXlCNm9jPDYrcHJqTDtmZnVnWjcKemwj
a1hBXnxOVCReRG4/fjYwXikqSFpXKE9GT3w2M29VQGdBKXBWWGUqTVRnNHZHaGRQNUhEbzJjZmFT
YzkjNEtuCno4WDJJSTZTKX5janBEIWZhODdee3VFOUNANjZJKW42SUx6c0h+THljeT8mVE9yaUkq
PkwjfnU4eT12cEMjNGspLQp6dkB2ZG9HZCp1dXAoWVlVcmViKUVrOWVReXF7fU9FPHhAYEo/eEh2
YkB7MEwmcGxXVTdJU3YlKzdUNjxnQGdfYCsKemBwMG1yWHc8KWRGKjJ7WCFEZVYrJiQtQHV6ITBO
ZUo/clNwU1JYO1NOJVZ7QjxkVn4pKGVKPF9LR3VDcFhLPUh3CnpMMFAycFR5WlR6cjxNcjIkN0Zm
KzNETll3el5LdUB6bFJ4JTVsQ0IkcFUoZVZGbGMtWGIqPn1jNDdiKntgbVFuSQp6eXlSQWxtcTR0
YV8rK3ZlbW4mUEghK0NUfjtNeG84YiE5LSpySGJNNHk+NEhDeFJrKSF0bGpAQFQzJDxxZEckWEIK
ekxPQmlocChmZzJHNEBAKSV0K2RGMjdtJXBPezxlUGh+dz53ZVp2KH1udUE8S0FzfjZmODI4Sy1a
SzhEMmtJNytjCnptRFBmaWM4ck9gdHlGTmVDVGw/VEw0NnAtNndFNXNuUTJ0SSljPWx2KStZWGIq
P0IrXmYqVn1aU3k/UUBYa25vVwp6KDx5VSU1QjtLTkdVUW84O05kNF5IeztlclJqeT9kcnd0KnU0
O1RIPnpuYUZ5JUFFfmQ5biN6TSQ7Yn0ydG9PaEUKemdIeGswWl5Kdj82SzwrTFZUJCMpdjFuKFhB
O0U8eHsrMXpuQTs9UTFWfEZ9d1FjUXM4U2JGWGpWY01rNk4lcURfCnpkKFZLMGgqJG1oZFp2SFZZ
cXgyIUJyYiRiWSNpPTQkV3NgS0IxMDAtR0BMfj8rcSpOKipofnswU0w1cVNwV1UhUwp6dVp7RHhj
PD8leW9ZXlNgPEdNfD48dkFUUCh5QzBpKW5IJntIRmZnIzhsfWIqQDwyN2MtNHc9SzhZYUt4O058
fTkKejA8QnImPEBqYXhEfUtgQTFeKS1zJGJJVystdmNlMTFWKEBOU1IkalUmYVM5OE1HRFE0MGd+
JXdDfnlZTj4xbH09Cno9e1BnY1pPKCRJIW59UFpxMlpNRV8hOThPUFdRN1dxMEE4e1dHd3RNTVhe
U0FjLWAoUFduTihFZz1xX3lRYFpsTwp6QnRDKS1HXz4kRVBvUEdZNHkwY1RpZTtoNVpkWHhYOXZi
ZkllI1EzWnQhKklXUDlxV3UpbyEpN3Z1KkpnIT59Tz8Kem8oKDYtZEUkQzAoSGJ5YilFSH03ZSZ+
TldIM24kUFJmc185d1lZdSZhOyFPK0ZsUlhhN30kbV4mR1ZDJHY9WmdhCnprYX1OfklhVkZ7PH0p
PHYjUDBuUitFckdCKHNZQVp5VHkjY1p1YXVYIW1+WTJYTikqfW1mRD1LMDghbHsyMmFFSwp6RjRL
IzAzLW9ZSC1FSz1fVW0tMFlkPWNtUiFRXypHNmFmRzApUyt9N21xLT4yciVTfFk9Tzs/aGV7MnlM
KUAxK2cKejExWkwtWjw8YmY3Z0hKNGRaP2Q0bWV0eyU1K3tsR1hjKWs8KmhPQSskdl8rTUxtTFVt
STF5Zj8tU2NEVCk9Pk5UCno8a0g/eUN8K0ZweiV8WDNKYDBNSjwrNE9iJVIkN1MoRnlQeSk4Wk5P
K3VBYE8mKTh4Q2VlTFFFR0ZFITxWUCFqXwp6PUdZTTg/VVgxOUJrTiU3VSYjejFXfVZKbV5iSXJr
KzYxQUA/QTZpPDRqdnhrcmp2OHVVbz45VEZJKG07eDtfNnoKem5ecT9jR1dPVkEpWXBkOWsjVE4r
S0FuVzhMdXdpWkh7aXMtPD1gUmszNyFnJWV8OFpJSjMtXkp8N2RQeU9VR0VECno/VTRJVUczPDg2
NEhwN2tVcGxaWkB1UlNyNVh2dmQtST1UeHQ7aEt3by1ta3J7JCgpZnshNiV5OCpjczBycytYZwp6
SVNZJHQjVmpHaHtfM0J3UjYjRX5pQUJEJTFwblBfSURoUEUjdWJnQlM7I31VSndQSmlfVCpgZWEx
clpvaik/cTkKelBgNy15Y3VfMHA+UDhyWmFRKnZweExBXnxnZU0lQHBKfHc5RE9IVyhaOUR0REU9
YENPVHJ3JiFCVSUhNE5qaCFHCnpUUkdWTSVKVl5pR0BWSjJDWkJpJF5HfDlpTl95JUBtOUVsanR5
VmUmTT1JTylJPWNrVyE2QE58IWVkeShjO1VARwp6PHUmfHlMNEQ3JjF4anNKZHRjfX1kRGFVZGFT
PVJJJldUJjNvNWwrWmtKUlBlQWdOSFFTaigpSTJDSiM5M1cxJmoKeiNFMkw9VjtMWkY7THNRWTRR
MkB3b24+dT5jfEJGLTBsZENUM1N2a0VacGU3T2NGPTBNQ2FxQ0w8aHRkWk1qa0ZSCno7UTxsRVEk
QjtAKXJDbT9rPnorM1FQK1dINlBBMUdDUVhjYG8kSU9DMmt7VElLaV9Rd0k3dkRyTVN5bl48NVFO
MAp6UnNxNy1yYiZQNVFMZFc1YzNpJVM8eDBCSFE1anFjYDI4cU1IcChKT1QqVjtHWkAofENQVSVg
OWBoczcmNyhhdkcKejI9Z0I2WlU/WnxVSXp7aS04UmxyVSM7O01yfTFIUVpPKWxJSGNYO2hJbXtt
WExYQDt0THt3RDgkbW93PyVWdSE+CnpUJFUzPzJUNG59PlIyWkgxPyFaY2JpbWZ9ZSY1ezFwUTtv
XklfTjllYnZ+IXNrYjBkSG5ReHlrQldmakpiUStaMwp6TF5RJnxsRHwkOSFKVkZDPkQqT3VSO1cm
KClwamRIPFpNeiE8YiRfZ3VPbFljO2lqS24wSjg1c0F+cVhlQVczMHoKenRaO2dZSCQ+elVxIUh3
cU9lY31OK28yayNMPWdxPHA0dnlZPGVtcD4hVSE2JD5ZJCQhPFE1SjFFRypua3RwLXBJCnotMFIk
TU1WZ3E7M3pFYDUpampHR2NzeDlSVWchO345QHRfSCNvRHghODtZOCt1bEN5ZXs+KWZCTENHb1Jn
fFFTcwp6Nk5xNm9tUC1mfXIlT1FKZz57NVUzYn4pOEMobl8yM1pAKjtSfUFYX05pKjRCV1Z1X2Rx
bmhEKGdfKGR4bXNaU2QKemt6MkNhS3ZuMDBGeDd7IXc1SUliZWZTTExIUlZrXmNORXU9TTt7PH1Y
ZmlEOSNwWTB7ZmUxUFZmKylvSE1uPS1ECnpwR2N2K0srYTApKDA3MFN2MmFoajxibTRwbzdjfGdw
JG4yN3VFPU1vez9kMCFCJnx7REJyYDs5I2F4c3BPKWxtRQp6dnJLJTZJP21DdjNKTlVxYHJfciQm
RXszdSZ4QDh0KUtjKiMxPWZTfWk7ST4xa05OIyt2Jkd3YTAoSkstd0xgYzsKeiYobkRgMlBZS0h7
cGxqJk1ZbHF8Mj5DT1E0PiNOLV84MiQkOztpTVA1KypoYzVqKmNPKkFRe3wpOVUmeUU3MldpCnps
IzltcWdDJVgrQkA0JVMxREZIaHpvfH15STItVVBwdUlINmM7KFN7XkpPOEBAOEhJRWMlPEdLUHxM
YEZuPit1fAp6K3tnITJwOFhtZi1vd09UQ1YmKW5SPWtCPVNRUW9lMT04ektFR2BfbGQheEh4M0d6
NnomdGBeYSFzfTRKUVRnZFUKemkzSC19VnpUZEdnK1h2UUlCO1NoNDYmJjlzPFZVdnpQRCpkMU1s
cWZeNVZ3WENxMyhKbiVeaTRIJipYWClWQERiCnpvN0ItdTtlOCpQKnROTWVvPl9qe29PaGJoYjRP
ej42RGl+JWJ0QStsYDFQUz9EKX1yPlc7MmhgeHFwfl5WN313JAp6cHQ5U1ArY2dFWDRaVldvRGtl
Z1hVdit0RlNgc3lCIXtWRUAjKSNMKXtuc1VnbTlsY2FAQFB7a3dUfEBHXkVkQXoKelQ8YGRLRXAr
U2JoZGcpSVpKSnBaOHhFOz1UNSpUdjZeaEV1Wj5JZCYjflo2e3pOKUlibnJQYXU5cCFscEJ2d2Io
CnpvRShtITR7UDNOPFZffCFHeUI9P2QpWDUySF90SFYkbW18M2F2WTgzam41RztNNVN0OD97R01l
Q3ltb0kpaE51Sgp6NzMrKn4zMHtTdFpRb1VuXj99dVRraDwrUVhpe218PSgjTUk4ZklJe3FLfSZQ
LXs8PjJnTXg7MnFoLW04NCpjNW0KemNuSEB7ZExHVSgtRGJYbHVJZmN4YT1DbXVLPmw7fjhoej53
KkhXXm9gKDEqTmBtaCgoVzJAVW9sMUtnZjY+bXZCCnplZDttc3E9cVY3ZSpeVGxUVDV8RUUoN2Nj
KjsrISo7fXlTMEpKSGA3YEd3c1hiKWVlRTxhbnNzWXZuNVMkekFyJgp6XkUqUmg0R0d3X1U3d2xu
cGpSYD9hK0NMP20kO3doaVgmfitAeXJnfmR1TUpxWGtaUHxOMjxwYjhRKW1LJkVNfX4KekchRis3
eWNkSXktVz1YMjR6U2ZhdWc2UEtiZHdpc2pVaipTZGFzfXxfclpAbDwxRH5vRil+KHh6UFBUeENS
TVRTCnpNdUh8TGNVYVh6NGhkc2gocE8wZmx2PiVMKUgqfGV3O3Qqe2R9bDNmPEsyRFB1ZTE/TXlw
Xnw7biE7UkwlYWZEIQp6dSg0bVVQLSZXWFhfWXU7NDw+SiYrfmx7SFFxIzd8RCk2K052V29GcU53
JXEwa31JSE9zeUNZfVN1TSopMDAofXoKejUxckd9d0tzRVAoe3NIe1JhaHF8YWtGPUdZO3N0Oyhl
Zz9ZJTBCWlMtakx6WnttIzQrV1drTkgjJmtVWXJ0MWgpCno0REtrWkVnOU5CeUFueyM0KWhpaHZV
O2ZWNURvRWdUQDxaRlp4IUhLYTkpbCpeMTlmZjh3XikxQS1Tei1aVGEyNQp6bF88a3MtYCFvYVhA
N1paK3I4X0A5QUNaZHkjTDhkKVYyRX57I0xgfCgxMG1DU3VjN19jPlNjZkRjRiYtWl9RNFkKellt
V007ZUt8NGhhS1c8Wll+JitmSGVxMmkpZ2B6Tzh4PEIyZzk0PEY9KnZBc0tBalBiJkpaQyRtdmZ8
LUkyUU9JCnprVkYzdkhUSHNCJmlwN1krcmRPJGo4cGZHNUMkSylxRjcjTWpsRmFePSZRJU4oelNB
Z2xVSjdgXj08eFhSUmc3eQp6OTVmLVQpbk4jQlgrKnJfejdjVmQpcitkJjhCUm11VUBQaD5MZVZ0
RF57akNPcmgza3peMWF2JWtmVmZQUDxXR28Keko9ZEBecEI4PTJ0eWM9TTszOyhpdEMoSztqT3I/
Yko2JjlWbW0qck1remIkQyN4b3VwKFVaQm1WbCVXdjhIMn1nCnorN1dmIUVsWXh9eFZ7P2tDT0pi
YXdJJkdePX08YD1FciViazRSS2pSWFQodGBWe14zU01QN0RjP3FPfFgjPGh0LQp6MTNpc0RnZFNX
end6VXVQOD0wSlhZaEojVWVLeiROSCNTRntkLWk9Q3tIRWh0cFN7bDJHVVlhYXw3NDt+S0dnUEAK
elNhY3p2bDMkcHNkRHVxbElAaz8wMyVPIzBecWQzeld2RVR+ajZ7fTEyZF5QblhgfmZKbUgqNXUh
fSVhOXM7Y2lBCnp0bVBUI3V5KElCdFc3IUQ5YURTb0gjWW54emlEays+Mz1gQkM7eD9DbEE3d0ta
fTN2ZEl3Q2YmbzNVWXkySk1SfQp6R3coSmRMVkt0ZTdmTCRBNGFyOEwtPT9xbTUoQHBWXy1Uc3Fu
bzdzPDRXfDdwT1lGJEU5NHtxSzVHVzF0TjwjXnsKekQhKlpsMlUmSTBFTXpobkhuRUlkUGw5fFBp
I1FnQzsxWUl5XmUmSyYrIyotKVVSPkgpSCtybUJaLUQkWGkwZSpBCnphQzwtcWY1VUdpO2t3TGN2
elcocnBVQGtCRXpHcWMpPkxmJFl5VkFSQT1eN2RoQytNeE0/PTx1PEBwNiU4YmVhbgp6JGVDX1Zq
Q20xRD57Nj1eUE9OIXBPWkVVa2ozQWclSVA/d0QrVVVkRDt7Y0F3MiVaQSlqNUtsQCYkbkM1MT9O
MiYKemJBSnlFOyVhaiVGVTtAck9rMTw3S1NqXnZMdXI7SXlTRjs2PnEmXiFQekx3ZjZkdVMhS31P
UkpAVFEjVGRvMFdYCnpGbCtWXjt2R34wRjJVO0oxMjNJWXd2b1JITnk8YElWWG0+Z0d9UWVUI2df
QzR1fm5aSUVNT0F2c2I1dkZYR1Uqcwp6M1ltNDJOMFl6JSZSbkc3ZD4hTkRePFkwdmNrS2dxUDEr
RnBhMitgeCpIbUhDQ3FDQTk/VX5GUGBHVHFZd2Y5V2oKejEyPEZoPlNNdm5rcSV9PExRI01UTyFF
SV90X2NscjlvXyoyMz5iTD5WQmhXNl5PbzxTeX5xOCo8OHNYJjM8Nkg+Cnpob1laYzwjfGhibno4
TEhXX344ZWJTMGQqTTJOV3RuSjttIWY/Vns/SVE+MDk0SUxRY2k5MGZ+OUVNMX5ELUFeUgp6TyNO
N1hCJXdpNDlrfkB3PndofGwqJmJ4diFDXj91PU4jLXZNVUxxWDFJIT5JMjd5SFM/ZUhDb2MmemJS
bjFgbmAKelAwRTlSNEJBY2VCVFo0NmErQWhwSk14JT9eRElON044YjBiUSFzZFRCK3crZ19MX2Ji
RTUqZzxlZUshRFFTeD9mCnpPZm9MXmtuLUp0MCFvWnQkelVEYmI/I0ppR088YHVKd3BOZXRqUkg/
TTw7eloheXpNY3xHUXsxRkFtMSRGP2lTVQp6OGF+ZXg8bXNIdE1+aFQqYXA1I3hPbWJAfSUwbCgx
KVchfG9vZkYwP2RHck9aIThWIyVwfDR8ISpBITBZVE1ZYSkKejtySCQpSyMkcWR3bnM+KzROPz1s
QGpFYXxZJGNrczEyd3dWaGg0TFh3JUJQeG4raEtGTFg2N2BIPk9Xe19LbXMrCnpNVDVuP1FvYjdE
YiFJYTZqMXpqN2R4LWlYU29iMElrayhHSmJ6NHMxQHVVKTRyWn4/I2p2WEVMTDR7ZCVLM1I0RQp6
cldxcXRAYTxLJXUmX0syZUE3b14hUEMzUUVSfngoQilYTDIrUCQkazMlJDZfP3BFPXBwO3hJTjg9
VkJyRk00NkAKelBDUkB0eTl2SH1iZXVtYmlFN0p9cGk2VEJmcTNURSVLJj5qbChuJTRVPEdrTSlF
YD5wV3FiMyM1ZmJNfmxWaEF0CnorJHR9JEtTakEqTn19MFhpQG08UzdyTThnOEheWUxnJEI0dGl3
JSR+VjZuKkpgZkFpRnc2Mi0hZFgwNUktKlh5Kwp6Q3VSO2krOSRjQnVeV2klY1d3QFduUmhROStL
YUNLPyYyX0BJblRgTkZxb0ZzSHtaNUBTRCM2T3ZoXz5TYlo2NnQKej1OcHooUG5pYCRDbVNWTnlh
XmE5YUcjXyhaU0F5aFgwaCRRaVRFXm8xYDIlcHJuPVgqbW9jYGBHUylqI2gmZ1ZzCnp4dG1oUzxN
cSlvX3xTX3NQS3l5Z0d+dXJZSH1oNCtpbl4rd0JxOFg2JHkrdH1WQjZ4ZEdPVD5GTXRNIzFJTz97
Pwp6Y2lQJW5jZGh5cGVhbWtVX1l+XncxSSo8dTcrajwtXnhkME4rUHQwbmNoN21waU5zdz5zTGAt
P3dzdSp4OSpULUEKemcme3NgbT16QCY0d3pOaTlJMkw+ezFhS01rPkRrPiVHYFlwUHcjLSU/PnBD
OHUmWTtXaT5MRU9mNFJKTiYwdDRXCnpkSDNONyQ1JXF2Q2phPyZCeDdRcHdWTGhrRm9JciVsVF4m
b1orMHNWKXpKXzNuZjdIZEVBQjduRVVOK2pJbGo7YAp6KGExfF9OemlVPGxlO0QqMG9fX0E0OXhy
YCZybyFpRDNPWHZMUj1zcTJpdDV2YVhxVSh3dT5MRFpOezA7SFNKenkKejtyaW93JSskTzx7bnFi
KztuSmtxP1E2IWJWUFhPYiVyJTdfYj9hcFJZYkFZJHI5IzhZZ3JvV3ZeO1hhQDImUC0kCnpsKU1v
Q2E3cyMjazNId29sYmhWXlhIMFk/S08/ektZX3BReztyQjcyMkpZcno/LXJCSXVQMmhNQ1h3fX00
Ji1KWAp6KUIqdiltfWNYPW4mcW80UkVDO3A0eVVpaGVvfkl8XkgreG54Wm5DOCokWmw3I1JQJlUp
dEIjN3JPRXM2TDhgc1AKekVwM2MrU1BBfHxpQl5ffFIzODBvJFF8ZHIzV0t1WGhZRV44OVp6ZSla
O2l8WGdnakRZMCh8N05VNC1YWCFSIWFiCnpIalFwfEUwUjFneT1pTUBYfU10Z0dvaGYlKCkqNSky
QnkzOU1eNHpqcmRsKThQfTVTZWV3N2BVKVdJeHFKQ2hFbwp6R35wbkU5MVVQNV9RenxyQDVKdDtX
JG5YRUhqbyp9ZGpZcUd6RUU4cTQpK2NMOyNiYTZLbzJzYkxuOVNGNDd5cjAKek1OIVF3S2lOLVBQ
Mj5lbk5tYSlhdVljTDQrJEFjdzxqc1J+QFArdHxZQWZ1bEZNPFJxPXJARXVwVWpjQ1JEQzA1CnpZ
eXRfJk1TLXlFZ04mVW1EV0A+T0w3dFd7ckhtYiVuRFl7cmwlKyktb1lDbDN0SWVHTzhQJW5vQXkr
SH51eSRCSAp6P3YpUFJrdjgoPjxUfWlRSnhIN1Q5LU4tNFVhP3wqd0d2SGlnfj19UVVsanlAQ1F0
UUFtaHRTYHdqYH5RT1RFMW8Keno/amBsbSY+cHVXMz9Tc2h+YigqIVlRPF9aIVB6QzxjeGZvXkMo
JXhjOzlQcGBCRFAya1hyKT4yISM/MWwpMlBaCnpKVjJ4bXheNSNuNGdIaE1CQkh6KUEpIUhJRSUx
NyRaR0FwKXk9JUpKUHR6P2UoPjt+Njw9M2JFdmFmU2dPeHZWVgp6YD1RfjswXz1HMiVzXns4cXBJ
eklHMEczfjU+Mnl6Z1hzRnJFfnspOWg8Rk9LJiNYMHNQaFhyTCsmZ01GI2JIUWQKenMkeXpnTXsh
VlpAbCUwaGxWUmFpcm1eTXFvJEtDVTdQWGJaej8kUFIlUiZgclA0YUx3aEB2PHIjQmJDITwqYzR1
CnpfeHQ4TE5taGx2bUA9aikrTlUhcCVfd3kxdzElVERmOUl6RFY5RGg3SGZUT3M9YWZTfC1Rbk4r
NV5udE0oZUI5Uwp6NkFVYiY3bU5CP1A0YFJXYGp5U141JSkqfTt9eHgrVlgqZXJAMDU3RThNIV8p
SU9gNzxlMz9WWC1ZaUN2SEZTTmMKel5XQ1VYUzh6UFdoXiYrZzUtWHFpOG8rOHdmZFpyalM4ckZ0
JmN7UXNCQ1p5NnRjQShRa3RGV0VDUGhFYGJoZHVICnpsTUFpYT9JYlRoVD9vMXB5dW49VzRNNCYm
ISloX1V1ZTtgUDhpZilGO0kwWHRrcUQhbCs2YmFpcHF+ZnZPbFo1Ygp6NUVAaFJnd0w4VjVzfE9l
MXMrPUV5RWp9JEUyYnw1YU9LNWI+cFFlSU0meyglQS1fZEEhUldLb24hZlkkU3xaRD0KejJocFRT
ckcxVW1TVWRnTXFhYU5LXzlxckdDcDFVMTN6UWJnbHk0dEg/dk0pZiY4OENVa2RNRWQzPSpkRCFp
PXRZCnplcCt3fnR8N14qa3JLMHlUUmM+RUJJfTFAQjZZREZOUD9EV1JeT3o4YldzcGJlR0Bqam1Q
elFiayU7PzRTVC1kWgp6I2hSc35KcTZGeiExK0Z7MFI4Wkg/NUxVe0tDQjNDe2N4REQ4WT5IdXlq
VldrYjU8eyo1PjQhVz9zIVc+TFJPfD4KeipDM1QqKkFLSnNicl49az0xaz11dEt2K3dMSlM4dnIh
NEp0JUg4PHI7T3NoNS1CPUs7ejI7VW8+VF9vO2JkI05yCnpAN3xxbDs7RmoyKHxSSjJ4djg2ZGUp
ZiFLT0ctQG1VMFNxPjtNcUB5Sz9OSzdxOEdKdm1jUXc/WkYyPjlkQWdtKAp6bFhLRXkzVkEjNmYw
VXhgKWZCJDNrbklGKXNhX0tLe2VIPihleXhGPCtobzBwWTNGcyRfYUZPRlUkWitMYiF5RysKelRr
cT8wbSVhRmdObSFZJl5TRERnWCZ9OX0jZkoybjJjVVJrIUg3bVhJSFZPRmRJPjRBTTl7OSRKbF4r
dGNqSi1pCnpaLSVWR1lITlNTXn5TK0o3YUI0YFFJUF4lZFdPfkU3dStNdHU4c1V4ZipyJUA4U2Nk
OU9JLThISTk2NHFDUH5CYAp6Xl53dFg2cDVVYEpyej82dTMyWGpiODB6K3dkbWxfOXp2VmtnfVBg
Q19SR0ZDdz1LYDxobGZpQ15RT1FAejhqfmMKek5VSlcrIWI5NXFlI2RxcllofiVhenFoSk9OanFD
QFhIIT1sZ1JKTnhJWjw5PHNFKkVJaWRMXyp1QDArdTduUyFmCnp7eU1lanBuNSo2ZXR5RDF4eSZi
VXM4OFVHWkVpVHpKOEt8P1d4NTJJdjVNUjh0XzcoTW9uSilDQzZGUzg8cVBOegp6YkB3M1p2NHpL
TCtZMGczPkFjS09lOX51Zj56Nm1oeGBed2xCWEg9c0Aze3VAYTgmeVFWIV5fRGM3PmExOSskckkK
ekJxTil7PCk9bTNZZCNsTWRgSS12bzhland2MyZYKUR3THkmJUhOX15AQzBtUnplVFFtM0x3YFRr
aHNici1WRkR3CnpoMCV6UlRIeGR7IzM+RGw3dkZ5d2ZZfjJwVWZYQzhWR0hFQFAzbTNUY2JWfWJr
WmdQV1UzeFhyK2RFOD43NCNMMwp6YUgrP1ZzK3ZwaEZlNm1IWWd2fmpANFckQD4mKTZRVXk4YFMo
bnVNUClWQEtJYSZXPnFUPHl3UUQhc0RYVF9sZz4KekVLQjZEbHFBVnJtalZpVlI9ODk0bSZ2TWsk
dis7NjJrRjBzaXl5NFlrLVU2YG5HfmVkQCVtNUJGVHYxWFJCeFhVCnpXWk99PFB8anMmMTZrbHUo
Q3ZyfUghQUR7NkRNUygyelpwRitGX1RNaDBSPmh0NHFYfU5STHc8TVUkdUhjNnEwOAp6PUMjfDtW
I3RyTjVzR1k4MSV+MzhkJUUqJmNaVFp0SGwlRDktOyp1KGhFdEUwQCZ3Y250R2YwJTNDZDtXNy1q
VWoKekpkKCRtOyh8Iyt4NmBtaXNSO0koWGA2ZCUjWEQkancjRHtNSFZDPkxLVCtwaUd4dnModGlq
cFYyYXx4WTJKVnt3CnpJJCFGTWREc3NYPCtoQFhyTTQ9MXBvS2d5NnBMdyE4eWtueWtfN249X19k
RmNSTV4rKW1GQ3hCe1Z0fmhidCpKeQp6Q2c0X15HbDYoUUZhdUVeeVJlfTxBJV9eUXllXjdKIUY5
WjZRVShEaEliTEl8OzdpUEMlY1heJCpHIT5GVSgqY3IKejREclZDQ05hX0ohZmRJUD14IVo0eFYh
Nzx5PXVRYWVGRm48WXk/YTc1YW9DO3RabGR4d3lna1Zkbyl+d3Jkd3ppCnpURjdrfVpjd2ByYTxh
fSZudWJxfWBfJV8hMG91dHh4UUh+QSNPPUlIJXRCPkprRnE0bGZJXmplTVYqN0duSVlMIQp6WD8p
VnFSIV9hX0BsVX49dTllUWl5R19QcmRzUDFyQikxVEVsYmViaDxVVENRQCZYeFNUQ3NDREdsUWdJ
XllUUDkKejtFd20kWW19QmJTfShvQlFWQXQ0JGVpSUp5Kyt+VFAxJTx9SGEhYTZDPGpgTlJKVWhn
OD9gdlJiKSVzO1klRVhmCnp1XzFHSyl1Nm87LVIlN3YjYSYodVZNJEAjP3otMyppPFVKczhxcm4j
V2lHM287KH00a1EkSFAkJnA0ck1VcDRVSQp6amMreTlDYDc4R15JfHUzJSRfQyhlU31KSU9adG8j
UmU7WWZCTVoyVS1kRGhnYlItPTJSdGQtc29DZSk/YTlgZU4KeiFLV2JVdHk8Uk5NZD9iSzYqVER+
X2I4VnAxVmJ2eEkjezxQQTh6YT0renw2SylyQ0NDVXpJKiojPnRSPilRZk97CnotQGskd2UtUWYk
SHFwS20qbXphWVQhZ2g0SVRQLUt3eVhQbCRtQEQ8YnM8U2RCKitGRSE/Zit6UkVEVE9HM1p2awp6
QkcoI1ZrRXc3dVE4RUJlVlNiVyozR3JzSGVWMU5RNDFIMDlEPiEtez83cjtwKDFTWSQlfF9NI2o9
VFd3IXc8PWsKelEpfilRYFh5d3ZsOTcoP0BrVDxhRiluclU3NERwWUtEdk9CdHxTO0t1em1MRjBZ
NVJhXzRnXzhwaGYmN19OOVVUCnpqYiNPMWxweWtVK3ZGKHBTZSF3bkdCRVY8aWNid0huRWojfGow
P1dhTShWNiMzY2AhQi04Z3VecCRUJU1LNXxDXwp6LVgtKytVMV5OdzM+R2dCallicGUwOFd8Zzsh
T0NqYnhueyYzK3RiZWB0ZFlVeTEzYSpeaStxUV8rdX5CLVhpeHoKekZ7cFRFMUF8V3srXishaWFP
ditmVTIxYHRWP2hoPDhHPEx2SztLcUBaRkZNYm1Dd3BiZmFNSElgfUA9fFNCWmhECnohYXxfJFBX
aC1OPSFQTDNTeHBsOHR6TipTRyR5Y0pCTGVxbFk2TFN7USN0ZnI5WSgqeFMqeFNhMWEqQ3tSe0wl
Tgp6d2UhODxoI0dqO0JqU0BgY3ZvZVl7dFR7KDZ0fiFvb3JHcHtHfiNPZVcmdVNBKWxDSHtIdUpI
enQpTiRCVUVXOUMKejZpM3h1PmJ3b3FlISlsflN8KXFgUlRHciEyRm9ZfSUoV1p5bGpTVmdLc0Jt
RSthQ0dmYmE/MENNRm4lRWBQY3lYCnpFdlROUiZ3JEJ6R0NlJmR4WkR0K0F6KGBtcEYxbzhkYGBJ
IWxRdDxNZyhzbVp5Kk14c05WdEMqeSFyeX5LSVZ+Nwp6cW1aWj13KWZjI2ljb0R5X2tBJi0zfnx+
TjJmWFdeXjY2YTx2KXtWUFVhYm5eNiV9WnlCS0omJEZDeGttIStuNHkKemlIMitqcSlSezk7Q3Rj
U2RYZCM3PU5GYFF7dU1xYnk9Oz9gZk1NKW5SQD96UystYGdfTEhCMDNHZWV8fk0qTG11CnojfXJN
X3QwZlFVQ0lJO2FPTDYtZ1Z5THgkNGI9bG9XT0NsJk5mMGtjNEJZeFYzfDtyaHZFdShYTW8qWitG
VDJmawp6IXY+bDhyfDwhclRMaU12MF84SCs8M2pRWk5UQzEoVExIS21QQUojaWcxaipafEs7TzU7
M2tRd0drXnchcyZ4bzMKenBjTkRadWgqbC0oKk9kNEteYGlQLWBCTlE2aWFJb2UwMjE5TV5jMmJ3
cHozJldMJW9La1RwdktvJU09aGBFSFlJCno5R3JVRHp5WXd3JiZKfUtJUE1SWUFGU3FwdEUkSDdi
eCVTWmZjdig5bkBsQmQjfnt+T0FKbld4PzJzUDBicEkwZgp6MjhoVkhqVGR3RERlaX4wSjNXKzx2
VmczQktJSEIjZ2chbGhoK19gVzliX0tDTFhYamNIPX5pYz13OFF1RnlwSSgKenFtdHcpeCZYNTs0
PEl+Rz8lMWNARSpPc0lvKzZ5ISsxeXMmeVIrUytmcDB6NyNNe2R0N0RWbTQ0Wn05flh+clAlCnpg
ekBaMT4mQUImYW1hO2Vha2s2MU9QQkNubE1TeHhVbk99ZiFDXlczem1MMkMqM2BVZnVaJTk2aV5I
YENhRjIlNQp6bCY8XjE1WUpYSkpJajQjaUtvPlRxbTY1UyVVTCsqb0xUOXtVNFFka3w0P1orbk81
I0hLI0AtMllCfnZyMGRJY3oKejhMY0deRlF7PE53WXM8eVJERUFSOCtvdUMtdG4hKD0kY2RAdyM9
YCZfWHlualFWPHdEe2cyM0RiSUAzPkwkMz5lCnpEdnphQCFJPWpEX25AVVcyO0E8TUNuO3EkNFck
VlFiJFl9QjxWWS1JMWllaVQ8eW1UekwhdUxhNkJNVVZaWmFzJQp6Wmk/M0VXfTBqKDVoN0ZRRztk
WXklZD5WcjRLVEdGMEZxNSFpUlhFdGBCSDt4Jmk2YnozYFFZPE4zI29CV05qb2cKeilMNlR7Rn4m
SDByK0wlQ019NnhvZVF9aUdUXkBlTUgrS1ppN3pfaEUlUUlocD08K3pjUnAzSE0kQXQzQGZYcm4w
CnpwOHNxX2JmPXlDO2doQyQmaUFvIXVCR19ZYCtkezZ7X209fnR7Vj0oZ3lvVW57WUthVXhhZT1h
dWlEQVMwSWBOUgp6Q2dBPVgyakZoUXhEUEF5JU1WVnhmVHFNNEBSP2o2WDdsLX5NWTdHbGM+YFJj
RjtoV3NMSXBzSGlhaT1Pb2dSQTsKek5iLSR5TSZIaT87UVFuKlhoeTRRK2plJXc3RnxiYWZ0MENV
dm5udkNwKWs5UmhBTH5EZEh+ZCY5UGtqWnJgfmtFCnp4bHZZYmxEWnskUyhgSWRCV25TJGx3fD43
MygqX0VhPTtiKHQpSV93Sis3eUs+Kzl4bDQqSnpqQFEhQUY5Vn5tKwp6eTNeY1ZwM09EaStTNkM1
IVhuRGpgNmp8QUtWQyZYMHl7NG9GcHUpYFdXMExVZVFKSHd2TmtVNSNKdHoocDZNWVQKemlwI3g3
IWRvI2FAXm92YjhvITJePmk1VEgwckMrLXBDIU4qT0lnXjteY1g1YU9hYmBNQ0V6VWJgK1NjRzBF
eUhiCnpgbDRTIzJiZmFAbiM3WWVfb2Ukbz1RIWdVS3psKkBgWUhrdF9oQFgwK35MOTgqe3xKN2c+
aUlqNHdtVilpe2YyPQp6ZTdIb0FmS1l0QHBaMmMmQUZCUVRVKHprKnJubmBhVnUoeD1TKDYmdSsj
QV9QZ35+M1hCeERgQylHYi1FWnhKSWsKenNFQkg4Uy1aOW52WDtVVzIxOW5qajJZazhxMypwdWUq
WFl8b1gwdU5JcSZtWXAwRFM1em4oOHRAI0FrV01DR2U+CnopQmZBOEZAfjl6QWl9VXx1R2ZGREZJ
QU9FKTg5bTdRMTV3IzV6STJLdFFIMGB7UUlSVXlLKWdpS3JGRTskcHB1dQp6VEN4cnpre181ISo2
KWREKUpOdGd6cktAZSltX0debXx1VWgqPj9WMCYjUjY8d2d8LWEhKDU2aXpifFE/NiNxcnAKemlq
cHtvbUlvKG5lYUs9cGBKYipuQll8djBWVk5fX3A+ZzxlQ2l6JG0pajtONXMtbDlyUDk1fklCK2I0
I09WYlUyCnpuUyR+NUdPZl9FMiV7QmduWH0mMGZ5ajc2YD4jdHdYeDAwKDF1UFBFNUlYIU1ZWX5r
UCpYNkQrSSF+PzV0Jnc0YQp6alNlZUMoQVVtWUhkVWBNYUhQTlFheztyfClNbCkqQ3tSQy09e3g1
OXE4bl43Zk1AVVAqY3hkRXFAKFpnPlBxWFgKelpsbnRSM0tqOz9CcHpBX3ZzfXM4QUUmVG97RVFY
U0NgTHV2LStxZzhqdFRXcjk9SSFfb3BIVk1qN0kjPkxDTFQmCnohUV98R0FGbn5iaGRuZmU5YTQ0
NE48JXU8TmhsM2JWTj1JfkY2K2NVWTdiZzltLVF7a1BZcWZmanROaW97RGZoRwp6OWwyPmE5Ym8l
KERPUnI/RyRWK3ZQMSorSnZTVVNLZUs0UGxaeSUpPDEtPipCVjdJKn1QfVFjNWQrSG1kIShud1kK
eipzJllDaEI5bm1KOTx8T0F4enVaX3cob1dFTz4zP2RPX2N+JittYHpaPH49ZSpfc2hwSH0pKmc7
KnsjQGE7dHVICnpsc2lIRDg9bVVgVFN4P2oyd3Y4cWctKHFkXytIJDEoJX0xPkVoeWNSblFUJDZ6
SyVoRTclej5yX0F5WVlCVUREVgp6X01PfitBPGQpUCp3KmtKOX4walg9OUIxc3BsdW1DeDt+bmhu
SzEreClHMU40cWohdEU2aDQ8U09RVDFMPWh2PE8KemEjTWpBU2llVVFZfCVmQ24tV3czUmZ1QEdZ
Rz9tKCgrJmBEayhJVmphVio0VzttazYteFQ1IX1YLXAoX2JMc2lGCnpFdzZ+Nm1ObF59KTc4T3hk
eS0kZWRfaSVaYmllNiVDdElPVHtoN0xgR05PX3BYUm4pQUtoaVFDeEg1PzkqckdCVwp6Qnh8V2U1
bUJpcCopPm42UCp5VkM0Tj1jK2Q8fndYRWNWVVduYipLZ3dWdDJCSD9ZY1dYQmxPeGlfUSlSb0Bo
OTkKekl7d0J7clhYfTZyb0coWkdMbF92PnU0NmJufHM+OU04UlY1XiM+QzRsMWtLNF5fcTdrWU4t
PiQ2M2Y1WStJQSo4CnpKaWl+WFNXMWFrQmI3KnFMcSR3VDQ4MyRmNShKZThCI3J1UC1Pekl9ZWw/
RE1iOGc0bTdkfWBMNSNnQWEtKW0mbQp6MCVNOSNwNXQ7K2MmNiE7VmYobm17aSpLV2Z5Jn5YcCpo
UT9LazFXJU4+aDVnVENeQUxWKC1FaiVuUE1nP08obngKempNLTY+UlZ+enkzNHVePXgjK1JKc3Zl
NGs3TzwpPUw0TSFlWUo/fVJFSWIlZCVJYWwxRWNvcSVLVk5vbmlqZjc9CnptR0U/QlghQCp2Kj5I
Q1JpMkhiYnV+TiNIcUNebkJEOSMkeEhZcXYjYmZqUlIxSlY+dHopZVkxdUZSJGBKc3tAdgp6SH4x
QEhPOUN+fTZxfHw7Xko5fnEzblZIM0MlVGJTPyp5diZkezJLVnMjd1V5UGdiYHpCPGchdUs9a3Ep
Y3lyVGIKek9KV3s0IzNvN35RO2hPIWFWSnA8Snc5fFVlb345LT9eSHI3OCNCcn4lI0NfaSNGKzQt
OHhUITBiWDZtRVBUNDM5Cnpsd1dUdTN8eW9MSTwyTnpGYkohVFpAVFktN3ckXmhCYHp5PyFqU0Ik
aE1zeSpDVU01VXhCVCM9U3I9Q3V6MEtePwp6QDN8PUcrJT1QWChvMV88ZFFHPHkwJTRRd2BDQyhs
eUt9ezZab0R+ITtAKU88QCVIWHQkN2xoKC0wd3B4I0FkIWwKejdOPk07b34mcWdHT0BXUWY5a05j
JCkyNTR2O3V5X1B9dXtCM09wNzcpTiQkT3RhXkUoSzVhZjdAZExwaVMmQWxkCnp4QCpmTmB0PUoy
fEE5TW8xfl8pdndBVyl8fDl+QndsPylyX1RrSEtRS01AZkVmWVI3YHFHbWRjNnhRKzMrT2M3cgp6
NT1RSmkrPGMlK3B0JDk1c0d8T0YzSUdiT2QrNSREY30yV01hOGpHNHFKNT5hZ3ZAQE85PDk+OUpO
KHtjVDYwYWoKeih5NDYyKkxxMVlLUEFUXkh6IyVyPWZUZHlzaURNaTlXO3pJNW9MeEJMfGxMajBZ
N3UpU2AtPDIzeSV+XiVHKTleCnpCeF98UUArZ1FtSz9eV0NlaT9FOUVUaS0wMXhtWV9GZXFCRGA0
OyEhTGg2Kj9XJCV3KUt6cFk2QmNYdSM2fXExXwp6cCUyZi1yKFV0WSY5bHFrWCtgcWhXOCNKZW8t
Z1o0amV9X3tZYG8xQ3E1ens/RkA4fF9keDg4S0hMUXliTzVUIWUKejIzYTUjOG5ueWpTY3tkRnVP
S2hoK0FTe3p0fWVERG1eeikxYzlPN05yNGQ8QWw7V2dTeVpvJEpBazZWUm9CXiVLCnooJGJSczQr
MkBzc1Y4QHd4Yih0aGFOI1NBe2Q3aFB6Q0xhcXtHI1QlZ2V9XmtFWCgwUiVFRHl1VWlfa2VWVGYo
Qgp6Z0tBQndvcFFWfEB8cWdOcWZWS1V5JCpPUV80cTtLX3hNb29GRlRCdCh5KVRuN2FDNzNMI311
ZFlsXzM3bWZ2YSYKeip6Z1pMOEphbWQ1QXFreSZEcGNgPVk7WlNacSllbWxFPDh+eG5GU1VDPU45
cFpfSjZsMHpOS2Zgc3Ilc3lxYF9UCnoqOShvbUhoUl9nWVRNfUZ5aU1laUEtQ2R0P0AwM3hENyFk
fXJ5d1pVPmdCZlo8UW9yTT5pOXxPMUpETSkmckBLdwp6PExAVCZpI1clX3BGdztIaSViR1d0SmFv
PHpuJj1rajl1MG1KOyloeU4lVzRVLXo+P0olRGxkKzlAWVJsUEYqTDQKemxXZWYxbGRsfns1Uzw7
MjR9ZTthe14+Z2s/bnZ9I0xCTDBocmd+VTJWNTgld3lQJjxmdzt8RVhWfjZVPkcrcT4yCnozamRq
YGhwWGVNaE82ZCg0a1p7NktpS2spK0pnQnM/SXxWUUZITX1XTlQka2pCanp9dFJoOHxKM3okb3gj
NUw4Vwp6JXs+XzVAP0V9QXE0WjM1cEg1SGElaEJfJCgzK2hFWUNaWWtTbT5vY2l7SH1AcW47RCtz
PzIjPU55fnRFKkR5Nz8KekNaMFRmcjVRRCFDZSF7SCg2QW5mbGpfaDBsdEt0cSomPWZkRmZ8UTxj
MzlCU0dRaGpIdE1pJTEqKT1EfU08fnN7Cno0ZX4qN2J0MnRPTTtCPStIJVBjIzd0WChfQmRhNTI/
TTNnYUp+cShUTiVpUjI/NmRuTTxKLSU2QztPfFRNckRiMQp6Iz8yPkArSlklQWVVK1VqYitecTBo
dW5md010aE1QeyFsaDdQalh2TXRYIWVXQXtzVllEOHxTN19FWTtEPE0yPnIKeiRXQz98PTw2WTxB
R3ZBcDFnJExzP3gmR1BgJGxydElueUtORnlAdSZGRl9GMW0tMmVFeSZjZWFlNzl2RnZwdCRzCnpS
TE9MXyZ4JDNraCQ2KjxKcSQ+ZUFkMVl+WkNVOD4qc0hAO2YzfFN1bm49SCV4a2FMUmBndCU0TiNB
Yj9uUmhIfAp6ZWVEeXZsI20rZWVJLSk1bHVUKERHaG0jd3Q+SkNOOT5Pak9eVzNeSlE0RktKd1F1
ZXUpUUEyeGN5cWc/WDdyJk4KeiN7KEt5Z0Yrc0Vne2tENEM2UndMQ1NEeyNfeH1oRClYP2xKR1Jp
IVF0e3tNaj5oUTI+PjU2eUgpbn5ibGVNUU9xCnp1QmJSeV56LTM0Y09RWVpkeUBKOCshS1BEajJY
cUBfVC1CYXd4IzFwOEQlZ1RkYDl3Nz0lVU9KZXpaLU02ZHVONQp6T0JVdmREIXctcnRUTytRNDFN
bkIoS2B2ZkUqZV9iMlRGbWt8Qkt9N1M2UFcjeVhOUUlkdFFWT0JoMj5nXlJqb28Kel9tQ24jeDN9
fihjfVkja3JiSHFFaSsoeWkoP1EzKkYrJE9SST9OQ2JRdzFyck9AcHcyX2M3UVA4dWZGPFVDeFVG
CnpFKG1DQVhSOWMhX0wyaWQwJS1DLSpORHRleDFIeGlLWH44Y0hGJDRKWHhSIT9OPWwkRFdmeEtr
QzxjRE45QyVMVQp6Uk14YCZaYWg5ZXhxPDNnVTRtKzs4bGlvK1RaXkR8RjI7a1A7OGg/SFdLcns4
PHVleyRQbDgxYXlxPURLVVFnaS0KendINlBnd2tWZE0tRTtQe1kyMzBMTSFMQXtXSSQ+P3I0LV9v
VzFBQTEhUnhFXk1WaXYwS3ZqRnBaIVRIZ3NISiZUCnphXkshMD19fHA1P35rPjdtSmI5MlM3d2ts
PVhtX0w8dztgPCNhdnVIX2B9TGRPaSlRaSFOSlZob3J5bFIzIXtMPgp6dH1YOCRjWSRncD5rNUJK
I0JfJkMoemx0azJwUnJYND8mJT42bCM5IUYmPX1kMD19NnZBTUohQldaQ0tydFVVRm8Kelo2JTZu
JDVzbDklOHd3cjdQTElwU1lBNlE7elpBRyU1QiVOcV9AWUo/ckthV1dqdWNvSF5HfEpSNXtqNmNy
cXE5CnpGbGl7U2gzajI3VCVqTzI7b1VjR2t2UXc3KWModzM7aSlWQzJnKWp3bEkyJEBwSWJaLU48
KF9JTygwPk9iJDQkcQp6VigyWCZPREM7MWZiJVoyaHhvJjJWPVhCOSV4VHdBb0szNSZzbnJEUj5x
TDhPKl5qc0dXSVdKazk9WF5nYDk1cyMKenJefGBUUENCTTFyM1Q4JE87PVRyYlVDVVkjTlNwZG10
WWp1XjRVZWF6QnFuamtMazVESjRTPDMwd3J1aytVX1JZCno/Um14NThaIUZ8d2BXe1BySSUyPGJj
Sn5yQ01JOWBJX2ppezV6JHpaR1NReF9UeEYzI2g5az4rWnVubFlnQHxEWAp6QSRDMilpUyt2aUR8
NFFea14jQUIhdHAmQytoMTtPTzJII0JCMzlrJTlwfkZpI0BDenZfKD9+PXJqSmhFPzZGTzwKejMr
SX02cGYzTFR5RU9sMVFLNDl3IXdHOU45MV9jY0xFRU5AcWFWI2I3bHlvcHdWJGRre1RfOGd3PVZt
Rip1T0JxCnp8RkNvPmhwNmdaWTM2aldzc3Rle15zKztabj9td2VDe0E8fmRhc3xIYk5TUDl1dHh5
VjZaPFA1T0dAT3VHeUNfYwp6ZlV4V1pCeEF1bjhkJU52X0RBSDBCU1kxamo9MFZsPFRUQTRKSngl
Pis4c19JQShgOXVgQUtmJnFldXh3Z1RuSEUKejQtPndsWXY7ODM+REAoe1VlWUZoSyRIaSkqIzVE
eS1wT3ZxYGZYWCFJRyNGSEA2K0Y1Y3skYWkoZTBTc3lRSnZuCnpsYE9qWkBjcWt+cHc4ZVUjMT1B
d1JWeDlZTDcqakU7dmMzNTJRQ0c+IXd+a3pwb2JYOWVeb3wyaD0jRlJPLXBrcgp6PlJ4O0Reei1h
U2lCeyR5a0Flfkc8WklDMkxnSllIWn11d2lIZXF0fSN+flo/V3IydWUlNDRYamNXcHozMXcpVSEK
eio+eWVUR1A+dSZreSZ0cT4xel45WDxTP0ZBV3B1JDNwX2M5RzlMfGF4dCQ0IU5RTmZkQG9NKVhg
PyslJCFJV24jCnoyKUE/KUt0NSp2Nl9Ge0M+ZWd9c0dhUUJ7WDs/LUJKSjNZTWpJMXRMdUV4V31f
Tmc7ajhodEx4YllNa04yNiYhOQp6VT5FV3FtTHFCKmQyeyliaE0+Mm9mYV9hZmRsKCZtaTJBJjJ3
bE41dVBMTjdtPGslVzZWWU1wUVEqWmNWdkcjTWcKemojcDxfZ0o0JjgheDY1cWN0bSpzM21QYUV7
RGY4SkJCM0FIQ1U9Q0puT3oyYnlZVjVON2cockxqN0xEO1peRiNBCno7YjFCVnB9ZElZejRNZD9S
TXNVKF41MURnWUw4K35QaGg4QEVZUnNJZEV8UnY2KWx0Y3F4d0VHMSk0UitEdlVeWQp6WGBKeFZo
RGtAKXR0PFo7YD1pMWVva0wwdklXSkJAOWkwMVg9JjJeUG02Y2t7Nj9MRT9FRFk7VnojbjFJeUdn
UDEKej9IMUVGY1YlZmooO3lja1Y4Z2IqI0JDJUtMWnBKWipWbyReXmEpejhUZFVyM2BWLXgtcm1G
OXQ+RXFzXnJ8X0YhCnpyMkB4UkdUTGdAc3I5Vmh4O144eGI0NypOZGlxZUpEakxNXyRwQyYoWjE2
NE42MzIjV3UqPGczN3BHM3U/UT1HaAp6ezJLYXQ7T3VrZUJCZTUlQGkkK14+NmxiTmpgQ3ZoIWdM
fVJpKUVMNTl5V2BhVFRRZCUrZ1QyKTdNey1YWXckTkgKelU9TTd3O3J8VW9rNUozbHNlMUNhejdD
WSVecWFWU3A2eihXMzk/IW5FVlBJXkYqZDIrfDh5cmFBbW5+SDA0VEd+Cnp1Tk5yfkUzJG9HR2tw
JlU1M1lPTntIfjtZUXdgPkBMTTB9KDBhWDQqZ2dye0xvUG1wPjwtQlVxMkZjOSN4U25FQgp6QGo2
NWhsYXlCTTc2fjVGQXBFfDNid2AwKFUmalJIQnF6VmRueGtoJTt0PEA4M09EVnFuYDJNQDNQViEk
PVoyZGQKelIxKWxHQiUrNDlpKURtTzRrcnVLOW8wfSMwSGREcyVZVTElVHUhT1BHfU48ZyomaFhw
SW01SFAoWUxyJmlzI1dNCnpybUhxSms8NDZ6Yk1fOGtNbk10N0oyV0FCREZGNmUrM0BCRU1tRm8l
fEZFd2Y0bSpEZFpWe3RoTVAxNSg+KUpzPgp6KDFhJnFHOyRhQmZwRjhBUT81SHh7fmw+MjUobCZ6
WEhMLVYlQkY4aU5mZHAoN2NuUl4zRz5EZXQ3YmlMWkxGR2IKemVJIStYejJnSnU2X1JQMERWWlJs
XnNxTnthVVcmclI0QihLO05ZWWQ1TUleeEszLXwyVyohKn10cXl7JEJSUzs4CnohX09XZzt4Pj1G
V2JYWUVCKzE0Z0BaQmw7NXpQTURZTipXVlo9V0RLOEwqcjFoUTNzPFlMUypNN14xeD57Yn5OdAp6
Sn1xQG82Xyp8KHJFQkBWY019cik3P2hZXylPRnIlNlZHfEMrflcmNT41TFZiTmcmZitUPV9vYiFX
SCF0RFY9VXEKemlTRjZFaCN3V3REe35EY2UhVVomREZ3MnU3KihCMVo7Yn5mbUdzVnZFYm9uWnRJ
MGtuRGMjUTZYUXxUZSZSOHJDCnp1SUYxZjdjQzRAVzk4QHc9Skt8ITR1YXdCY2tPUD08VVNEXzRi
fDxvcHRrUm53b0x1ZGAyM3dlWWAyeDhqdFk/awp6ZiZ4Yk14QUdpQSpiLTRjR2tLOXI+JDVGSzxF
JmdjIXdYajxqYF9SaC1YcER0U2BJTjJEPkkmYDVEUU1xeDtkO3sKelNMZT5YaTh9ZTJieCUjVHxC
ZFIldjFkaHZLb0hDRl8xOFE1NjFAOG1pclJncW1YRXRyWmZVTkgheF9IKE5WNzIoCnp8Mm80c3V5
JmdDS0BLcj5jR3VCfCFJe2tPcFBsYmwxdVFwTlcrR35IPjFsNj5pQkRZUmMhbHlpQUAtOXA8d1Z3
OAp6ZXBEd1lPO2wpJlNefDgkMXZtSWRGZmRCfVJVOyZDVVQpUUpiaGJrRW0pMiU0Xyt9bFIyUWsj
b3ppVGI0YWImKSgKemBVQD5JKD5WX2V0YEtzOE9gZjF4Y2gmP3tPfUQ2Z0M8X1RyYGJgaS1XPk8q
UyVTaWk3anw2ZXtMbTRVd212Kl5tCnpnanY2fGMrZVQlQz1ld1MyVyN9ZnErUlAoYFk/IXlYTCkx
MkpGZERRajNgKzdAJCNYQVFkJnFuI0hvZ1puJVU4RQp6KEI5SFYlQlN8UCFLZ0dxSTtyelArPHJu
I2tpXm9ZRVZtSGFEYTx9ZmQ8QlpRUkQqNUBxSEtXZTxNQ1RgO0R3R2UKektVWHFNd2EjVlNlJDN3
ajhmZm5HWjVtbm57JG1GQVY0RklLWHBAfE0lP0Era2x+K2MxREZCKHleYTx4Yyg/JHpPCnpJYUZW
JTt4OUxNam1Tc2lEenw7Q1dYUWtsVVFmeG8pPE84JT1AdnI4dDYxV1EleFBJN147O1JKSEF4Y1Bi
a3g9WQp6Rl9hbDFzVm1VJVRTe1MwO3NnSGxNaVoxS2hSI0xJMV59OXdAQmBMbnFITX40WUo1bUVe
QSkoMkNzTFFsTGVRc0IKenlqeSt5NEkxU3dxaj5NKkBmTUJzQEhIVkxie1R0dU10aGZ7a1FXPkt1
cTg1SnsqbWtpNm5XIUE2KFleb1Fqcj1+CnoqWkM5fHN8Km1IYCM9YElicX4tczl+NG1LSlZePCNf
VilhcTsoQlhRJFZXezI+VVBaYHtEfik7bTg7Q0Q0d3pWZgp6X1V3fmF0dHlIV2ZPNG96T3hBOyNK
clduOVQ4PEJmJmpUMTBYJEg4REFZal94K29kRk9nXn1Gcl5KY3E2NnZEYkIKem9EMWBrelIxLX5J
e1B6a0chX0czKGczWmhQd2ZMZExgYlFPYEw0VkdkNCMqUjJjbmdoZXJ0eXxMUnNyLUtnJXNOCnoh
SS1LVHR9STNaOEJHSHpIa2EyZGBuVjQ1JUNjOWp4V3lUbnRPRmVNXkhyP0EkYD1LOFloR3QxeVVw
O1I1Q3xebwp6WD5DUG5zK1QpSlZ5VUduaHx2bFBaKTh4bSR2UlRfRj1JdXxudW19YytWc2YhMHN6
Vyg2TmctKmUhfVZwUTZaVjwKejM/QGlhI253dkpodGYoNDQoMytTJDRJQHFIMTxhJEdfRUBecj0r
RkgtZFBeP3IrMTIxdHxGKXRuTENYXlg/NDhwCnpfa1Q3UHcpPW98JG1WYTkqeUczZCsqPD0+XkFD
fUxKfXoqQ3lEZjQ2NX5+JnhkUTY7M3NOM3FuZXZAV05YQ1NTNgp6bnRWZ2tlWiFCc3FYcWg/ODRI
Z35afX17ZXktPUtRSz8hPCF7dm8manAkUHpNVkYjc2RIU0ooMkwxOCEjV1Btc20Kej1uOF9DblJV
c2QtTCpLWSo4czR4Nzw7VWs+djY3eigtMTkkbCMtIX15KXtBRlpwJWd6YzRxKEVFbnRsRDhHUlQ7
CnppcUxzIS0zdl85PShWPkVFK081KFpOX0JXQHsrMyYkUXppPTFMYUc8XnBsTTFvVnMkWSpZalNp
TTU/bTlOXiZIeQp6JkhKfFEpTkVpbWl2S3tSViVxNmd3dmRGSSRZJk5Sez0hVzdKLWZTP296LVN7
Nj9HJSh1c1ctdSNVa2Y9PDtDeDQKem4qM0BoUnhxNkdrT0B7IXp7RXJxLXw3Wlotfm1rV2RsOUdq
QjFAczFyYm9KYyZ8PVV2Q3J0QTdBdTlmKkotezJ1Cno1VW95cmVaQCU4MTJHU2hxPEc/ejVIfElj
OTJhWjw7R2s9TUhwNyVjS1N2KzBXUX1LTHBKKHFkc2JWU1RSeSRMRgp6SnBRKEQ1YChja0xabWJs
eSkoQj9rT0RveylEPytIKlBeRj5HQH10OzNjfl8zN29YPXgzVTYmKTh1YkdLUiNlZ3kKemU1QU83
TiNQQmBQd0tiI2Mjb3R1alIyV1lJOUoxfkA5dHtkN1VLTzx0JVB4SSglfGZIYkhrfkJoe3o8K1lY
dXQ3CnpeYis9akZ7WjtoNFRRdWlWdEVzNVJXITwqcVpIcUFfdHJrK0FCbkdXPWdTWSZVcCFKcFVr
OH5YS3BrNGpDQiZnbwp6Wj9oaSFBfGF6Z3s8OVl9QGtwX1lJbVdMTmwycDlaPGA+PTtqU0RGR2R+
dVdMMjdzaEl2fXhOVFRidFY1PU90X2gKemVOJE02SHB4WktpcVdIbk94ZCEpa3NSVjsjQ1ZlfHo+
OF9Tb2dILTZ5O3hXcGMxYGhaQDk4R2drdTBLPllSd0F9CnpTUj48TTw/TylVZEdiY3AocEc/WF4r
dmdDais1PmZHXlFmdDcmeFEkZiQlcGM4VXxSWHFaaHJmakNOMEo7d2JnSQp6S2c0KVJLJjU/fW9h
QFFObjhRdiNWS2VefV4pN3hrK1AjZTRtNF9lQ3Q3TGZ2cnFWZmdDZ0M5UWE5QUBBdU58OG8KeiZm
WVBgbFZlTWtSczMwfWZOd00lbDZJN1FWeyFgcD5PV1BeYDxwajc5JmM3TlQxJlg9MmNKZEB1fDA3
Kzh+UlU7CnpeR25iazRwRV5hTFFqJEpAYXc3ZW1tbit+cilGdl92ZmJmbCR3VT9zVnpYeUV2LT58
a2IjaUxyI3ZhNVd5RCl5Nwp6blo2bSQra1dAeSZ5KFFuYlVjcHo/OHN3ZStzRHM7YzRWdDImSUQo
O2A5RDdhdHI+K3lsWVNsbmhoRiZ1JEtLQUsKemFyaSQhVyVFWWU9c2JZfD1La2xJeGIxTT5vfUVW
akRmZSl4QFc/RyVuMTMoRlZYYHlvMktoIWRAflFzazxCWSowCnpkKkcyQjVrTFJnIyE/fXh5MEtK
WDVnUyY4Yyo9JFlCQjVhO1J2fEhiQmRtaSpZLUIpNG1LJElKMFRDTnVWRk43dQp6SyQ5Q19WRk43
dUVHc3NeIVVrQ1FRQlpEeGckPU9xZ1FuTzMzbWFoSlUkQyU+UVY2X0xAdztJckBmWX5oUXBjLTMK
SnxJX05ge3tnK0NJPSVuXgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMzNiZjZiNzYzODA2ZjMwZTlhN2YzMmYxMTAyZTU4Y2YxMmZjMzU4NS4uZDM1MDQ3
YTAzNzM0YmYyMzdjMjAzMzg0ZjYxYzcwY2U3MzQ1MjdjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI4MTEsMTEgKzI4MTEsOSBAQCBmYXN0L2hpc3Rv
cnkvbG9jYXRpb24tcmVwbGFjZS1oYXNoLmh0bWwgWyBTa2lwIF0KIGZhc3QvaGlzdG9yeS9zYXZl
cy1zdGF0ZS1hZnRlci1mcmFnbWVudC1uYXYuaHRtbCBbIFNraXAgXQogCiBmYXN0L2ltYWdlcy9p
bWFnZS1jb250cm9scy1iYXNpYy5odG1sIFsgRmFpbHVyZSBdCi1mYXN0L2ltYWdlcy9leGlmLW9y
aWVudGF0aW9uLWNvbXBvc2l0ZWQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0MDUx
NiBbIERlYnVnIF0gZmFzdC9pbWFnZXMvbGFyZ2Utc2l6ZS1pbWFnZS1jcmFzaC5odG1sIFsgU2tp
cCBdICAjIENyYXNoaW5nCiBmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2Utd2l0aC1hbm5vdGF0aW9u
cy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L2ltYWdlcy9zdXBwb3J0LWJyb2tlbi1p
bWFnZS1kZWxlZ2F0ZS5odG1sIFsgRmFpbHVyZSBdCi1mYXN0L2ltYWdlcy9leGlmLW9yaWVudGF0
aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAogZmFzdC9pbmxpbmUvcG9zaXRpb25lZExpZmV0aW1lLmh0
bWwgWyBGYWlsdXJlIF0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>