<?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>220767</bug_id>
          
          <creation_ts>2021-01-20 07:34:26 -0800</creation_ts>
          <short_desc>Keyboard scroll snap does not animate in scrolling overflow</short_desc>
          <delta_ts>2021-11-30 01:50:50 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>233591</dup_id>
          
          <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>
          
          <blocked>218115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>augus.dupin</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>raphael.schaad</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1720884</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-01-20 07:34:26 -0800</bug_when>
    <thetext>Steps to reproduce:

1. Visit https://codepen.io/edwinm/pen/BERXpG
2. Scroll horizontally with the keyboard

Actual results:

The viewport snaps between snap points without animating.

Expected results:

The viewport scroll position should animate between snap points</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721132</commentid>
    <comment_count>1</comment_count>
      <attachid>418031</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-01-21 05:30:39 -0800</bug_when>
    <thetext>Created attachment 418031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721135</commentid>
    <comment_count>2</comment_count>
      <attachid>418032</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-01-21 05:43:33 -0800</bug_when>
    <thetext>Created attachment 418032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721136</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-01-21 05:44:31 -0800</bug_when>
    <thetext>I would love some input on this change as I have a few doubts. On Mac, it doesn&apos;t seem like keyboard scrolling normally animates in overflow areas, but I found the experience of using the arrow keys to scroll pretty disorienting when snapping occurred. This change only animates when snapping will change the destination of a keyboard scroll. I&apos;m not sure if that&apos;s the desired behavior.

The other question I have is about testing. I&apos;m really unsure about how to test that animation is happening during snaps. I could write some code to have this run through ScrollAnimatorMock, but the substantive changes are in ScrollAnimatorMac. I&apos;m not sure what the best approach is here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722979</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-27 07:35:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/73661634&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731243</commentid>
    <comment_count>5</comment_count>
      <attachid>418032</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-02-18 23:57:55 -0800</bug_when>
    <thetext>Comment on attachment 418032
Patch

After chatting with Simon, I think the best thing to do here is to enable the scroll animator for RenderLayers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732837</commentid>
    <comment_count>6</comment_count>
      <attachid>421399</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-02-24 05:09:28 -0800</bug_when>
    <thetext>Created attachment 421399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733032</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-02-24 12:47:13 -0800</bug_when>
    <thetext>I have uploaded a new patch here that turns on the ScrollAnimator for RenderLayers. In practice this means that scrolling with the keyboard in scrolling overflow will animate, when it didn&apos;t before. This also includes animations for scroll snapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740730</commentid>
    <comment_count>8</comment_count>
      <attachid>423495</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-17 09:27:16 -0700</bug_when>
    <thetext>Created attachment 423495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740732</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-17 09:29:32 -0700</bug_when>
    <thetext>The new version of this change includes tests. I had to expose a new Internals API in order to override the system scroll animations setting. By default animations are disabled for scrolling on Mac using NSUserDefaults.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741185</commentid>
    <comment_count>10</comment_count>
      <attachid>423593</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-18 06:44:10 -0700</bug_when>
    <thetext>Created attachment 423593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743744</commentid>
    <comment_count>11</comment_count>
      <attachid>424237</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-25 05:39:56 -0700</bug_when>
    <thetext>Created attachment 424237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744109</commentid>
    <comment_count>12</comment_count>
      <attachid>424332</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-26 02:05:59 -0700</bug_when>
    <thetext>Created attachment 424332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758378</commentid>
    <comment_count>13</comment_count>
    <who name="Raphael Schaad">raphael.schaad</who>
    <bug_when>2021-05-09 14:30:32 -0700</bug_when>
    <thetext>There&apos;s another minor bug in STP 124 that can be observed in the referenced codepen here: hit &lt;space&gt; to scroll down/&lt;shift&gt;+&lt;space&gt; to scroll up. Typically, Safari animates vertical scroll, but it doesn&apos;t for scroll snap containers.

This behavior was demonstrated as part of https://bugs.webkit.org/show_bug.cgi?id=223406. This also seems relevant: https://bugs.webkit.org/show_bug.cgi?id=223375</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818654</commentid>
    <comment_count>14</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-11-30 01:50:46 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 233591 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418031</attachid>
            <date>2021-01-21 05:30:39 -0800</date>
            <delta_ts>2021-01-21 05:43:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220767-20210121143036.patch</filename>
            <type>text/plain</type>
            <size>12116</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIzMGY3ZjYwZmNjMzRj
NmVmOTc1ZTg4NTFiYzA1ODFmZjJlNjZkYS4uYWQ5YWVmOThhNTZlNTUxOTAwYWQyYjIzNGQ4YmJj
MDAzM2RkOTUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTAxLTIxICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBLZXlib2FyZCBz
Y3JvbGwgc25hcHBpbmcgZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBzY3JvbGxpbmcgd2l0aCBhIGdyYW51bGFyaXR5
IGFuZCBzY3JvbGwgc25hcHBpbmcgYWRqdXN0cyB0aGUgZmluYWwKKyAgICAgICAgcG9zaXRpb24g
b2YgdGhlIHNjcm9sbCwgc3BlY2lmaWNhbGx5IHRyaWdnZXIgYW4gYW5pbWF0aW9uLiBFdmVuIHdo
ZW4KKyAgICAgICAgYW5pbWF0aW9ucyBhcmUgZGlzYWJsZWQgZm9yIHNjcm9sbGluZyBhcmVhcywg
c25hcHBpbmcgb3BlcmF0aW9ucworICAgICAgICBhbmltYXRlLiBUaGlzIGFsbG93cyB0aGUgdXNl
ciB0byB1bmRlcnN0YW5kIHRoYXQgYSBwYXJ0aWN1bGFyIHNjcm9sbGluZworICAgICAgICBvcGVy
YXRpb24gc25hcHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJJ20gbm90IHN1cmUgaG93IHRv
IHRlc3QgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKTogTWFrZSB0aGlz
IG1ldGhvZCBub24tdmlydHVhbCBhbmQgY2FsbCBpbnRvIHN1YmNsYXNzZXMKKyAgICAgICAgdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGEgZ2l2ZW4gb3BlcmF0aW9uIGFuaW1hdGVzLiBBbHdh
eXMgYW5pbWF0ZSBzY3JvbGxpbmcgZm9yCisgICAgICAgIG9wZXJhdGlvbnMgdGhhdCBhZGp1c3Qg
dGhlIGVuZGluZyBwb3NpdGlvbiBkdWUgdG8gc25hcHBpbmcuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvcjo6c2Nyb2xsV2l0aEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
cjo6U2Nyb2xsQW5pbWF0b3I6OnNob3VsZEFuaW1hdGVTY3JvbGwpOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvckdlbmVyaWM6OnNob3VsZEFuaW1hdGVTY3JvbGwpOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpzaG91bGRBbmltYXRlU2Nyb2xsKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsV2l0aG91dEFuaW1hdGlvbik6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFdpdGhBbmltYXRpb24p
OiBBZGRlZC4KKwogMjAyMS0wMS0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIEZ1cnRoZXIgcHJvcGFnYXRlIENoaWxkQ2hhbmdlOjpTb3VyY2UgdG8gb3B0
aW1pemUgSFRNTElucHV0RWxlbWVudCBjcmVhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGFiOTY3MTcwZmE3MzAzMjQyMDhkNjhjYmU5NjViMmZj
NGNiY2ZkY2UuLmNkOWFmNTg2YTc0OWI3Y2I4OGVmYmIyNmQ0NjA0ZDc5ODkyMzE1NzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTgzLDI3ICs4Mywz
NyBAQCBTY3JvbGxBbmltYXRvcjo6flNjcm9sbEFuaW1hdG9yKCkKIGJvb2wgU2Nyb2xsQW5pbWF0
b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJl
aGF2aW9yIGJlaGF2aW9yKQogewogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCi0gICAgaWYg
KGJlaGF2aW9yICE9IFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpCi0gICAg
ICAgIHJldHVybiBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKG9yaWVudGF0aW9uLCBzdGVwLCBtdWx0
aXBsaWVyKTsKLQotICAgIEZsb2F0U2l6ZSBzY3JvbGxPcmlnaW4gPSB0b0Zsb2F0U2l6ZShtX3Nj
cm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKTsKLSAgICBGbG9hdFBvaW50IG5ld1Bvc2l0aW9u
ID0gcG9zaXRpb25Gcm9tU3RlcChvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllcik7Ci0gICAg
YXV0byBuZXdPZmZzZXQgPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9u
KG5ld1Bvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOwotICAgIGF1dG8gY3VycmVudE9mZnNldCA9IFNj
cm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24odGhpcy0+Y3VycmVudFBvc2l0
aW9uKCksIHNjcm9sbE9yaWdpbik7Ci0gICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250YWxT
Y3JvbGxiYXIpIHsKLSAgICAgICAgbmV3T2Zmc2V0LnNldFgobV9zY3JvbGxDb250cm9sbGVyLmFk
anVzdFNjcm9sbERlc3RpbmF0aW9uKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgbmV3T2Zm
c2V0LngoKSwgbXVsdGlwbGllciwgY3VycmVudE9mZnNldC54KCkpKTsKLSAgICAgICAgbmV3UG9z
aXRpb24gPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG5ld09mZnNl
dCwgc2Nyb2xsT3JpZ2luKTsKLSAgICAgICAgcmV0dXJuIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xs
YmFyLCBncmFudWxhcml0eSwgbmV3UG9zaXRpb24ueCgpIC0gdGhpcy0+Y3VycmVudFBvc2l0aW9u
KCkueCgpLCAxLjApOworICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJl
Y3Rpb25hbFNuYXBwaW5nKSB7CisgICAgICAgIEZsb2F0U2l6ZSBzY3JvbGxPcmlnaW4gPSB0b0Zs
b2F0U2l6ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKTsKKyAgICAgICAgRmxvYXRQ
b2ludCBuZXdQb3NpdGlvbiA9IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11
bHRpcGxpZXIpOworICAgICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBTY3JvbGxhYmxlQXJlYTo6
c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpLCBzY3JvbGxP
cmlnaW4pOworICAgICAgICBhdXRvIG5ld09mZnNldCA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxP
ZmZzZXRGcm9tUG9zaXRpb24obmV3UG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgICAgIGF1
dG8gc25hcHBlZE9mZnNldCA9IG5ld09mZnNldDsKKyAgICAgICAgaWYgKG9yaWVudGF0aW9uID09
IEhvcml6b250YWxTY3JvbGxiYXIpCisgICAgICAgICAgICBzbmFwcGVkT2Zmc2V0LnNldFgobV9z
Y3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uKFNjcm9sbEV2ZW50QXhpczo6
SG9yaXpvbnRhbCwgbmV3T2Zmc2V0LngoKSwgbXVsdGlwbGllciwgY3VycmVudE9mZnNldC54KCkp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc25hcHBlZE9mZnNldC5zZXRZKG1fc2Nyb2xs
Q29udHJvbGxlci5hZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihTY3JvbGxFdmVudEF4aXM6OlZlcnRp
Y2FsLCBuZXdPZmZzZXQueSgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0LnkoKSkpOworCisg
ICAgICAgIGlmIChzbmFwcGVkT2Zmc2V0ICE9IG5ld09mZnNldCkgeworICAgICAgICAgICAgRmxv
YXRTaXplIHNuYXBwZWRTdGVwID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChzbmFwcGVkT2Zmc2V0LCBzY3JvbGxPcmlnaW4pIC0gdGhpcy0+Y3VycmVudFBvc2l0aW9u
KCk7CisKKyAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIHNuYXBwaW5nLCB3ZSBhbHdheXMgYW5p
bWF0ZSB0byBzbmFwIHBvaW50cyB0byBtYWtlIGl0IG9idmlvdXMgdGhhdCBzbmFwcGluZyBpcyBv
Y2N1cmluZy4KKyAgICAgICAgICAgIHJldHVybiBzY3JvbGxXaXRoQW5pbWF0aW9uKG9yaWVudGF0
aW9uLCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyID8gc25hcHBlZFN0ZXAud2lk
dGgoKSA6IHNuYXBwZWRTdGVwLmhlaWdodCgpLCAxLjApOworICAgICAgICB9CiAgICAgfQotCi0g
ICAgbmV3T2Zmc2V0LnNldFkobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0
aW9uKFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwsIG5ld1Bvc2l0aW9uLnkoKSwgbXVsdGlwbGll
ciwgY3VycmVudE9mZnNldC55KCkpKTsKLSAgICBuZXdQb3NpdGlvbiA9IFNjcm9sbGFibGVBcmVh
OjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQobmV3T2Zmc2V0LCBzY3JvbGxPcmlnaW4pOwotICAg
IHJldHVybiBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdQb3NpdGlv
bi55KCkgLSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKS55KCksIDEuMCk7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTShncmFudWxhcml0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGJlaGF2aW9yKTsKLSAg
ICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlw
bGllcik7CiAjZW5kaWYKKworICAgIGlmIChzaG91bGRBbmltYXRlU2Nyb2xsKGdyYW51bGFyaXR5
KSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbFdpdGhBbmltYXRpb24ob3JpZW50YXRpb24sIHN0ZXAs
IG11bHRpcGxpZXIpOworICAgIHJldHVybiBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKG9yaWVudGF0
aW9uLCBzdGVwLCBtdWx0aXBsaWVyKTsKK30KKworYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xs
V2l0aEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllcikKK3sKKyAgICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlv
bihvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllcik7CiB9CiAKIGJvb2wgU2Nyb2xsQW5pbWF0
b3I6OnNjcm9sbFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRp
b24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuaAppbmRleCAyMGIxM2U2ODBkYWZlYjhjZTEyNDliNDIxZGFiMmMxY2Q0
MDg3YzhiLi4yNGYxNTAzNzc5NDViYTZiZTg5ODEwZjRmYzUzZDkxZDNlZjM3YTA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTc3LDggKzc3LDEwIEBAIHB1
YmxpYzoKICAgICAvLyBhbHJlYWR5IGF0IHRoZSBkZXN0aW5hdGlvbi4gIE90aGVyd2lzZSwgc3Rh
cnRzIHNjcm9sbGluZyB0b3dhcmRzIHRoZQogICAgIC8vIGRlc3RpbmF0aW9uIGFuZCByZXR1cm5z
IHRydWUuICBTY3JvbGxpbmcgbWF5IGJlIGltbWVkaWF0ZSBvciBhbmltYXRlZC4KICAgICAvLyBU
aGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBhbHdheXMgc2Nyb2xscyBpbW1lZGlhdGVseSwg
bmV2ZXIgYW5pbWF0ZXMuCi0gICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRh
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNj
cm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6OkRlZmF1bHQpOwotICAgIGJvb2wgc2Nyb2xs
V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQg
bXVsdGlwbGllcik7CisgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlv
ciA9IFNjcm9sbEJlaGF2aW9yOjpEZWZhdWx0KTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQW5p
bWF0ZVNjcm9sbChTY3JvbGxHcmFudWxhcml0eSkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc2Nyb2xsV2l0aEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQg
c3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CisgICAgdmlydHVhbCBib29sIHNjcm9sbFdpdGhvdXRB
bmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxp
ZXIpOwogCiAgICAgdm9pZCBzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50Jik7CiAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBv
aW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJp
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2Vu
ZXJpYy5jcHAKaW5kZXggZTcyOTFiMzE0OWQ3YjE0YWQwZmZlNjAxY2M5NmQ1ODY4Yjk0Y2MyYy4u
YjFiOWRmNzJhNjVhMzZmYWRmZGJlNDVkNGEzNWUxYTYwNjkyNTUzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmlj
LmNwcApAQCAtOTQsMTYgKzk0LDEzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjplbnN1
cmVTbW9vdGhTY3JvbGxpbmdBbmltYXRpb24oKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU01PT1RI
X1NDUk9MTElORykKLWJvb2wgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjpzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBm
bG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK2Jv
b2wgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjpzaG91bGRBbmltYXRlU2Nyb2xsKFNjcm9sbEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQogewotICAgIGlmICghbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxB
bmltYXRvckVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwo
b3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKLQotICAgIC8vIFRo
aXMgbWV0aG9kIGRvZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBvdXIgYmFzZSBj
bGFzcyBkb2VzLiBJdCB3aWxsIGNhbGwgaW50bwotICAgIC8vIFNjcm9sbEFuaW1hdG9yR2VuZXJp
Yzo6c2Nyb2xsIGFnYWluIHdpdGggdGhlIHNuYXBwZWQgcG9zaXRpb25zIGFuZCBTY3JvbGxCZWhh
dmlvcjo6RGVmYXVsdC4KLSAgICBpZiAoYmVoYXZpb3IgPT0gU2Nyb2xsQmVoYXZpb3I6OkRvRGly
ZWN0aW9uYWxTbmFwcGluZykKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwo
b3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCk7Cit9CiAK
K2Jvb2wgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjpzY3JvbGxXaXRoQW5pbWF0aW9uKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQor
ewogICAgIGVuc3VyZVNtb290aFNjcm9sbGluZ0FuaW1hdGlvbigpOwogICAgIHJldHVybiBtX3Nt
b290aEFuaW1hdGlvbi0+c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVs
dGlwbGllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmlj
L1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJp
Yy9TY3JvbGxBbmltYXRvckdlbmVyaWMuaAppbmRleCAwZTA1ZmM2MjM1YjRmOTRiNDMzNjgwY2Mx
ODkyZTU0MGU2NTZmODJlLi4yN2MwYjU0NjJiNGNiOTE1YjdlNzEzYmQ5OGVmNmZmYmYxODdhNmE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1h
dG9yR2VuZXJpYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xs
QW5pbWF0b3JHZW5lcmljLmgKQEAgLTQ1LDcgKzQ1LDggQEAgcHVibGljOgogCiBwcml2YXRlOgog
I2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQotICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9y
aWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGll
ciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZVNjcm9s
bChTY3JvbGxHcmFudWxhcml0eSk7CisgICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uKFNjcm9s
bGJhck9yaWVudGF0aW9uLCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsK
ICNlbmRpZgogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsRW5kTGl2
ZVJlc2l6ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMuaAppbmRleCA0OWYwYjRiMWQ3OWY3N2E5NjhhOTUyZjhhZWI5Nzk1NGUy
OTcyZTI5Li41YjVmZjU4YzFmNGVkYWM1ODNiN2M4NDE3OGYwMzNmMTJhMDQxZTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNzks
NyArNzksOSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRU
aW1lcjsKICAgICBGbG9hdFNpemUgbV9jb250ZW50QXJlYVNjcm9sbGVkVGltZXJTY3JvbGxEZWx0
YTsKIAotICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxh
cml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJy
aWRlOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZVNjcm9sbChTY3JvbGxHcmFudWxhcml0eSkgb3Zl
cnJpZGU7CisgICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9u
LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICBib29sIHNjcm9s
bFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0
IG11bHRpcGxpZXIpIG92ZXJyaWRlOwogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5p
bWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CiAKICNp
ZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggMTI4OTQzMjA1NDM2ZjA4NGM2ZDZjYjVjNDZj
YTFkOWEzOTQxNjI0Yy4uMWVjZmY0OGJmN2U4MDRhZjY1MGQ1NWY2NWIyMDg0ZTQ0MTZkMjZhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5t
bQpAQCAtNzgzLDIwICs3ODMsMjYgQEAgc3RhdGljIGJvb2wgcnViYmVyQmFuZGluZ0VuYWJsZWRG
b3JTeXN0ZW0oKQogfQogI2VuZGlmCiAKLWJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChT
Y3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yIGJlaGF2
aW9yKQorYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxkQW5pbWF0ZVNjcm9sbChTY3JvbGxH
cmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKLSAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxv
YWQgPSB0cnVlOwotCiAgICAgaWYgKCFzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkg
fHwgIW1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpCi0gICAgICAgIHJl
dHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3Rl
cCwgbXVsdGlwbGllciwgYmVoYXZpb3IpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBp
ZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlQaXhlbCkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFu
aW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVy
LCBiZWhhdmlvcik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwor
fQogCi0gICAgLy8gVGhpcyBtZXRob2QgZG9lc24ndCBkbyBkaXJlY3Rpb25hbCBzbmFwcGluZywg
YnV0IG91ciBiYXNlIGNsYXNzIGRvZXMuIEl0IHdpbGwgY2FsbCBpbnRvCi0gICAgLy8gU2Nyb2xs
QW5pbWF0b3JNYWM6OnNjcm9sbCBhZ2FpbiB3aXRoIHRoZSBzbmFwcGVkIHBvc2l0aW9ucyBhbmQg
U2Nyb2xsQmVoYXZpb3I6OkRlZmF1bHQuCi0gICAgaWYgKGJlaGF2aW9yID09IFNjcm9sbEJlaGF2
aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpCi0gICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRv
cjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgYmVo
YXZpb3IpOworYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsV2l0aG91dEFuaW1hdGlvbihT
Y3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlw
bGllcikKK3sKKyAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQgPSB0cnVlOworICAgIHJl
dHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwg
c3RlcCwgbXVsdGlwbGllcik7Cit9CisKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFdp
dGhBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIGZsb2F0IHN0ZXAs
IGZsb2F0IG11bHRpcGxpZXIpCit7CisgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0g
dHJ1ZTsKIAogICAgIEZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gdGhpcy0+Y3VycmVudFBv
c2l0aW9uKCk7CiAgICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9IHBvc2l0aW9uRnJvbVN0ZXAo
b3JpZW50YXRpb24sIHN0ZXAsIG11bHRpcGxpZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418032</attachid>
            <date>2021-01-21 05:43:33 -0800</date>
            <delta_ts>2021-02-24 05:09:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220767-20210121144331.patch</filename>
            <type>text/plain</type>
            <size>12104</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIzMGY3ZjYwZmNjMzRj
NmVmOTc1ZTg4NTFiYzA1ODFmZjJlNjZkYS4uYWQ5YWVmOThhNTZlNTUxOTAwYWQyYjIzNGQ4YmJj
MDAzM2RkOTUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTAxLTIxICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBLZXlib2FyZCBz
Y3JvbGwgc25hcHBpbmcgZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBzY3JvbGxpbmcgd2l0aCBhIGdyYW51bGFyaXR5
IGFuZCBzY3JvbGwgc25hcHBpbmcgYWRqdXN0cyB0aGUgZmluYWwKKyAgICAgICAgcG9zaXRpb24g
b2YgdGhlIHNjcm9sbCwgc3BlY2lmaWNhbGx5IHRyaWdnZXIgYW4gYW5pbWF0aW9uLiBFdmVuIHdo
ZW4KKyAgICAgICAgYW5pbWF0aW9ucyBhcmUgZGlzYWJsZWQgZm9yIHNjcm9sbGluZyBhcmVhcywg
c25hcHBpbmcgb3BlcmF0aW9ucworICAgICAgICBhbmltYXRlLiBUaGlzIGFsbG93cyB0aGUgdXNl
ciB0byB1bmRlcnN0YW5kIHRoYXQgYSBwYXJ0aWN1bGFyIHNjcm9sbGluZworICAgICAgICBvcGVy
YXRpb24gc25hcHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJJ20gbm90IHN1cmUgaG93IHRv
IHRlc3QgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKTogTWFrZSB0aGlz
IG1ldGhvZCBub24tdmlydHVhbCBhbmQgY2FsbCBpbnRvIHN1YmNsYXNzZXMKKyAgICAgICAgdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGEgZ2l2ZW4gb3BlcmF0aW9uIGFuaW1hdGVzLiBBbHdh
eXMgYW5pbWF0ZSBzY3JvbGxpbmcgZm9yCisgICAgICAgIG9wZXJhdGlvbnMgdGhhdCBhZGp1c3Qg
dGhlIGVuZGluZyBwb3NpdGlvbiBkdWUgdG8gc25hcHBpbmcuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvcjo6c2Nyb2xsV2l0aEFuaW1hdGlvbik6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
cjo6U2Nyb2xsQW5pbWF0b3I6OnNob3VsZEFuaW1hdGVTY3JvbGwpOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvckdlbmVyaWM6OnNob3VsZEFuaW1hdGVTY3JvbGwpOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpzaG91bGRBbmltYXRlU2Nyb2xsKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsV2l0aG91dEFuaW1hdGlvbik6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFdpdGhBbmltYXRpb24p
OiBBZGRlZC4KKwogMjAyMS0wMS0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIEZ1cnRoZXIgcHJvcGFnYXRlIENoaWxkQ2hhbmdlOjpTb3VyY2UgdG8gb3B0
aW1pemUgSFRNTElucHV0RWxlbWVudCBjcmVhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGFiOTY3MTcwZmE3MzAzMjQyMDhkNjhjYmU5NjViMmZj
NGNiY2ZkY2UuLmNkOWFmNTg2YTc0OWI3Y2I4OGVmYmIyNmQ0NjA0ZDc5ODkyMzE1NzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTgzLDI3ICs4Mywz
NyBAQCBTY3JvbGxBbmltYXRvcjo6flNjcm9sbEFuaW1hdG9yKCkKIGJvb2wgU2Nyb2xsQW5pbWF0
b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJl
aGF2aW9yIGJlaGF2aW9yKQogewogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCi0gICAgaWYg
KGJlaGF2aW9yICE9IFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVjdGlvbmFsU25hcHBpbmcpCi0gICAg
ICAgIHJldHVybiBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKG9yaWVudGF0aW9uLCBzdGVwLCBtdWx0
aXBsaWVyKTsKLQotICAgIEZsb2F0U2l6ZSBzY3JvbGxPcmlnaW4gPSB0b0Zsb2F0U2l6ZShtX3Nj
cm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKTsKLSAgICBGbG9hdFBvaW50IG5ld1Bvc2l0aW9u
ID0gcG9zaXRpb25Gcm9tU3RlcChvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllcik7Ci0gICAg
YXV0byBuZXdPZmZzZXQgPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9u
KG5ld1Bvc2l0aW9uLCBzY3JvbGxPcmlnaW4pOwotICAgIGF1dG8gY3VycmVudE9mZnNldCA9IFNj
cm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24odGhpcy0+Y3VycmVudFBvc2l0
aW9uKCksIHNjcm9sbE9yaWdpbik7Ci0gICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250YWxT
Y3JvbGxiYXIpIHsKLSAgICAgICAgbmV3T2Zmc2V0LnNldFgobV9zY3JvbGxDb250cm9sbGVyLmFk
anVzdFNjcm9sbERlc3RpbmF0aW9uKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgbmV3T2Zm
c2V0LngoKSwgbXVsdGlwbGllciwgY3VycmVudE9mZnNldC54KCkpKTsKLSAgICAgICAgbmV3UG9z
aXRpb24gPSBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG5ld09mZnNl
dCwgc2Nyb2xsT3JpZ2luKTsKLSAgICAgICAgcmV0dXJuIHNjcm9sbChIb3Jpem9udGFsU2Nyb2xs
YmFyLCBncmFudWxhcml0eSwgbmV3UG9zaXRpb24ueCgpIC0gdGhpcy0+Y3VycmVudFBvc2l0aW9u
KCkueCgpLCAxLjApOworICAgIGlmIChiZWhhdmlvciA9PSBTY3JvbGxCZWhhdmlvcjo6RG9EaXJl
Y3Rpb25hbFNuYXBwaW5nKSB7CisgICAgICAgIEZsb2F0U2l6ZSBzY3JvbGxPcmlnaW4gPSB0b0Zs
b2F0U2l6ZShtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKTsKKyAgICAgICAgRmxvYXRQ
b2ludCBuZXdQb3NpdGlvbiA9IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24sIHN0ZXAsIG11
bHRpcGxpZXIpOworICAgICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBTY3JvbGxhYmxlQXJlYTo6
c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpLCBzY3JvbGxP
cmlnaW4pOworICAgICAgICBhdXRvIG5ld09mZnNldCA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxP
ZmZzZXRGcm9tUG9zaXRpb24obmV3UG9zaXRpb24sIHNjcm9sbE9yaWdpbik7CisgICAgICAgIGF1
dG8gc25hcHBlZE9mZnNldCA9IG5ld09mZnNldDsKKyAgICAgICAgaWYgKG9yaWVudGF0aW9uID09
IEhvcml6b250YWxTY3JvbGxiYXIpCisgICAgICAgICAgICBzbmFwcGVkT2Zmc2V0LnNldFgobV9z
Y3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uKFNjcm9sbEV2ZW50QXhpczo6
SG9yaXpvbnRhbCwgbmV3T2Zmc2V0LngoKSwgbXVsdGlwbGllciwgY3VycmVudE9mZnNldC54KCkp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc25hcHBlZE9mZnNldC5zZXRZKG1fc2Nyb2xs
Q29udHJvbGxlci5hZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihTY3JvbGxFdmVudEF4aXM6OlZlcnRp
Y2FsLCBuZXdPZmZzZXQueSgpLCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0LnkoKSkpOworCisg
ICAgICAgIGlmIChzbmFwcGVkT2Zmc2V0ICE9IG5ld09mZnNldCkgeworICAgICAgICAgICAgRmxv
YXRTaXplIHNuYXBwZWRTdGVwID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBvc2l0aW9uRnJvbU9m
ZnNldChzbmFwcGVkT2Zmc2V0LCBzY3JvbGxPcmlnaW4pIC0gdGhpcy0+Y3VycmVudFBvc2l0aW9u
KCk7CisKKyAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIHNuYXBwaW5nLCB3ZSBhbHdheXMgYW5p
bWF0ZSB0byBzbmFwIHBvaW50cyB0byBtYWtlIGl0IG9idmlvdXMgdGhhdCBzbmFwcGluZyBpcyBv
Y2N1cmluZy4KKyAgICAgICAgICAgIHJldHVybiBzY3JvbGxXaXRoQW5pbWF0aW9uKG9yaWVudGF0
aW9uLCBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyID8gc25hcHBlZFN0ZXAud2lk
dGgoKSA6IHNuYXBwZWRTdGVwLmhlaWdodCgpLCAxLjApOworICAgICAgICB9CiAgICAgfQotCi0g
ICAgbmV3T2Zmc2V0LnNldFkobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0
aW9uKFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwsIG5ld1Bvc2l0aW9uLnkoKSwgbXVsdGlwbGll
ciwgY3VycmVudE9mZnNldC55KCkpKTsKLSAgICBuZXdQb3NpdGlvbiA9IFNjcm9sbGFibGVBcmVh
OjpzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQobmV3T2Zmc2V0LCBzY3JvbGxPcmlnaW4pOwotICAg
IHJldHVybiBzY3JvbGwoVmVydGljYWxTY3JvbGxiYXIsIGdyYW51bGFyaXR5LCBuZXdQb3NpdGlv
bi55KCkgLSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKS55KCksIDEuMCk7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTShncmFudWxhcml0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGJlaGF2aW9yKTsKLSAg
ICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlw
bGllcik7CiAjZW5kaWYKKworICAgIGlmIChzaG91bGRBbmltYXRlU2Nyb2xsKGdyYW51bGFyaXR5
KSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbFdpdGhBbmltYXRpb24ob3JpZW50YXRpb24sIHN0ZXAs
IG11bHRpcGxpZXIpOworICAgIHJldHVybiBzY3JvbGxXaXRob3V0QW5pbWF0aW9uKG9yaWVudGF0
aW9uLCBzdGVwLCBtdWx0aXBsaWVyKTsKK30KKworYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xs
V2l0aEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgZmxvYXQgc3Rl
cCwgZmxvYXQgbXVsdGlwbGllcikKK3sKKyAgICByZXR1cm4gc2Nyb2xsV2l0aG91dEFuaW1hdGlv
bihvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlwbGllcik7CiB9CiAKIGJvb2wgU2Nyb2xsQW5pbWF0
b3I6OnNjcm9sbFdpdGhvdXRBbmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRp
b24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuaAppbmRleCAyMGIxM2U2ODBkYWZlYjhjZTEyNDliNDIxZGFiMmMxY2Q0
MDg3YzhiLi4yNGYxNTAzNzc5NDViYTZiZTg5ODEwZjRmYzUzZDkxZDNlZjM3YTA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTc3LDggKzc3LDEwIEBAIHB1
YmxpYzoKICAgICAvLyBhbHJlYWR5IGF0IHRoZSBkZXN0aW5hdGlvbi4gIE90aGVyd2lzZSwgc3Rh
cnRzIHNjcm9sbGluZyB0b3dhcmRzIHRoZQogICAgIC8vIGRlc3RpbmF0aW9uIGFuZCByZXR1cm5z
IHRydWUuICBTY3JvbGxpbmcgbWF5IGJlIGltbWVkaWF0ZSBvciBhbmltYXRlZC4KICAgICAvLyBU
aGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBhbHdheXMgc2Nyb2xscyBpbW1lZGlhdGVseSwg
bmV2ZXIgYW5pbWF0ZXMuCi0gICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRh
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNj
cm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6OkRlZmF1bHQpOwotICAgIGJvb2wgc2Nyb2xs
V2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQg
bXVsdGlwbGllcik7CisgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlv
ciA9IFNjcm9sbEJlaGF2aW9yOjpEZWZhdWx0KTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQW5p
bWF0ZVNjcm9sbChTY3JvbGxHcmFudWxhcml0eSkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc2Nyb2xsV2l0aEFuaW1hdGlvbihTY3JvbGxiYXJPcmllbnRhdGlvbiwgZmxvYXQg
c3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CisgICAgdmlydHVhbCBib29sIHNjcm9sbFdpdGhvdXRB
bmltYXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxp
ZXIpOwogCiAgICAgdm9pZCBzY3JvbGxUb09mZnNldChjb25zdCBGbG9hdFBvaW50Jik7CiAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBv
aW50JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJp
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2Vu
ZXJpYy5jcHAKaW5kZXggZTcyOTFiMzE0OWQ3YjE0YWQwZmZlNjAxY2M5NmQ1ODY4Yjk0Y2MyYy4u
NTYzZTQ4ZmRkNWM5OTRlNDQ4ZjhhMTk3NTFmMTA2NTBlOTdlMzRiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmltYXRvckdlbmVyaWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5lcmlj
LmNwcApAQCAtOTQsMTYgKzk0LDEzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjplbnN1
cmVTbW9vdGhTY3JvbGxpbmdBbmltYXRpb24oKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU01PT1RI
X1NDUk9MTElORykKLWJvb2wgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjpzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBm
bG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBTY3JvbGxCZWhhdmlvciBiZWhhdmlvcikKK2Jv
b2wgU2Nyb2xsQW5pbWF0b3JHZW5lcmljOjpzaG91bGRBbmltYXRlU2Nyb2xsKFNjcm9sbEdyYW51
bGFyaXR5KQogewotICAgIGlmICghbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRvckVuYWJs
ZWQoKSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24s
IGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKLQotICAgIC8vIFRoaXMgbWV0aG9kIGRv
ZXNuJ3QgZG8gZGlyZWN0aW9uYWwgc25hcHBpbmcsIGJ1dCBvdXIgYmFzZSBjbGFzcyBkb2VzLiBJ
dCB3aWxsIGNhbGwgaW50bwotICAgIC8vIFNjcm9sbEFuaW1hdG9yR2VuZXJpYzo6c2Nyb2xsIGFn
YWluIHdpdGggdGhlIHNuYXBwZWQgcG9zaXRpb25zIGFuZCBTY3JvbGxCZWhhdmlvcjo6RGVmYXVs
dC4KLSAgICBpZiAoYmVoYXZpb3IgPT0gU2Nyb2xsQmVoYXZpb3I6OkRvRGlyZWN0aW9uYWxTbmFw
cGluZykKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24s
IGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7CisgICAgcmV0dXJuIG1f
c2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCk7Cit9CiAKK2Jvb2wgU2Nyb2xs
QW5pbWF0b3JHZW5lcmljOjpzY3JvbGxXaXRoQW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9u
IG9yaWVudGF0aW9uLCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKQorewogICAgIGVuc3Vy
ZVNtb290aFNjcm9sbGluZ0FuaW1hdGlvbigpOwogICAgIHJldHVybiBtX3Ntb290aEFuaW1hdGlv
bi0+c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1h
dG9yR2VuZXJpYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9TY3JvbGxBbmlt
YXRvckdlbmVyaWMuaAppbmRleCAwZTA1ZmM2MjM1YjRmOTRiNDMzNjgwY2MxODkyZTU0MGU2NTZm
ODJlLi4yN2MwYjU0NjJiNGNiOTE1YjdlNzEzYmQ5OGVmNmZmYmYxODdhNmE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL1Njcm9sbEFuaW1hdG9yR2VuZXJpYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvU2Nyb2xsQW5pbWF0b3JHZW5l
cmljLmgKQEAgLTQ1LDcgKzQ1LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShT
TU9PVEhfU0NST0xMSU5HKQotICAgIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBT
Y3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVo
YXZpb3IpIG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkQW5pbWF0ZVNjcm9sbChTY3JvbGxHcmFu
dWxhcml0eSk7CisgICAgYm9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0
aW9uLCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKICNlbmRpZgogICAg
IHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmLCBT
Y3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaAppbmRleCA0OWYwYjRiMWQ3OWY3N2E5NjhhOTUyZjhhZWI5Nzk1NGUyOTcyZTI5Li41YjVm
ZjU4YzFmNGVkYWM1ODNiN2M4NDE3OGYwMzNmMTJhMDQxZTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNzksNyArNzksOSBAQCBw
cml2YXRlOgogICAgIFRpbWVyIG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lcjsKICAgICBG
bG9hdFNpemUgbV9jb250ZW50QXJlYVNjcm9sbGVkVGltZXJTY3JvbGxEZWx0YTsKIAotICAgIGJv
b2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQg
c3RlcCwgZmxvYXQgbXVsdGlwbGllciwgU2Nyb2xsQmVoYXZpb3IpIG92ZXJyaWRlOworICAgIGJv
b2wgc2hvdWxkQW5pbWF0ZVNjcm9sbChTY3JvbGxHcmFudWxhcml0eSkgb3ZlcnJpZGU7CisgICAg
Ym9vbCBzY3JvbGxXaXRoQW5pbWF0aW9uKFNjcm9sbGJhck9yaWVudGF0aW9uLCBmbG9hdCBzdGVw
LCBmbG9hdCBtdWx0aXBsaWVyKSBvdmVycmlkZTsKKyAgICBib29sIHNjcm9sbFdpdGhvdXRBbmlt
YXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoUlVC
QkVSX0JBTkRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0KaW5kZXggMTI4OTQzMjA1NDM2ZjA4NGM2ZDZjYjVjNDZjYTFkOWEzOTQxNjI0
Yy4uMWVjZmY0OGJmN2U4MDRhZjY1MGQ1NWY2NWIyMDg0ZTQ0MTZkMjZhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNzgzLDIw
ICs3ODMsMjYgQEAgc3RhdGljIGJvb2wgcnViYmVyQmFuZGluZ0VuYWJsZWRGb3JTeXN0ZW0oKQog
fQogI2VuZGlmCiAKLWJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0
IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yKQorYm9vbCBT
Y3JvbGxBbmltYXRvck1hYzo6c2hvdWxkQW5pbWF0ZVNjcm9sbChTY3JvbGxHcmFudWxhcml0eSBn
cmFudWxhcml0eSkKIHsKLSAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQgPSB0cnVlOwot
CiAgICAgaWYgKCFzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgfHwgIW1fc2Nyb2xs
YWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBTY3JvbGxB
bmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGll
ciwgYmVoYXZpb3IpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoZ3JhbnVsYXJp
dHkgPT0gU2Nyb2xsQnlQaXhlbCkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3Jv
bGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyLCBiZWhhdmlvcik7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQogCi0gICAgLy8g
VGhpcyBtZXRob2QgZG9lc24ndCBkbyBkaXJlY3Rpb25hbCBzbmFwcGluZywgYnV0IG91ciBiYXNl
IGNsYXNzIGRvZXMuIEl0IHdpbGwgY2FsbCBpbnRvCi0gICAgLy8gU2Nyb2xsQW5pbWF0b3JNYWM6
OnNjcm9sbCBhZ2FpbiB3aXRoIHRoZSBzbmFwcGVkIHBvc2l0aW9ucyBhbmQgU2Nyb2xsQmVoYXZp
b3I6OkRlZmF1bHQuCi0gICAgaWYgKGJlaGF2aW9yID09IFNjcm9sbEJlaGF2aW9yOjpEb0RpcmVj
dGlvbmFsU25hcHBpbmcpCi0gICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9y
aWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllciwgYmVoYXZpb3IpOworYm9v
bCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsV2l0aG91dEFuaW1hdGlvbihTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcikKK3sKKyAg
ICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQgPSB0cnVlOworICAgIHJldHVybiBTY3JvbGxB
bmltYXRvcjo6c2Nyb2xsV2l0aG91dEFuaW1hdGlvbihvcmllbnRhdGlvbiwgc3RlcCwgbXVsdGlw
bGllcik7Cit9CisKK2Jvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFdpdGhBbmltYXRpb24o
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRp
cGxpZXIpCit7CisgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAogICAg
IEZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCk7CiAg
ICAgRmxvYXRQb2ludCBuZXdQb3NpdGlvbiA9IHBvc2l0aW9uRnJvbVN0ZXAob3JpZW50YXRpb24s
IHN0ZXAsIG11bHRpcGxpZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421399</attachid>
            <date>2021-02-24 05:09:28 -0800</date>
            <delta_ts>2021-03-17 09:27:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220767-20210224140926.patch</filename>
            <type>text/plain</type>
            <size>1628</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhOTA2YzBhYTI0OGU5
N2MxZGI1MzQxYWE0MDVjYmZjMmQyNTdiMC4uMjhlMzVlZDYyOTBjMzhlMjhmZDFiMzI0ZWVmMDZh
NzNmMTA3ZjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTAyLTI0ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBLZXlib2FyZCBz
Y3JvbGwgc25hcHBpbmcgZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNzY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MzY2MTYzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUdXJuIG9uIGFuaW1hdGlvbnMgaW4gb3ZlcmZsb3c6c2Nyb2xsIGFyZWFzLiBUaGlzIG1lYW5z
IHRoYXQgd2hlbiBkb2luZworICAgICAgICBrZXlib2FyZCBzY3JvbGxpbmcsIHRoZSBjb250ZW50
cyBvZiBSZW5kZXJMYXllcnMgd2lsbCBhbmltYXRlIGluIHRoZQorICAgICAgICBzYW1lIHdheSB0
aGF0IFNjcm9sbFZpZXdzIGRvLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWEuaDoKKwogMjAyMS0wMi0yNCAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxp
YS5jb20+CiAKICAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
c3BsaXRUcmVlVG9Ob2RlIHZpYSBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0Fw
cGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuaAppbmRleCBkZTI2YjMwNDg5NjY2NmE1Y2RkNjRiNTBmNzZkNmQ1MWVkNjNlYWQz
Li4xN2MwMTQ1ODNiNGM1NWVjZTU2YjMyYmFkNmQ3ZThmNDc0MTQyY2RmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKQEAg
LTE3MCw2ICsxNzAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzY3JvbGxBbmltYXRv
ckVuYWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBpbnZhbGlk
YXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAgICAg
dm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0JikgZmluYWw7CiAg
ICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423495</attachid>
            <date>2021-03-17 09:27:16 -0700</date>
            <delta_ts>2021-03-18 06:44:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220767-20210317172714.patch</filename>
            <type>text/plain</type>
            <size>16869</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThhMjM3MWNjYTE1MmJm
ZDg0NDk2NzQyNjU3MzVhZmFmNzdjOWQ1ZS4uOTdjNDNkYmYzMjA2NWE1MmE2NjY0MTMyNDU3MzE1
OWNiMGFhMTc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAzLTAxICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBLZXlib2FyZCBz
Y3JvbGwgc25hcHBpbmcgZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNzY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MzY2MTYzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0czogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0
ZXMuaHRtbAorCisgICAgICAgIFR1cm4gb24gYW5pbWF0aW9ucyBpbiBvdmVyZmxvdzpzY3JvbGwg
YXJlYXMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIGRvaW5nCisgICAgICAgIGtleWJvYXJkIHNjcm9s
bGluZywgdGhlIGNvbnRlbnRzIG9mIFJlbmRlckxheWVycyB3aWxsIGFuaW1hdGUgaW4gdGhlCisg
ICAgICAgIHNhbWUgd2F5IHRoYXQgU2Nyb2xsVmlld3MgZG8uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3I6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyk6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBOZXcgbWV0
aG9kIGRlY2xhcmF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxBbmltYXRpb25FbmFibGVkRm9y
U3lzdGVtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5o
OiBFbmFibGUgYW5pbWF0aW9ucyBmb3IgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZGVkIG5ldyBBUEkgdG8gdHVybiBvbiBzeXN0
ZW0gc2Nyb2xsIGFuaW1hdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUpOiBSZXNldCBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nIGNvbnN0
KTogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkZWQgbmV3IG1ldGhv
ZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6IERpdHRvLgorCiAyMDIxLTAzLTEw
ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIERv
IG5vdCBzaHJpbmsgcmFkaW8gYnV0dG9ucyBiZWxsb3cgaXRzIHNpemUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAppbmRleCBhYzJjMjI5OGZiMzQ3MGQ3YzI0OTMz
YWU5YWU2NTEwMGJmMmY4YjNhLi41ZGIxMDZlZmE2ZjE1NWI4NTAxOTBkNTEyMjAwYjQ0ODg2MTU2
MTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC0z
OTksNSArMzk5LDExIEBAIGZsb2F0IFNjcm9sbEFuaW1hdG9yOjphZGp1c3RTY3JvbGxPZmZzZXRG
b3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50QXhpcyBheGlzCiAjZW5kaWYKIH0KIAorYm9v
bCBTY3JvbGxBbmltYXRvcjo6c19zY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyA9IGZh
bHNlOworCit2b2lkIFNjcm9sbEFuaW1hdG9yOjpzZXRTY3JvbGxBbmltYXRpb25FbmFibGVkRm9y
VGVzdGluZyhib29sIHZhbHVlKQoreworICAgIHNfc2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRl
c3RpbmcgPSB2YWx1ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5kZXggZTk3NzlkMTFhZTE3YzIwNTI1ZmJmNWRm
ZDQwMDc5NzFkOTkwZGU3NC4uMzVmMzUyNTM0NWUwN2NjNDZhY2NiNDE0ZGFiODE5ZTI5N2ZjOTEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCkBAIC0xNjksNiAr
MTY5LDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9u
RGVmZXJyYWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlk
ZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGNvbnN0IG92ZXJy
aWRlOwogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRTY3JvbGxB
bmltYXRpb25FbmFibGVkRm9yVGVzdGluZyhib29sKTsKKyAgICBzdGF0aWMgYm9vbCBzY3JvbGxB
bmltYXRpb25FbmFibGVkRm9yVGVzdGluZygpIHsgcmV0dXJuIHNfc2Nyb2xsQW5pbWF0aW9uRW5h
YmxlZEZvclRlc3Rpbmc7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQ
b3NpdGlvbkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSk7CiAgICAgdm9pZCB1cGRhdGVB
Y3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKTsKQEAgLTE4Miw2ICsxODUsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgRmxvYXRQb2ludCBtX2N1cnJlbnRQb3NpdGlvbjsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxTY3JvbGxBbmltYXRpb24+IG1fc2Nyb2xsQW5pbWF0aW9uOworICAgIHN0YXRpYyBi
b29sIHNfc2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3Rpbmc7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0KaW5kZXggYzA5NWNkNjZmNTk1NmY4Yjg5YWFjYjMzZDViN2Y4MDIzMGE5YTdi
NS4uMjg1NDIwNDc4ZTM2YjkwODI1NTJjMGUyYzQ3MjYwMzlkMmI2NmI5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNzI4LDYg
KzcyOCw4IEBAIFNjcm9sbEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMoKQogCiBzdGF0
aWMgYm9vbCBzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkKIHsKKyAgICBpZiAoU2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nKCkpCisgICAgICAg
IHJldHVybiB0cnVlOwogICAgIE5TU3RyaW5nKiBzY3JvbGxBbmltYXRpb25EZWZhdWx0c0tleSA9
IEAiTlNTY3JvbGxBbmltYXRpb25FbmFibGVkIjsKICAgICBzdGF0aWMgYm9vbCBlbmFibGVkID0g
W1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpzY3JvbGxB
bmltYXRpb25EZWZhdWx0c0tleV07CiAgICAgcmV0dXJuIGVuYWJsZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBk
ZTI2YjMwNDg5NjY2NmE1Y2RkNjRiNTBmNzZkNmQ1MWVkNjNlYWQzLi4xN2MwMTQ1ODNiNGM1NWVj
ZTU2YjMyYmFkNmQ3ZThmNDc0MTQyY2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKQEAgLTE3MCw2ICsxNzAsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChT
Y3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Ny
b2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0JikgZmluYWw7CiAgICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDg1MGM1
ZjY1YjczMjQxNWVkNDkyNmFmNzc2MzMwMzY4OGEzN2YyYmEuLmQ2M2M5ZDlhN2RjNDk1NDhlOTU0
OTc4YmNlZGRhYWYwMzU4NWUyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTE3OSw2ICsxNzksNyBAQAogI2luY2x1ZGUgIlNXQ2xpZW50Q29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNjcm9s
bGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9y
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTU5Myw2ICs1OTQsOCBAQCB2b2lk
IEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogI2lmIFBMQVRG
T1JNKElPUykKICAgICBSZW5kZXJUaGVtZUlPUzo6c2V0Q29udGVudFNpemVDYXRlZ29yeShrQ1RG
b250Q29udGVudFNpemVDYXRlZ29yeUwpOwogI2VuZGlmCisKKyAgICBTY3JvbGxBbmltYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcoZmFsc2UpOwogfQogCiBJbnRlcm5h
bHM6OkludGVybmFscyhEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC02MTQzLDQgKzYxNDYsOSBAQCBi
b29sIEludGVybmFsczo6cmFuZ2VJbnRlcnNlY3RzUmFuZ2UoY29uc3QgQWJzdHJhY3RSYW5nZSYg
YSwgY29uc3QgQWJzdHJhY3RSYW5nZQogICAgIHJldHVybiBpbnRlcnNlY3RzRm9yVGVzdGluZyhj
b252ZXJ0VHlwZSh0eXBlKSwgbWFrZVNpbXBsZVJhbmdlKGEpLCBtYWtlU2ltcGxlUmFuZ2UoYikp
OwogfQogCit2b2lkIEludGVybmFsczo6c2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3Rp
bmcoYm9vbCB2YWx1ZSkgY29uc3QKK3sKKyAgICBTY3JvbGxBbmltYXRvcjo6c2V0U2Nyb2xsQW5p
bWF0aW9uRW5hYmxlZEZvclRlc3RpbmcodmFsdWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBjMjgyYzM0MTVjNzg5ODY3MmIy
YWNiZWM3N2EzN2Y0NzFhNTQ4MTE4Li5jNDlhZTQwYzNiNjQzMDY3ODMyZDg3N2E1ZTFmYjI0MTFj
MmIyZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI1Myw2ICsyNTMsOSBA
QCBwdWJsaWM6CiAgICAgLy8gRm9yIGFuaW1hdGlvbnMgdGVzdGluZywgd2UgbmVlZCBhIHdheSB0
byBnZXQgYXQgcHNldWRvIGVsZW1lbnRzLgogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxFbGVtZW50
Pj4gcHNldWRvRWxlbWVudChFbGVtZW50JiwgY29uc3QgU3RyaW5nJik7CiAKKyAgICAvLyBBbGxv
dyBzY3JvbGxpbmcgYW5pbWF0aW9ucy4KKyAgICB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkVuYWJs
ZWRGb3JUZXN0aW5nKGJvb2wgdmFsdWUpIGNvbnN0OworCiAgICAgTm9kZSogdHJlZVNjb3BlUm9v
dE5vZGUoTm9kZSYpOwogICAgIE5vZGUqIHBhcmVudFRyZWVTY29wZShOb2RlJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA4OWNlMTJkMGMzNWEyYWUzMzNhYTQxYmQ5
YjJlNzVkZDY4MTFjYmJhLi4zNGJlOWY1MDU1NzhiMmRkMzQyNGIzNDAyNTdmZWQ5ZTkyNzI3Mzcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zMzYsNiArMzM2LDkgQEAg
ZW51bSBUcmVlVHlwZSB7CiAgICAgLy8gRm9yIGFuaW1hdGlvbnMgdGVzdGluZywgd2UgbmVlZCBh
IHdheSB0byBnZXQgYXQgcHNldWRvIGVsZW1lbnRzLgogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
RWxlbWVudD8gcHNldWRvRWxlbWVudChFbGVtZW50IGVsZW1lbnQsIERPTVN0cmluZyBwc2V1ZG9J
ZCk7CiAKKyAgICAvLyBhbGxvdyBzY3JvbGxpbmcgYW5pbWF0aW9ucy4KKyAgICB1bmRlZmluZWQg
c2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7CisKICAg
ICBET01TdHJpbmcgdmlzaWJsZVBsYWNlaG9sZGVyKEVsZW1lbnQgZWxlbWVudCk7CiAgICAgdW5k
ZWZpbmVkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoSFRNTElucHV0RWxlbWVudCBlbGVtZW50
LCBET01TdHJpbmcgY29sb3JWYWx1ZSk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBzZXF1ZW5j
ZTxET01TdHJpbmc+IGZvcm1Db250cm9sU3RhdGVPZlByZXZpb3VzSGlzdG9yeUl0ZW0oKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA3ZjhhOWUwZjZkNmFjNmM4ZThjMDA1NTFkYmQ2M2JiYzA1OTA3YzAyLi5hMWZjYmQ5OTYy
OWRlZmU0OGM4ZGQwYzNjNWMyODRkNjE4YWY0ZjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjEtMDMtMDEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAg
ICAgIEtleWJvYXJkIHNjcm9sbCBzbmFwcGluZyBkb2VzIG5vdCBhbmltYXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA3NjcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzczNjYxNjM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1h
bmltYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtb3ZlcmZsb3ctYW5pbWF0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsLWFuaW1hdGVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsLWFuaW1hdGVzLmh0bWw6
IEFkZGVkLgorCiAyMDIxLTAzLTE0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CiAKICAgICAgICAgUHJldmVudCBkeW5hbWljIGltcG9ydCBpbiBzZXJ2aWNlIHdvcmtlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxv
dy1hbmltYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLW92ZXJmbG93LWFuaW1hdGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Fk
NWExOWVlN2Q2YWQ0N2RiNDk3MzFjMzU4NmRlZjA3NTM3OGFmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRl
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitQQVNTIHBhZ2VkIGRvd24gaW4gc2Nyb2xs
ZWQgb3ZlcmZsb3cKK1BBU1MgcmV0dXJuZWQgdG8gZmlyc3QgcG9zaXRpb24KK1BBU1Mgc2F3IGZy
YW1lIGFuaW1hdGluZworUEFTUyBmcmFtZSBkaWQgbm90IGZpbmlzaCBhbmltYXRpbmcKK1BBU1Mg
ZnJhbWUgYW5pbWF0aW9uIGNvbXBsZXRlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtb3ZlcmZsb3ctYW5pbWF0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtb3ZlcmZsb3ctYW5pbWF0ZXMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43ZGEwYjQ3MDA4ZjVmNGE2MmM0NGJiN2EwYzBhNjgyNzc3YzVjYTkyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxv
dy1hbmltYXRlcy5odG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5UcmlnZ2VyaW5nIHNjcm9sbCBzbmFwcGluZyB3
aXRoIHRoZSBrZXlib2FyZCBzaG91bGQgYW5pbWF0PC90aXRsZT4KKyAgICAgICAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgICAg
IGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAg
ICAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6
IGJvdGggbWFuZGF0b3J5OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuYmxvY2sgewor
ICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjUw
cHg7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAgICAgICAg
ICAgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBv
bkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyID09
IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJykuaW5uZXJUZXh0ID0gIlRyaWdnZXJpbmcgc2Nyb2xsIHNuYXBwaW5nIHdpdGggdGhl
IGtleWJvYXJkIHNob3VsZCBhbmltYXRlLiI7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFNjcm9sbEFuaW1h
dGlvbkVuYWJsZWRGb3JUZXN0aW5nKHRydWUpOworCisgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDE1MCwgMTUwKTsKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAgICAgICAvKiBGaXJzdCBkZXRlY3QgaG93IG11Y2gg
d2Ugc2hvdWxkIHBhZ2UgZG93biBkdXJpbmcgYSBwYWdlIGRvd24uICovCisgICAgICAgICAgICAg
ICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsK
KyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdlRG93biIpOworICAgICAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1Nl
dHRsZShjb250YWluZXIpOworICAgICAgICAgICAgICAgIGxldCBleHBlY3RlZFBhZ2VEb3duUG9z
aXRpb24gPSBjb250YWluZXIuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUo
ZXhwZWN0ZWRQYWdlRG93blBvc2l0aW9uICE9IDAsICJwYWdlZCBkb3duIGluIHNjcm9sbGVkIG92
ZXJmbG93Iik7CisKKyAgICAgICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gMDsKKyAg
ICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9u
VG9TZXR0bGUoY29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGNvbnRhaW5l
ci5zY3JvbGxUb3AgPT0gMCwgInJldHVybmVkIHRvIGZpcnN0IHBvc2l0aW9uIik7CisKKyAgICAg
ICAgICAgICAgICAvKiBOb3cgdHJpZ2dlciBhbm90aGVyIHBhZ2UgZG93biBhbmQgZW5zdXJlIGl0
IGFuaW1hdGVzLiAqLworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInBhZ2VE
b3duIik7CisKKyAgICAgICAgICAgICAgICBsZXQgbnVtYmVyT2ZNb3ZlbWVudHMgPSAwOworICAg
ICAgICAgICAgICAgIGxldCBjdXJyZW50UG9zaXRpb24gPSBjb250YWluZXIuc2Nyb2xsVG9wOwor
ICAgICAgICAgICAgICAgIGZvciAobGV0IG51bWJlck9mRnJhbWVzID0gMDsgbnVtYmVyT2ZGcmFt
ZXMgPCAxMDA7IG51bWJlck9mRnJhbWVzKyspIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIuYW5pbWF0aW9uRnJhbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRh
aW5lci5zY3JvbGxUb3AgPiBjdXJyZW50UG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG51bWJlck9mTW92ZW1lbnRzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50
UG9zaXRpb24gPSBjb250YWluZXIuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXJPZk1vdmVtZW50cyA9PSA1KQorICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgZXhwZWN0VHJ1ZShudW1iZXJPZk1vdmVtZW50cyA9PSA1LCAic2F3IGZyYW1lIGFuaW1hdGlu
ZyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoY29udGFpbmVyLnNjcm9sbFRvcCA8IGV4
cGVjdGVkUGFnZURvd25Qb3NpdGlvbiwgImZyYW1lIGRpZCBub3QgZmluaXNoIGFuaW1hdGluZyIp
OworCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFu
aW1hdGlvblRvU2V0dGxlKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShj
b250YWluZXIuc2Nyb2xsVG9wID09IGV4cGVjdGVkUGFnZURvd25Qb3NpdGlvbiwgImZyYW1lIGFu
aW1hdGlvbiBjb21wbGV0ZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4K
KyAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iYmFja2dyb3VuZDogIzgwNDc1RSI+PC9kaXY+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICNDQzVB
NzEiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHAgaWQ9ImNvbnNvbGUiPjwvcD4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xs
LWFuaW1hdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJm
bG93LXNjcm9sbC1hbmltYXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNhZDVhMTllZTdk
NmFkNDdkYjQ5NzMxYzM1ODZkZWYwNzUzNzhhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1hbmltYXRlcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw5IEBACitQQVNTIHBhZ2VkIGRvd24gaW4gc2Nyb2xsZWQgb3ZlcmZsb3cKK1BB
U1MgcmV0dXJuZWQgdG8gZmlyc3QgcG9zaXRpb24KK1BBU1Mgc2F3IGZyYW1lIGFuaW1hdGluZwor
UEFTUyBmcmFtZSBkaWQgbm90IGZpbmlzaCBhbmltYXRpbmcKK1BBU1MgZnJhbWUgYW5pbWF0aW9u
IGNvbXBsZXRlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNj
cm9sbC1hbmltYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcmZsb3ct
c2Nyb2xsLWFuaW1hdGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA2NDMyZjQ3ODVkYmY4ZWViYmZiYTli
MjAzMmFmMmQxY2NlMTJkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL292ZXJmbG93LXNjcm9sbC1hbmltYXRlcy5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5TY3JvbGxp
bmcgd2l0aCB0aGUga2V5Ym9hcmQgaW4gc2Nyb2xsaW5nIG92ZXJmbG93IHNob3VsZCBhbmltYXRl
PC90aXRsZT4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5j
b250YWluZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICAg
ICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAuYmxvY2sgeworICAgICAgICAgICAgICAgIGhlaWdodDog
MTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjUwcHg7CisgICAgICAgICAgICB9CisgICAg
ICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVk
KSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lclRleHQgPSAiU2Nyb2xsaW5nIHdpdGggdGhlIGtleWJvYXJkIGluIHNjcm9sbGluZyBvdmVy
ZmxvdyBzaG91bGQgYW5pbWF0ZS4iOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRTY3JvbGxBbmltYXRpb25F
bmFibGVkRm9yVGVzdGluZyh0cnVlKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxNTAsIDE1MCk7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOworCisgICAgICAgICAgICAgICAgLyogRmlyc3QgZGV0ZWN0IGhvdyBtdWNoIHdlIHNo
b3VsZCBwYWdlIGRvd24gZHVyaW5nIGEgcGFnZSBkb3duLiAqLworICAgICAgICAgICAgICAgIGxl
dCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicGFnZURvd24iKTsKKyAgICAgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUo
Y29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRQYWdlRG93blBvc2l0aW9u
ID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGV4cGVj
dGVkUGFnZURvd25Qb3NpdGlvbiAhPSAwLCAicGFnZWQgZG93biBpbiBzY3JvbGxlZCBvdmVyZmxv
dyIpOworCisgICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IDA7CisgICAgICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0
dGxlKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShjb250YWluZXIuc2Ny
b2xsVG9wID09IDAsICJyZXR1cm5lZCB0byBmaXJzdCBwb3NpdGlvbiIpOworCisgICAgICAgICAg
ICAgICAgLyogTm93IHRyaWdnZXIgYW5vdGhlciBwYWdlIGRvd24gYW5kIGVuc3VyZSBpdCBhbmlt
YXRlcy4gKi8KKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJwYWdlRG93biIp
OworCisgICAgICAgICAgICAgICAgbGV0IG51bWJlck9mTW92ZW1lbnRzID0gMDsKKyAgICAgICAg
ICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAgICAg
ICAgICAgICAgICBmb3IgKGxldCBudW1iZXJPZkZyYW1lcyA9IDA7IG51bWJlck9mRnJhbWVzIDwg
MTAwOyBudW1iZXJPZkZyYW1lcysrKSB7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLmFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluZXIu
c2Nyb2xsVG9wID4gY3VycmVudFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBu
dW1iZXJPZk1vdmVtZW50cysrOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0
aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBpZiAobnVtYmVyT2ZNb3ZlbWVudHMgPT0gNSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGV4
cGVjdFRydWUobnVtYmVyT2ZNb3ZlbWVudHMgPT0gNSwgInNhdyBmcmFtZSBhbmltYXRpbmciKTsK
KyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGNvbnRhaW5lci5zY3JvbGxUb3AgPCBleHBlY3Rl
ZFBhZ2VEb3duUG9zaXRpb24sICJmcmFtZSBkaWQgbm90IGZpbmlzaCBhbmltYXRpbmciKTsKKwor
ICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRp
b25Ub1NldHRsZShjb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoY29udGFp
bmVyLnNjcm9sbFRvcCA9PSBleHBlY3RlZFBhZ2VEb3duUG9zaXRpb24sICJmcmFtZSBhbmltYXRp
b24gY29tcGxldGVkIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAg
ICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CisgICAg
ICAgIDxkaXYgaWQ9ImNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2PgorICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwIGlkPSJjb25zb2xlIj48L3A+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423593</attachid>
            <date>2021-03-18 06:44:10 -0700</date>
            <delta_ts>2021-03-25 05:39:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220767-20210318144408.patch</filename>
            <type>text/plain</type>
            <size>18187</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBjZjA5MWEzYmI0ZmJl
NGFjNWVlZjVkNzBhMTZmMzdjN2MxMTQ4My4uNmNlMDY4NTU2Y2JhODU3ZDgyOWRkOGM3YTU2YTdi
YjBjOTJjYjkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAzLTAxICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBLZXlib2FyZCBz
Y3JvbGwgc25hcHBpbmcgZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNzY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MzY2MTYzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0czogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0
ZXMuaHRtbAorCisgICAgICAgIFR1cm4gb24gYW5pbWF0aW9ucyBpbiBvdmVyZmxvdzpzY3JvbGwg
YXJlYXMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIGRvaW5nCisgICAgICAgIGtleWJvYXJkIHNjcm9s
bGluZywgdGhlIGNvbnRlbnRzIG9mIFJlbmRlckxheWVycyB3aWxsIGFuaW1hdGUgaW4gdGhlCisg
ICAgICAgIHNhbWUgd2F5IHRoYXQgU2Nyb2xsVmlld3MgZG8uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3I6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyk6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBOZXcgbWV0
aG9kIGRlY2xhcmF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxBbmltYXRpb25FbmFibGVkRm9y
U3lzdGVtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5o
OiBFbmFibGUgYW5pbWF0aW9ucyBmb3IgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZGVkIG5ldyBBUEkgdG8gdHVybiBvbiBzeXN0
ZW0gc2Nyb2xsIGFuaW1hdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUpOiBSZXNldCBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nIGNvbnN0
KTogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkZWQgbmV3IG1ldGhv
ZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6IERpdHRvLgorCiAyMDIxLTAzLTE3
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjcyMDE5KTogTW9tZW50dW0gc2Nyb2xsaW5nIGluIHByb3hpbWl0eSBjc3Mtc2Ny
b2xsLXNuYXAgc2Nyb2xsIGFyZWFzIGJyb2tlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwCmluZGV4IGFjMmMyMjk4ZmIzNDcwZDdjMjQ5MzNhZTlhZTY1MTAwYmYy
ZjhiM2EuLjVkYjEwNmVmYTZmMTU1Yjg1MDE5MGQ1MTIyMDBiNDQ4ODYxNTYxNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTM5OSw1ICszOTksMTEg
QEAgZmxvYXQgU2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZO
ZWVkZWQoU2Nyb2xsRXZlbnRBeGlzIGF4aXMKICNlbmRpZgogfQogCitib29sIFNjcm9sbEFuaW1h
dG9yOjpzX3Njcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nID0gZmFsc2U7CisKK3ZvaWQg
U2Nyb2xsQW5pbWF0b3I6OnNldFNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nKGJvb2wg
dmFsdWUpCit7CisgICAgc19zY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyA9IHZhbHVl
OworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuaAppbmRleCBlOTc3OWQxMWFlMTdjMjA1MjVmYmY1ZGZkNDAwNzk3MWQ5OTBk
ZTc0Li4zNWYzNTI1MzQ1ZTA3Y2M0NmFjY2I0MTRkYWI4MTllMjk3ZmM5MTNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTE2OSw2ICsxNjksOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJl
YXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hl
ZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYK
IAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFNjcm9sbEFuaW1hdGlvbkVuYWJs
ZWRGb3JUZXN0aW5nKGJvb2wpOworICAgIHN0YXRpYyBib29sIHNjcm9sbEFuaW1hdGlvbkVuYWJs
ZWRGb3JUZXN0aW5nKCkgeyByZXR1cm4gc19zY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGlu
ZzsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVBvc2l0aW9uQ2hhbmdl
ZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKTsKICAgICB2b2lkIHVwZGF0ZUFjdGl2ZVNjcm9sbFNu
YXBJbmRleEZvck9mZnNldCgpOwpAQCAtMTgyLDYgKzE4NSw3IEBAIHByb3RlY3RlZDoKICAgICBG
bG9hdFBvaW50IG1fY3VycmVudFBvc2l0aW9uOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9s
bEFuaW1hdGlvbj4gbV9zY3JvbGxBbmltYXRpb247CisgICAgc3RhdGljIGJvb2wgc19zY3JvbGxB
bmltYXRpb25FbmFibGVkRm9yVGVzdGluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpp
bmRleCBjMDk1Y2Q2NmY1OTU2ZjhiODlhYWNiMzNkNWI3ZjgwMjMwYTlhN2I1Li4yODU0MjA0Nzhl
MzZiOTA4MjU1MmMwZTJjNDcyNjAzOWQyYjY2YjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC03MjgsNiArNzI4LDggQEAgU2Ny
b2xsQW5pbWF0b3JNYWM6On5TY3JvbGxBbmltYXRvck1hYygpCiAKIHN0YXRpYyBib29sIHNjcm9s
bEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKQogeworICAgIGlmIChTY3JvbGxBbmltYXRvcjo6
c2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgTlNTdHJpbmcqIHNjcm9sbEFuaW1hdGlvbkRlZmF1bHRzS2V5ID0gQCJOU1Njcm9sbEFu
aW1hdGlvbkVuYWJsZWQiOwogICAgIHN0YXRpYyBib29sIGVuYWJsZWQgPSBbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OnNjcm9sbEFuaW1hdGlvbkRlZmF1
bHRzS2V5XTsKICAgICByZXR1cm4gZW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCmluZGV4IGRlMjZiMzA0ODk2NjY2
YTVjZGQ2NGI1MGY3NmQ2ZDUxZWQ2M2VhZDMuLjE3YzAxNDU4M2I0YzU1ZWNlNTZiMzJiYWQ2ZDdl
OGY0NzQxNDJjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTcwLDYgKzE3MCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5h
bDsKIAogICAgIGJvb2wgaXNSZW5kZXJMYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KKyAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNv
bnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0
KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggODUwYzVmNjViNzMyNDE1ZWQ0
OTI2YWY3NzYzMzAzNjg4YTM3ZjJiYS4uZDYzYzlkOWE3ZGM0OTU0OGU5NTQ5NzhiY2VkZGFhZjAz
NTg1ZTJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTc5LDYgKzE3
OSw3IEBACiAjaW5jbHVkZSAiU1dDbGllbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNTkzLDYgKzU5NCw4IEBAIHZvaWQgSW50ZXJuYWxzOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAjaWYgUExBVEZPUk0oSU9TKQogICAg
IFJlbmRlclRoZW1lSU9TOjpzZXRDb250ZW50U2l6ZUNhdGVnb3J5KGtDVEZvbnRDb250ZW50U2l6
ZUNhdGVnb3J5TCk7CiAjZW5kaWYKKworICAgIFNjcm9sbEFuaW1hdG9yOjpzZXRTY3JvbGxBbmlt
YXRpb25FbmFibGVkRm9yVGVzdGluZyhmYWxzZSk7CiB9CiAKIEludGVybmFsczo6SW50ZXJuYWxz
KERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTYxNDMsNCArNjE0Niw5IEBAIGJvb2wgSW50ZXJuYWxz
OjpyYW5nZUludGVyc2VjdHNSYW5nZShjb25zdCBBYnN0cmFjdFJhbmdlJiBhLCBjb25zdCBBYnN0
cmFjdFJhbmdlCiAgICAgcmV0dXJuIGludGVyc2VjdHNGb3JUZXN0aW5nKGNvbnZlcnRUeXBlKHR5
cGUpLCBtYWtlU2ltcGxlUmFuZ2UoYSksIG1ha2VTaW1wbGVSYW5nZShiKSk7CiB9CiAKK3ZvaWQg
SW50ZXJuYWxzOjpzZXRTY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyhib29sIHZhbHVl
KSBjb25zdAoreworICAgIFNjcm9sbEFuaW1hdG9yOjpzZXRTY3JvbGxBbmltYXRpb25FbmFibGVk
Rm9yVGVzdGluZyh2YWx1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGMyODJjMzQxNWM3ODk4NjcyYjJhY2JlYzc3YTM3ZjQ3
MWE1NDgxMTguLmM0OWFlNDBjM2I2NDMwNjc4MzJkODc3YTVlMWZiMjQxMWMyYjJlZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjUzLDYgKzI1Myw5IEBAIHB1YmxpYzoKICAg
ICAvLyBGb3IgYW5pbWF0aW9ucyB0ZXN0aW5nLCB3ZSBuZWVkIGEgd2F5IHRvIGdldCBhdCBwc2V1
ZG8gZWxlbWVudHMuCiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPEVsZW1lbnQ+PiBwc2V1ZG9FbGVt
ZW50KEVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAorICAgIC8vIEFsbG93IHNjcm9sbGluZyBh
bmltYXRpb25zLgorICAgIHZvaWQgc2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3Rpbmco
Ym9vbCB2YWx1ZSkgY29uc3Q7CisKICAgICBOb2RlKiB0cmVlU2NvcGVSb290Tm9kZShOb2RlJik7
CiAgICAgTm9kZSogcGFyZW50VHJlZVNjb3BlKE5vZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCmluZGV4IDg5Y2UxMmQwYzM1YTJhZTMzM2FhNDFiZDliMmU3NWRkNjgxMWNi
YmEuLjM0YmU5ZjUwNTU3OGIyZGQzNDI0YjM0MDI1N2ZlZDllOTI3MjczNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTMzNiw2ICszMzYsOSBAQCBlbnVtIFRyZWVUeXBl
IHsKICAgICAvLyBGb3IgYW5pbWF0aW9ucyB0ZXN0aW5nLCB3ZSBuZWVkIGEgd2F5IHRvIGdldCBh
dCBwc2V1ZG8gZWxlbWVudHMuCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBFbGVtZW50PyBwc2V1
ZG9FbGVtZW50KEVsZW1lbnQgZWxlbWVudCwgRE9NU3RyaW5nIHBzZXVkb0lkKTsKIAorICAgIC8v
IGFsbG93IHNjcm9sbGluZyBhbmltYXRpb25zLgorICAgIHVuZGVmaW5lZCBzZXRTY3JvbGxBbmlt
YXRpb25FbmFibGVkRm9yVGVzdGluZyhib29sZWFuIHZhbHVlKTsKKwogICAgIERPTVN0cmluZyB2
aXNpYmxlUGxhY2Vob2xkZXIoRWxlbWVudCBlbGVtZW50KTsKICAgICB1bmRlZmluZWQgc2VsZWN0
Q29sb3JJbkNvbG9yQ2hvb3NlcihIVE1MSW5wdXRFbGVtZW50IGVsZW1lbnQsIERPTVN0cmluZyBj
b2xvclZhbHVlKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHNlcXVlbmNlPERPTVN0cmluZz4g
Zm9ybUNvbnRyb2xTdGF0ZU9mUHJldmlvdXNIaXN0b3J5SXRlbSgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDExYWYwNjAy
YjdkYzQwYTJiZjFiYWU0OTk3ZThjZjhjNmYyNjEzN2EuLjY2YTI3MDhlMWJjZTMzY2RlMTJlOWNl
YmFmNDkzNzk5NzI5NjczZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wMy0wMSAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgS2V5Ym9hcmQg
c2Nyb2xsIHNuYXBwaW5nIGRvZXMgbm90IGFuaW1hdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDc2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzM2NjE2MzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW92ZXJmbG93LWFuaW1hdGVzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1v
dmVyZmxvdy1hbmltYXRlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9v
dmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIHRoZXNlIHRlc3Rz
IG9uIGlPUy4KKwogMjAyMS0wMy0xNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIFtHUFVQXSBTb21lIG1lZGlhLXNvdXJjZSB0ZXN0cyBmYWlsL3RpbWVvdXQgd2hl
biBtZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW92ZXJmbG93LWFuaW1hdGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtb3ZlcmZsb3ct
YW5pbWF0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYWQ1YTE5ZWU3ZDZhZDQ3ZGI0OTcz
MWMzNTg2ZGVmMDc1Mzc4YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLW92ZXJmbG93LWFuaW1hdGVzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDkgQEAKK1BBU1MgcGFnZWQgZG93biBpbiBzY3JvbGxlZCBvdmVyZmxvdworUEFTUyBy
ZXR1cm5lZCB0byBmaXJzdCBwb3NpdGlvbgorUEFTUyBzYXcgZnJhbWUgYW5pbWF0aW5nCitQQVNT
IGZyYW1lIGRpZCBub3QgZmluaXNoIGFuaW1hdGluZworUEFTUyBmcmFtZSBhbmltYXRpb24gY29t
cGxldGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1v
dmVyZmxvdy1hbmltYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZmIwODVlZjQwNjNk
NDY1YThkNGNiZGQzYTZjYjZjOTVjOTlmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW92ZXJmbG93LWFuaW1hdGVzLmh0bWwKQEAg
LTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHRpdGxlPlRyaWdnZXJpbmcgc2Nyb2xsIHNuYXBwaW5nIHdpdGggdGhlIGtleWJvYXJkIHNo
b3VsZCBhbmltYXQ8L3RpdGxlPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAg
ICAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1
dG87CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogYm90aCBtYW5kYXRvcnk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5ibG9jayB7CisgICAgICAgICAgICAgICAgaGVp
Z2h0OiAxMDAlOworICAgICAgICAgICAgICAgIHdpZHRoOiAyNTBweDsKKyAgICAgICAgICAgICAg
ICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5
bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRleHQg
PSAiVHJpZ2dlcmluZyBzY3JvbGwgc25hcHBpbmcgd2l0aCB0aGUga2V5Ym9hcmQgc2hvdWxkIGFu
aW1hdGUuIjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3Rp
bmcodHJ1ZSk7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oMTUwLCAxNTApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IGRldGVjdCBob3cgbXVjaCB3ZSBzaG91bGQgcGFnZSBkb3du
IGR1cmluZyBhIHBhZ2UgZG93bi4KKyAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICAgICAgICAgICAgICAgIFVJSGVs
cGVyLmtleURvd24oInBhZ2VEb3duIik7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIu
d2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKGNvbnRhaW5lcik7CisgICAgICAg
ICAgICAgICAgbGV0IGV4cGVjdGVkUGFnZURvd25Qb3NpdGlvbiA9IGNvbnRhaW5lci5zY3JvbGxU
b3A7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShleHBlY3RlZFBhZ2VEb3duUG9zaXRpb24g
IT0gMCwgInBhZ2VkIGRvd24gaW4gc2Nyb2xsZWQgb3ZlcmZsb3ciKTsKKworICAgICAgICAgICAg
ICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSAwOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRsZShjb250YWluZXIpOworICAg
ICAgICAgICAgICAgIGV4cGVjdFRydWUoY29udGFpbmVyLnNjcm9sbFRvcCA9PSAwLCAicmV0dXJu
ZWQgdG8gZmlyc3QgcG9zaXRpb24iKTsKKworICAgICAgICAgICAgICAgIC8vIE5vdyB0cmlnZ2Vy
IGFub3RoZXIgcGFnZSBkb3duIGFuZCBlbnN1cmUgaXQgYW5pbWF0ZXMKKyAgICAgICAgICAgICAg
ICBVSUhlbHBlci5rZXlEb3duKCJwYWdlRG93biIpOworCisgICAgICAgICAgICAgICAgbGV0IG51
bWJlck9mTW92ZW1lbnRzID0gMDsKKyAgICAgICAgICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9u
ID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBudW1iZXJP
ZkZyYW1lcyA9IDA7IG51bWJlck9mRnJhbWVzIDwgMTAwOyBudW1iZXJPZkZyYW1lcysrKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFuaW1hdGlvbkZyYW1lKCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChjb250YWluZXIuc2Nyb2xsVG9wID4gY3VycmVudFBvc2l0aW9u
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZk1vdmVtZW50cysrOworICAgICAg
ICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcDsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyT2ZN
b3ZlbWVudHMgPT0gNSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUobnVtYmVyT2ZNb3ZlbWVudHMg
PT0gNSwgInNhdyBmcmFtZSBhbmltYXRpbmciKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVl
KGNvbnRhaW5lci5zY3JvbGxUb3AgPCBleHBlY3RlZFBhZ2VEb3duUG9zaXRpb24sICJmcmFtZSBk
aWQgbm90IGZpbmlzaCBhbmltYXRpbmciKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRsZShjb250YWluZXIpOworICAg
ICAgICAgICAgICAgIGV4cGVjdFRydWUoY29udGFpbmVyLnNjcm9sbFRvcCA9PSBleHBlY3RlZFBh
Z2VEb3duUG9zaXRpb24sICJmcmFtZSBhbmltYXRpb24gY29tcGxldGVkIik7CisgICAgICAgICAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAg
ICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciIgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJh
Y2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2si
IHN0eWxlPSJiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxwIGlkPSJjb25zb2xlIj48L3A+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1hbmltYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBjYWQ1YTE5ZWU3ZDZhZDQ3ZGI0OTczMWMzNTg2ZGVmMDc1Mzc4YWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3Jv
bGwtYW5pbWF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBwYWdlZCBkb3du
IGluIHNjcm9sbGVkIG92ZXJmbG93CitQQVNTIHJldHVybmVkIHRvIGZpcnN0IHBvc2l0aW9uCitQ
QVNTIHNhdyBmcmFtZSBhbmltYXRpbmcKK1BBU1MgZnJhbWUgZGlkIG5vdCBmaW5pc2ggYW5pbWF0
aW5nCitQQVNTIGZyYW1lIGFuaW1hdGlvbiBjb21wbGV0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1hbmltYXRlcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmViYTNhMjk3MDRjZmEzMGYwNmRjYzM0ZjQ2ZWRkM2I0NjY4NzJiZGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMu
aHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFk
PgorICAgICAgICA8dGl0bGU+U2Nyb2xsaW5nIHdpdGggdGhlIGtleWJvYXJkIGluIHNjcm9sbGlu
ZyBvdmVyZmxvdyBzaG91bGQgYW5pbWF0ZTwvdGl0bGU+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisgICAgICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDIwMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAg
ICBvdmVyZmxvdzogYXV0bzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmJsb2NrIHsK
KyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDI1
MHB4OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBh
c3luYyBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyID09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJUZXh0ID0gIlNjcm9sbGluZyB3aXRoIHRoZSBr
ZXlib2FyZCBpbiBzY3JvbGxpbmcgb3ZlcmZsb3cgc2hvdWxkIGFuaW1hdGUuIjsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcodHJ1ZSk7CisKKyAgICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUw
LCAxNTApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIC8vIEZp
cnN0IGRldGVjdCBob3cgbXVjaCB3ZSBzaG91bGQgcGFnZSBkb3duIGR1cmluZyBhIHBhZ2UgZG93
bgorICAgICAgICAgICAgICAgIGxldCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGFpbmVyIik7CisgICAgICAgICAgICAgICAgVUlIZWxwZXIua2V5RG93bigicGFnZURv
d24iKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xs
QW5pbWF0aW9uVG9TZXR0bGUoY29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0
ZWRQYWdlRG93blBvc2l0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAg
ICBleHBlY3RUcnVlKGV4cGVjdGVkUGFnZURvd25Qb3NpdGlvbiAhPSAwLCAicGFnZWQgZG93biBp
biBzY3JvbGxlZCBvdmVyZmxvdyIpOworCisgICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9s
bFRvcCA9IDA7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNj
cm9sbEFuaW1hdGlvblRvU2V0dGxlKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0
VHJ1ZShjb250YWluZXIuc2Nyb2xsVG9wID09IDAsICJyZXR1cm5lZCB0byBmaXJzdCBwb3NpdGlv
biIpOworCisgICAgICAgICAgICAgICAgLy8gTm93IHRyaWdnZXIgYW5vdGhlciBwYWdlIGRvd24g
YW5kIGVuc3VyZSBpdCBhbmltYXRlcworICAgICAgICAgICAgICAgIFVJSGVscGVyLmtleURvd24o
InBhZ2VEb3duIik7CisKKyAgICAgICAgICAgICAgICBsZXQgbnVtYmVyT2ZNb3ZlbWVudHMgPSAw
OworICAgICAgICAgICAgICAgIGxldCBjdXJyZW50UG9zaXRpb24gPSBjb250YWluZXIuc2Nyb2xs
VG9wOworICAgICAgICAgICAgICAgIGZvciAobGV0IG51bWJlck9mRnJhbWVzID0gMDsgbnVtYmVy
T2ZGcmFtZXMgPCAxMDA7IG51bWJlck9mRnJhbWVzKyspIHsKKyAgICAgICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIuYW5pbWF0aW9uRnJhbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGNvbnRhaW5lci5zY3JvbGxUb3AgPiBjdXJyZW50UG9zaXRpb24pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG51bWJlck9mTW92ZW1lbnRzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBj
dXJyZW50UG9zaXRpb24gPSBjb250YWluZXIuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXJPZk1vdmVtZW50cyA9PSA1KQorICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgZXhwZWN0VHJ1ZShudW1iZXJPZk1vdmVtZW50cyA9PSA1LCAic2F3IGZyYW1lIGFu
aW1hdGluZyIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoY29udGFpbmVyLnNjcm9sbFRv
cCA8IGV4cGVjdGVkUGFnZURvd25Qb3NpdGlvbiwgImZyYW1lIGRpZCBub3QgZmluaXNoIGFuaW1h
dGluZyIpOworCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNj
cm9sbEFuaW1hdGlvblRvU2V0dGxlKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0
VHJ1ZShjb250YWluZXIuc2Nyb2xsVG9wID09IGV4cGVjdGVkUGFnZURvd25Qb3NpdGlvbiwgImZy
YW1lIGFuaW1hdGlvbiBjb21wbGV0ZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7Cisg
ICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2Fk
KCk7Ij4KKyAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iYmFja2dyb3VuZDogIzgwNDc1RSI+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6
ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHAgaWQ9ImNvbnNvbGUi
PjwvcD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGQ1NGI0NDc5MDJiZTViMDk4MzE2NTdhOGI2YTUzYWJhZGEwYjczODguLjM5OWJjMTU2
OTExNDFhMjI1NGEzOGYwNjlmNjYxZmQ5MWYxNDkwYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzNSw4ICsxMzUsMTIgQEAganMvZG9t
L2RmZy1pbmxpbmUtcmVzb2x2ZS5odG1sCiBzY3JvbGxiYXJzL2Nvcm5lci1yZXNpemVyLXdpbmRv
dy1pbmFjdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBzY3JvbGxiYXJzL3Njcm9sbGlu
Zy1ieS1wYWdlLW9uLWtleWJvYXJkLXNwYWNlYmFyLmh0bWwgWyBGYWlsdXJlIF0KIHNjcm9sbGJh
cnMvc2Nyb2xsYmFycy1vbi1wb3NpdGlvbmVkLWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQotY3Nz
My9zY3JvbGwtc25hcC9zY3JvbGwtcGFkZGluZy1tYWluZnJhbWUtcGFnaW5nLmh0bWwgWyBGYWls
dXJlIF0KLWNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRpbmctb3ZlcmZsb3ctcGFnaW5nLmh0
bWwgWyBGYWlsdXJlIF0KKworIyBUZXN0cyB0aGF0IHVzZSAicGFnZVVwIiBhbmQgInBhZ2VEb3du
IiB0byBtb3ZlIGJ5IHBhZ2UgYXJlIGZhaWxpbmcuCit3ZWJraXQub3JnL2IvMjIzNDI4IGNzczMv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRpbmctbWFpbmZyYW1lLXBhZ2luZy5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvMjIzNDI4IGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRpbmct
b3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMjM0MjggZmFz
dC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsLWFuaW1hdGVzLmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmtpdC5vcmcvYi8yMjM0MjggY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1h
bmltYXRlcy5odG1sIFsgRmFpbHVyZSBdCiAKICMgU1ZHIHRlc3RzIHRoYXQgdGltZSBvdXQgKHRo
ZXNlIHJlcXVpcmUgRXZlbnRTZW5kZXIpCiBzdmcvYW5pbWF0aW9ucy9hbmltVmFsLWJhc2ljcy5o
dG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424237</attachid>
            <date>2021-03-25 05:39:56 -0700</date>
            <delta_ts>2021-03-26 02:05:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220767-20210325133955.patch</filename>
            <type>text/plain</type>
            <size>19203</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM2YzYwNzI5YjNhZjMy
MzA4YThmNjUyMmI0YjIxYTMzNDlkNGQ2NS4uYThmZDliZTdlNzNhMmI2NjRmOWY2ZTc5NDg4Njhm
OWM0NmJmZDgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAzLTI1ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBLZXlib2FyZCBz
Y3JvbGwgc25hcHBpbmcgZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNzY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MzY2MTYzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0czogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0
ZXMuaHRtbAorCisgICAgICAgIFR1cm4gb24gYW5pbWF0aW9ucyBpbiBvdmVyZmxvdzpzY3JvbGwg
YXJlYXMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIGRvaW5nCisgICAgICAgIGtleWJvYXJkIHNjcm9s
bGluZywgdGhlIGNvbnRlbnRzIG9mIFJlbmRlckxheWVycyB3aWxsIGFuaW1hdGUgaW4gdGhlCisg
ICAgICAgIHNhbWUgd2F5IHRoYXQgU2Nyb2xsVmlld3MgZG8uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3I6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyk6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBOZXcgbWV0
aG9kIGRlY2xhcmF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxBbmltYXRpb25FbmFibGVkRm9y
U3lzdGVtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5o
OiBFbmFibGUgYW5pbWF0aW9ucyBmb3IgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZGVkIG5ldyBBUEkgdG8gdHVybiBvbiBzeXN0
ZW0gc2Nyb2xsIGFuaW1hdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUpOiBSZXNldCBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nIGNvbnN0
KTogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkZWQgbmV3IG1ldGhv
ZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6IERpdHRvLgorCiAyMDIxLTAzLTI1
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFsbCBC
b29rcyBxdWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJuIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGFjMmMyMjk4ZmIz
NDcwZDdjMjQ5MzNhZTlhZTY1MTAwYmYyZjhiM2EuLjVkYjEwNmVmYTZmMTU1Yjg1MDE5MGQ1MTIy
MDBiNDQ4ODYxNTYxNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5jcHAKQEAgLTM5OSw1ICszOTksMTEgQEAgZmxvYXQgU2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNj
cm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZlbnRBeGlzIGF4aXMKICNlbmRp
ZgogfQogCitib29sIFNjcm9sbEFuaW1hdG9yOjpzX3Njcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JU
ZXN0aW5nID0gZmFsc2U7CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNldFNjcm9sbEFuaW1hdGlv
bkVuYWJsZWRGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit7CisgICAgc19zY3JvbGxBbmltYXRpb25F
bmFibGVkRm9yVGVzdGluZyA9IHZhbHVlOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCBlOTc3OWQxMWFlMTdj
MjA1MjVmYmY1ZGZkNDAwNzk3MWQ5OTBkZTc0Li4zNWYzNTI1MzQ1ZTA3Y2M0NmFjY2I0MTRkYWI4
MTllMjk3ZmM5MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgK
QEAgLTE2OSw2ICsxNjksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVz
dENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikg
Y29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHNldFNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nKGJvb2wpOworICAgIHN0YXRpYyBi
b29sIHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nKCkgeyByZXR1cm4gc19zY3JvbGxB
bmltYXRpb25FbmFibGVkRm9yVGVzdGluZzsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKTsKICAgICB2
b2lkIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNldCgpOwpAQCAtMTgyLDYgKzE4
NSw3IEBAIHByb3RlY3RlZDoKICAgICBGbG9hdFBvaW50IG1fY3VycmVudFBvc2l0aW9uOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEFuaW1hdGlvbj4gbV9zY3JvbGxBbmltYXRpb247Cisg
ICAgc3RhdGljIGJvb2wgc19zY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZzsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBjMDk1Y2Q2NmY1OTU2ZjhiODlhYWNiMzNkNWI3
ZjgwMjMwYTlhN2I1Li4yODU0MjA0NzhlMzZiOTA4MjU1MmMwZTJjNDcyNjAzOWQyYjY2YjljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
CkBAIC03MjgsNiArNzI4LDggQEAgU2Nyb2xsQW5pbWF0b3JNYWM6On5TY3JvbGxBbmltYXRvck1h
YygpCiAKIHN0YXRpYyBib29sIHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKQogewor
ICAgIGlmIChTY3JvbGxBbmltYXRvcjo6c2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3Rpbmco
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgTlNTdHJpbmcqIHNjcm9sbEFuaW1hdGlvbkRl
ZmF1bHRzS2V5ID0gQCJOU1Njcm9sbEFuaW1hdGlvbkVuYWJsZWQiOwogICAgIHN0YXRpYyBib29s
IGVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9y
S2V5OnNjcm9sbEFuaW1hdGlvbkRlZmF1bHRzS2V5XTsKICAgICByZXR1cm4gZW5hYmxlZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVB
cmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YS5oCmluZGV4IGRlMjZiMzA0ODk2NjY2YTVjZGQ2NGI1MGY3NmQ2ZDUxZWQ2M2VhZDMuLjE3YzAx
NDU4M2I0YzU1ZWNlNTZiMzJiYWQ2ZDdlOGY0NzQxNDJjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTcwLDYg
KzE3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaXNSZW5kZXJMYXllcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxl
ZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGludmFsaWRhdGVTY3Jv
bGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGlu
dmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICBib29s
IGlzQWN0aXZlKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggNzQyZWU3ZGY3YjI5MDcwMGUwNzhkNGZjMDQ2OWJhM2UxOGExMTc4ZS4uYzc0YjhlM2Fm
ZDgyNzRhNjFiMWZiYjQyZmZjZjNmZTQwMDc2M2VjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtMTgwLDYgKzE4MCw3IEBACiAjaW5jbHVkZSAiU1dDbGllbnRDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3IuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjA1LDYgKzYw
Niw4IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2Up
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDb250ZW50U2l6ZUNh
dGVnb3J5KGtDVEZvbnRDb250ZW50U2l6ZUNhdGVnb3J5TCk7CiAjZW5kaWYKKworICAgIFNjcm9s
bEFuaW1hdG9yOjpzZXRTY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyhmYWxzZSk7CiB9
CiAKIEludGVybmFsczo6SW50ZXJuYWxzKERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTYyMTIsNCAr
NjIxNSw5IEBAIGJvb2wgSW50ZXJuYWxzOjpyYW5nZUludGVyc2VjdHNSYW5nZShjb25zdCBBYnN0
cmFjdFJhbmdlJiBhLCBjb25zdCBBYnN0cmFjdFJhbmdlCiAgICAgcmV0dXJuIGludGVyc2VjdHNG
b3JUZXN0aW5nKGNvbnZlcnRUeXBlKHR5cGUpLCBtYWtlU2ltcGxlUmFuZ2UoYSksIG1ha2VTaW1w
bGVSYW5nZShiKSk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRTY3JvbGxBbmltYXRpb25FbmFi
bGVkRm9yVGVzdGluZyhib29sIHZhbHVlKSBjb25zdAoreworICAgIFNjcm9sbEFuaW1hdG9yOjpz
ZXRTY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyh2YWx1ZSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDIxM2Q4N2Nl
ZjY0YWQ1YWRlNmJhMDI1ODA3NDgxZTU5ODkwOTc4OTYuLjAxMDA2MTYxODk0ZjU3ODc5YTY0M2Nm
NDQ0ZmM2MTNhZjk3NTE2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjU4
LDYgKzI1OCw5IEBAIHB1YmxpYzoKICAgICAvLyBGb3IgYW5pbWF0aW9ucyB0ZXN0aW5nLCB3ZSBu
ZWVkIGEgd2F5IHRvIGdldCBhdCBwc2V1ZG8gZWxlbWVudHMuCiAgICAgRXhjZXB0aW9uT3I8UmVm
UHRyPEVsZW1lbnQ+PiBwc2V1ZG9FbGVtZW50KEVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAor
ICAgIC8vIEFsbG93IHNjcm9sbGluZyBhbmltYXRpb25zLgorICAgIHZvaWQgc2V0U2Nyb2xsQW5p
bWF0aW9uRW5hYmxlZEZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgY29uc3Q7CisKICAgICBOb2RlKiB0
cmVlU2NvcGVSb290Tm9kZShOb2RlJik7CiAgICAgTm9kZSogcGFyZW50VHJlZVNjb3BlKE5vZGUm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDJjOTQ4YjIyYjc3MTRj
MTk3M2YyYzM0ZjgxZGVlNzA4YzIzNmNiMTEuLjA0ZjBhYTRhYWQ2NDQxODQ1YTRlYzRlNTVhOWZk
MmEzMDdhMmYyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTMzNiw2
ICszMzYsOSBAQCBlbnVtIFRyZWVUeXBlIHsKICAgICAvLyBGb3IgYW5pbWF0aW9ucyB0ZXN0aW5n
LCB3ZSBuZWVkIGEgd2F5IHRvIGdldCBhdCBwc2V1ZG8gZWxlbWVudHMuCiAgICAgRWxlbWVudD8g
cHNldWRvRWxlbWVudChFbGVtZW50IGVsZW1lbnQsIERPTVN0cmluZyBwc2V1ZG9JZCk7CiAKKyAg
ICAvLyBhbGxvdyBzY3JvbGxpbmcgYW5pbWF0aW9ucy4KKyAgICB1bmRlZmluZWQgc2V0U2Nyb2xs
QW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7CisKICAgICBET01TdHJp
bmcgdmlzaWJsZVBsYWNlaG9sZGVyKEVsZW1lbnQgZWxlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNl
bGVjdENvbG9ySW5Db2xvckNob29zZXIoSFRNTElucHV0RWxlbWVudCBlbGVtZW50LCBET01TdHJp
bmcgY29sb3JWYWx1ZSk7CiAgICAgc2VxdWVuY2U8RE9NU3RyaW5nPiBmb3JtQ29udHJvbFN0YXRl
T2ZQcmV2aW91c0hpc3RvcnlJdGVtKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmU4OGEyZDM0ZTY2ZTAyMjA3NGFkMDAz
ZjRhYTBjYmEzZjI2YjA0OC4uNTAyYjEyN2I5NTY5ODIzM2E0ODBmMmI3YTI5ODQwNDhhMzgzZWE0
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAzLTI1ICBNYXJ0aW4gUm9iaW5zb24gIDxt
cm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBLZXlib2FyZCBzY3JvbGwgc25hcHBpbmcg
ZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIwNzY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzY2MTYzND4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtb3ZlcmZsb3ctYW5pbWF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW92ZXJmbG93LWFuaW1hdGVz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1h
bmltYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL292
ZXJmbG93LXNjcm9sbC1hbmltYXRlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlc2UgdGVzdHMgb24gaU9TLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIGEgbmV3IHRlc3Qgb24gV2lu
ZG93cy4KKwogMjAyMS0wMy0yNCAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBSZS1za2lwIG1vZGVybi1tZWRpYS1jb250cm9scyB0ZXN0cyBhZnRlciBy
Mjc0ODEwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW92ZXJmbG93LWFuaW1hdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtb3ZlcmZsb3ctYW5pbWF0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBjYWQ1YTE5ZWU3ZDZhZDQ3ZGI0OTczMWMzNTg2ZGVmMDc1Mzc4YWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW92ZXJm
bG93LWFuaW1hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1BBU1MgcGFnZWQgZG93
biBpbiBzY3JvbGxlZCBvdmVyZmxvdworUEFTUyByZXR1cm5lZCB0byBmaXJzdCBwb3NpdGlvbgor
UEFTUyBzYXcgZnJhbWUgYW5pbWF0aW5nCitQQVNTIGZyYW1lIGRpZCBub3QgZmluaXNoIGFuaW1h
dGluZworUEFTUyBmcmFtZSBhbmltYXRpb24gY29tcGxldGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5odG1sIGIvTGF5
b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmZmIwODVlZjQwNjNkNDY1YThkNGNiZGQzYTZjYjZjOTVjOTlmMjgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW92ZXJmbG93LWFuaW1hdGVzLmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRyaWdnZXJpbmcgc2Nyb2xs
IHNuYXBwaW5nIHdpdGggdGhlIGtleWJvYXJkIHNob3VsZCBhbmltYXQ8L3RpdGxlPgorICAgICAg
ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgLmNvbnRhaW5lciB7CisgICAg
ICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7
CisgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgICAgICAgICAgICAgc2Nyb2xs
LXNuYXAtdHlwZTogYm90aCBtYW5kYXRvcnk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IC5ibG9jayB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgICAg
IHdpZHRoOiAyNTBweDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7
CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5j
IGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRleHQgPSAiVHJpZ2dlcmluZyBzY3JvbGwgc25hcHBp
bmcgd2l0aCB0aGUga2V5Ym9hcmQgc2hvdWxkIGFuaW1hdGUuIjsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcodHJ1ZSk7CisKKyAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxNTApOwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIC8vIEZpcnN0IGRldGVj
dCBob3cgbXVjaCB3ZSBzaG91bGQgcGFnZSBkb3duIGR1cmluZyBhIHBhZ2UgZG93bi4KKyAgICAg
ICAgICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRh
aW5lciIpOworICAgICAgICAgICAgICAgIFVJSGVscGVyLmtleURvd24oInBhZ2VEb3duIik7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlv
blRvU2V0dGxlKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkUGFnZURv
d25Qb3NpdGlvbiA9IGNvbnRhaW5lci5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgZXhwZWN0
VHJ1ZShleHBlY3RlZFBhZ2VEb3duUG9zaXRpb24gIT0gMCwgInBhZ2VkIGRvd24gaW4gc2Nyb2xs
ZWQgb3ZlcmZsb3ciKTsKKworICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSAw
OworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmlt
YXRpb25Ub1NldHRsZShjb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoY29u
dGFpbmVyLnNjcm9sbFRvcCA9PSAwLCAicmV0dXJuZWQgdG8gZmlyc3QgcG9zaXRpb24iKTsKKwor
ICAgICAgICAgICAgICAgIC8vIE5vdyB0cmlnZ2VyIGFub3RoZXIgcGFnZSBkb3duIGFuZCBlbnN1
cmUgaXQgYW5pbWF0ZXMKKyAgICAgICAgICAgICAgICBVSUhlbHBlci5rZXlEb3duKCJwYWdlRG93
biIpOworCisgICAgICAgICAgICAgICAgbGV0IG51bWJlck9mTW92ZW1lbnRzID0gMDsKKyAgICAg
ICAgICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAg
ICAgICAgICAgICAgICBmb3IgKGxldCBudW1iZXJPZkZyYW1lcyA9IDA7IG51bWJlck9mRnJhbWVz
IDwgMTAwOyBudW1iZXJPZkZyYW1lcysrKSB7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLmFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWlu
ZXIuc2Nyb2xsVG9wID4gY3VycmVudFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBudW1iZXJPZk1vdmVtZW50cysrOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBv
c2l0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBpZiAobnVtYmVyT2ZNb3ZlbWVudHMgPT0gNSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGV4cGVjdFRydWUobnVtYmVyT2ZNb3ZlbWVudHMgPT0gNSwgInNhdyBmcmFtZSBhbmltYXRpbmci
KTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGNvbnRhaW5lci5zY3JvbGxUb3AgPCBleHBl
Y3RlZFBhZ2VEb3duUG9zaXRpb24sICJmcmFtZSBkaWQgbm90IGZpbmlzaCBhbmltYXRpbmciKTsK
KworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmlt
YXRpb25Ub1NldHRsZShjb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoY29u
dGFpbmVyLnNjcm9sbFRvcCA9PSBleHBlY3RlZFBhZ2VEb3duUG9zaXRpb24sICJmcmFtZSBhbmlt
YXRpb24gY29tcGxldGVkIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAg
ICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cisg
ICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2Pgor
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJiYWNrZ3JvdW5kOiAjQ0M1QTcx
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwIGlkPSJjb25zb2xlIj48L3A+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1h
bmltYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxv
dy1zY3JvbGwtYW5pbWF0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYWQ1YTE5ZWU3ZDZh
ZDQ3ZGI0OTczMWMzNTg2ZGVmMDc1Mzc4YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorUEFTUyBwYWdlZCBkb3duIGluIHNjcm9sbGVkIG92ZXJmbG93CitQQVNT
IHJldHVybmVkIHRvIGZpcnN0IHBvc2l0aW9uCitQQVNTIHNhdyBmcmFtZSBhbmltYXRpbmcKK1BB
U1MgZnJhbWUgZGlkIG5vdCBmaW5pc2ggYW5pbWF0aW5nCitQQVNTIGZyYW1lIGFuaW1hdGlvbiBj
b21wbGV0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3Jv
bGwtYW5pbWF0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNj
cm9sbC1hbmltYXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViYTNhMjk3MDRjZmEzMGYwNmRjYzM0ZjQ2
ZWRkM2I0NjY4NzJiZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMuaHRtbApAQCAtMCwwICsxLDg0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+U2Nyb2xsaW5n
IHdpdGggdGhlIGtleWJvYXJkIGluIHNjcm9sbGluZyBvdmVyZmxvdyBzaG91bGQgYW5pbWF0ZTwv
dGl0bGU+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICAuY29u
dGFpbmVyIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgLmJsb2NrIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEw
MCU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgICAgICAgfQorICAgICAg
ICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBvbkxvYWQoKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyID09IHVuZGVmaW5lZCkg
eworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5u
ZXJUZXh0ID0gIlNjcm9sbGluZyB3aXRoIHRoZSBrZXlib2FyZCBpbiBzY3JvbGxpbmcgb3ZlcmZs
b3cgc2hvdWxkIGFuaW1hdGUuIjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0U2Nyb2xsQW5pbWF0aW9uRW5h
YmxlZEZvclRlc3RpbmcodHJ1ZSk7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxNTApOworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKKworICAgICAgICAgICAgICAgIC8vIEZpcnN0IGRldGVjdCBob3cgbXVjaCB3ZSBzaG91
bGQgcGFnZSBkb3duIGR1cmluZyBhIHBhZ2UgZG93bgorICAgICAgICAgICAgICAgIGxldCBjb250
YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgICAgICAgICAg
ICAgICAgVUlIZWxwZXIua2V5RG93bigicGFnZURvd24iKTsKKyAgICAgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUoY29udGFpbmVy
KTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRQYWdlRG93blBvc2l0aW9uID0gY29udGFp
bmVyLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGV4cGVjdGVkUGFnZURv
d25Qb3NpdGlvbiAhPSAwLCAicGFnZWQgZG93biBpbiBzY3JvbGxlZCBvdmVyZmxvdyIpOworCisg
ICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IDA7CisgICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKGNvbnRh
aW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShjb250YWluZXIuc2Nyb2xsVG9wID09
IDAsICJyZXR1cm5lZCB0byBmaXJzdCBwb3NpdGlvbiIpOworCisgICAgICAgICAgICAgICAgLy8g
Tm93IHRyaWdnZXIgYW5vdGhlciBwYWdlIGRvd24gYW5kIGVuc3VyZSBpdCBhbmltYXRlcworICAg
ICAgICAgICAgICAgIFVJSGVscGVyLmtleURvd24oInBhZ2VEb3duIik7CisKKyAgICAgICAgICAg
ICAgICBsZXQgbnVtYmVyT2ZNb3ZlbWVudHMgPSAwOworICAgICAgICAgICAgICAgIGxldCBjdXJy
ZW50UG9zaXRpb24gPSBjb250YWluZXIuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGZvciAo
bGV0IG51bWJlck9mRnJhbWVzID0gMDsgbnVtYmVyT2ZGcmFtZXMgPCAxMDA7IG51bWJlck9mRnJh
bWVzKyspIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYW5pbWF0aW9uRnJh
bWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5zY3JvbGxUb3AgPiBjdXJy
ZW50UG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTW92ZW1lbnRz
Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPSBjb250YWluZXIu
c2Nyb2xsVG9wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
IChudW1iZXJPZk1vdmVtZW50cyA9PSA1KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShudW1iZXJP
Zk1vdmVtZW50cyA9PSA1LCAic2F3IGZyYW1lIGFuaW1hdGluZyIpOworICAgICAgICAgICAgICAg
IGV4cGVjdFRydWUoY29udGFpbmVyLnNjcm9sbFRvcCA8IGV4cGVjdGVkUGFnZURvd25Qb3NpdGlv
biwgImZyYW1lIGRpZCBub3QgZmluaXNoIGFuaW1hdGluZyIpOworCisgICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKGNvbnRh
aW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShjb250YWluZXIuc2Nyb2xsVG9wID09
IGV4cGVjdGVkUGFnZURvd25Qb3NpdGlvbiwgImZyYW1lIGFuaW1hdGlvbiBjb21wbGV0ZWQiKTsK
KyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhl
KTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKyAgICAgICAgPGRpdiBpZD0iY29u
dGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2Nr
IiBzdHlsZT0iYmFja2dyb3VuZDogIzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFhODFjMTBmYWJiYmRhYWQ1MWYz
NTYwNjc1YTA2YWM5MjE5MDBjYmYuLmM5M2ZjNTk2ZGNiOWMyNmNjNmRlZjMyY2Y2YmI3NmQ0MWQ2
ZjljN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTEzNSw4ICsxMzUsMTQgQEAganMvZG9tL2RmZy1pbmxpbmUtcmVzb2x2ZS5odG1sCiBz
Y3JvbGxiYXJzL2Nvcm5lci1yZXNpemVyLXdpbmRvdy1pbmFjdGl2ZS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiBzY3JvbGxiYXJzL3Njcm9sbGluZy1ieS1wYWdlLW9uLWtleWJvYXJkLXNwYWNl
YmFyLmh0bWwgWyBGYWlsdXJlIF0KIHNjcm9sbGJhcnMvc2Nyb2xsYmFycy1vbi1wb3NpdGlvbmVk
LWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQotY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtcGFkZGlu
Zy1tYWluZnJhbWUtcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KLWNzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXBhZGRpbmctb3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KKworIyBUZXN0cyB0
aGF0IHVzZSAicGFnZVVwIiBhbmQgInBhZ2VEb3duIiB0byBtb3ZlIGJ5IHBhZ2UgYXJlIGZhaWxp
bmcuCit3ZWJraXQub3JnL2IvMjIzNDI4IGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRpbmct
bWFpbmZyYW1lLXBhZ2luZy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjIzNDI4IGNz
czMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRpbmctb3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi8yMjM0MjggY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1v
dmVyZmxvdy1hbmltYXRlcy5odG1sIFsgRmFpbHVyZSBdCisKKyMgIk5vbi1uYXRpdmUiIHNjcm9s
bCBhbmltYXRpb25zIGRpc2FibGVkIGZvciBpT1MuCit3ZWJraXQub3JnL2IvMjIzNzQ0IGZhc3Qv
c2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1hbmltYXRlcy5odG1sIFsgRmFpbHVyZSBdCiAKICMg
U1ZHIHRlc3RzIHRoYXQgdGltZSBvdXQgKHRoZXNlIHJlcXVpcmUgRXZlbnRTZW5kZXIpCiBzdmcv
YW5pbWF0aW9ucy9hbmltVmFsLWJhc2ljcy5odG1sCkBAIC0xOTA3LDQgKzE5MTMsNCBAQCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMvbG93ZXIt
Z3JlZWsvY3NzMy1jb3VudGVyLQogCiB3ZWJraXQub3JnL2IvMjIzNTg2IHdlYmdsL2NvbmZvcm1h
bmNlL2V4dGVuc2lvbnMva2hyLXBhcmFsbGVsLXNoYWRlci1jb21waWxlLmh0bWwgWyBTa2lwIF0K
IAotd2Via2l0Lm9yZy9iLzIxNDk1NSBmYXN0L3BhcnNlci94bWwtY29sb24tZW50aXR5Lmh0bWwg
WyBGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjE0
OTU1IGZhc3QvcGFyc2VyL3htbC1jb2xvbi1lbnRpdHkuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3OGM2ZjFjYTAyYTUxMTFh
YTY3NzQ4ZTZkMTgyMWFhZDg5ZmU5ZTY2Li5lYTFhNmQ4ODZlNzc2MjgwMDc3Mjg0YWFmNGUzODg1
Y2RhNjczMjRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNDYyNSwzICs0NjI1LDUgQEAgZmFzdC9mb3Jtcy9vbnNlbGVjdC10ZXh0ZmllbGQuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiBmYXN0L2Zvcm1zL29wdGlvbi1tb3VzZWV2ZW50cy5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KIGZhc3QvZm9ybXMvcGFzc3dvcmQtZG91YmxlY2xpY2stc2VsZWN0aW9uLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogZmFzdC90ZXh0L29mZnNldEZvclBvc2l0aW9uLWNvbXBsZXgt
ZmFsbGJhY2suaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKK3dlYmtpdC5vcmcvYi8yMjM3NDMgZmFz
dC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsLWFuaW1hdGVzLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424332</attachid>
            <date>2021-03-26 02:05:59 -0700</date>
            <delta_ts>2021-11-30 01:50:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220767-20210326100557.patch</filename>
            <type>text/plain</type>
            <size>18842</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM2YzYwNzI5YjNhZjMy
MzA4YThmNjUyMmI0YjIxYTMzNDlkNGQ2NS4uYThmZDliZTdlNzNhMmI2NjRmOWY2ZTc5NDg4Njhm
OWM0NmJmZDgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAzLTI1ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBLZXlib2FyZCBz
Y3JvbGwgc25hcHBpbmcgZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNzY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MzY2MTYzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0czogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0
ZXMuaHRtbAorCisgICAgICAgIFR1cm4gb24gYW5pbWF0aW9ucyBpbiBvdmVyZmxvdzpzY3JvbGwg
YXJlYXMuIFRoaXMgbWVhbnMgdGhhdCB3aGVuIGRvaW5nCisgICAgICAgIGtleWJvYXJkIHNjcm9s
bGluZywgdGhlIGNvbnRlbnRzIG9mIFJlbmRlckxheWVycyB3aWxsIGFuaW1hdGUgaW4gdGhlCisg
ICAgICAgIHNhbWUgd2F5IHRoYXQgU2Nyb2xsVmlld3MgZG8uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6
c2V0U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3I6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyk6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOiBOZXcgbWV0
aG9kIGRlY2xhcmF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxBbmltYXRpb25FbmFibGVkRm9y
U3lzdGVtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5o
OiBFbmFibGUgYW5pbWF0aW9ucyBmb3IgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS4KKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZGVkIG5ldyBBUEkgdG8gdHVybiBvbiBzeXN0
ZW0gc2Nyb2xsIGFuaW1hdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGUpOiBSZXNldCBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nIGNvbnN0
KTogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkZWQgbmV3IG1ldGhv
ZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6IERpdHRvLgorCiAyMDIxLTAzLTI1
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFsbCBC
b29rcyBxdWlya3MgYXJlIGZsYWtpbHkgbm90IGFwcGxpZWQgaW4gbW9kZXJuIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGFjMmMyMjk4ZmIz
NDcwZDdjMjQ5MzNhZTlhZTY1MTAwYmYyZjhiM2EuLjVkYjEwNmVmYTZmMTU1Yjg1MDE5MGQ1MTIy
MDBiNDQ4ODYxNTYxNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5jcHAKQEAgLTM5OSw1ICszOTksMTEgQEAgZmxvYXQgU2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNj
cm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZlbnRBeGlzIGF4aXMKICNlbmRp
ZgogfQogCitib29sIFNjcm9sbEFuaW1hdG9yOjpzX3Njcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JU
ZXN0aW5nID0gZmFsc2U7CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3I6OnNldFNjcm9sbEFuaW1hdGlv
bkVuYWJsZWRGb3JUZXN0aW5nKGJvb2wgdmFsdWUpCit7CisgICAgc19zY3JvbGxBbmltYXRpb25F
bmFibGVkRm9yVGVzdGluZyA9IHZhbHVlOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCBlOTc3OWQxMWFlMTdj
MjA1MjVmYmY1ZGZkNDAwNzk3MWQ5OTBkZTc0Li4zNWYzNTI1MzQ1ZTA3Y2M0NmFjY2I0MTRkYWI4
MTllMjk3ZmM5MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgK
QEAgLTE2OSw2ICsxNjksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVz
dENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikg
Y29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHNldFNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nKGJvb2wpOworICAgIHN0YXRpYyBi
b29sIHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JUZXN0aW5nKCkgeyByZXR1cm4gc19zY3JvbGxB
bmltYXRpb25FbmFibGVkRm9yVGVzdGluZzsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKTsKICAgICB2
b2lkIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNldCgpOwpAQCAtMTgyLDYgKzE4
NSw3IEBAIHByb3RlY3RlZDoKICAgICBGbG9hdFBvaW50IG1fY3VycmVudFBvc2l0aW9uOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEFuaW1hdGlvbj4gbV9zY3JvbGxBbmltYXRpb247Cisg
ICAgc3RhdGljIGJvb2wgc19zY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZzsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBjMDk1Y2Q2NmY1OTU2ZjhiODlhYWNiMzNkNWI3
ZjgwMjMwYTlhN2I1Li4yODU0MjA0NzhlMzZiOTA4MjU1MmMwZTJjNDcyNjAzOWQyYjY2YjljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
CkBAIC03MjgsNiArNzI4LDggQEAgU2Nyb2xsQW5pbWF0b3JNYWM6On5TY3JvbGxBbmltYXRvck1h
YygpCiAKIHN0YXRpYyBib29sIHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKQogewor
ICAgIGlmIChTY3JvbGxBbmltYXRvcjo6c2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3Rpbmco
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgTlNTdHJpbmcqIHNjcm9sbEFuaW1hdGlvbkRl
ZmF1bHRzS2V5ID0gQCJOU1Njcm9sbEFuaW1hdGlvbkVuYWJsZWQiOwogICAgIHN0YXRpYyBib29s
IGVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9y
S2V5OnNjcm9sbEFuaW1hdGlvbkRlZmF1bHRzS2V5XTsKICAgICByZXR1cm4gZW5hYmxlZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVB
cmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YS5oCmluZGV4IGRlMjZiMzA0ODk2NjY2YTVjZGQ2NGI1MGY3NmQ2ZDUxZWQ2M2VhZDMuLjE3YzAx
NDU4M2I0YzU1ZWNlNTZiMzJiYWQ2ZDdlOGY0NzQxNDJjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTcwLDYg
KzE3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaXNSZW5kZXJMYXllcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxl
ZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGludmFsaWRhdGVTY3Jv
bGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGlu
dmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICAgICBib29s
IGlzQWN0aXZlKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggNzQyZWU3ZGY3YjI5MDcwMGUwNzhkNGZjMDQ2OWJhM2UxOGExMTc4ZS4uYzc0YjhlM2Fm
ZDgyNzRhNjFiMWZiYjQyZmZjZjNmZTQwMDc2M2VjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtMTgwLDYgKzE4MCw3IEBACiAjaW5jbHVkZSAiU1dDbGllbnRDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3IuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtNjA1LDYgKzYw
Niw4IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2Up
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDb250ZW50U2l6ZUNh
dGVnb3J5KGtDVEZvbnRDb250ZW50U2l6ZUNhdGVnb3J5TCk7CiAjZW5kaWYKKworICAgIFNjcm9s
bEFuaW1hdG9yOjpzZXRTY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyhmYWxzZSk7CiB9
CiAKIEludGVybmFsczo6SW50ZXJuYWxzKERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTYyMTIsNCAr
NjIxNSw5IEBAIGJvb2wgSW50ZXJuYWxzOjpyYW5nZUludGVyc2VjdHNSYW5nZShjb25zdCBBYnN0
cmFjdFJhbmdlJiBhLCBjb25zdCBBYnN0cmFjdFJhbmdlCiAgICAgcmV0dXJuIGludGVyc2VjdHNG
b3JUZXN0aW5nKGNvbnZlcnRUeXBlKHR5cGUpLCBtYWtlU2ltcGxlUmFuZ2UoYSksIG1ha2VTaW1w
bGVSYW5nZShiKSk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRTY3JvbGxBbmltYXRpb25FbmFi
bGVkRm9yVGVzdGluZyhib29sIHZhbHVlKSBjb25zdAoreworICAgIFNjcm9sbEFuaW1hdG9yOjpz
ZXRTY3JvbGxBbmltYXRpb25FbmFibGVkRm9yVGVzdGluZyh2YWx1ZSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDIxM2Q4N2Nl
ZjY0YWQ1YWRlNmJhMDI1ODA3NDgxZTU5ODkwOTc4OTYuLjAxMDA2MTYxODk0ZjU3ODc5YTY0M2Nm
NDQ0ZmM2MTNhZjk3NTE2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjU4
LDYgKzI1OCw5IEBAIHB1YmxpYzoKICAgICAvLyBGb3IgYW5pbWF0aW9ucyB0ZXN0aW5nLCB3ZSBu
ZWVkIGEgd2F5IHRvIGdldCBhdCBwc2V1ZG8gZWxlbWVudHMuCiAgICAgRXhjZXB0aW9uT3I8UmVm
UHRyPEVsZW1lbnQ+PiBwc2V1ZG9FbGVtZW50KEVsZW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAor
ICAgIC8vIEFsbG93IHNjcm9sbGluZyBhbmltYXRpb25zLgorICAgIHZvaWQgc2V0U2Nyb2xsQW5p
bWF0aW9uRW5hYmxlZEZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgY29uc3Q7CisKICAgICBOb2RlKiB0
cmVlU2NvcGVSb290Tm9kZShOb2RlJik7CiAgICAgTm9kZSogcGFyZW50VHJlZVNjb3BlKE5vZGUm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDJjOTQ4YjIyYjc3MTRj
MTk3M2YyYzM0ZjgxZGVlNzA4YzIzNmNiMTEuLjA0ZjBhYTRhYWQ2NDQxODQ1YTRlYzRlNTVhOWZk
MmEzMDdhMmYyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTMzNiw2
ICszMzYsOSBAQCBlbnVtIFRyZWVUeXBlIHsKICAgICAvLyBGb3IgYW5pbWF0aW9ucyB0ZXN0aW5n
LCB3ZSBuZWVkIGEgd2F5IHRvIGdldCBhdCBwc2V1ZG8gZWxlbWVudHMuCiAgICAgRWxlbWVudD8g
cHNldWRvRWxlbWVudChFbGVtZW50IGVsZW1lbnQsIERPTVN0cmluZyBwc2V1ZG9JZCk7CiAKKyAg
ICAvLyBhbGxvdyBzY3JvbGxpbmcgYW5pbWF0aW9ucy4KKyAgICB1bmRlZmluZWQgc2V0U2Nyb2xs
QW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcoYm9vbGVhbiB2YWx1ZSk7CisKICAgICBET01TdHJp
bmcgdmlzaWJsZVBsYWNlaG9sZGVyKEVsZW1lbnQgZWxlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNl
bGVjdENvbG9ySW5Db2xvckNob29zZXIoSFRNTElucHV0RWxlbWVudCBlbGVtZW50LCBET01TdHJp
bmcgY29sb3JWYWx1ZSk7CiAgICAgc2VxdWVuY2U8RE9NU3RyaW5nPiBmb3JtQ29udHJvbFN0YXRl
T2ZQcmV2aW91c0hpc3RvcnlJdGVtKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmU4OGEyZDM0ZTY2ZTAyMjA3NGFkMDAz
ZjRhYTBjYmEzZjI2YjA0OC4uNTAyYjEyN2I5NTY5ODIzM2E0ODBmMmI3YTI5ODQwNDhhMzgzZWE0
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAzLTI1ICBNYXJ0aW4gUm9iaW5zb24gIDxt
cm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBLZXlib2FyZCBzY3JvbGwgc25hcHBpbmcg
ZG9lcyBub3QgYW5pbWF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIwNzY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MzY2MTYzND4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtb3ZlcmZsb3ctYW5pbWF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW92ZXJmbG93LWFuaW1hdGVz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1h
bmltYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL292
ZXJmbG93LXNjcm9sbC1hbmltYXRlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlc2UgdGVzdHMgb24gaU9TLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIGEgbmV3IHRlc3Qgb24gV2lu
ZG93cy4KKwogMjAyMS0wMy0yNCAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBSZS1za2lwIG1vZGVybi1tZWRpYS1jb250cm9scyB0ZXN0cyBhZnRlciBy
Mjc0ODEwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW92ZXJmbG93LWFuaW1hdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtb3ZlcmZsb3ctYW5pbWF0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBjYWQ1YTE5ZWU3ZDZhZDQ3ZGI0OTczMWMzNTg2ZGVmMDc1Mzc4YWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW92ZXJm
bG93LWFuaW1hdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1BBU1MgcGFnZWQgZG93
biBpbiBzY3JvbGxlZCBvdmVyZmxvdworUEFTUyByZXR1cm5lZCB0byBmaXJzdCBwb3NpdGlvbgor
UEFTUyBzYXcgZnJhbWUgYW5pbWF0aW5nCitQQVNTIGZyYW1lIGRpZCBub3QgZmluaXNoIGFuaW1h
dGluZworUEFTUyBmcmFtZSBhbmltYXRpb24gY29tcGxldGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5odG1sIGIvTGF5
b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1vdmVyZmxvdy1hbmltYXRlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmZmIwODVlZjQwNjNkNDY1YThkNGNiZGQzYTZjYjZjOTVjOTlmMjgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW92ZXJmbG93LWFuaW1hdGVzLmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRyaWdnZXJpbmcgc2Nyb2xs
IHNuYXBwaW5nIHdpdGggdGhlIGtleWJvYXJkIHNob3VsZCBhbmltYXQ8L3RpdGxlPgorICAgICAg
ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgLmNvbnRhaW5lciB7CisgICAg
ICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7
CisgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgICAgICAgICAgICAgc2Nyb2xs
LXNuYXAtdHlwZTogYm90aCBtYW5kYXRvcnk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IC5ibG9jayB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgICAg
IHdpZHRoOiAyNTBweDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7
CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5j
IGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRleHQgPSAiVHJpZ2dlcmluZyBzY3JvbGwgc25hcHBp
bmcgd2l0aCB0aGUga2V5Ym9hcmQgc2hvdWxkIGFuaW1hdGUuIjsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
U2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclRlc3RpbmcodHJ1ZSk7CisKKyAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxNTApOwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIC8vIEZpcnN0IGRldGVj
dCBob3cgbXVjaCB3ZSBzaG91bGQgcGFnZSBkb3duIGR1cmluZyBhIHBhZ2UgZG93bi4KKyAgICAg
ICAgICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRh
aW5lciIpOworICAgICAgICAgICAgICAgIFVJSGVscGVyLmtleURvd24oInBhZ2VEb3duIik7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlv
blRvU2V0dGxlKGNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkUGFnZURv
d25Qb3NpdGlvbiA9IGNvbnRhaW5lci5zY3JvbGxUb3A7CisgICAgICAgICAgICAgICAgZXhwZWN0
VHJ1ZShleHBlY3RlZFBhZ2VEb3duUG9zaXRpb24gIT0gMCwgInBhZ2VkIGRvd24gaW4gc2Nyb2xs
ZWQgb3ZlcmZsb3ciKTsKKworICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSAw
OworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmlt
YXRpb25Ub1NldHRsZShjb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoY29u
dGFpbmVyLnNjcm9sbFRvcCA9PSAwLCAicmV0dXJuZWQgdG8gZmlyc3QgcG9zaXRpb24iKTsKKwor
ICAgICAgICAgICAgICAgIC8vIE5vdyB0cmlnZ2VyIGFub3RoZXIgcGFnZSBkb3duIGFuZCBlbnN1
cmUgaXQgYW5pbWF0ZXMKKyAgICAgICAgICAgICAgICBVSUhlbHBlci5rZXlEb3duKCJwYWdlRG93
biIpOworCisgICAgICAgICAgICAgICAgbGV0IG51bWJlck9mTW92ZW1lbnRzID0gMDsKKyAgICAg
ICAgICAgICAgICBsZXQgY3VycmVudFBvc2l0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAg
ICAgICAgICAgICAgICBmb3IgKGxldCBudW1iZXJPZkZyYW1lcyA9IDA7IG51bWJlck9mRnJhbWVz
IDwgMTAwOyBudW1iZXJPZkZyYW1lcysrKSB7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLmFuaW1hdGlvbkZyYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWlu
ZXIuc2Nyb2xsVG9wID4gY3VycmVudFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBudW1iZXJPZk1vdmVtZW50cysrOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBv
c2l0aW9uID0gY29udGFpbmVyLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBpZiAobnVtYmVyT2ZNb3ZlbWVudHMgPT0gNSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGV4cGVjdFRydWUobnVtYmVyT2ZNb3ZlbWVudHMgPT0gNSwgInNhdyBmcmFtZSBhbmltYXRpbmci
KTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGNvbnRhaW5lci5zY3JvbGxUb3AgPCBleHBl
Y3RlZFBhZ2VEb3duUG9zaXRpb24sICJmcmFtZSBkaWQgbm90IGZpbmlzaCBhbmltYXRpbmciKTsK
KworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmlt
YXRpb25Ub1NldHRsZShjb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUoY29u
dGFpbmVyLnNjcm9sbFRvcCA9PSBleHBlY3RlZFBhZ2VEb3duUG9zaXRpb24sICJmcmFtZSBhbmlt
YXRpb24gY29tcGxldGVkIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAg
ICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Cisg
ICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2Pgor
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJiYWNrZ3JvdW5kOiAjQ0M1QTcx
Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwIGlkPSJjb25zb2xlIj48L3A+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1h
bmltYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxv
dy1zY3JvbGwtYW5pbWF0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYWQ1YTE5ZWU3ZDZh
ZDQ3ZGI0OTczMWMzNTg2ZGVmMDc1Mzc4YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorUEFTUyBwYWdlZCBkb3duIGluIHNjcm9sbGVkIG92ZXJmbG93CitQQVNT
IHJldHVybmVkIHRvIGZpcnN0IHBvc2l0aW9uCitQQVNTIHNhdyBmcmFtZSBhbmltYXRpbmcKK1BB
U1MgZnJhbWUgZGlkIG5vdCBmaW5pc2ggYW5pbWF0aW5nCitQQVNTIGZyYW1lIGFuaW1hdGlvbiBj
b21wbGV0ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3Jv
bGwtYW5pbWF0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNj
cm9sbC1hbmltYXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViYTNhMjk3MDRjZmEzMGYwNmRjYzM0ZjQ2
ZWRkM2I0NjY4NzJiZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9vdmVyZmxvdy1zY3JvbGwtYW5pbWF0ZXMuaHRtbApAQCAtMCwwICsxLDg0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+U2Nyb2xsaW5n
IHdpdGggdGhlIGtleWJvYXJkIGluIHNjcm9sbGluZyBvdmVyZmxvdyBzaG91bGQgYW5pbWF0ZTwv
dGl0bGU+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICAuY29u
dGFpbmVyIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgLmJsb2NrIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEw
MCU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgICAgICAgfQorICAgICAg
ICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBvbkxvYWQoKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyID09IHVuZGVmaW5lZCkg
eworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5u
ZXJUZXh0ID0gIlNjcm9sbGluZyB3aXRoIHRoZSBrZXlib2FyZCBpbiBzY3JvbGxpbmcgb3ZlcmZs
b3cgc2hvdWxkIGFuaW1hdGUuIjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0U2Nyb2xsQW5pbWF0aW9uRW5h
YmxlZEZvclRlc3RpbmcodHJ1ZSk7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxNTApOworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKKworICAgICAgICAgICAgICAgIC8vIEZpcnN0IGRldGVjdCBob3cgbXVjaCB3ZSBzaG91
bGQgcGFnZSBkb3duIGR1cmluZyBhIHBhZ2UgZG93bgorICAgICAgICAgICAgICAgIGxldCBjb250
YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgICAgICAgICAg
ICAgICAgVUlIZWxwZXIua2V5RG93bigicGFnZURvd24iKTsKKyAgICAgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUoY29udGFpbmVy
KTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRQYWdlRG93blBvc2l0aW9uID0gY29udGFp
bmVyLnNjcm9sbFRvcDsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKGV4cGVjdGVkUGFnZURv
d25Qb3NpdGlvbiAhPSAwLCAicGFnZWQgZG93biBpbiBzY3JvbGxlZCBvdmVyZmxvdyIpOworCisg
ICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IDA7CisgICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKGNvbnRh
aW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShjb250YWluZXIuc2Nyb2xsVG9wID09
IDAsICJyZXR1cm5lZCB0byBmaXJzdCBwb3NpdGlvbiIpOworCisgICAgICAgICAgICAgICAgLy8g
Tm93IHRyaWdnZXIgYW5vdGhlciBwYWdlIGRvd24gYW5kIGVuc3VyZSBpdCBhbmltYXRlcworICAg
ICAgICAgICAgICAgIFVJSGVscGVyLmtleURvd24oInBhZ2VEb3duIik7CisKKyAgICAgICAgICAg
ICAgICBsZXQgbnVtYmVyT2ZNb3ZlbWVudHMgPSAwOworICAgICAgICAgICAgICAgIGxldCBjdXJy
ZW50UG9zaXRpb24gPSBjb250YWluZXIuc2Nyb2xsVG9wOworICAgICAgICAgICAgICAgIGZvciAo
bGV0IG51bWJlck9mRnJhbWVzID0gMDsgbnVtYmVyT2ZGcmFtZXMgPCAxMDA7IG51bWJlck9mRnJh
bWVzKyspIHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYW5pbWF0aW9uRnJh
bWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5zY3JvbGxUb3AgPiBjdXJy
ZW50UG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mTW92ZW1lbnRz
Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPSBjb250YWluZXIu
c2Nyb2xsVG9wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
IChudW1iZXJPZk1vdmVtZW50cyA9PSA1KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShudW1iZXJP
Zk1vdmVtZW50cyA9PSA1LCAic2F3IGZyYW1lIGFuaW1hdGluZyIpOworICAgICAgICAgICAgICAg
IGV4cGVjdFRydWUoY29udGFpbmVyLnNjcm9sbFRvcCA8IGV4cGVjdGVkUGFnZURvd25Qb3NpdGlv
biwgImZyYW1lIGRpZCBub3QgZmluaXNoIGFuaW1hdGluZyIpOworCisgICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKGNvbnRh
aW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShjb250YWluZXIuc2Nyb2xsVG9wID09
IGV4cGVjdGVkUGFnZURvd25Qb3NpdGlvbiwgImZyYW1lIGFuaW1hdGlvbiBjb21wbGV0ZWQiKTsK
KyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhl
KTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKyAgICAgICAgPGRpdiBpZD0iY29u
dGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2Nr
IiBzdHlsZT0iYmFja2dyb3VuZDogIzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPHAgaWQ9ImNvbnNvbGUiPjwvcD4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFhODFjMTBmYWJiYmRhYWQ1MWYz
NTYwNjc1YTA2YWM5MjE5MDBjYmYuLjZkY2VjYTNlMmZmZjJiZWIyNDk0ZDcwMWYwYzk1NmFkN2Jk
MTMzNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTEzNSw4ICsxMzUsMTQgQEAganMvZG9tL2RmZy1pbmxpbmUtcmVzb2x2ZS5odG1sCiBz
Y3JvbGxiYXJzL2Nvcm5lci1yZXNpemVyLXdpbmRvdy1pbmFjdGl2ZS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiBzY3JvbGxiYXJzL3Njcm9sbGluZy1ieS1wYWdlLW9uLWtleWJvYXJkLXNwYWNl
YmFyLmh0bWwgWyBGYWlsdXJlIF0KIHNjcm9sbGJhcnMvc2Nyb2xsYmFycy1vbi1wb3NpdGlvbmVk
LWNvbnRlbnQuaHRtbCBbIEZhaWx1cmUgXQotY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtcGFkZGlu
Zy1tYWluZnJhbWUtcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KLWNzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXBhZGRpbmctb3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KKworIyBUZXN0cyB0
aGF0IHVzZSAicGFnZVVwIiBhbmQgInBhZ2VEb3duIiB0byBtb3ZlIGJ5IHBhZ2UgYXJlIGZhaWxp
bmcuCit3ZWJraXQub3JnL2IvMjIzNDI4IGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRpbmct
bWFpbmZyYW1lLXBhZ2luZy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjIzNDI4IGNz
czMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXBhZGRpbmctb3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi8yMjM0MjggY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1v
dmVyZmxvdy1hbmltYXRlcy5odG1sIFsgRmFpbHVyZSBdCisKKyMgIk5vbi1uYXRpdmUiIHNjcm9s
bCBhbmltYXRpb25zIGRpc2FibGVkIGZvciBpT1MuCit3ZWJraXQub3JnL2IvMjIzNzQ0IGZhc3Qv
c2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbC1hbmltYXRlcy5odG1sIFsgRmFpbHVyZSBdCiAKICMg
U1ZHIHRlc3RzIHRoYXQgdGltZSBvdXQgKHRoZXNlIHJlcXVpcmUgRXZlbnRTZW5kZXIpCiBzdmcv
YW5pbWF0aW9ucy9hbmltVmFsLWJhc2ljcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDc4YzZmMWNhMDJhNTExMWFhNjc3NDhlNmQxODIxYWFkODlm
ZTllNjYuLmVhMWE2ZDg4NmU3NzYyODAwNzcyODRhYWY0ZTM4ODVjZGE2NzMyNGMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NjI1LDMgKzQ2MjUsNSBA
QCBmYXN0L2Zvcm1zL29uc2VsZWN0LXRleHRmaWVsZC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGZh
c3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogZmFzdC9m
b3Jtcy9wYXNzd29yZC1kb3VibGVjbGljay1zZWxlY3Rpb24uaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiBmYXN0L3RleHQvb2Zmc2V0Rm9yUG9zaXRpb24tY29tcGxleC1mYWxsYmFjay5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KKword2Via2l0Lm9yZy9iLzIyMzc0MyBmYXN0L3Njcm9sbGluZy9vdmVyZmxv
dy1zY3JvbGwtYW5pbWF0ZXMuaHRtbCBbIFNraXAgXQo=
</data>
<flag name="commit-queue"
          id="443997"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>