<?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>144780</bug_id>
          
          <creation_ts>2015-05-07 18:54:48 -0700</creation_ts>
          <short_desc>Remove touchadjustment tests</short_desc>
          <delta_ts>2015-05-07 23:31:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1092977</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-05-07 18:54:48 -0700</bug_when>
    <thetext>This feature is no longer part of WebKit and every port skips the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092979</commentid>
    <comment_count>1</comment_count>
      <attachid>252672</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-05-07 18:56:48 -0700</bug_when>
    <thetext>Created attachment 252672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093040</commentid>
    <comment_count>2</comment_count>
      <attachid>252672</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-07 22:57:05 -0700</bug_when>
    <thetext>Comment on attachment 252672
Patch

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

&gt; LayoutTests/ChangeLog:7
&gt; +        Remove touchadjustment tests
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=144780
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +

For your consideration, I suggest we add a remark that mentions that the TOUCH_ADJUSTMENT code was removed in &lt;http://trac.webkit.org/changeset/162231&gt; (bug #127181).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093055</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-05-07 23:31:35 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 252672 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=252672&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:7
&gt; &gt; +        Remove touchadjustment tests
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=144780
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; 
&gt; For your consideration, I suggest we add a remark that mentions that the
&gt; TOUCH_ADJUSTMENT code was removed in
&gt; &lt;http://trac.webkit.org/changeset/162231&gt; (bug #127181).

Good idea. I&apos;ve added this information to the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093056</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-05-07 23:31:46 -0700</bug_when>
    <thetext>Committed r183982: &lt;http://trac.webkit.org/changeset/183982&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252672</attachid>
            <date>2015-05-07 18:56:48 -0700</date>
            <delta_ts>2015-05-07 22:57:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144780-20150507185529.patch</filename>
            <type>text/plain</type>
            <size>122926</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzOTcwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzRiMTY2MTY2NjQ2ODkwNGI0ODhk
ODllNzVjYWVhYTJlZWRhNGI3Ni4uNmIyODQyNTRhYWUyNmE2MjFiZGVjMTNhZDJhZDA1ZGMxNmQ4
MTdiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA1LTA3ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgdG91Y2hhZGp1c3RtZW50
IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDQ3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOiBSZW1vdmUgZXhwZWN0YXRpb25zLgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9uczogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiB0b3VjaGFkanVzdG1lbnQ6IFJlbW92ZWQg
YWxsIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgorCiAyMDE1LTA1LTA3ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ29uc2lkZXIgaW1wbGVtZW50aW5nIERvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMjRkNTEwYWVjZTkyODBiZDE4NzFjZjVkZjc4YzE2ZTA1MTAwMmIzNS4uNWQzM2Zl
ZDhhOWZjOWJhOGE3ZWNiMWYzZjBkYjQyMTYxNDkyZTEwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExMzcsOSArMTEzNyw2IEBAIHdlYmtpdC5vcmcv
Yi82MTkzMiBbIERlYnVnIF0ganF1ZXJ5L21hbmlwdWxhdGlvbi5odG1sIFsgRmFpbHVyZSBQYXNz
IFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvNDkxNDIgZmFzdC9jc3Mvc3R5bGUtc2NvcGVkIFsg
U2tpcCBdCiAKLSMgVGhlc2UgdGVzdHMgcmVxdWlyZSBUT1VDSF9BREpVU1RNRU5UIGZsYWcgdG8g
YmUgZW5hYmxlZAotd2Via2l0Lm9yZy9iLzc4ODAxIHRvdWNoYWRqdXN0bWVudAotCiAjIFRyYWNr
aW5nIGNvcm5lciBub3QgYmVpbmcgcGFpbnRlZCBmb3IgVGV4dEFyZWEuCiB3ZWJraXQub3JnL2Iv
OTIyMSBmYXN0L2Nzcy9yZXNpemUtY29ybmVyLXRyYWNraW5nLXRyYW5zZm9ybWVkLWlmcmFtZS5o
dG1sIFsgTWlzc2luZyBdCiB3ZWJraXQub3JnL2IvODU0ODQgZmFzdC9jc3MvcmVzaXplLWNvcm5l
ci10cmFja2luZy10cmFuc2Zvcm1lZC5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDY5NjkxYWE3MDhiM2IwZTMxZmJkZmYyZDlj
N2QxYmNiOWIzYzNkZGYuLjlmOTIwZWU4MjdjNGU1MDgzNWVjYjRjZWQ5OWE2ZGJlZGUwMzJkNDkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjUsMTAg
KzMyNSw2IEBAIHdlYmtpdC5vcmcvYi85OTAzNiBodHRwL3Rlc3RzL3BvaW50ZXItbG9jayBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzk1NTgyIGJhdHRlcnlzdGF0dXMgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi85NTU4MiBiYXR0ZXJ5c3RhdHVzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uaHRtbCBb
IFRpbWVvdXQgXQogCi0jIFRvdWNoIGFkanVzdG1lbnQgbm90IGVuYWJsZWQKLXdlYmtpdC5vcmcv
Yi85OTA1NCB0b3VjaGFkanVzdG1lbnQgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85OTA1NCB0
b3VjaGFkanVzdG1lbnQvaWZyYW1lLmh0bWwgWyBUaW1lb3V0IF0KLQogIyBJRVRDIGZsZXhib3gg
ZmFpbHVyZXMKIHdlYmtpdC5vcmcvYi84NTIxMSBpZXRlc3RjZW50ZXIvY3NzMy9mbGV4Ym94L2Zs
ZXhib3gtYWxpZ24tc3RyZXRjaC0wMDEuaHRtIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvODUyMTIgaWV0ZXN0Y2VudGVyL2NzczMvZmxleGJveC9mbGV4Ym94LWxheW91dC0wMDIu
aHRtIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGM1NWY5OGEyMjdkYzBiOGQwNmFl
NjNmMWU2ZjMwYWI4ZGNkOWY5ZC4uNTQ0ZTQ5ZWE0ZGExNTk5MjZmZDlmYmZhZGRlZjY1ZGYxM2Y0
YTE0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtNDYsNyArNDYsNiBAQCBnYW1lcGFkCiBqYXZhCiBtaHRtbAogcHJv
eGltaXR5Ci10b3VjaGFkanVzdG1lbnQKIHZpYnJhdGlvbgogCiAjIEVOQUJMRShNRURJQV9DQVBU
VVJFKSBpcyBub3QgZW5hYmxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBkZGZhNTQ3M2M1YzIwZDM5ZjkzNTRiM2Y2Yzk0OTM3Njg1NTRkNjMyLi5hYWIw
ZTQ0MTQwZGQ3YmNhMzUwM2M1OGZlMzdlODFhZmE2YTc2YjM0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk3LDkgKzI5Nyw2IEBAIHdlYmtpdC5vcmcv
Yi83ODI5MCBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0
bWwgWyBGYWlsdXJlCiAjIE5lZWRzIFBhZ2VDbGllbnRzOjp2aWJyYXRpb25DbGllbnQoKSBpbXBs
ZW1lbnRhdGlvbi4KIHdlYmtpdC5vcmcvYi83MjAxMCB2aWJyYXRpb24KIAotIyBUb3VjaCBhZGp1
c3RtZW50IG5vdCBlbmFibGVkCi13ZWJraXQub3JnL2IvNzg4MDEgdG91Y2hhZGp1c3RtZW50Ci0K
ICMgPHJkYXI6Ly9wcm9ibGVtLzExMDU5Nzc3Pgogd2Via2l0Lm9yZy9iLzgxMjg5IGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQubGluZS5jYXAucm91bmQuaHRtbCBbIEZhaWx1cmUgXQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA2ZWMzNjJlYzY3YmRhMTYy
YjViNGQ3M2RlNDFlZjdmMjQ3OGI3ODcuLjhmODJlNmExZWIxMGE1OWVlMDdjNjVhMDg4ZjExNGMy
YmIwODA3NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBA
IC01MDEsOSArNTAxLDYgQEAgaHR0cC90ZXN0cy9wb2ludGVyLWxvY2svIFsgU2tpcCBdCiAjIFRP
RE8gVmlicmF0aW9uIEFQSSBpcyBub3QgaW1wbGVtZW50ZWQuCiB2aWJyYXRpb24vIFsgU2tpcCBd
CiAKLSMgVG91Y2ggYWRqdXN0bWVudCBub3QgZW5hYmxlZCBvbiBXaW5kb3dzIChvciBtYWMpCi13
ZWJraXQub3JnL2IvNzg4MDEgdG91Y2hhZGp1c3RtZW50LyBbIFNraXAgXQotCiAjIE5lZWRzIEJh
dHRlcnlDbGllbnQgaW1wbGVtZW50YXRpb24uCiB3ZWJraXQub3JnL2IvNjI2OTggYmF0dGVyeXN0
YXR1cy8gWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMmZlZDBkOTMwODg0MmM3MWZmYmZjMDJkOTVhZTY2NjNlYjI3NWZm
Yy4uMDJlYWIwNjc5YzJiOTJiZjhiMWNjMzI5YjU2ZDM0YzdlYTdlZDVlYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTY3LDEwICsy
MTY3LDYgQEAgYmF0dGVyeXN0YXR1cwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODI2MjgKIHN2Zy9oaXR0ZXN0L3N2Zy1lbGxpcHNlLW5vbi1zY2FsZS1zdHJva2Uu
eGh0bWwKIAotIyBUb3VjaCBhZGp1c3RtZW50IG5vdCBlbmFibGVkCi0jIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgwMQotdG91Y2hhZGp1c3RtZW50Ci0KICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMDIyCiB0YWJsZXMvbW96aWxs
YV9leHBlY3RlZF9mYWlsdXJlcy9idWdzL2J1Zzg1MDE2Lmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2JpZy1kaXYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvdG91Y2hhZGp1c3RtZW50L2JpZy1kaXYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMWUzYjhmNmM5MjZlMTJjYTBmYTRkNWZiZWJjYjhjMDNmMGRlYjAzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3RvdWNoYWRqdXN0bWVudC9iaWctZGl2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDY0ICswLDAgQEAKLVRlc3QgdG91Y2ggYWRqdXN0bWVudCBvbiBhIGxhcmdlIGRpdi4gVGhlIGFk
anVzdGVkIHRvdWNoIHBvaW50IHNob3VsZCBsaWUgaW5zaWRlIHRoZSB0YXJnZXQgZWxlbWVudCBh
bmQgd2l0aGluIHRoZSB0b3VjaCBhcmVhLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotCi1PdmVybGFwcGluZyB0b3VjaCBhYm92ZSB0aGUgdGFyZ2V0IHNob3VsZCBzbmFwIHRvIHRo
ZSB0b3Agb2YgdGhlIHRhcmdldCBlbGVtZW50LgotUEFTUyBhZGp1c3RlZE5vZGUuaWQgaXMgZWxl
bWVudC5pZAotUEFTUyBhZGp1c3RlZFBvaW50LnggPj0gdGFyZ2V0Qm91bmRzLmxlZnQgaXMgdHJ1
ZQotUEFTUyBhZGp1c3RlZFBvaW50LnggPD0gdGFyZ2V0Qm91bmRzLmxlZnQgKyB0YXJnZXRCb3Vu
ZHMud2lkdGggaXMgdHJ1ZQotUEFTUyBhZGp1c3RlZFBvaW50LnkgPj0gdGFyZ2V0Qm91bmRzLnRv
cCBpcyB0cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQueSA8PSB0YXJnZXRCb3VuZHMudG9wICsgdGFy
Z2V0Qm91bmRzLmhlaWdodCBpcyB0cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQueCA+PSB0b3VjaEJv
dW5kcy54IGlzIHRydWUKLVBBU1MgYWRqdXN0ZWRQb2ludC54IDw9IHRvdWNoQm91bmRzLnggKyB0
b3VjaEJvdW5kcy53aWR0aCBpcyB0cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQueSA+PSB0b3VjaEJv
dW5kcy55IGlzIHRydWUKLVBBU1MgYWRqdXN0ZWRQb2ludC55IDw9IHRvdWNoQm91bmRzLnkgKyB0
b3VjaEJvdW5kcy5oZWlnaHQgaXMgdHJ1ZQotCi1PdmVybGFwcGluZyB0b3VjaCBiZWxvdyB0aGUg
dGFyZ2V0IHNob3VsZCBzbmFwIHRvIHRoZSBib3R0b20gb2YgdGhlIHRhcmdldCBlbGVtZW50Lgot
UEFTUyBhZGp1c3RlZE5vZGUuaWQgaXMgZWxlbWVudC5pZAotUEFTUyBhZGp1c3RlZFBvaW50Lngg
Pj0gdGFyZ2V0Qm91bmRzLmxlZnQgaXMgdHJ1ZQotUEFTUyBhZGp1c3RlZFBvaW50LnggPD0gdGFy
Z2V0Qm91bmRzLmxlZnQgKyB0YXJnZXRCb3VuZHMud2lkdGggaXMgdHJ1ZQotUEFTUyBhZGp1c3Rl
ZFBvaW50LnkgPj0gdGFyZ2V0Qm91bmRzLnRvcCBpcyB0cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQu
eSA8PSB0YXJnZXRCb3VuZHMudG9wICsgdGFyZ2V0Qm91bmRzLmhlaWdodCBpcyB0cnVlCi1QQVNT
IGFkanVzdGVkUG9pbnQueCA+PSB0b3VjaEJvdW5kcy54IGlzIHRydWUKLVBBU1MgYWRqdXN0ZWRQ
b2ludC54IDw9IHRvdWNoQm91bmRzLnggKyB0b3VjaEJvdW5kcy53aWR0aCBpcyB0cnVlCi1QQVNT
IGFkanVzdGVkUG9pbnQueSA+PSB0b3VjaEJvdW5kcy55IGlzIHRydWUKLVBBU1MgYWRqdXN0ZWRQ
b2ludC55IDw9IHRvdWNoQm91bmRzLnkgKyB0b3VjaEJvdW5kcy5oZWlnaHQgaXMgdHJ1ZQotCi1P
dmVybGFwcGluZyB0b3VjaCBsZWZ0IG9mIHRoZSB0YXJnZXQgc2hvdWxkIHNuYXAgdG8gdGhlIGxl
ZnQgc2lkZSBvZiB0aGUgdGFyZ2V0IGVsZW1lbnQuCi1QQVNTIGFkanVzdGVkTm9kZS5pZCBpcyBl
bGVtZW50LmlkCi1QQVNTIGFkanVzdGVkUG9pbnQueCA+PSB0YXJnZXRCb3VuZHMubGVmdCBpcyB0
cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQueCA8PSB0YXJnZXRCb3VuZHMubGVmdCArIHRhcmdldEJv
dW5kcy53aWR0aCBpcyB0cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQueSA+PSB0YXJnZXRCb3VuZHMu
dG9wIGlzIHRydWUKLVBBU1MgYWRqdXN0ZWRQb2ludC55IDw9IHRhcmdldEJvdW5kcy50b3AgKyB0
YXJnZXRCb3VuZHMuaGVpZ2h0IGlzIHRydWUKLVBBU1MgYWRqdXN0ZWRQb2ludC54ID49IHRvdWNo
Qm91bmRzLnggaXMgdHJ1ZQotUEFTUyBhZGp1c3RlZFBvaW50LnggPD0gdG91Y2hCb3VuZHMueCAr
IHRvdWNoQm91bmRzLndpZHRoIGlzIHRydWUKLVBBU1MgYWRqdXN0ZWRQb2ludC55ID49IHRvdWNo
Qm91bmRzLnkgaXMgdHJ1ZQotUEFTUyBhZGp1c3RlZFBvaW50LnkgPD0gdG91Y2hCb3VuZHMueSAr
IHRvdWNoQm91bmRzLmhlaWdodCBpcyB0cnVlCi0KLU92ZXJsYXBwaW5nIHRvdWNoIHJpZ2h0IG9m
IHRoZSB0YXJnZXQgc2hvdWxkIHNuYXAgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHRhcmdldCBl
bGVtZW50LgotUEFTUyBhZGp1c3RlZE5vZGUuaWQgaXMgZWxlbWVudC5pZAotUEFTUyBhZGp1c3Rl
ZFBvaW50LnggPj0gdGFyZ2V0Qm91bmRzLmxlZnQgaXMgdHJ1ZQotUEFTUyBhZGp1c3RlZFBvaW50
LnggPD0gdGFyZ2V0Qm91bmRzLmxlZnQgKyB0YXJnZXRCb3VuZHMud2lkdGggaXMgdHJ1ZQotUEFT
UyBhZGp1c3RlZFBvaW50LnkgPj0gdGFyZ2V0Qm91bmRzLnRvcCBpcyB0cnVlCi1QQVNTIGFkanVz
dGVkUG9pbnQueSA8PSB0YXJnZXRCb3VuZHMudG9wICsgdGFyZ2V0Qm91bmRzLmhlaWdodCBpcyB0
cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQueCA+PSB0b3VjaEJvdW5kcy54IGlzIHRydWUKLVBBU1Mg
YWRqdXN0ZWRQb2ludC54IDw9IHRvdWNoQm91bmRzLnggKyB0b3VjaEJvdW5kcy53aWR0aCBpcyB0
cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQueSA+PSB0b3VjaEJvdW5kcy55IGlzIHRydWUKLVBBU1Mg
YWRqdXN0ZWRQb2ludC55IDw9IHRvdWNoQm91bmRzLnkgKyB0b3VjaEJvdW5kcy5oZWlnaHQgaXMg
dHJ1ZQotCi1UZXN0IHRvdWNoIGFyZWEgY29udGFpbmVkIHdpdGhpbiB0aGUgdGFyZ2V0IGVsZW1l
bnQuCi1QQVNTIGFkanVzdGVkTm9kZS5pZCBpcyBlbGVtZW50LmlkCi1QQVNTIGFkanVzdGVkUG9p
bnQueCA+PSB0YXJnZXRCb3VuZHMubGVmdCBpcyB0cnVlCi1QQVNTIGFkanVzdGVkUG9pbnQueCA8
PSB0YXJnZXRCb3VuZHMubGVmdCArIHRhcmdldEJvdW5kcy53aWR0aCBpcyB0cnVlCi1QQVNTIGFk
anVzdGVkUG9pbnQueSA+PSB0YXJnZXRCb3VuZHMudG9wIGlzIHRydWUKLVBBU1MgYWRqdXN0ZWRQ
b2ludC55IDw9IHRhcmdldEJvdW5kcy50b3AgKyB0YXJnZXRCb3VuZHMuaGVpZ2h0IGlzIHRydWUK
LVBBU1MgYWRqdXN0ZWRQb2ludC54ID49IHRvdWNoQm91bmRzLnggaXMgdHJ1ZQotUEFTUyBhZGp1
c3RlZFBvaW50LnggPD0gdG91Y2hCb3VuZHMueCArIHRvdWNoQm91bmRzLndpZHRoIGlzIHRydWUK
LVBBU1MgYWRqdXN0ZWRQb2ludC55ID49IHRvdWNoQm91bmRzLnkgaXMgdHJ1ZQotUEFTUyBhZGp1
c3RlZFBvaW50LnkgPD0gdG91Y2hCb3VuZHMueSArIHRvdWNoQm91bmRzLmhlaWdodCBpcyB0cnVl
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2JpZy1kaXYuaHRtbCBiL0xheW91
dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9iaWctZGl2Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDA4NTZkMDcyNDkxZWYyYjY3NDJmNjkwYmFmZmM2MjIxYTBkNTk0MDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91
Y2hhZGp1c3RtZW50L2JpZy1kaXYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8dGl0bGU+VG91Y2ggQWRqdXN0
bWVudCA6IFRvbyBhZ2dyZXNpdmUgYWRqdXN0bWVudHMgZm9yIGxhcmdlIGVsZW1lbnRzIC0gYnVn
IDkxMjYyPC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RvdWNoYWRqdXN0bWVu
dC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHN0eWxlPgotICAgICAgICAjdGFyZ2V0RGl2IHsKLSAgICAg
ICAgICAgIGJhY2tncm91bmQ6ICMwMGY7Ci0gICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwotICAg
ICAgICAgICAgd2lkdGg6IDQwMHB4OwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4K
LQotPGJvZHk+Ci0KLTxkaXYgaWQ9InRhcmdldERpdiI+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2Ny
aXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICB2
YXIgZWxlbWVudDsKLSAgICB2YXIgYWRqdXN0ZWROb2RlOwotICAgIHZhciBhZGp1c3RlZFBvaW50
OwotICAgIHZhciB0YXJnZXRCb3VuZHM7Ci0gICAgdmFyIHRvdWNoQm91bmRzOwotCi0gICAgZnVu
Y3Rpb24gcnVuVG91Y2hUZXN0cygpIHsKLSAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXREaXYiKTsKLSAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCdjbGljaycsIGZ1bmN0aW9uKCkge30sIGZhbHNlKTsKLSAgICAgICAgZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHt9LCBmYWxzZSk7Ci0KLSAgICAgICAgdGFy
Z2V0Qm91bmRzID0gZmluZEFic29sdXRlQm91bmRzKGVsZW1lbnQpOwotCi0gICAgICAgIHZhciB0
b3VjaFJhZGl1cyA9IDEwOwotICAgICAgICB2YXIgb2Zmc2V0ID0gdG91Y2hSYWRpdXMgLyAyOwot
ICAgICAgICB2YXIgbWlkWCA9IHRhcmdldEJvdW5kcy5sZWZ0ICsgdGFyZ2V0Qm91bmRzLndpZHRo
IC8gMjsKLSAgICAgICAgdmFyIG1pZFkgPSB0YXJnZXRCb3VuZHMudG9wICsgdGFyZ2V0Qm91bmRz
LmhlaWdodCAvIDI7Ci0KLSAgICAgICAgZGVidWcoJ1xuT3ZlcmxhcHBpbmcgdG91Y2ggYWJvdmUg
dGhlIHRhcmdldCBzaG91bGQgc25hcCB0byB0aGUgdG9wIG9mIHRoZSB0YXJnZXQgZWxlbWVudC4n
KTsKLSAgICAgICAgdGVzdFRvdWNoKG1pZFgsIHRhcmdldEJvdW5kcy50b3AgLSBvZmZzZXQsIHRv
dWNoUmFkaXVzLCB0YXJnZXRCb3VuZHMpOwotICAgICAgICBkZWJ1ZygnXG5PdmVybGFwcGluZyB0
b3VjaCBiZWxvdyB0aGUgdGFyZ2V0IHNob3VsZCBzbmFwIHRvIHRoZSBib3R0b20gb2YgdGhlIHRh
cmdldCBlbGVtZW50LicpOwotICAgICAgICB0ZXN0VG91Y2gobWlkWCwgdGFyZ2V0Qm91bmRzLnRv
cCArIHRhcmdldEJvdW5kcy5oZWlnaHQgKyBvZmZzZXQsIHRvdWNoUmFkaXVzLCB0YXJnZXRCb3Vu
ZHMpOwotICAgICAgICBkZWJ1ZygnXG5PdmVybGFwcGluZyB0b3VjaCBsZWZ0IG9mIHRoZSB0YXJn
ZXQgc2hvdWxkIHNuYXAgdG8gdGhlIGxlZnQgc2lkZSBvZiB0aGUgdGFyZ2V0IGVsZW1lbnQuJyk7
Ci0gICAgICAgIHRlc3RUb3VjaCh0YXJnZXRCb3VuZHMubGVmdCAtIG9mZnNldCwgbWlkWSwgdG91
Y2hSYWRpdXMsIHRhcmdldEJvdW5kcyk7Ci0gICAgICAgIGRlYnVnKCdcbk92ZXJsYXBwaW5nIHRv
dWNoIHJpZ2h0IG9mIHRoZSB0YXJnZXQgc2hvdWxkIHNuYXAgdG8gdGhlIHJpZ2h0IHNpZGUgb2Yg
dGhlIHRhcmdldCBlbGVtZW50LicpOwotICAgICAgICB0ZXN0VG91Y2godGFyZ2V0Qm91bmRzLmxl
ZnQgKyB0YXJnZXRCb3VuZHMud2lkdGggKyBvZmZzZXQsIG1pZFksIHRvdWNoUmFkaXVzLCB0YXJn
ZXRCb3VuZHMpOwotICAgICAgICBkZWJ1ZygnXG5UZXN0IHRvdWNoIGFyZWEgY29udGFpbmVkIHdp
dGhpbiB0aGUgdGFyZ2V0IGVsZW1lbnQuJyk7Ci0gICAgICAgIHRlc3RUb3VjaChtaWRYLCBtaWRZ
LCB0b3VjaFJhZGl1cywgdGFyZ2V0Qm91bmRzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0
VG91Y2godG91Y2hYLCB0b3VjaFksIHJhZGl1cywgdGFyZ2V0Qm91bmRzKSB7Ci0KLSAgICAgICAg
dG91Y2hCb3VuZHMgPSB7Ci0gICAgICAgICAgICB4OiB0b3VjaFggLSByYWRpdXMsCi0gICAgICAg
ICAgICB5OiB0b3VjaFkgLSByYWRpdXMsCi0gICAgICAgICAgICB3aWR0aDogMiAqIHJhZGl1cywK
LSAgICAgICAgICAgIGhlaWdodDogMiAqIHJhZGl1cwotICAgICAgICB9OwotICAgICAgICBhZGp1
c3RlZE5vZGUgPSBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2Rl
KHRvdWNoQm91bmRzLngsIHRvdWNoQm91bmRzLnksIHRvdWNoQm91bmRzLndpZHRoLCB0b3VjaEJv
dW5kcy5oZWlnaHQpOwotICAgICAgICBzaG91bGRCZSgnYWRqdXN0ZWROb2RlLmlkJywgJ2VsZW1l
bnQuaWQnKTsKLSAgICAgICAgYWRqdXN0ZWRQb2ludCA9IGludGVybmFscy50b3VjaFBvc2l0aW9u
QWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKHRvdWNoQm91bmRzLngsIHRvdWNoQm91bmRzLnks
IHRvdWNoQm91bmRzLndpZHRoLCB0b3VjaEJvdW5kcy5oZWlnaHQpOwotCi0gICAgICAgIHNob3Vs
ZEJlVHJ1ZSgnYWRqdXN0ZWRQb2ludC54ID49IHRhcmdldEJvdW5kcy5sZWZ0Jyk7Ci0gICAgICAg
IHNob3VsZEJlVHJ1ZSgnYWRqdXN0ZWRQb2ludC54IDw9IHRhcmdldEJvdW5kcy5sZWZ0ICsgdGFy
Z2V0Qm91bmRzLndpZHRoJyk7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgnYWRqdXN0ZWRQb2ludC55
ID49IHRhcmdldEJvdW5kcy50b3AnKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCdhZGp1c3RlZFBv
aW50LnkgPD0gdGFyZ2V0Qm91bmRzLnRvcCArIHRhcmdldEJvdW5kcy5oZWlnaHQnKTsKLSAgICAg
ICAgc2hvdWxkQmVUcnVlKCdhZGp1c3RlZFBvaW50LnggPj0gdG91Y2hCb3VuZHMueCcpOwotICAg
ICAgICBzaG91bGRCZVRydWUoJ2FkanVzdGVkUG9pbnQueCA8PSB0b3VjaEJvdW5kcy54ICsgdG91
Y2hCb3VuZHMud2lkdGgnKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCdhZGp1c3RlZFBvaW50Lnkg
Pj0gdG91Y2hCb3VuZHMueScpOwotICAgICAgICBzaG91bGRCZVRydWUoJ2FkanVzdGVkUG9pbnQu
eSA8PSB0b3VjaEJvdW5kcy55ICsgdG91Y2hCb3VuZHMuaGVpZ2h0Jyk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKQotICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0
Q2xpY2thYmxlTm9kZSkgewotICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdG91Y2ggYWRq
dXN0bWVudCBvbiBhIGxhcmdlIGRpdi4gIFRoZSBhZGp1c3RlZCB0b3VjaCBwb2ludCBzaG91bGQg
bGllIGluc2lkZSB0aGUgdGFyZ2V0IGVsZW1lbnQgYW5kIHdpdGhpbiB0aGUgdG91Y2ggYXJlYS4n
KTsKLSAgICAgICAgICAgIHJ1blRvdWNoVGVzdHMoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBy
dW5UZXN0cygpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvYmxvY2stdGVzdGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvYmxvY2stdGVzdGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkOWU1OGQ3N2VkYWU4ZTNhYmE1NGEzMWM4MjA0NjdlOGNl
YmQ3YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Jsb2NrLXRlc3RpbmctZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGVzdCB0b3VjaC1hZGp1c3RtZW50IG9uIGEgYmxv
Y2sgd2hlcmUgd2UgYWxzbyB0b3VjaCB0aGUgaW5uZXIgdGV4dCBhbmQgb3V0c2lkZSBsaW5rLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBE
SVYjZGl2MS4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvYmxvY2stdGVzdGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Jsb2NrLXRlc3RpbmcuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMxYWY2MTZmODIyMWZiM2JmNWUzYTY5NDVi
ZDg1N2U2MzVlOTk0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvYmxvY2stdGVzdGluZy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50OiBidWcgODIwNDQ8L3RpdGxlPgotICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdG91Y2hhZGp1c3RtZW50LmpzIj48L3NjcmlwdD4KLSAgICA8
c3R5bGU+Ci0gICAgICAgICNzYW5kYm94IHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7
IHRvcDogMHB4OyB3aWR0aDogNDAwcHg7IGhlaWdodDogMjAwcHg7IH0KLSAgICAgICAgI2RpdjEg
eyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwcHg7IHRvcDogNTBweDsgd2lkdGg6IDIwMHB4
OyBoZWlnaHQ6IDUwcHg7fQotICAgICAgICAjZGl2MiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogNTBweDsgdG9wOiAxMDBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDUwcHg7fQotICAgIDwv
c3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8ZGl2IGlkPXNhbmRib3g+Ci0gICAgICAgIDxk
aXYgaWQ9ZGl2MSBvbmNsaWNrPW9uQ2xpY2s+Ci0gICAgICAgIFNvbWUgdGV4dC4KLSAgICAgICAg
PC9kaXY+Ci0KLSAgICAgICAgPGRpdiBpZD1kaXYyPgotICAgICAgICBTb21lIHRleHQuIDxhIGlk
PWExIGhyZWY9IiMxIj5BIGxpbms8L2E+Ci0gICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotCi0g
ICAgPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci0gICAgPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+
Ci0KLSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlvbiBvbkNsaWNrKCkgewotICAgICAgICB9
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdERpcmVjdFRvdWNoZXMoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDIwMCwgOTAsIDIwMCksIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdkaXYxJykpOwotCi0gICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RD
bGlja2FibGVOb2RlKSB7Ci0gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdG91Y2gt
YWRqdXN0bWVudCBvbiBhIGJsb2NrIHdoZXJlIHdlIGFsc28gdG91Y2ggdGhlIGlubmVyIHRleHQg
YW5kIG91dHNpZGUgbGluay4nKTsKLSAgICAgICAgICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygp
OwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jykuc3R5
bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBy
dW5UZXN0cygpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQv
Y29udGV4dC1tZW51LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9j
b250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
NzRmMDc5NzNkYzFkNzM2MDhmMzZhNjBjNDE0YWQwY2JiMDM1ODU4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC9jb250ZXh0LW1lbnUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBA
QAotVGVzdCB0b3VjaCBhZGp1c3RtZW50IGZvciBjb250ZXh0LW1lbnUgZ2VzdHVyZXMuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIEEjYTAu
Ci1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIFNQQU4jc3BhbjAuCi1QQVNTIGFkanVzdGVkIG5vZGUg
d2FzIG51bGwuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIFNQQU4jc3BhbjAuCi1QQVNTIGFkanVz
dGVkIG5vZGUgd2FzIElNRyNpbWcwLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBBI2EwLgotUEFT
UyBhZGp1c3RlZCBub2RlIHdhcyBudWxsLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBBI2EwLgot
UEFTUyBhZGp1c3RlZCBub2RlIHdhcyBJTUcjaW1nMC4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMg
SU1HI2ltZzAuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIFNQQU4jc3BhbjAuCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2NvbnRleHQtbWVudS1zZWxlY3QtdGV4dC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvY29udGV4dC1tZW51LXNlbGVjdC10
ZXh0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhmMzcwMGMy
MTdhMThlMzUzMzYzMmIxNWJjNDI4ZWExOTU1YTIyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvY29udGV4
dC1tZW51LXNlbGVjdC10ZXh0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICsw
LDAgQEAKLVRlc3QgdG91Y2ggYWRqdXN0bWVudCBmb3IgY29udGV4dC1tZW51IGdlc3R1cmVzIHdp
dGggYXV0b21hdGljIHNlbGVjdCBiZWhhdmlvdXIuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIG51bGwuCi1QQVNTIGFkanVzdGVkIG5vZGUg
d2FzICdUZXh0IHRleHQgdGV4dC4nLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC9jb250ZXh0LW1lbnUtc2VsZWN0LXRleHQuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0
bWVudC9jb250ZXh0LW1lbnUtc2VsZWN0LXRleHQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOWZmY2E5ZDY3ZWEzZWZmZjkzMDM2Nzc0MzAzZTNiMjA1OTdlZWQ3YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3Vj
aGFkanVzdG1lbnQvY29udGV4dC1tZW51LXNlbGVjdC10ZXh0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHRp
dGxlPlRvdWNoIEFkanVzdG1lbnQgOiBBZGp1c3QgY29udGV4dC1tZW51IHRvIHNlbGVjdGFibGUg
dGV4dCAtIGJ1ZyA5NDEwMTwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90b3Vj
aGFkanVzdG1lbnQuanMiPjwvc2NyaXB0PgotICAgIDxzdHlsZT4KLSAgICAgICAgI3NhbmRib3gg
ewotICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICAgICAgdG9wOiAwcHg7
Ci0gICAgICAgICAgICBsZWZ0OiAwcHg7Ci0gICAgICAgICAgICB3aWR0aDogNDAwcHg7Ci0gICAg
ICAgICAgICBoZWlnaHQ6IDIwMHB4OwotICAgICAgICB9Ci0gICAgICAgICNzYW5kYm94IHAgewot
ICAgICAgICAgICAgcGFkZGluZzogNXB4OwotICAgICAgICAgICAgZm9udDogMjBweCBBaGVtOwot
ICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotCi08ZGl2IGlkPXNhbmRi
b3g+Ci0gICAgPHAgaWQ9cDE+PHNwYW4gaWQ9c3BhbjE+VGV4dCB0ZXh0IHRleHQuPC9zcGFuPgot
PC9kaXY+Ci0KLTxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgotPGRpdiBpZD0nY29uc29sZSc+PC9k
aXY+Ci0KLTxzY3JpcHQ+Ci0gICAgLy8gU2V0IHVwIHNob3J0Y3V0IGFjY2VzcyB0byBlbGVtZW50
cwotICAgIHZhciBlID0ge307Ci0gICAgWydzYW5kYm94JywgJ3AxJywgJ3NwYW4xJ10uZm9yRWFj
aChmdW5jdGlvbihhKSB7Ci0gICAgICAgIGVbYV0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChh
KTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIHRlc3RBZGp1c3RlZFRvdWNoZXMoKQotICAgIHsK
LSAgICAgICAgLy8gU2V0IGVkaXRpbmctYmVoYXZpb3VyIHRvIHdpbiwgc28gY29udGV4dC1tZW51
IGdlc3R1cmUgZG9lcyBub3QgdHJpZ2dlciBzZWxlY3Rpb25zLgotICAgICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCd3aW4nKTsKLSAgICAgICAgLy8gQ2hlY2sgdGhl
IGNvbnRleHQtbWVudSBpcyBub3QgYWRqdXN0ZWQgdG8gdGhlIHNlbGVjdGFibGUgdGV4dC4KLSAg
ICAgICAgdGVzdFRvdWNoUG9pbnRDb250ZXh0TWVudSh0b3VjaFBvaW50KDEwMCwgMzAsIDIwKSwg
bnVsbCwgdHJ1ZSk7Ci0gICAgICAgIC8vIFNldCBlZGl0aW5nLWJlaGF2aW91ciBtYWMsIHNvIGNv
bnRleHQtbWVudSBnZXN0dXJlIHRyaWdnZXJzIHNlbGVjdGlvbnMuCi0gICAgICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ21hYycpOwotICAgICAgICAvLyBDaGVjayB0
aGUgY29udGV4dC1tZW51IGlzIGFkanVzdGVkIHRvIHRoZSBzZWxlY3RhYmxlIHRleHQuCi0gICAg
ICAgIHRlc3RUb3VjaFBvaW50Q29udGV4dE1lbnUodG91Y2hQb2ludCgxMDAsIDMwLCAyMCksICIn
VGV4dCB0ZXh0IHRleHQuJyIsIHRydWUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3Rz
KCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENvbnRleHRNZW51Tm9kZSkg
ewotICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdG91Y2ggYWRqdXN0bWVudCBmb3IgY29u
dGV4dC1tZW51IGdlc3R1cmVzIHdpdGggYXV0b21hdGljIHNlbGVjdCBiZWhhdmlvdXIuJyk7Ci0g
ICAgICAgICAgICB0ZXN0QWRqdXN0ZWRUb3VjaGVzKCk7Ci0gICAgICAgICAgICBlLnNhbmRib3gu
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICAgICAgfQotICAgIH0KLSAgICBydW5UZXN0cygp
OwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dG91Y2hhZGp1c3RtZW50L2NvbnRleHQtbWVudS1zaGFkb3ctbm9kZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvY29udGV4dC1tZW51LXNoYWRvdy1ub2RlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTk2NTk4NDc5MTQ3ZTQxNDQx
ZWYyNGRmYjMwNGZhMGMzNjkxZDdkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvY29udGV4dC1tZW51LXNo
YWRvdy1ub2RlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRl
c3QgdG91Y2ggYWRqdXN0bWVudCBmb3IgY29udGV4dC1tZW51IGdlc3R1cmVzIG9uIGEgc2hhZG93
LURPTSBlbGVtZW50LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBhZGp1
c3RlZCBub2RlIHdhcyBudWxsLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9j
b250ZXh0LW1lbnUtc2hhZG93LW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC9jb250ZXh0LW1lbnUtc2hhZG93LW5vZGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTBmNDY2OWYyYTE0ZWE2ZGYxMGQzMzU5ZGZkOWI3ZjNhM2M0YWQ2My4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFk
anVzdG1lbnQvY29udGV4dC1tZW51LXNoYWRvdy1ub2RlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHRpdGxl
PlRvdWNoIEFkanVzdG1lbnQgOiBIYW5kbGUgbG9uZyBwcmVzcyBvbiBhIHNoYWRvdyBET00gZWxl
bWVudCAtIGJ1ZyA5NjMxMzwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90b3Vj
aGFkanVzdG1lbnQuanMiPjwvc2NyaXB0PgotICAgIDxzdHlsZT4KLSAgICAgICAgI3NhbmRib3gg
ewotICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwZjsKLSAgICAgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICAgICAgICAgIHRvcDogMHB4OwotICAgICAgICAgICAgbGVmdDogMHB4Owot
ICAgICAgICAgICAgd2lkdGg6IDEwMHB4OwotICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKLSAg
ICAgICAgfQotICAgICAgICAjZGVzY3JpcHRpb24gewotICAgICAgICAgIG1hcmdpbi10b3A6IDEx
MHB4OwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxkaXYg
aWQ9InNhbmRib3giPjwvZGl2PgotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdj
b25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICB2YXIgc2FuZGJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0KLSAgICBmdW5jdGlvbiBhZGRTaGFkb3dET00oKSB7
Ci0gICAgICAgIHZhciB0YXJnZXREaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FuZGJv
eCIpOwotICAgICAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdl
dERpdik7Ci0gICAgICAgIHZhciBzaGFkb3dEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKLSAgICAgICAgc2hhZG93RGl2LnN0eWxlLndpZHRoID0gIjIwcHgiOwotICAgICAgICBz
aGFkb3dEaXYuc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOwotICAgICAgICBzaGFkb3dEaXYuc3R5bGUu
YmFja2dyb3VuZCA9ICIjZmYwIjsKLSAgICAgICAgc2hhZG93RGl2LnN0eWxlLnBvc2l0aW9uID0g
ImFic29sdXRlIjsKLSAgICAgICAgc2hhZG93RGl2LnN0eWxlLnJpZ2h0ID0gIjEwcHgiOwotICAg
ICAgICBzaGFkb3dEaXYuc3R5bGUudG9wID0gIjEwcHgiOwotICAgICAgICByb290LmFwcGVuZENo
aWxkKHNoYWRvd0Rpdik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdHMoKQotICAgIHsK
LSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50
ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q29udGV4dE1lbnVOb2RlICYmIGludGVybmFs
cy5lbnN1cmVTaGFkb3dSb290KSB7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdCB0b3Vj
aCBhZGp1c3RtZW50IGZvciBjb250ZXh0LW1lbnUgZ2VzdHVyZXMgb24gYSBzaGFkb3ctRE9NIGVs
ZW1lbnQuJyk7Ci0gICAgICAgICAgICBhZGRTaGFkb3dET00oKTsKLSAgICAgICAgICAgIC8vIFRl
c3QgdGhhdCBhIGxvbmcgcHJlc3MgY2VudGVyZWQgb24gYSBzaGFkb3ctRE9NIGVsZW1lbnQgZG9l
cyBub3QgY3Jhc2guCi0gICAgICAgICAgICB0ZXN0VG91Y2hQb2ludENvbnRleHRNZW51KHRvdWNo
UG9pbnQoODAsIDIwLCAxMCksIG51bGwpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJ1blRlc3Rz
KCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rv
dWNoYWRqdXN0bWVudC9jb250ZXh0LW1lbnUtdGV4dC1zdWJ0YXJnZXRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9jb250ZXh0LW1lbnUtdGV4dC1zdWJ0YXJnZXRz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDFiZmQ3OWM5MGRj
ZmQxMGU0YjQwMjgwM2ZkMjBmYTBmNTM2OGFkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvY29udGV4dC1t
ZW51LXRleHQtc3VidGFyZ2V0cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSAr
MCwwIEBACi1UZXN0IHRvdWNoLWFkanVzdG1lbnQgdG8gaW5kaXZpZHVhbCB3b3JkcyBvciBhY3Rp
dmUgc2VsZWN0aW9uLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBhZGp1
c3RlZCBwb2ludCB3YXMgd2l0aGluICgxMCwxMCl4KDgwLDIwKQotUEFTUyBhZGp1c3RlZCBwb2lu
dCB3YXMgd2l0aGluICgxMCwxMCl4KDgwLDIwKQotUEFTUyBhZGp1c3RlZCBwb2ludCB3YXMgd2l0
aGluICgxNzAsMTApeCg4MCwyMCkKLVBBU1MgYWRqdXN0ZWQgcG9pbnQgd2FzIHdpdGhpbiAoMTcw
LDEwKXgoODAsMjApCi1QQVNTIGFkanVzdGVkIHBvaW50IHdhcyB3aXRoaW4gKDUwLDEwKXgoODAs
MjApCi1QQVNTIGFkanVzdGVkIHBvaW50IHdhcyB3aXRoaW4gKDUwLDEwKXgoODAsMjApCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2NvbnRleHQtbWVudS10ZXh0LXN1YnRhcmdl
dHMuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9jb250ZXh0LW1lbnUtdGV4dC1z
dWJ0YXJnZXRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhMGI0Njc1M2M3
NzkwNjkzNWFhYzk3ZjMzN2EwODY5NDhlOTllMDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2NvbnRleHQt
bWVudS10ZXh0LXN1YnRhcmdldHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8dGl0bGU+VG91Y2ggQWRqdXN0
bWVudCA6IEFkanVzdCBjb250ZXh0LW1lbnUgdG8gdGV4dC1ub2RlIHN1YnRhcmdldHMgLSBidWcg
OTQ0NDk8L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdG91Y2hhZGp1c3RtZW50
LmpzIj48L3NjcmlwdD4KLSAgICA8c3R5bGU+Ci0gICAgICAgICNzYW5kYm94IHsKLSAgICAgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgIHRvcDogMHB4OwotICAgICAgICAg
ICAgbGVmdDogMHB4OwotICAgICAgICAgICAgd2lkdGg6IDQwMHB4OwotICAgICAgICAgICAgaGVp
Z2h0OiAyMDBweDsKLSAgICAgICAgfQotICAgICAgICAjc2FuZGJveCBkaXYgewotICAgICAgICAg
ICAgcGFkZGluZzogMTBweDsKLSAgICAgICAgICAgIGZvbnQ6IDIwcHggQWhlbTsKLSAgICAgICAg
ICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKLSAgICAgICAgfQotICAgIDwvc3R5bGU+Ci08L2hl
YWQ+Ci08Ym9keT4KLQotPGRpdiBpZD1zYW5kYm94PgotPCEtLSBUaGUgbGF5b3V0IG9mIHRoZSB0
d28gd29yZHMgc2hvdWxkIGJlOiAoMTAsMTApeCg4MCwyMCkgYW5kICgxNzAsMTApeCg4MCwyMCku
IC0tPgotICAgIDxkaXYgaWQ9ZGl2MT48c3BhbiBpZD1zcGFuMT5UZXh0ICAgIHRleHQ8L3NwYW4+
PC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25z
b2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNzIHRv
IGVsZW1lbnRzCi0gICAgdmFyIGUgPSB7fTsKLSAgICBbJ3NhbmRib3gnLCAnZGl2MScsICdzcGFu
MSddLmZvckVhY2goZnVuY3Rpb24oYSkgewotICAgICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoYSk7Ci0gICAgfSk7Ci0KLSAgICBmdW5jdGlvbiB0ZXN0QWRqdXN0ZWRUb3VjaGVz
KCkKLSAgICB7Ci0gICAgICAgIHZhciBhZGp1c3RlZFBvaW50OwotICAgICAgICB2YXIgd29yZDFC
b3VuZHMgPSB7IGxlZnQ6IDEwLCB0b3A6IDEwLCB3aWR0aDogODAsIGhlaWdodDogMjAgfTsKLSAg
ICAgICAgdmFyIHdvcmQyQm91bmRzID0geyBsZWZ0OiAxNzAsIHRvcDogMTAsIHdpZHRoOiA4MCwg
aGVpZ2h0OiAyMCB9OwotCi0gICAgICAgIC8vIFNldCBlZGl0aW5nLWJlaGF2aW91ciBtYWMsIHNv
IGNvbnRleHQtbWVudSBnZXN0dXJlIHRyaWdnZXJzIHNlbGVjdGlvbnMuCi0gICAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoJ21hYycpOwotICAgICAgICAvLyBDaGVj
ayB0aGUgY29udGV4dC1tZW51IGlzIGFkanVzdGVkIHRvIHRoZSBpbmRpdmlkdWFsIHdvcmRzLgot
ICAgICAgICBhZGp1c3RlZFBvaW50ID0gYWRqdXN0VG91Y2hQb2ludENvbnRleHRNZW51KHRvdWNo
UG9pbnQoNSwgNSwgMjAsIDEwKSk7Ci0gICAgICAgIHNob3VsZEJlV2l0aGluKGFkanVzdGVkUG9p
bnQsIHdvcmQxQm91bmRzKTsKLSAgICAgICAgYWRqdXN0ZWRQb2ludCA9IGFkanVzdFRvdWNoUG9p
bnRDb250ZXh0TWVudSh0b3VjaFBvaW50KDEwMCwgMTUsIDIwLCAxMCkpOwotICAgICAgICBzaG91
bGRCZVdpdGhpbihhZGp1c3RlZFBvaW50LCB3b3JkMUJvdW5kcyk7Ci0KLSAgICAgICAgYWRqdXN0
ZWRQb2ludCA9IGFkanVzdFRvdWNoUG9pbnRDb250ZXh0TWVudSh0b3VjaFBvaW50KDE1MCwgMTUs
IDMwLCAxMCkpOwotICAgICAgICBzaG91bGRCZVdpdGhpbihhZGp1c3RlZFBvaW50LCB3b3JkMkJv
dW5kcyk7Ci0gICAgICAgIGFkanVzdGVkUG9pbnQgPSBhZGp1c3RUb3VjaFBvaW50Q29udGV4dE1l
bnUodG91Y2hQb2ludCgyNjAsIDM1LCAyMCwgMTApKTsKLSAgICAgICAgc2hvdWxkQmVXaXRoaW4o
YWRqdXN0ZWRQb2ludCwgd29yZDJCb3VuZHMpOwotCi0gICAgICAgIC8vIFNldCBlZGl0aW5nLWJl
aGF2aW91ciB0byB3aW4sIHNvIGNvbnRleHQtbWVudSBnZXN0dXJlIGRvZXMgbm90IHRyaWdnZXIg
c2VsZWN0aW9ucy4KLSAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlv
cignd2luJyk7Ci0gICAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Ci0g
ICAgICAgIHJhbmdlLnNldFN0YXJ0KGUuc3BhbjEuZmlyc3RDaGlsZCwgMik7Ci0gICAgICAgIHJh
bmdlLnNldEVuZChlLnNwYW4xLmZpcnN0Q2hpbGQsIDYpOwotICAgICAgICB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYWRkUmFuZ2UocmFuZ2UpOwotICAgICAgICB2YXIgc2VsZWN0aW9uQm91bmRzID0g
eyBsZWZ0OiA1MCwgdG9wOiAxMCwgd2lkdGg6IDgwLCBoZWlnaHQ6IDIwIH07Ci0gICAgICAgIGFk
anVzdGVkUG9pbnQgPSBhZGp1c3RUb3VjaFBvaW50Q29udGV4dE1lbnUodG91Y2hQb2ludCgyNSwg
NSwgMzAsIDIwKSk7Ci0gICAgICAgIHNob3VsZEJlV2l0aGluKGFkanVzdGVkUG9pbnQsIHNlbGVj
dGlvbkJvdW5kcyk7Ci0gICAgICAgIGFkanVzdGVkUG9pbnQgPSBhZGp1c3RUb3VjaFBvaW50Q29u
dGV4dE1lbnUodG91Y2hQb2ludCgxNDAsIDEwLCAyMCwgMTApKTsKLSAgICAgICAgc2hvdWxkQmVX
aXRoaW4oYWRqdXN0ZWRQb2ludCwgc2VsZWN0aW9uQm91bmRzKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBydW5UZXN0cygpCi0gICAgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDb250
ZXh0TWVudU5vZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRvdWNoLWFkanVz
dG1lbnQgdG8gaW5kaXZpZHVhbCB3b3JkcyBvciBhY3RpdmUgc2VsZWN0aW9uLicpOwotICAgICAg
ICAgICAgdGVzdEFkanVzdGVkVG91Y2hlcygpOwotICAgICAgICAgICAgZS5zYW5kYm94LnN0eWxl
LmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcnVuVGVzdHMoKTsKLTwv
c2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNo
YWRqdXN0bWVudC9jb250ZXh0LW1lbnUuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC9jb250ZXh0LW1lbnUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RjZTNk
MjYyOTRmOTFlNzU2OWNjNDU3NTg2ZGFkYmU3NzYyZTczNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvY29u
dGV4dC1tZW51Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHRpdGxlPlRvdWNoIEFkanVzdG1lbnQgOiBBZGp1
c3QgdG8gY29udGV4dCBtZW51IHByb3ZpZGVycyAtIGJ1ZyA5NDEwMTwvdGl0bGU+Ci0gICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy90b3VjaGFkanVzdG1lbnQuanMiPjwvc2NyaXB0PgotICAgIDxz
dHlsZT4KLSAgICAgICAgI3NhbmRib3ggewotICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgICAgICAgICAgdG9wOiAwcHg7Ci0gICAgICAgICAgICBsZWZ0OiAwcHg7Ci0gICAgICAg
ICAgICB3aWR0aDogNDAwcHg7Ci0gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OwotICAgICAgICB9
Ci0gICAgICAgICNzYW5kYm94IHAgewotICAgICAgICAgICAgcGFkZGluZzogNXB4OwotICAgICAg
ICAgICAgZm9udDogMjBweCBBaGVtOwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4K
LTxib2R5PgotCi08c2NyaXB0PgotICAgIGZ1bmN0aW9uIG9uQ2xpY2soKSB7fQotPC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9c2FuZGJveD4KLSAgICA8cCBpZD1wMD48YSBpZD1hMCBocmVmPSIjYTAiPkxp
bmsgd2l0aCBVUkwuPC9hPgotICAgIDxwIGlkPXAxPjxzcGFuIGlkPXNwYW4wIG9uY2xpY2s9b25D
bGljaz5UZXh0IHdpdGggb25jbGljayBoYW5kbGVyLjwvc3Bhbj4KLSAgICA8cCBpZD1wMj48aW1n
IGlkPWltZzAgaGVpZ2h0PTIwIHdpZHRoPTEwMCBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxp
VkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQThBQUFBUEFRTUFBQUFCR0FjSkFBQUFBMUJNVkVVQWdB
Q2MrYVdSQUFBQURFbEVRVlI0Mm1OZ0lBRUFBQUF0QUFIN0toTXFBQUFBQUVsRlRrU3VRbUNDIj48
L2ltZz4KLTwvZGl2PgotCi08cCBpZD0nZGVzY3JpcHRpb24nPjwvcD4KLTxkaXYgaWQ9J2NvbnNv
bGUnPjwvZGl2PgotCi08c2NyaXB0PgotICAgIC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8g
ZWxlbWVudHMKLSAgICB2YXIgZSA9IHt9OwotICAgIFsnc2FuZGJveCcsICdhMCcsICdzcGFuMCcs
ICdpbWcwJywgJ3AwJywgJ3AxJywgJ3AyJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7Ci0gICAgICAg
IGVbYV0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsKLSAgICB9KTsKLQotICAgIGZ1bmN0
aW9uIHRlc3REaXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIC8vIENoZWNrIGxpbmtzIGNh
biBiZSB0YXJnZXRlZCB3aXRoIGNvbnRleHQgbWVudSBnZXN0dXJlLgotICAgICAgICB0ZXN0VG91
Y2hQb2ludENvbnRleHRNZW51KHRvdWNoUG9pbnQoMTAwLCAzNSwgMTApLCBlLmEwKTsKLSAgICAg
ICAgLy8gQ2hlY2sgb25jbGljayBjYW4gYmUgdGFyZ2V0ZWQgd2l0aCBhY3RpdmF0ZSBnZXN0dXJl
LgotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDEwMCwgMTAwLCAxMCksIGUuc3Bh
bjApOwotICAgICAgICAvLyBDaGVjayBvbmNsaWNrIGNhbiBub3QgYmUgdGFyZ2V0ZWQgd2l0aCBj
b250ZXh0IG1lbnUuCi0gICAgICAgIHRlc3RUb3VjaFBvaW50Q29udGV4dE1lbnUodG91Y2hQb2lu
dCgxMDAsIDEwMCwgMTApLCBudWxsKTsKLSAgICAgICAgLy8gQnV0IHRoYXQgdGhlIGFkanVzdGVk
IHBvaW50IHN0aWxsIGhpdHMgaXQsIGlmIG5vIGJldHRlciB0YXJnZXQgaXMgYXZhaWxhYmxlCi0g
ICAgICAgIHZhciBhZGp1c3RlZFBvaW50ID0gYWRqdXN0VG91Y2hQb2ludENvbnRleHRNZW51KHRv
dWNoUG9pbnQoMTAwLCAxMDAsIDEwKSk7Ci0gICAgICAgIGlmIChhZGp1c3RlZFBvaW50KSB7Ci0g
ICAgICAgICAgICBzaG91bGRCZU5vZGUoZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChhZGp1c3Rl
ZFBvaW50LngsIGFkanVzdGVkUG9pbnQueSksIGUuc3BhbjApOwotICAgICAgICB9Ci0gICAgICAg
IC8vIENoZWNrIGltYWdlcyBjYW4gYmUgdGFyZ2V0ZWQgd2l0aCBjb250ZXh0IG1lbnUuCi0gICAg
ICAgIHRlc3RUb3VjaFBvaW50Q29udGV4dE1lbnUob2Zmc2V0VG91Y2hQb2ludChmaW5kQWJzb2x1
dGVCb3VuZHMoZS5pbWcwKSwgJ2NlbnRlcicsIDAsIDUsIDUpLCBlLmltZzApOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHRlc3RBZGp1c3RlZFRvdWNoZXMoKQotICAgIHsKLSAgICAgICAgLy8gQ2hl
Y2sgd2UgaWYgd2UgYWRqdXN0IHRoZSBjb250ZXh0IG1lbnUgb250byB0aGUgbGluay4KLSAgICAg
ICAgdGVzdFRvdWNoUG9pbnRDb250ZXh0TWVudSh0b3VjaFBvaW50KDEwMCwgNTAsIDEwKSwgZS5h
MCk7Ci0gICAgICAgIC8vIENoZWNrIHdlIGlmIHdlIGRvIG5vdCBhZGp1c3QgdGhlIGNvbnRleHQg
bWVudSBvbnRvIHRoZSBvbmNsaWNrIGVsZW1lbnQuCi0gICAgICAgIHRlc3RUb3VjaFBvaW50Q29u
dGV4dE1lbnUodG91Y2hQb2ludCgxMDAsIDcwLCAxMCksIG51bGwpOwotICAgICAgICAvLyBDaGVj
ayB0aGUgbGluayBpcyBzdHJvbmdseSBwcmVmZXJyZWQuCi0gICAgICAgIHRlc3RUb3VjaFBvaW50
Q29udGV4dE1lbnUodG91Y2hQb2ludCgxMDAsIDYwLCAyMCksIGUuYTApOwotICAgICAgICAvLyBD
aGVjayBhZGp1c3RtZW50IG9udG8gdGhlIGltYWdlLgotICAgICAgICB0ZXN0VG91Y2hQb2ludENv
bnRleHRNZW51KHRvdWNoUG9pbnQoMjAsIDE0MCwgMTApLCBlLmltZzApOwotICAgICAgICAvLyBD
aGVjayB0aGUgaW1hZ2UgaXMgc3Ryb25nbHkgcHJlZmVycmVkIGZvciBjb250ZXh0IG1lbnUgZ2Vz
dHVyZXMuCi0gICAgICAgIHRlc3RUb3VjaFBvaW50Q29udGV4dE1lbnUodG91Y2hQb2ludCgyMCwg
MTIwLCAzMCksIGUuaW1nMCk7Ci0gICAgICAgIC8vIEJ1dCB0aGUgb25jbGljayBoYW5kbGVyIHdv
dWxkIGJlIHByZWZlcnJlZCBmb3IgYWN0aXZhdGUgZ2VzdHVyZXMuCi0gICAgICAgIHRlc3RUb3Vj
aFBvaW50KHRvdWNoUG9pbnQoMjAsIDEyMCwgMzApLCBlLnNwYW4wKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBydW5UZXN0cygpCi0gICAgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RD
b250ZXh0TWVudU5vZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRvdWNoIGFk
anVzdG1lbnQgZm9yIGNvbnRleHQtbWVudSBnZXN0dXJlcy4nKTsKLSAgICAgICAgICAgIC8vIFNl
dCBlZGl0aW5nLWJlaGF2aW91ciB0byB3aW4sIHNvIGNvbnRleHQtbWVudSBnZXN0dXJlIGRvZXMg
bm90IHRyaWdnZXIgc2VsZWN0aW9ucy4KLSAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRFZGl0aW5nQmVoYXZpb3IoJ3dpbicpOwotICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMo
KTsKLSAgICAgICAgICAgIHRlc3RBZGp1c3RlZFRvdWNoZXMoKTsKLSAgICAgICAgICAgIGUuc2Fu
ZGJveC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgICAgICB9Ci0gICAgfQotICAgIHJ1blRl
c3RzKCk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvZGlzYWJsZWQtZm9ybWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9kaXNhYmxlZC1mb3JtZWxlbWVudHMtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTFhODI3NTI3NzlhMDE3NWRj
MzZmNDY3OTdkOTQ1MTg1MWM4Y2FiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9kaXNhYmxlZC1mb3JtZWxl
bWVudHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVG91Y2gg
QWRqdXN0bWVudCA6IERpc2FibGVkIGZvcm0gZWxlbWVudHMgLSBidWcgOTIwOTMKLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVRlc3Qgd2UgY2FuIGhpdCB0aGUgZm9ybSBlbGVtZW50
cyBkaXJlY3RseS4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgbnVsbC4KLVBBU1MgYWRqdXN0ZWQg
bm9kZSB3YXMgTEFCRUwjbGFiZWwyLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBudWxsLgotUEFT
UyBhZGp1c3RlZCBub2RlIHdhcyBJTlBVVCNpbnB1dDIuCi1UZXN0IGluZGlyZWN0IHRvdWNoZXMg
YXJlIGFkanVzdGVkIHRvIHRoZSBlbmFibGVkIGZvcm0gZWxlbWVudHMuCi1QQVNTIGFkanVzdGVk
IG5vZGUgd2FzIExBQkVMI2xhYmVsMi4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgTEFCRUwjbGFi
ZWwyLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBMQUJFTCNsYWJlbDIuCi1QQVNTIGFkanVzdGVk
IG5vZGUgd2FzIElOUFVUI2lucHV0Mi4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgSU5QVVQjaW5w
dXQyLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBJTlBVVCNpbnB1dDIuCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Rpc2FibGVkLWZvcm1lbGVtZW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Rpc2FibGVkLWZvcm1lbGVtZW50cy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjRhN2U3ZjZlOGFmODY0ZWNhOWFkZDAwYzQ0MTA4NGYx
YzA4NTE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9kaXNhYmxlZC1mb3JtZWxlbWVudHMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLSAgICA8dGl0bGU+VG91Y2ggQWRqdXN0bWVudCA6IERpc2FibGVkIGZvcm0gZWxlbWVudHMg
LSBidWcgOTIwOTM8L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdG91Y2hhZGp1
c3RtZW50LmpzIj48L3NjcmlwdD4KLSAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICAgICAg
ICAjc2FuZGJveCB7Ci0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAg
ICBsZWZ0OiAwcHg7Ci0gICAgICAgICAgICB0b3A6IDBweDsKLSAgICAgICAgICAgIHdpZHRoOiA2
MDBweDsKLSAgICAgICAgICAgIGhlaWdodDogNjAwcHg7Ci0gICAgICAgIH0KLSAgICA8L3N0eWxl
PgotPC9oZWFkPgotCi08Ym9keSBpZD0iYm9keSI+Ci0KLTxkaXYgaWQ9c2FuZGJveD4KLSAgICA8
Zm9ybSBpZD0iZm9ybSI+Ci0gICAgICAgIDxsYWJlbCBmb3I9ImlucHV0MSIgaWQ9ImxhYmVsMSI+
TGFiZWw8L2xhYmVsPiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0MSIgdmFsdWU9IkRpc2Fi
bGVkIGlucHV0IiBkaXNhYmxlZD48L2lucHV0Pjxicj4KLSAgICAgICAgPGxhYmVsIGZvcj0iaW5w
dXQyIiBpZD0ibGFiZWwyIj5MYWJlbDwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5w
dXQyIiB2YWx1ZT0iRW5hYmxlZCBpbnB1dCI+PC9pbnB1dD4KLSAgICA8L2Zvcm0+Ci08L2Rpdj4K
LQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQot
PHNjcmlwdD4KLSAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRzCi0gICAg
dmFyIGUgPSB7fTsKLSAgICBbJ3NhbmRib3gnLCAnZm9ybSwnLCAnbGFiZWwxJywgJ2xhYmVsMics
ICdpbnB1dDEnLCAnaW5wdXQyJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7Ci0gICAgICAgIGVbYV0g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIHRl
c3REaXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIC8vIFF1aWNrIHNhbml0eSBjaGVjay4K
LSAgICAgICAgZGVidWcoJ1Rlc3Qgd2UgY2FuIGhpdCB0aGUgZm9ybSBlbGVtZW50cyBkaXJlY3Rs
eS4nKTsKLQotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDE2LCA4LCA1KSwgbnVs
bCk7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoMTYsIDM4LCA1KSwgZS5sYWJl
bDIpOwotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDYwLCA4LCA1KSwgbnVsbCk7
Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoNjAsIDM4LCA1KSwgZS5pbnB1dDIp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3RBZGp1c3RlZFRvdWNoZXMoKQotICAgIHsKLSAg
ICAgICAgZGVidWcoJ1Rlc3QgaW5kaXJlY3QgdG91Y2hlcyBhcmUgYWRqdXN0ZWQgdG8gdGhlIGVu
YWJsZWQgZm9ybSBlbGVtZW50cy4nKTsKLSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hQb2lu
dCgxNiwgMjUsIDEwKSwgZS5sYWJlbDIpOwotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBv
aW50KDE2LCAyMCwgMTUpLCBlLmxhYmVsMik7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNo
UG9pbnQoMTYsIDE2LCAyMCksIGUubGFiZWwyKTsKLQotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0
b3VjaFBvaW50KDYwLCAyNSwgMTApLCBlLmlucHV0Mik7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50
KHRvdWNoUG9pbnQoNjAsIDIwLCAxNSksIGUuaW5wdXQyKTsKLSAgICAgICAgdGVzdFRvdWNoUG9p
bnQodG91Y2hQb2ludCg2MCwgMTYsIDIwKSwgZS5pbnB1dDIpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHJ1blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNr
YWJsZU5vZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKGRvY3VtZW50LnRpdGxlKTsKLSAg
ICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7Ci0gICAgICAgICAgICB0ZXN0QWRqdXN0ZWRU
b3VjaGVzKCk7Ci0gICAgICAgICAgICBlLnNhbmRib3guc3R5bGUuZGlzcGxheSA9ICdub25lJzsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIHJ1blRlc3RzKCk7Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvZWRpdGFi
bGUtY29udGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvZWRp
dGFibGUtY29udGVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDJmYzZlZDg2M2I3YWQzYmVlZGRkZmI3MTU5YmMyZGI3YjhiOGQ4YjIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3Rt
ZW50L2VkaXRhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDUg
KzAsMCBAQAotCi1IZWxsbwotCi1Xb3JsZAotVGVzdHMgdG91Y2ggYWRqdXN0bWVudCBvbiBhIHRl
eHQtYXJlYS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLXRlc3QgdGV4dGFyZWEK
LXRlc3QgZGlyZWN0IHRvdWNoZXMKLVBBU1MgTWF0aC5mbG9vcigoYWRqdXN0ZWRQb2ludC55IC0g
b3JpZ2luKSAvIHJvd0hlaWdodCkgaXMgMAotUEFTUyBNYXRoLmZsb29yKChhZGp1c3RlZFBvaW50
LnkgLSBvcmlnaW4pIC8gcm93SGVpZ2h0KSBpcyAwCi1QQVNTIE1hdGguZmxvb3IoKGFkanVzdGVk
UG9pbnQueSAtIG9yaWdpbikgLyByb3dIZWlnaHQpIGlzIDAKLVBBU1MgTWF0aC5mbG9vcigoYWRq
dXN0ZWRQb2ludC55IC0gb3JpZ2luKSAvIHJvd0hlaWdodCkgaXMgMQotUEFTUyBNYXRoLmZsb29y
KChhZGp1c3RlZFBvaW50LnkgLSBvcmlnaW4pIC8gcm93SGVpZ2h0KSBpcyAxCi1QQVNTIE1hdGgu
Zmxvb3IoKGFkanVzdGVkUG9pbnQueSAtIG9yaWdpbikgLyByb3dIZWlnaHQpIGlzIDEKLVBBU1Mg
TWF0aC5mbG9vcigoYWRqdXN0ZWRQb2ludC55IC0gb3JpZ2luKSAvIHJvd0hlaWdodCkgaXMgMgot
UEFTUyBNYXRoLmZsb29yKChhZGp1c3RlZFBvaW50LnkgLSBvcmlnaW4pIC8gcm93SGVpZ2h0KSBp
cyAyCi1QQVNTIE1hdGguZmxvb3IoKGFkanVzdGVkUG9pbnQueSAtIG9yaWdpbikgLyByb3dIZWln
aHQpIGlzIDIKLXRlc3QgaW5kaXJlY3QgdG91Y2hlcwotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBU
RVhUQVJFQSN0ZXh0LWFyZWEuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIFRFWFRBUkVBI3RleHQt
YXJlYS4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgVEVYVEFSRUEjdGV4dC1hcmVhLgotUEFTUyBh
ZGp1c3RlZCBub2RlIHdhcyBURVhUQVJFQSN0ZXh0LWFyZWEuCi10ZXN0IHJpY2hseSBlZGl0YWJs
ZSBkaXYKLXRlc3QgZGlyZWN0IHRvdWNoZXMKLVBBU1MgTWF0aC5mbG9vcigoYWRqdXN0ZWRQb2lu
dC55IC0gb3JpZ2luKSAvIHJvd0hlaWdodCkgaXMgMAotUEFTUyBNYXRoLmZsb29yKChhZGp1c3Rl
ZFBvaW50LnkgLSBvcmlnaW4pIC8gcm93SGVpZ2h0KSBpcyAwCi1QQVNTIE1hdGguZmxvb3IoKGFk
anVzdGVkUG9pbnQueSAtIG9yaWdpbikgLyByb3dIZWlnaHQpIGlzIDAKLVBBU1MgTWF0aC5mbG9v
cigoYWRqdXN0ZWRQb2ludC55IC0gb3JpZ2luKSAvIHJvd0hlaWdodCkgaXMgMQotUEFTUyBNYXRo
LmZsb29yKChhZGp1c3RlZFBvaW50LnkgLSBvcmlnaW4pIC8gcm93SGVpZ2h0KSBpcyAxCi1QQVNT
IE1hdGguZmxvb3IoKGFkanVzdGVkUG9pbnQueSAtIG9yaWdpbikgLyByb3dIZWlnaHQpIGlzIDEK
LVBBU1MgTWF0aC5mbG9vcigoYWRqdXN0ZWRQb2ludC55IC0gb3JpZ2luKSAvIHJvd0hlaWdodCkg
aXMgMgotUEFTUyBNYXRoLmZsb29yKChhZGp1c3RlZFBvaW50LnkgLSBvcmlnaW4pIC8gcm93SGVp
Z2h0KSBpcyAyCi1QQVNTIE1hdGguZmxvb3IoKGFkanVzdGVkUG9pbnQueSAtIG9yaWdpbikgLyBy
b3dIZWlnaHQpIGlzIDIKLXRlc3QgaW5kaXJlY3QgdG91Y2hlcwotUEFTUyBhZGp1c3RlZCBub2Rl
IHdhcyBESVYjcmljaC10ZXh0LgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBESVYjcmljaC10ZXh0
LgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBESVYjcmljaC10ZXh0LgotUEFTUyBhZGp1c3RlZCBu
b2RlIHdhcyBESVYjcmljaC10ZXh0LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC9lZGl0YWJsZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvZWRp
dGFibGUtY29udGVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZWNiZDNl
YTQwZDFiMWM4Y2JlZjhlZWY1NWJkN2U1M2VjNmUxZjBiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9lZGl0
YWJsZS1jb250ZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50IDog
Y29udGVudCBlZGl0YWJsZSBkaXYgLSBidWcgOTc1NzY8L3RpdGxlPgotICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdG91Y2hhZGp1c3RtZW50LmpzIj48L3NjcmlwdD4KLSAgICA8c3R5bGU+Ci0g
ICAgICAgIGJvZHkgewotICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwotICAgICAgICAgICAg
bGluZS1oZWlnaHQ6IDE0cHg7Ci0gICAgICAgIH0KLQotICAgICAgICAjdGV4dC1hcmVhLAotICAg
ICAgICAjcmljaC10ZXh0IHsKLSAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlZWU7Ci0gICAgICAg
ICAgICBib3JkZXI6IG5vbmU7Ci0gICAgICAgICAgICBtYXJnaW46IDAgNXB4OwotICAgICAgICAg
ICAgcGFkZGluZzogMDsKLSAgICAgICAgfQotCi0gICAgICAgICNyaWNoLXRleHQgewotICAgICAg
ICAgICAgbWFyZ2luLXRvcDogNTBweDsKLSAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7Ci0gICAg
ICAgICAgICB3aWR0aDogMzAwcHg7Ci0gICAgICAgIH0KLSAgICA8L3N0eWxlPgotPC9oZWFkPgot
Ci08Ym9keT4KLQotPGRpdiBpZD1zYW5kYm94PgotICAgIDx0ZXh0YXJlYSBpZD0idGV4dC1hcmVh
IiByb3dzPSI1IiBjb2xzPSI0MCI+QSBsZW5ndGh5IGxpbmUgb2YgdGV4dC4KLQotQW5vdGhlciBs
aW5lIG9mIHRleHQgc2VwYXJhdGVkIGJ5IGEgYmxhbmsgbGluZS48L3RleHRhcmVhPgotCi0gICAg
PGRpdiBpZD0icmljaC10ZXh0IiBjb250ZW50RWRpdGFibGU+Ci0gICAgICAgIDxiPkhlbGxvPC9i
Pjxicj48YnI+PGk+V29ybGQ8L2k+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2Ny
aXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICB2
YXIgZWxlbWVudDsKLSAgICB2YXIgcm93SGVpZ2h0OwotICAgIHZhciB0b3VjaE9mZnNldCA9IDQ7
Ci0gICAgdmFyIHRvdWNoUmFkaXVzID0gMjA7Ci0gICAgdmFyIG9yaWdpbjsKLSAgICB2YXIgYWRq
dXN0ZWROb2RlOwotICAgIHZhciBhZGp1c3RlZFBvaW50OwotCi0gICAgZnVuY3Rpb24gdGVzdFRv
dWNoT25Sb3cocm93LCBvZmZzZXQpIHsKLSAgICAgICAgdmFyIGJvdW5kcyA9IGZpbmRBYnNvbHV0
ZUJvdW5kcyhlbGVtZW50KTsKLSAgICAgICAgdmFyIG1pZFBvaW50ID0gYm91bmRzLmxlZnQgKyAw
LjUgKiBib3VuZHMud2lkdGg7Ci0gICAgICAgIHZhciB4ID0gYm91bmRzLmxlZnQgKyAyICogdG91
Y2hSYWRpdXM7ICAKLSAgICAgICAgdmFyIHkgPSBib3VuZHMudG9wICsgKHJvdyArIDAuNSkgKiBy
b3dIZWlnaHQgKyBvZmZzZXQ7IC8vIFZlcnRpY2FsbHkgY2VudGVyZWQgb24gcm93IHdoZW4gb2Zm
c2V0IGlzIHplcm8uCi0gICAgICAgIHZhciBwb2ludCA9IHRvdWNoUG9pbnQoeCwgeSwgdG91Y2hS
YWRpdXMsIHRvdWNoUmFkaXVzKTsKLSAgICAgICAgYWRqdXN0ZWRQb2ludCA9IGFkanVzdFRvdWNo
UG9pbnQocG9pbnQpOwotICAgICAgICBvcmlnaW4gPSBib3VuZHMudG9wOwotICAgICAgICBzaG91
bGRFdmFsdWF0ZVRvKCdNYXRoLmZsb29yKChhZGp1c3RlZFBvaW50LnkgLSBvcmlnaW4pIC8gcm93
SGVpZ2h0KScsIHJvdyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdERpcmVjdFRvdWNoZXMo
KSB7Ci0gICAgICAgIGRlYnVnKCd0ZXN0IGRpcmVjdCB0b3VjaGVzJyk7Ci0gICAgICAgIC8vIFRv
dWNoZXMgY2VudGVyZWQgb24gdGhlIGJsYW5rIGxpbmUgc2hvdWxkIG5vdCBiZSBhZGp1c3RlZCBh
IG5laWdoYm9yaW5nIHRleHQgbGluZS4KLSAgICAgICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwg
Mzsgcm93KyspIHsKLSAgICAgICAgICAgIGZvciAodmFyIG9mZnNldCA9IC10b3VjaE9mZnNldDsg
b2Zmc2V0IDw9IHRvdWNoT2Zmc2V0OyBvZmZzZXQgKz0gdG91Y2hPZmZzZXQpIHsKLSAgICAgICAg
ICAgICAgICB0ZXN0VG91Y2hPblJvdyhyb3csIG9mZnNldCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0VG91Y2hPbkJvdW5kYXJ5KHBvc2l0aW9u
KSB7Ci0gICAgICAgIHZhciB0b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQb2ludChmaW5kQWJzb2x1
dGVCb3VuZHMoZWxlbWVudCksIHBvc2l0aW9uLCB0b3VjaE9mZnNldCwgdG91Y2hSYWRpdXMsIHRv
dWNoUmFkaXVzKTsKLSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hwb2ludCwgZWxlbWVudCk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0VG91Y2hlcygpIHsKLSAgICAgIGRl
YnVnKCd0ZXN0IGluZGlyZWN0IHRvdWNoZXMnKTsKLSAgICAgIHRlc3RUb3VjaE9uQm91bmRhcnko
J2JvdHRvbScpOwotICAgICAgdGVzdFRvdWNoT25Cb3VuZGFyeSgnbGVmdCcpOwotICAgICAgdGVz
dFRvdWNoT25Cb3VuZGFyeSgncmlnaHQnKTsKLSAgICAgIHRlc3RUb3VjaE9uQm91bmRhcnkoJ3Rv
cCcpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3Vj
aE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0
aW9uKCdUZXN0cyB0b3VjaCBhZGp1c3RtZW50IG9uIGEgdGV4dC1hcmVhLicpOwotICAgICAgICAg
ICAgZGVidWcoJ3Rlc3QgdGV4dGFyZWEnKTsKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGV4dC1hcmVhJyk7Ci0gICAgICAgICAgICByb3dIZWlnaHQgPSAx
NTsgLy8gSGVpZ2h0IG9mIGVhY2ggcm93IGlzIGxpbmUtaGVpZ2h0ICsgMQotICAgICAgICAgICAg
dGVzdERpcmVjdFRvdWNoZXMoKTsKLSAgICAgICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoZXMoKTsK
LSAgICAgICAgICAgIGRlYnVnKCd0ZXN0IHJpY2hseSBlZGl0YWJsZSBkaXYnKTsKLSAgICAgICAg
ICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmljaC10ZXh0Jyk7Ci0gICAg
ICAgICAgICByb3dIZWlnaHQgPSAxNDsKLSAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7
Ci0gICAgICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaGVzKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgcnVuVGVzdHMoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2V2ZW50LXRyaWdnZXJlZC13aWRnZXRzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9ldmVudC10cmlnZ2VyZWQtd2lkZ2V0
cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxODAwOThhZTU5
OWI5MDk2ZDIyYzFmMGFjMDMxOTc0ZThjODExMDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2V2ZW50LXRy
aWdnZXJlZC13aWRnZXRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAg
QEAKLVRlc3QgdmFyaW91cyB3YXlzIHRvIHRyaWdnZXIgaW5wdXQtd2lkZ2V0cy4gT24gYSB0b3Vj
aCBpbnRlcmZhY2UsIGFsbCB0aGUgYWN0aW9ucyBzaG91bGQgYmUgdHJpZ2dlcmFibGUgd2l0aCBl
aXRoZXIgYSB0b3VjaCBkb3duIG9yIGEgdG91Y2ggdGFwLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotVGVzdGluZyBzbWFsbCBkaXJlY3QgaGl0cwotUEFTUyBhZGp1c3RlZE5vZGUu
aWQgaXMgZWxlbWVudC5pZAotUEFTUyBhZGp1c3RlZE5vZGUuaWQgaXMgZWxlbWVudC5pZAotUEFT
UyBhZGp1c3RlZE5vZGUuaWQgaXMgZWxlbWVudC5pZAotUEFTUyBhZGp1c3RlZE5vZGUuaWQgaXMg
bm90IGVsZW1lbnQuaWQKLVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzIGVsZW1lbnQuaWQKLVRlc3Rp
bmcgbGFyZ2UgZGlyZWN0IGhpdHMKLVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzIGVsZW1lbnQuaWQK
LVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzIGVsZW1lbnQuaWQKLVBBU1MgYWRqdXN0ZWROb2RlLmlk
IGlzIGVsZW1lbnQuaWQKLVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzIG5vdCBlbGVtZW50LmlkCi1Q
QVNTIGFkanVzdGVkTm9kZS5pZCBpcyBlbGVtZW50LmlkCi1UZXN0aW5nIGxhcmdlIGRpcmVjdCBo
aXRzCi1QQVNTIGFkanVzdGVkTm9kZS5pZCBpcyBlbGVtZW50LmlkCi1QQVNTIGFkanVzdGVkTm9k
ZS5pZCBpcyBlbGVtZW50LmlkCi1QQVNTIGFkanVzdGVkTm9kZS5pZCBpcyBlbGVtZW50LmlkCi1Q
QVNTIGFkanVzdGVkTm9kZS5pZCBpcyBub3QgZWxlbWVudC5pZAotUEFTUyBhZGp1c3RlZE5vZGUu
aWQgaXMgZWxlbWVudC5pZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9ldmVu
dC10cmlnZ2VyZWQtd2lkZ2V0cy5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2V2
ZW50LXRyaWdnZXJlZC13aWRnZXRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ5MGI0YmRiZjY1NzY0MTUyNzEwZjI2ZmMxNmY3NWY1YWE2ZTg4OWMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3Rt
ZW50L2V2ZW50LXRyaWdnZXJlZC13aWRnZXRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5Ub3Vj
aCBBZGp1c3RtZW50IDogRXZlbnQgdHJpZ2dlcmVkIHdpZGdldHMgLSBidWcgNzg4MDE8L3RpdGxl
PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdG91Y2hhZGp1c3RtZW50LmpzIj48L3Njcmlw
dD4KLSAgICA8c3R5bGU+Ci0gICAgICAgIC5ib3ggeyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsg
Ym9yZGVyLXJhZGl1czogNXB4IDVweDsgbWFyZ2luOiAxZW07IHdpZHRoOiA0MGVtOyB9Ci0gICAg
PC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxkaXYgaWQ9c2FuZGJveD4KLSAgICA8c2Ny
aXB0PgotICAgICAgICBmdW5jdGlvbiB0cmlnZ2VySW5wdXQoKSB7Ci0gICAgICAgICAgICB2YXIg
ZWxlbWVudCA9IGV2ZW50LnNyY0VsZW1lbnQ7Ci0gICAgICAgICAgICBpZiAoIWVsZW1lbnQub3Bl
bikgewotICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxpbnB1dCB0eXBlPXRl
eHQgc3R5bGU9IndpZHRoOiAxMDAlIj48L2lucHV0PicKLSAgICAgICAgICAgICAgICBlbGVtZW50
Lm9wZW4gPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxlbWVudC5maXJzdENo
aWxkLmZvY3VzKCk7Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLQotICAgIDxkaXYgaWQ9dGVz
dDEgY2xhc3M9Ym94IHRhYmluZGV4PTEgb25mb2N1cz0ndHJpZ2dlcklucHV0KCknPgotICAgIEZv
Y3VzIGhlcmUgc2hvdWxkIGdpdmUgYSB0ZXh0IGlucHV0LWZpZWxkLgotICAgIDwvZGl2PgotCi0g
ICAgPGRpdiBpZD10ZXN0MiBjbGFzcz1ib3ggb25tb3VzZW92ZXI9J3RyaWdnZXJJbnB1dCgpJz4g
Ci0gICAgTW91c2Utb3ZlciBoZXJlIHNob3VsZCBnaXZlIGEgdGV4dCBpbnB1dC1maWVsZC4KLSAg
ICA8L2Rpdj4KLQotICAgIDxzdHlsZT4KLSAgICAgICAgLmJveDpub3QoOmhvdmVyKSAuaG92ZXJ0
cmlnZ2VyZWQgeyB2aXNpYmlsaXR5OiBoaWRkZW47fQotICAgICAgICAuYm94OmhvdmVyIC5ob3Zl
cmZhbGxiYWNrIHsgZGlzcGxheTogbm9uZTsgfSAgCi0gICAgPC9zdHlsZT4KLQotICAgIDxkaXYg
aWQ9dGVzdDMgY2xhc3M9Ym94PiAKLSAgICAgICAgPHNwYW4gY2xhc3M9aG92ZXJmYWxsYmFjaz5I
b3ZlcmluZyBoZXJlIHNob3VsZCBnaXZlIGEgdGV4dCBpbnB1dC1maWVsZC48L3NwYW4+Ci0gICAg
ICAgIDxpbnB1dCB0eXBlPXRleHQgY2xhc3M9aG92ZXJ0cmlnZ2VyZWQ+PC9pbnB1dD4KLSAgICA8
L2Rpdj4KLQotICAgIDxkaXYgaWQ9dGVzdDQgY2xhc3M9Ym94IG9uZm9jdXM9J3RyaWdnZXJJbnB1
dCgpJz4KLSAgICAgICAgPHNwYW4gdGFiaW5kZXg9MT4gRm9jdXNpbmcgaGVyZSBzaG91bGQgb25s
eSBnaXZlIGZvY3VzIG91dGxpbmUgdG8gdGhpcyBpbm5lciB0ZXh0LgotICAgICAgICA8L3NwYW4+
Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGNsYXNzPWJveD4KLSAgICAgICAgPHNwYW4gaWQ9dGVz
dDUgdGFiaW5kZXg9MT4gRm9jdXNpbmcgaGVyZSBzaG91bGQgZ2l2ZSBhIHRleHQgaW5wdXQtZmll
bGQuCi0gICAgICAgIDwvc3Bhbj4KLSAgICA8L2Rpdj4KLQotICAgIDxzY3JpcHQ+Ci0gICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1Jyk7Ci0gICAgICAg
IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NRm9jdXNJbicsIHRyaWdnZXJJbnB1dCwgZmFs
c2UpOwotICAgIDwvc2NyaXB0PgotPC9kaXY+Ci0KLTxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgot
PGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGVsZW1lbnQ7Ci0g
ICAgdmFyIGFkanVzdGVkTm9kZTsKLSAgICBmdW5jdGlvbiBmaW5kQWJzb2x1dGVQb3NpdGlvbihu
b2RlKSB7Ci0gICAgICAgIHZhciBwb3MgPSBuZXcgT2JqZWN0KCk7Ci0gICAgICAgIHBvcy5sZWZ0
ID0gMDsgcG9zLnRvcCA9IDA7Ci0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIHBvcy5sZWZ0ICs9
IG5vZGUub2Zmc2V0TGVmdDsKLSAgICAgICAgICAgIHBvcy50b3AgKz0gbm9kZS5vZmZzZXRUb3A7
Ci0gICAgICAgIH0gd2hpbGUgKG5vZGUgPSBub2RlLm9mZnNldFBhcmVudCk7Ci0gICAgICAgIHJl
dHVybiBwb3M7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZmluZEJlc3RDbGlja2FibGVOb2RlKHgs
IHksIHdpZHRoLCBoZWlnaHQpCi0gICAgewotICAgICAgICB2YXIgYWRqdXN0ZWROb2RlID0gaW50
ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9kZSh4LCB5LCB3aWR0aCwg
aGVpZ2h0KTsKLSAgICAgICAgaWYgKGFkanVzdGVkTm9kZSAmJiBhZGp1c3RlZE5vZGUubm9kZVR5
cGUgPT0gMykgLy8gVEVYVCBub2RlCi0gICAgICAgICAgICBhZGp1c3RlZE5vZGUgPSBhZGp1c3Rl
ZE5vZGUucGFyZW50Tm9kZTsKLSAgICAgICAgcmV0dXJuIGFkanVzdGVkTm9kZTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2goZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIHZh
ciB0b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQb2ludChmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVu
dCksICdjZW50ZXInLCAwLCAyLCAyKTsKLSAgICAgICAgYWRqdXN0ZWROb2RlID0gZmluZEJlc3RD
bGlja2FibGVOb2RlKHRvdWNocG9pbnQubGVmdCwgdG91Y2hwb2ludC50b3AsIHRvdWNocG9pbnQu
d2lkdGgsIHRvdWNocG9pbnQuaGVpZ2h0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0RGly
ZWN0RmF0RmluZ2VyKGVsZW1lbnQpCi0gICAgewotICAgICAgICB2YXIgdG91Y2hwb2ludCA9IG9m
ZnNldFRvdWNoUG9pbnQoZmluZEFic29sdXRlQm91bmRzKGVsZW1lbnQpLCAndG9wJywgLTUsIGVs
ZW1lbnQuY2xpZW50SGVpZ2h0LzIsIChlbGVtZW50LmNsaWVudEhlaWdodCsxMCkvMik7Ci0gICAg
ICAgIGFkanVzdGVkTm9kZSA9IGZpbmRCZXN0Q2xpY2thYmxlTm9kZSh0b3VjaHBvaW50LmxlZnQs
IHRvdWNocG9pbnQudG9wLCB0b3VjaHBvaW50LndpZHRoLCB0b3VjaHBvaW50LmhlaWdodCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0RmF0RmluZ2VyKGVsZW1lbnQpCi0gICAg
ewotICAgICAgICB2YXIgdG91Y2hwb2ludCA9IG9mZnNldFRvdWNoUG9pbnQoZmluZEFic29sdXRl
Qm91bmRzKGVsZW1lbnQpLCAndG9wJywgMywgNSwgNSk7Ci0gICAgICAgIGFkanVzdGVkTm9kZSA9
IGZpbmRCZXN0Q2xpY2thYmxlTm9kZSh0b3VjaHBvaW50LmxlZnQsIHRvdWNocG9pbnQudG9wLCB0
b3VjaHBvaW50LndpZHRoLCB0b3VjaHBvaW50LmhlaWdodCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdGVzdFRvdWNoSGl0KGVsZW1lbnRpZCwgdG91Y2hUeXBlKSB7Ci0gICAgICAgIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50aWQpOwotICAgICAgICB0b3VjaFR5cGUo
ZWxlbWVudCk7Ci0gICAgICAgIHNob3VsZEJlKCdhZGp1c3RlZE5vZGUuaWQnLCAnZWxlbWVudC5p
ZCcpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3RUb3VjaE1pc3MoZWxlbWVudGlkLCB0b3Vj
aFR5cGUpIHsKLSAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRpZCk7Ci0gICAgICAgIHRvdWNoVHlwZShlbGVtZW50KTsKLSAgICAgICAgc2hvdWxkTm90QmUo
J2FkanVzdGVkTm9kZS5pZCcsICdlbGVtZW50LmlkJyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
dGVzdERpcmVjdFRvdWNoZXMoKQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rlc3Rpbmcgc21hbGwg
ZGlyZWN0IGhpdHMnKTsKLSAgICAgICAgdGVzdFRvdWNoSGl0KCd0ZXN0MScsIHRlc3REaXJlY3RU
b3VjaCk7Ci0gICAgICAgIHRlc3RUb3VjaEhpdCgndGVzdDInLCB0ZXN0RGlyZWN0VG91Y2gpOwot
ICAgICAgICB0ZXN0VG91Y2hIaXQoJ3Rlc3QzJywgdGVzdERpcmVjdFRvdWNoKTsKLSAgICAgICAg
dGVzdFRvdWNoTWlzcygndGVzdDQnLCB0ZXN0RGlyZWN0VG91Y2gpOwotICAgICAgICB0ZXN0VG91
Y2hIaXQoJ3Rlc3Q1JywgdGVzdERpcmVjdFRvdWNoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0
ZXN0RGlyZWN0RmF0RmluZ2VycygpCi0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdGluZyBsYXJn
ZSBkaXJlY3QgaGl0cycpOwotICAgICAgICB0ZXN0VG91Y2hIaXQoJ3Rlc3QxJywgdGVzdERpcmVj
dEZhdEZpbmdlcik7Ci0gICAgICAgIHRlc3RUb3VjaEhpdCgndGVzdDInLCB0ZXN0RGlyZWN0RmF0
RmluZ2VyKTsKLSAgICAgICAgdGVzdFRvdWNoSGl0KCd0ZXN0MycsIHRlc3REaXJlY3RGYXRGaW5n
ZXIpOwotICAgICAgICB0ZXN0VG91Y2hNaXNzKCd0ZXN0NCcsIHRlc3REaXJlY3RGYXRGaW5nZXIp
OwotICAgICAgICB0ZXN0VG91Y2hIaXQoJ3Rlc3Q1JywgdGVzdERpcmVjdEZhdEZpbmdlcik7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0RmF0RmluZ2VycygpCi0gICAgewotICAg
ICAgICBkZWJ1ZygnVGVzdGluZyBsYXJnZSBkaXJlY3QgaGl0cycpOwotICAgICAgICB0ZXN0VG91
Y2hIaXQoJ3Rlc3QxJywgdGVzdEluZGlyZWN0RmF0RmluZ2VyKTsKLSAgICAgICAgdGVzdFRvdWNo
SGl0KCd0ZXN0MicsIHRlc3RJbmRpcmVjdEZhdEZpbmdlcik7Ci0gICAgICAgIHRlc3RUb3VjaEhp
dCgndGVzdDMnLCB0ZXN0SW5kaXJlY3RGYXRGaW5nZXIpOwotICAgICAgICB0ZXN0VG91Y2hNaXNz
KCd0ZXN0NCcsIHRlc3RJbmRpcmVjdEZhdEZpbmdlcik7Ci0gICAgICAgIHRlc3RUb3VjaEhpdCgn
dGVzdDUnLCB0ZXN0SW5kaXJlY3RGYXRGaW5nZXIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1
blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5v
ZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0IHZhcmlvdXMgd2F5cyB0byB0cmln
Z2VyIGlucHV0LXdpZGdldHMuIE9uIGEgdG91Y2ggaW50ZXJmYWNlLCBhbGwgdGhlIGFjdGlvbnMg
c2hvdWxkIGJlIHRyaWdnZXJhYmxlIHdpdGggZWl0aGVyIGEgdG91Y2ggZG93biBvciBhIHRvdWNo
IHRhcC4nKTsKLSAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7Ci0gICAgICAgICAgICB0
ZXN0RGlyZWN0RmF0RmluZ2VycygpOwotICAgICAgICAgICAgdGVzdEluZGlyZWN0RmF0RmluZ2Vy
cygpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgICAgICB9Ci0gICAgfQotICAgIHJ1blRlc3RzKCk7Ci08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRq
dXN0bWVudC9mb2N1c291dC1vbi10b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90b3Vj
aGFkanVzdG1lbnQvZm9jdXNvdXQtb24tdG91Y2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhMWQ5MDI2ODI2M2VkMzliZGNmMTIzOTViNmUzNzAyZjNiMTk0ODQ1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3RvdWNoYWRqdXN0bWVudC9mb2N1c291dC1vbi10b3VjaC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLUFMRVJUOiBQQVNTIQotWW91IHNob3VsZCBzZWUgIkFM
RVJUOiBQQVNTISIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Zv
Y3Vzb3V0LW9uLXRvdWNoLmh0bWwgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvZm9jdXNv
dXQtb24tdG91Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjNGM0MDVl
NTk4YTYyNTRhYjY0MWVmYmU5OWZmNTI0N2M2YWFjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvZm9jdXNv
dXQtb24tdG91Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTxodG1sPgotPGhl
YWQ+Ci08dGl0bGU+VG91Y2ggQWRqdXN0bWVudCA6IEZha2UgbW91c2UgZXZlbnRzIG5vdCBkZWxp
dmVyZWQgd2hlbiB0b3VjaGluZyBvbiBhIG5vbi1pbnRlcmFjdGFibGUgbm9kZSAtIGJ1ZyA5MTAx
MjwvdGl0bGU+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotZGl2IHsKLSAgICB3aWR0aDogNDAw
cHg7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLS8qCi0gICAgV2ViS2l0IGdlbmVy
YXRlcyBmYWtlIG1vdXNlIGV2ZW50cyBvbiBlYWNoIHRvdWNoIGV2ZW50LCBoZXJlIHdlIHRlc3Qg
aWYKLSAgICB0aGUgdG91Y2ggYWRqdXN0bWVudCBkb2Vzbid0IGNhdXNlZCBhbiBlYXJseSByZXR1
cm4gbm90IGZpcmluZyB0aGUgZmFrZQotICAgIG1vdXNlIGV2ZW50cyB1c2VkIGhlcmUgdG8gdW5m
b2N1cyBhIHNpbXBsZSB0ZXh0IGlucHV0LgotKi8KLSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
ciB8fCAhd2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgLy8gRm9jdXMgdGhlIHRleHQgZmllbGQKLSAgICB2YXIg
dGV4dElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRJbnB1dCIpOwotICAgIGlm
IChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0ZXh0SW5wdXQpCi0gICAgICAgIGFsZXJ0KCJG
QUlMRUQhIik7Ci0gICAgdGV4dElucHV0LmZvY3VzKCk7Ci0gICAgaWYgKGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQgIT0gdGV4dElucHV0KQotICAgICAgICBhbGVydCgiRkFJTEVEISIpOwotCi0gICAg
Ly8gVHJ5IHRvIGxvb3NlIHRoZSBmb2N1cyB0b3VjaGluZyBvbiBhIG5vbi1lZGl0YWJsZSBlbGVt
ZW50LgotICAgIHZhciB0aGVEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhlRGl2Iik7
Ci0gICAgdmFyIHcgPSB0aGVEaXYuY2xpZW50V2lkdGg7Ci0gICAgdmFyIGggPSB0aGVEaXYuY2xp
ZW50SGVpZ2h0OwotICAgIHZhciB4ID0gdGhlRGl2Lm9mZnNldExlZnQgKyB3LzI7Ci0gICAgdmFy
IHkgPSB0aGVEaXYub2Zmc2V0VG9wICsgaC8yOwotCi0gICAgZXZlbnRTZW5kZXIuY2xlYXJUb3Vj
aFBvaW50cygpOwotICAgIGV2ZW50U2VuZGVyLnNldFRvdWNoUG9pbnRSYWRpdXMoMTAsIDEwKTsK
LSAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KHgsIHkpOwotICAgIGV2ZW50U2VuZGVyLnRv
dWNoU3RhcnQoKTsKLSAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQb2ludCgwKTsKLSAgICBl
dmVudFNlbmRlci50b3VjaEVuZCgpOwotCi0gICAgLy8gTmVlZCB0byB3YWl0IGEgYml0IHNvIHRo
ZSBnZXN0dXJlIHJlY29nbml6ZXIgd2lsbCBiZSBzdXJlIHRoaXMgaXNuJ3QgYSBkb3VibGUgdGFw
LgotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudC5hY3Rp
dmVFbGVtZW50ID09IGRvY3VtZW50LmJvZHkpCi0gICAgICAgICAgICBhbGVydCgiUEFTUyEiKQot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBhbGVydCgiRkFJTEVELCAiICsgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5pZCArICIgaXMgZm9jdXNlZC4iKTsKLSAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Ci0gICAgfSwgODAwKTsKLQotICAgIC8vIFdhaXQgYW5kIHNlZS4uLgotICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPGRpdiBpZD0idGhlRGl2Ij5Zb3Ugc2hvdWxkIHNlZSAi
QUxFUlQ6IFBBU1MhIjwvZGl2PgotPGlucHV0IGlkPSJ0ZXh0SW5wdXQiIHR5cGU9InRleHQiIHZh
bHVlPSJUb3VjaCBtZSBwbGVhc2UhIiAvPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9o
dG1sLWxhYmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9odG1s
LWxhYmVsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY3NmY3
MzMxNjc1NWI1Njk2NmMwMjI5OWZlN2U5MzBjMTVjNmMzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvaHRt
bC1sYWJlbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UZXN0
cyBpZiBsYWJlbHMgYXJlIHRyZWF0ZWQgYXMgY2xpY2thYmxlIGlmIHRoZSBpbnB1dCB0aGV5IGNv
bnRyb2wgaXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1UZXN0aW5nIHNtYWxs
IGRpcmVjdCBoaXRzLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBBI215bGluay4KLVBBU1MgYWRq
dXN0ZWQgbm9kZSB3YXMgTEFCRUwjbXlsYWJlbC4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgSU5Q
VVQjbXlpbnB1dC4KLVRlc3RpbmcgaW5kaXJlY3QgaGl0cy4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3
YXMgQSNteWxpbmsuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIExBQkVMI215bGFiZWwuCi1QQVNT
IGFkanVzdGVkIG5vZGUgd2FzIElOUFVUI215aW5wdXQuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91
Y2hhZGp1c3RtZW50L2h0bWwtbGFiZWwuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC9odG1sLWxhYmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2NjNhNjUz
ODNmNDdhOGVlNWRhNWNlZmUwYzk2YTEwNmNiZjkwOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2h0bWwt
bGFiZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLSAgICA8dGl0bGU+VG91Y2ggQWRqdXN0bWVudCA6IEhUTUwgTGFi
ZWwgYW5kIGZvcm0gZmllbGRzIC0gYnVnIDc4ODAxPC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3RvdWNoYWRqdXN0bWVudC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHN0eWxlPgotICAg
ICAgICAjc2FuZGJveCB7Ci0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAg
ICAgICBsZWZ0OiAwcHg7Ci0gICAgICAgICAgICB0b3A6IDBweDsKLSAgICAgICAgICAgIGZvbnQ6
IDE2cHggQWhlbTsKLSAgICAgICAgfQotICAgIDwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5Pgot
Ci08ZGl2IGlkPXNhbmRib3g+Ci0gICAgPGEgaHJlZj0iI215Zm9ybSIgaWQ9Im15bGluayI+RG8g
bm90IGNsaWNrIGhlcmU8L2E+PGJyPgotICAgIDxmb3JtIGlkPSJteWZvcm0iPgotICAgIDxsYWJl
bCBmb3I9Im15aW5wdXQiIGlkPSJteWxhYmVsIj5DbGljayBoZXJlLDwvbGFiZWw+Ci0gICAgPHNw
YW4gaWQ9Im15c3BhbiI+YnV0IG5vdCBoZXJlLjwvc3Bhbj4KLSAgICA8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9Im15aW5wdXQiIHZhbHVlPSJUbyBmb2N1cyB0aGlzLiI+PC9pbnB1dD4KLSAgICA8L2Zv
cm0+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xl
Jz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICB2YXIgZWxlbWVudDsKLSAgICB2YXIgYWRqdXN0ZWRO
b2RlOwotICAgIC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKLSAgICB2YXIg
ZSA9IHt9OwotICAgIFsnc2FuZGJveCcsICdteWxpbmsnLCAnbXlmb3JtJywgJ215aW5wdXQnLCAn
bXlsYWJlbCcsICdteXNwYW4nXS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKLSAgICAgICAgZVthXSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOwotICAgIH0pOwotCi0gICAgZnVuY3Rpb24gdGVz
dERpcmVjdFRvdWNoKGVsZW1lbnQpCi0gICAgewotICAgICAgICB2YXIgdG91Y2hwb2ludCA9IG9m
ZnNldFRvdWNoUG9pbnQoZmluZEFic29sdXRlQm91bmRzKGVsZW1lbnQpLCAnY2VudGVyJywgMCwg
MjAsIDMwKTsKLSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hwb2ludCwgZWxlbWVudCk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0VG91Y2goZWxlbWVudCwgb2Zmc2V0KQot
ICAgIHsKLSAgICAgICAgLy8gVG91Y2gganVzdCByaWdodCBvZiB0aGUgZWxlbWVudC4KLSAgICAg
ICAgdmFyIHRvdWNocG9pbnQgPSBvZmZzZXRUb3VjaFBvaW50KGZpbmRBYnNvbHV0ZUJvdW5kcyhl
bGVtZW50KSwgJ3JpZ2h0Jywgb2Zmc2V0LCAzMCwgMjApOwotICAgICAgICB0ZXN0VG91Y2hQb2lu
dCh0b3VjaHBvaW50LCBlbGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0
VG91Y2hlcygpCi0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdGluZyBzbWFsbCBkaXJlY3QgaGl0
cy4nKTsKLQotICAgICAgICB0ZXN0RGlyZWN0VG91Y2goZS5teWxpbmspOwotICAgICAgICB0ZXN0
RGlyZWN0VG91Y2goZS5teWxhYmVsKTsKLSAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubXlpbnB1
dCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0VG91Y2hlcygpCi0gICAgewot
ICAgICAgICBkZWJ1ZygnVGVzdGluZyBpbmRpcmVjdCBoaXRzLicpOwotCi0gICAgICAgIHRlc3RJ
bmRpcmVjdFRvdWNoKGUubXlsaW5rLCAxMCk7Ci0KLSAgICAgICAgLy8gVGhpcyBjYXNlIGlzIHZl
cnkgYm9yZGVybGluZSAtIHRoZXJlJ3Mgbm90IG11Y2ggcmVhc29uIHRvIGFkanVzdAotICAgICAg
ICAvLyBsZWZ0IHRvIHRoZSBsYWJlbCBpbnN0ZWFkIG9mIHVwIHRvIHRoZSBsaW5rIChpdCdzIGNs
b3NlciB0bwotICAgICAgICAvLyB0aGUgbGFiZWwsIGJ1dCBvdmVybGFwcyB3aXRoIG1vcmUgb2Yg
dGhlIGxpbmspLgotICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaChlLm15bGFiZWwsIDEpOwotCi0g
ICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoKGUubXlpbnB1dCwgMTApOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHJ1blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENs
aWNrYWJsZU5vZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0cyBpZiBsYWJlbHMg
YXJlIHRyZWF0ZWQgYXMgY2xpY2thYmxlIGlmIHRoZSBpbnB1dCB0aGV5IGNvbnRyb2wgaXMuJyk7
Ci0gICAgICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwotICAgICAgICAgICAgdGVzdEluZGly
ZWN0VG91Y2hlcygpOwotICAgICAgICAgICAgZS5zYW5kYm94LnN0eWxlLmRpc3BsYXkgPSAnbm9u
ZSc7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcnVuVGVzdHMoKTsKLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2lmcmFtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvaWZyYW1lLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQzZDFmOGVjZjUyMjNlYTk2NzU1
NjdkMzYyYjZjODRlZTA4NjI4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvaWZyYW1lLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLQotVGVzdCB0b3VjaC1hZGp1c3RtZW50
IG9uIGxpbmtzIGluIGFuIGlmcmFtZS4gTWFraW5nIHN1cmUgd2UgaWZyYW1lIHBvc2l0aW9uIGlz
IGNvcnJlY3RseSBhZGp1c3RlZCBmb3IuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1UZXN0IGZhdCBkaXJlY3QgdG91Y2hlcy4KLVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzICJhMSIK
LVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzICJhMiIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFk
anVzdG1lbnQvaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvaWZyYW1l
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhM2JhMTcxYzA5ZjM0NzIyZjJj
MjJjOTdmMmM1MzY3ZTM4MWQxMDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2lmcmFtZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50IDogQ29ycmVjdCBmb3IgZnJhbWUgcG9zaXRp
b25zIC0gYnVnIDgyMDQzPC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c3R5bGU+Ci0gICAgICAgICNteWZyYW1lIHsg
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMDBweDsgdG9wOiAxMDBweDsgd2lkdGg6IDQwMHB4
OyBoZWlnaHQ6IDMwMHB4O30KLSAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0cygpIj4KLQotPGlmcmFtZSBpZD1teWZyYW1lIHNyYz0icmVzb3VyY2VzL2lubmVyLWZy
YW1lLmh0bWwiPjwvaWZyYW1lPgotCi08cCBpZD0nZGVzY3JpcHRpb24nPjwvcD4KLTxkaXYgaWQ9
J2NvbnNvbGUnPjwvZGl2PgotCi08c2NyaXB0PgotICAgIGZ1bmN0aW9uIHRlc3RSb3VuZFRvdWNo
KHgsIHksIHJhZGl1cykKLSAgICB7Ci0gICAgICAgIHZhciB4ID0geCAtIHJhZGl1czsKLSAgICAg
ICAgdmFyIHkgPSB5IC0gcmFkaXVzOwotICAgICAgICB2YXIgd2lkdGggPSByYWRpdXMgKiAyOwot
ICAgICAgICB2YXIgaGVpZ2h0ID0gcmFkaXVzICogMjsKLSAgICAgICAgdmFyIGFkanVzdGVkTm9k
ZSA9IGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUoeCwgeSwg
d2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIGlmIChhZGp1c3RlZE5vZGUubm9kZVR5cGUgPT0gMykg
Ly8gVEVYVCBub2RlCi0gICAgICAgICAgICBhZGp1c3RlZE5vZGUgPSBhZGp1c3RlZE5vZGUucGFy
ZW50Tm9kZTsKLSAgICAgICAgcmV0dXJuIGFkanVzdGVkTm9kZTsKLSAgICB9Ci0gICAgZnVuY3Rp
b24gdGVzdERpcmVjdFRvdWNoZXMoKQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rlc3QgZmF0IGRp
cmVjdCB0b3VjaGVzLicpOwotCi0gICAgICAgIGFkanVzdGVkTm9kZSA9IHRlc3RSb3VuZFRvdWNo
KDI2MCwgMjAwLCAyMDApOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2FkanVzdGVk
Tm9kZS5pZCcsICdhMScpOwotCi0gICAgICAgIGFkanVzdGVkTm9kZSA9IHRlc3RSb3VuZFRvdWNo
KDM0MCwgMjAwLCAyMDApOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2FkanVzdGVk
Tm9kZS5pZCcsICdhMicpOwotCi0gICAgfQotICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKLSAgICB7
Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGlu
dGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsKLSAgICAgICAg
ICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRvdWNoLWFkanVzdG1lbnQgb24gbGlua3MgaW4gYW4gaWZy
YW1lLiBNYWtpbmcgc3VyZSB3ZSBpZnJhbWUgcG9zaXRpb24gaXMgY29ycmVjdGx5IGFkanVzdGVk
IGZvci4nKTsKLSAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7Ci0gICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91
Y2hhZGp1c3RtZW50L25lc3RlZC1zaGFkb3ctbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy90b3VjaGFkanVzdG1lbnQvbmVzdGVkLXNoYWRvdy1ub2RlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjZiNGJiMTg2N2Y3ODQ5ODhlZjA0YjliMTUxNzJjMWE3
MTA4MDg0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvbmVzdGVkLXNoYWRvdy1ub2RlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRlc3QgdGhlIGNhc2Ugd2hlcmUgYSBj
bGlja2FibGUgdGFyZ2V0IGNvbnRhaW5zIGEgc2hhZG93LURPTSBlbGVtZW50LiBUaGUgYWRqdXN0
ZWQgcG9pbnQgc2hvdWxkIHNuYXAgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBzaGFkb3ctRE9NIGVs
ZW1lbnQgaWYgY2xvc2UgZW5vdWdoIHRvIHRoZSBvcmlnaW5hbCB0b3VjaCBwb3NpdGlvbi4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzIGVs
ZW1lbnQuaWQKLVBBU1MgYWRqdXN0ZWRQb2ludC54IGlzIHdpdGhpbiAxMCBvZiA4OAotUEFTUyBh
ZGp1c3RlZFBvaW50LnkgaXMgd2l0aGluIDEwIG9mIDI4Ci1QQVNTIGFkanVzdGVkTm9kZS5pZCBp
cyBlbGVtZW50LmlkCi1QQVNTIGFkanVzdGVkUG9pbnQueCBpcyB3aXRoaW4gMTAgb2YgODgKLVBB
U1MgYWRqdXN0ZWRQb2ludC55IGlzIHdpdGhpbiAxMCBvZiAyOAotUEFTUyBhZGp1c3RlZE5vZGUu
aWQgaXMgZWxlbWVudC5pZAotUEFTUyBhZGp1c3RlZFBvaW50LnggaXMgd2l0aGluIDEwIG9mIDg4
Ci1QQVNTIGFkanVzdGVkUG9pbnQueSBpcyB3aXRoaW4gMTAgb2YgMjgKLVBBU1MgYWRqdXN0ZWRO
b2RlLmlkIGlzIGVsZW1lbnQuaWQKLVBBU1MgYWRqdXN0ZWRQb2ludC54IGlzIHdpdGhpbiAxMCBv
ZiA4OAotUEFTUyBhZGp1c3RlZFBvaW50LnkgaXMgd2l0aGluIDEwIG9mIDI4Ci1QQVNTIGFkanVz
dGVkTm9kZS5pZCBpcyBlbGVtZW50LmlkCi1QQVNTIGFkanVzdGVkUG9pbnQueCBpcyB3aXRoaW4g
MSBvZiA1OAotUEFTUyBhZGp1c3RlZFBvaW50LnkgaXMgd2l0aGluIDEgb2YgNTgKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvbmVzdGVkLXNoYWRvdy1ub2RlLmh0bWwgYi9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvbmVzdGVkLXNoYWRvdy1ub2RlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1ZWRjMGJmYmNkY2Y3ZTcwZmUyMjRlOGYzOGZiNWEzNzY0
YmViZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L25lc3RlZC1zaGFkb3ctbm9kZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LSAgICA8dGl0bGU+VG91Y2ggQWRqdXN0bWVudCA6IFRvdWNoIGFkanVzdG1lbnQgZG9lcyBub3Qg
dGFyZ2V0IHNoYWRvdyBET00gZWxlbWVudHMgLSBidWcgODk1NTY8L3RpdGxlPgotICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzdHls
ZT4KLSAgICAgICAgI3RhcmdldERpdiB7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDBmOwot
ICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKLSAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKLSAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKLSAgICAgICAgfQotICAgIDwvc3R5bGU+Ci0K
LTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxkaXYgaWQ9InRhcmdldERpdiI+Ci08L2Rpdj4KLQotPHAg
aWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlw
dD4KLSAgICB2YXIgZWxlbWVudDsKLSAgICB2YXIgYWRqdXN0ZWROb2RlOwotICAgIHZhciBhZGp1
c3RlZFBvaW50OwotCi0gICAgZnVuY3Rpb24gZmluZEFic29sdXRlUG9zaXRpb24obm9kZSkgewot
ICAgICAgICB2YXIgcG9zID0ge2xlZnQ6IDAsIHRvcDogMH07Ci0gICAgICAgIGRvIHsKLSAgICAg
ICAgICAgIHBvcy5sZWZ0ICs9IG5vZGUub2Zmc2V0TGVmdDsKLSAgICAgICAgICAgIHBvcy50b3Ag
Kz0gbm9kZS5vZmZzZXRUb3A7Ci0gICAgICAgIH0gd2hpbGUgKG5vZGUgPSBub2RlLm9mZnNldFBh
cmVudCk7Ci0gICAgICAgIHJldHVybiBwb3M7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYWRkU2hh
ZG93RE9NKCkgewotICAgICAgICB2YXIgdGFyZ2V0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldERpdiIpOwotICAgICAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFk
b3dSb290KHRhcmdldERpdik7Ci0gICAgICAgIHZhciBzaGFkb3dEaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgc2hhZG93RGl2LnN0eWxlLndpZHRoID0gIjIwcHgi
OwotICAgICAgICBzaGFkb3dEaXYuc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOwotICAgICAgICBzaGFk
b3dEaXYuc3R5bGUuYmFja2dyb3VuZCA9ICIjZmYwIjsKLSAgICAgICAgc2hhZG93RGl2LnN0eWxl
LnBvc2l0aW9uID0gImFic29sdXRlIjsKLSAgICAgICAgc2hhZG93RGl2LnN0eWxlLnJpZ2h0ID0g
IjEwcHgiOwotICAgICAgICBzaGFkb3dEaXYuc3R5bGUudG9wID0gIjEwcHgiOwotICAgICAgICBz
aGFkb3dEaXYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHt9LCBmYWxzZSk7
Ci0gICAgICAgIHJvb3QuYXBwZW5kQ2hpbGQoc2hhZG93RGl2KTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBydW5Ub3VjaFRlc3RzKCkgewotICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldERpdiIpOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZnVuY3Rpb24oKSB7fSwgZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkge30sIGZhbHNlKTsKLQotICAgICAgICB2YXIg
cG9zID0gZmluZEFic29sdXRlUG9zaXRpb24oZWxlbWVudCk7Ci0gICAgICAgIHZhciB4ID0gcG9z
LmxlZnQ7Ci0gICAgICAgIHZhciB5ID0gcG9zLnRvcDsKLSAgICAgICAgdmFyIHdpZHRoID0gZWxl
bWVudC5jbGllbnRXaWR0aDsKLSAgICAgICAgdmFyIGhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVp
Z2h0OwotICAgICAgICB2YXIgbWlkWCA9IHggKyB3aWR0aCAvIDI7Ci0gICAgICAgIHZhciBtaWRZ
ID0geSArIGhlaWdodCAvIDI7Ci0gICAgICAgIHZhciBib3JkZXIgPSAxMDsKLSAgICAgICAgdmFy
IHRhcmdldFJhZGl1cyA9IDEwOwotICAgICAgICB2YXIgcGFkZGluZyA9IDMwOwotICAgICAgICB2
YXIgdGFyZ2V0WCA9IHggKyB3aWR0aCAtIHRhcmdldFJhZGl1cyAtIGJvcmRlcjsKLSAgICAgICAg
dmFyIHRhcmdldFkgPSB5ICsgdGFyZ2V0UmFkaXVzICsgYm9yZGVyOwotICAgICAgICB2YXIgb2Zm
c2V0ID0gMjsKLQotICAgICAgICAvLyBUZXN0IHRvdWNoZXMgdGhhdCBhcmUganVzdCBvdXRzaWRl
IHRoZSBib3VuZHMgb2YgdGhlIHNoYWRvdy1ET00uICBUaGUgYWRqdXN0ZWQgcG9pbnQgc2hvdWxk
IGJlIHB1bGxlZCB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGUgc2hhZG93LURPTSBub2RlLgotICAg
ICAgICB0ZXN0VG91Y2godGFyZ2V0WCArIHRhcmdldFJhZGl1cyArIG9mZnNldCwgdGFyZ2V0WSwg
cGFkZGluZywgdGFyZ2V0WCwgdGFyZ2V0WSwgdGFyZ2V0UmFkaXVzKTsKLSAgICAgICAgdGVzdFRv
dWNoKHRhcmdldFggLSB0YXJnZXRSYWRpdXMgLSBvZmZzZXQsIHRhcmdldFksIHBhZGRpbmcsIHRh
cmdldFgsIHRhcmdldFksIHRhcmdldFJhZGl1cyk7Ci0gICAgICAgIHRlc3RUb3VjaCh0YXJnZXRY
LCB0YXJnZXRZICsgdGFyZ2V0UmFkaXVzICsgb2Zmc2V0LCBwYWRkaW5nLCB0YXJnZXRYLCB0YXJn
ZXRZLCB0YXJnZXRSYWRpdXMpOwotICAgICAgICB0ZXN0VG91Y2godGFyZ2V0WCwgdGFyZ2V0WSAt
IHRhcmdldFJhZGl1cyAtIG9mZnNldCwgcGFkZGluZywgdGFyZ2V0WCwgdGFyZ2V0WSwgdGFyZ2V0
UmFkaXVzKTsKLSAgICAgICAgCi0gICAgICAgIC8vIEEgdG91Y2ggaW4gdGhlIGNlbnRlciBvZiB0
YXJnZXREaXYgaXMgc3VmZmljaWVudCBkaXN0YW5jZSBmcm9tIHRoZSBzaGFkb3ctRE9NIGVsZW1l
bnQgdGhhdCB0aGUgcG9zaXRpb24gc2hvdWxkIG5vdCBzbmFwLgotICAgICAgICB0ZXN0VG91Y2go
bWlkWCwgbWlkWSwgcGFkZGluZywgbWlkWCwgbWlkWSwgMSk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdGVzdFRvdWNoKHRvdWNoWCwgdG91Y2hZLCBwYWRkaW5nLCBhZGp1c3RlZFgsIGFkanVzdGVk
WSwgdG9sZXJhbmNlKSB7Ci0gICAgICAgIHZhciBsZWZ0ID0gdG91Y2hYIC0gcGFkZGluZyAvIDI7
Ci0gICAgICAgIHZhciB0b3AgPSB0b3VjaFkgLSBwYWRkaW5nIC8gMjsKLSAgICAgICAgYWRqdXN0
ZWROb2RlID0gaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9kZShs
ZWZ0LCB0b3AsIHBhZGRpbmcsIHBhZGRpbmcpOwotICAgICAgICBzaG91bGRCZSgnYWRqdXN0ZWRO
b2RlLmlkJywgJ2VsZW1lbnQuaWQnKTsKLSAgICAgICAgYWRqdXN0ZWRQb2ludCA9IGludGVybmFs
cy50b3VjaFBvc2l0aW9uQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKGxlZnQsIHRvcCwgcGFk
ZGluZywgcGFkZGluZyk7Ci0gICAgICAgIHNob3VsZEJlQ2xvc2VUbygnYWRqdXN0ZWRQb2ludC54
JywgYWRqdXN0ZWRYLCB0b2xlcmFuY2UpOwotICAgICAgICBzaG91bGRCZUNsb3NlVG8oJ2FkanVz
dGVkUG9pbnQueScsIGFkanVzdGVkWSwgdG9sZXJhbmNlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBydW5UZXN0cygpCi0gICAgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2Fi
bGVOb2RlICYmIGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KSB7Ci0gICAgICAgICAgICBkZXNj
cmlwdGlvbignVGVzdCB0aGUgY2FzZSB3aGVyZSBhIGNsaWNrYWJsZSB0YXJnZXQgY29udGFpbnMg
YSBzaGFkb3ctRE9NIGVsZW1lbnQuICBUaGUgYWRqdXN0ZWQgcG9pbnQgc2hvdWxkIHNuYXAgdG8g
dGhlIGxvY2F0aW9uIG9mIHRoZSBzaGFkb3ctRE9NIGVsZW1lbnQgaWYgY2xvc2UgZW5vdWdoIHRv
IHRoZSBvcmlnaW5hbCB0b3VjaCBwb3NpdGlvbi4nKQotICAgICAgICAgICAgYWRkU2hhZG93RE9N
KCk7Ci0gICAgICAgICAgICBydW5Ub3VjaFRlc3RzKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
cnVuVGVzdHMoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdG91Y2hhZGp1c3RtZW50L25lc3RlZC10b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvbmVzdGVkLXRvdWNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzkzYWYyZDk4NTFkMDk1MzgxZWUxNGVlYjA4NzE2ZmMwZGE4
ZWMxOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvbmVzdGVkLXRvdWNoLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRlc3QgdGhlIGNhc2Ugd2hlcmUgYSBjbGlja2FibGUg
dGFyZ2V0IGlzIG5lc3RlZCBpbnNpZGUgYSBkb2N1bWVudCB0aGF0IGlzIG1vbml0b3JpbmcgY2xp
Y2tzLiBUaGUgdGFyZ2V0IHdpdGggdGhlIGxvY2FsIGV2ZW50LWhhbmRsZXIgc2hvdWxkIGJlIGNo
b3NlbiBpZiBtdWx0aXBsZSB0YXJnZXRzIGFyZSB0b3VjaGVkLgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotVGVzdGluZyBzbWFsbCBkaXJlY3QgaGl0cy4KLVBBU1MgYWRqdXN0ZWQg
bm9kZSB3YXMgRElWI215Ym94MS4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI215Ym94Mi4K
LVRlc3RpbmcgcHJlZmVyZWQgaGl0cy4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI215Ym94
MS4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI215Ym94MS4KLVBBU1MgYWRqdXN0ZWQgbm9k
ZSB3YXMgRElWI215Ym94MS4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvbmVz
dGVkLXRvdWNoLmh0bWwgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvbmVzdGVkLXRvdWNo
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjNmI3MDhlNzFiMDc2MGE1YWVk
YTQyZjYzYWY1M2NiN2VmMDJiZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L25lc3RlZC10b3VjaC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50IDogUHJlZmVyIGRlZXBlc3QgZXZl
bnQgaGFuZGxlciAtIGJ1ZyA3ODgwMTwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy90b3VjaGFkanVzdG1lbnQuanMiPjwvc2NyaXB0PgotICAgIDxzdHlsZT4KLSAgICAgICAgI3Nh
bmRib3ggeyBmb250OiAxNnB4IEFoZW07IH0KLSAgICAgICAgLmJveCB7IGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOyBib3JkZXItcmFkaXVzOiA1cHggNXB4OyBtYXJnaW46IDEycHg7IG1heC13aWR0
aDogNDBlbTsgfQotICAgIDwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08ZGl2IGlkPXNh
bmRib3g+Ci0gICAgPGRpdiBjbGFzcz1ib3ggaWQ9bXlib3gxPgotICAgIEJveCB3aXRoIGEgbG9j
YWwgY2xpY2sgaGFuZGxlci4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgY2xhc3M9Ym94IGlkPW15
Ym94Mj4gCi0gICAgQm94IHdpdGhvdXQgYSBsb2NhbCBjbGljayBoYW5kbGVyLgotICAgIDwvZGl2
PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gbW9uaXRvcihlKSB7IGFsZXJ0KGUu
dGFyZ2V0ICsoIGUudGFyZ2V0LmlkID8gKCAnICMnICsgZS50YXJnZXQuaWQpIDogJycpKTsgfTsK
LSAgICBmdW5jdGlvbiBkb1NvbWV0aGluZyhlKSB7fTsKLQotICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215Ym94MScpOwotICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcignY2xpY2snLCBkb1NvbWV0aGluZywgZmFsc2UpOwotICAgIGVsZW1lbnQgPSBkb2N1bWVu
dC5ib2R5OwotICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBtb25pdG9yLCBm
YWxzZSk7Ci08L3NjcmlwdD4KLQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdj
b25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICB2YXIgZSA9IHt9OwotICAgIFsnc2FuZGJv
eCcsICdteWJveDEnLCAnbXlib3gyJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7Ci0gICAgICAgIGVb
YV0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9u
IHRvdWNoUG9pbnREb3VibGVUb3VjaChlbGVtZW50MSwgZWxlbWVudDIsIG9mZnNldCkKLSAgICB7
Ci0gICAgICAgIHZhciBib3VuZHMxID0gZmluZEFic29sdXRlQm91bmRzKGVsZW1lbnQxKTsKLSAg
ICAgICAgdmFyIGJvdW5kczIgPSBmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVudDIpOwotICAgICAg
ICB2YXIgYm91bmRzID0gbmV3IE9iamVjdCgpOwotICAgICAgICAvLyBXZSBhc3N1bWUgdGhlIGVs
ZW1lbnRzIGhhdmUgdGhlIHNhbWUgeCBjb29yZCBhbmQgd2lkdGguCi0gICAgICAgIGJvdW5kcy5s
ZWZ0ID0gYm91bmRzMS5sZWZ0ICsgYm91bmRzMS53aWR0aC8yIC0gMTsKLSAgICAgICAgdmFyIHkx
ID0gYm91bmRzMS50b3AgKyBib3VuZHMxLmhlaWdodC8yICsgb2Zmc2V0OwotICAgICAgICB2YXIg
eTIgPSBib3VuZHMyLnRvcCArIGJvdW5kczIuaGVpZ2h0LzIgLSAxOwotICAgICAgICBib3VuZHMu
dG9wID0geTE7Ci0gICAgICAgIGJvdW5kcy53aWR0aCA9IHkyIC0geTE7Ci0gICAgICAgIGJvdW5k
cy5oZWlnaHQgPSB5MiAtIHkxOwotICAgICAgICByZXR1cm4gYm91bmRzOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHRlc3REaXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIGRlYnVnKCdUZXN0
aW5nIHNtYWxsIGRpcmVjdCBoaXRzLicpOwotCi0gICAgICAgIHZhciB0b3VjaHBvaW50ID0gb2Zm
c2V0VG91Y2hQb2ludChmaW5kQWJzb2x1dGVCb3VuZHMoZS5teWJveDEpLCAnY2VudGVyJywgMCwg
Mik7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNocG9pbnQsIGUubXlib3gxKTsKLQotICAg
ICAgICB0b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQb2ludChmaW5kQWJzb2x1dGVCb3VuZHMoZS5t
eWJveDIpLCAnY2VudGVyJywgMCwgMik7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNocG9p
bnQsIGUubXlib3gyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0UHJlZmVyZWRUb3VjaCgp
Ci0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdGluZyBwcmVmZXJlZCBoaXRzLicpOwotCi0gICAg
ICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnREb3VibGVUb3VjaChlLm15Ym94MSwgZS5teWJv
eDIsIDApLCBlLm15Ym94MSk7Ci0KLSAgICAgICAgLy8gRmlyc3QgdGVzdCB3YXMgY2VudGVyZWQs
IG5vdyBtb3ZlIHRoZSB0ZXN0IGNsb3NlciB0byB0aGUgd3Jvbmcgbm9kZSwgYW5kIGVuc3VyZSB3
ZSBzdGlsbCBnZXQgdGhlIHByZWZlcmVkIG5vZGUuCi0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRv
dWNoUG9pbnREb3VibGVUb3VjaChlLm15Ym94MSwgZS5teWJveDIsIDUpLCBlLm15Ym94MSk7Ci0K
LSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hQb2ludERvdWJsZVRvdWNoKGUubXlib3gxLCBl
Lm15Ym94MiwgOCksIGUubXlib3gxKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0cygp
Ci0gICAgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7Ci0g
ICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdCB0aGUgY2FzZSB3aGVyZSBhIGNsaWNrYWJsZSB0
YXJnZXQgaXMgbmVzdGVkIGluc2lkZSBhIGRvY3VtZW50IHRoYXQgaXMgbW9uaXRvcmluZyBjbGlj
a3MuIFRoZSB0YXJnZXQgd2l0aCB0aGUgbG9jYWwgZXZlbnQtaGFuZGxlciBzaG91bGQgYmUgY2hv
c2VuIGlmIG11bHRpcGxlIHRhcmdldHMgYXJlIHRvdWNoZWQuJyk7Ci0gICAgICAgICAgICB0ZXN0
RGlyZWN0VG91Y2hlcygpOwotICAgICAgICAgICAgdGVzdFByZWZlcmVkVG91Y2goKTsKLSAgICAg
ICAgICAgIGVbJ3NhbmRib3gnXS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgICAgICB9Ci0g
ICAgfQotICAgIHJ1blRlc3RzKCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9wbHVnaW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3BsdWdpbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDkwOWE2ZmQ4OTA4NDRjNzQ3Y2JjNmZlMmZkNjc2ZjliOGJhNTZi
NTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvdG91Y2hhZGp1c3RtZW50L3BsdWdpbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyMSArMCwwIEBACi1UZXN0cyB0b3VjaC1hZGp1c3RtZW50IGF0IGEgcGx1Z2luIGJvdW5k
YXJ5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotVGVzdCBkaXJlY3QgaGl0cy4K
LVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRU1CRUQjcGx1Z2luLgotUEFTUyBhZGp1c3RlZCBub2Rl
IHdhcyBCVVRUT04jYnV0dG9uMS4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRv
bjIuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIEJVVFRPTiNidXR0b24zLgotVGVzdCBoaXRzIHNw
YW5uaW5nIHRoZSBwbHVnaW4gYm91bmRhcnkuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIEVNQkVE
I3BsdWdpbi4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRvbjEuCi1QQVNTIGFk
anVzdGVkIG5vZGUgd2FzIEVNQkVEI3BsdWdpbi4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVU
VE9OI2J1dHRvbjIuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIEVNQkVEI3BsdWdpbi4KLVBBU1Mg
YWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRvbjMuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91
Y2hhZGp1c3RtZW50L3BsdWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3Bs
dWdpbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2E4MzE2YTI1NzhkNmNh
NTE3ODdjM2JkODI0YjdmYTU2YTA5ZDM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9wbHVnaW4uaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLSAgICA8dGl0bGU+VG91Y2ggQWRqdXN0bWVudCA6IFBsdWdpbiBib3VuZGFyeSAtIGJ1
ZyA/Pz8/PC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RvdWNoYWRqdXN0bWVu
dC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHN0eWxlPgotICAgICAgICAjcGx1Z2luIHsKLSAgICAgICAg
ICBoZWlnaHQ6IDE2MHB4OwotICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OwotICAgICAgICAg
IG1hcmdpbi10b3A6IDEwcHg7Ci0gICAgICAgICAgd2lkdGg6IDMyMHB4OwotICAgICAgICB9Ci0g
ICAgICAgICN0b29sYmFyIHsKLSAgICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsK
LSAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7Ci0gICAgICAgICAgZGlz
cGxheTogLXdlYmtpdC1ib3g7Ci0gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7Ci0gICAgICAg
IH0KLSAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9c2FuZGJveD4KLSAg
ICA8ZW1iZWQgaWQ9InBsdWdpbiIgdHlwZT0iQXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJw
bHVnaW4iPgotICAgIDxkaXYgaWQ9InRvb2xiYXIiIG9uY2tpY2s9ImZ1bmN0aW9uKCl7fSI+Ci0g
ICAgICA8YnV0dG9uIGlkPSJidXR0b24xIj5BPC9idXR0b24+Ci0gICAgICA8YnV0dG9uIGlkPSJi
dXR0b24yIj5CPC9idXR0b24+Ci0gICAgICA8YnV0dG9uIGlkPSJidXR0b24zIj5DPC9idXR0b24+
Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlk
PSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNj
ZXNzIHRvIGVsZW1lbnRzCi0gICAgdmFyIGlkcyA9IFsnc2FuZGJveCcsICdwbHVnaW4nLCAndG9v
bGJhcicsICdidXR0b24xJywgJ2J1dHRvbjInLCAnYnV0dG9uMyddOwotICAgIHZhciBlID0ge307
Ci0gICAgaWRzLmZvckVhY2goZnVuY3Rpb24oYSkgewotICAgICAgICBlW2FdID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoYSk7Ci0gICAgfSk7Ci0gICAgdmFyIGJvdW5kcyA9IHt9OwotICAgIGlk
cy5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKLSAgICAgICAgYm91bmRzW2FdID0gZmluZEFic29sdXRl
Qm91bmRzKGVbYV0pOwotICAgIH0pOwotCi0gICAgZnVuY3Rpb24gdGVzdE1pZHBvaW50KGlkKQot
ICAgIHsKLSAgICAgICAgdmFyIHggPSBib3VuZHNbaWRdLmxlZnQgKyBib3VuZHNbaWRdLndpZHRo
IC8gMjsKLSAgICAgICAgdmFyIHkgPSBib3VuZHNbaWRdLnRvcCArIGJvdW5kc1tpZF0uaGVpZ2h0
IC8gMjsKLSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hQb2ludCh4LCB5LCAxMCksIGVbaWRd
KTsgCi0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEJvdW5kYXJ5KGJ1dHRvbklkKQotICAgIHsK
LSAgICAgIHZhciB4ID0gYm91bmRzW2J1dHRvbklkXS5sZWZ0ICsgYm91bmRzW2J1dHRvbklkXS53
aWR0aCAvIDI7Ci0gICAgICB2YXIgeSA9IChib3VuZHNbJ3BsdWdpbiddLnRvcCArIGJvdW5kc1sn
cGx1Z2luJ10uaGVpZ2h0ICsgYm91bmRzW2J1dHRvbklkXS50b3ApIC8gMjsKLSAgICAgIHRlc3RU
b3VjaFBvaW50KHRvdWNoUG9pbnQoeCwgeSAtIDUsIDEwKSwgZVsncGx1Z2luJ10pOyAKLSAgICAg
IHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoeCwgeSArIDUsIDEwKSwgZVtidXR0b25JZF0pOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3REaXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAg
IGRlYnVnKCdUZXN0IGRpcmVjdCBoaXRzLicpOwotICAgICAgICB0ZXN0TWlkcG9pbnQoJ3BsdWdp
bicpOwotICAgICAgICB0ZXN0TWlkcG9pbnQoJ2J1dHRvbjEnKTsKLSAgICAgICAgdGVzdE1pZHBv
aW50KCdidXR0b24yJyk7Ci0gICAgICAgIHRlc3RNaWRwb2ludCgnYnV0dG9uMycpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHRlc3RJbmRpcmVjdFRvdWNoZXMoKQotICAgIHsKLSAgICAgICAgZGVi
dWcoJ1Rlc3QgaGl0cyBzcGFubmluZyB0aGUgcGx1Z2luIGJvdW5kYXJ5LicpOwotICAgICAgICB0
ZXN0Qm91bmRhcnkoJ2J1dHRvbjEnKTsKLSAgICAgICAgdGVzdEJvdW5kYXJ5KCdidXR0b24yJyk7
Ci0gICAgICAgIHRlc3RCb3VuZGFyeSgnYnV0dG9uMycpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHJ1blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJs
ZU5vZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0cyB0b3VjaC1hZGp1c3RtZW50
IGF0IGEgcGx1Z2luIGJvdW5kYXJ5LicpOwotICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMo
KTsKLSAgICAgICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoZXMoKTsKLSAgICAgICAgICAgIGVbJ3Nh
bmRib3gnXS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgICAgICB9Ci0gICAgfQotICAgIHJ1
blRlc3RzKCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3RvdWNoYWRqdXN0bWVudC9yZXNvdXJjZXMvaW5uZXItZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL3RvdWNoYWRqdXN0bWVudC9yZXNvdXJjZXMvaW5uZXItZnJhbWUuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODcyNGE3ZTE5MGY5NTljY2YyMTQ3Zjk1YmMxMWU1YjE2MTZk
M2Y4Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcmVzb3VyY2VzL2lubmVyLWZyYW1lLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci0gICAgPHN0eWxlPgotICAgICAgICBkaXYge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgfQotICAgIDwv
c3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ZDEgc3R5bGU9IndpZHRoOjIwMHB4OyI+
Ci0gICAgPGEgaHJlZj0iIzEiIGlkPWExPkxpbmsgMTwvYT4KLTwvZGl2PgotPGRpdiBpZD1kMiBz
dHlsZT0ibGVmdDoyMDBweDt3aWR0aDoyMDBweDsiPgotICAgIDxhIGhyZWY9IiMyIiBpZD1hMj5M
aW5rIDI8L2E+Ci08L2Rpdj4KLTwvdGFibGU+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50
L3Jlc291cmNlcy90b3VjaGFkanVzdG1lbnQuanMgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1l
bnQvcmVzb3VyY2VzL3RvdWNoYWRqdXN0bWVudC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNGI2YzAyOGRiMjlkMGUzYzM4YjcwZTBkYmY4YzMxMTY2NDMwZWYzNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFk
anVzdG1lbnQvcmVzb3VyY2VzL3RvdWNoYWRqdXN0bWVudC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDE1NyArMCwwIEBACi0vKiBmdW5jdGlvbiBmb3IgZmluZGluZyB0aGUgYWJzb2x1dGUgYm91bmRz
IG9mIGEgbm9kZSAoYm90aCBpbmxpbmUgYW5kIGJsb2NrKSAqLwotZnVuY3Rpb24gZmluZEFic29s
dXRlQm91bmRzKG5vZGUpCi17Ci0gICAgdmFyIGJvdW5kcyA9IG5vZGUuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7Ci0gICAgcmV0dXJuIHsKLSAgICAgICAgbGVmdDogYm91bmRzLmxlZnQsCi0gICAg
ICAgIHRvcDogYm91bmRzLnRvcCwKLSAgICAgICAgd2lkdGg6IGJvdW5kcy5yaWdodCAtIGJvdW5k
cy5sZWZ0LAotICAgICAgICBoZWlnaHQ6IGJvdW5kcy5ib3R0b20gLSBib3VuZHMudG9wCi0gICAg
fTsKLX0KLQotZnVuY3Rpb24gbm9kZVRvU3RyaW5nKG5vZGUpCi17Ci0gICAgaWYgKG5vZGUgPT09
IHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuICd1bmRlZmluZWQnOwotICAgIGlmIChub2RlID09
PSBudWxsKQotICAgICAgICByZXR1cm4gJ251bGwnOwotICAgIGlmICghbm9kZS5ub2RlTmFtZSkK
LSAgICAgICAgcmV0dXJuICdub3QgYSBub2RlJzsKLSAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAz
KQotICAgICAgICByZXR1cm4gIiciK25vZGUubm9kZVZhbHVlKyInIjsKLSAgICByZXR1cm4gbm9k
ZS5ub2RlTmFtZSArIChub2RlLmlkID8gKCcjJyArIG5vZGUuaWQpIDogJycpOwotfQotCi1mdW5j
dGlvbiBib3VuZHNUb1N0cmluZyhib3VuZHMpCi17Ci0gICAgcmV0dXJuICIoIitib3VuZHMubGVm
dCsiLCIrYm91bmRzLnRvcCsiKXgoIitib3VuZHMud2lkdGgrIiwiK2JvdW5kcy5oZWlnaHQrIiki
OwotfQotCi1mdW5jdGlvbiBwb2ludFRvU3RyaW5nKHBvaW50KQotewotICAgIHJldHVybiAiKCIr
cG9pbnQueCsiLCIrcG9pbnQueSsiKSI7Ci19Ci0KLQotZnVuY3Rpb24gc2hvdWxkQmVOb2RlKGFk
anVzdGVkTm9kZSwgdGFyZ2V0Tm9kZSkgewotICAgIGlmICh0eXBlb2YgdGFyZ2V0Tm9kZSA9PSAi
c3RyaW5nIikgewotICAgICAgICB2YXIgYWRqdXN0ZWROb2RlU3RyaW5nID0gbm9kZVRvU3RyaW5n
KGFkanVzdGVkTm9kZSk7Ci0gICAgICAgIGlmICh0YXJnZXROb2RlID09IGFkanVzdGVkTm9kZVN0
cmluZykgewotICAgICAgICAgICAgdGVzdFBhc3NlZCgiYWRqdXN0ZWQgbm9kZSB3YXMgIiArIHRh
cmdldE5vZGUgKyAiLiIpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAg
dGVzdEZhaWxlZCgiYWRqdXN0ZWQgbm9kZSBzaG91bGQgYmUgIiArIHRhcmdldE5vZGUgICsgIi4g
V2FzICIgKyBhZGp1c3RlZE5vZGVTdHJpbmcgKyAiLiIpOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgaWYgKHRhcmdldE5vZGUgPT0gYWRqdXN0ZWROb2RlKSB7Ci0gICAg
ICAgIHRlc3RQYXNzZWQoImFkanVzdGVkIG5vZGUgd2FzICIgKyBub2RlVG9TdHJpbmcodGFyZ2V0
Tm9kZSkgKyAiLiIpOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgdGVzdEZhaWxlZCgiYWRq
dXN0ZWQgbm9kZSBzaG91bGQgYmUgIiArIG5vZGVUb1N0cmluZyh0YXJnZXROb2RlKSAgKyAiLiBX
YXMgIiArIG5vZGVUb1N0cmluZyhhZGp1c3RlZE5vZGUpICsgIi4iKTsKLSAgICB9Ci19Ci0KLWZ1
bmN0aW9uIHNob3VsZEJlV2l0aGluKGFkanVzdGVkUG9pbnQsIHRhcmdldEFyZWEpIHsKLSAgICBp
ZiAoYWRqdXN0ZWRQb2ludC54ID49IHRhcmdldEFyZWEubGVmdCAmJiBhZGp1c3RlZFBvaW50Lnkg
Pj0gdGFyZ2V0QXJlYS50b3AKLSAgICAgICAgJiYgYWRqdXN0ZWRQb2ludC54IDw9ICh0YXJnZXRB
cmVhLmxlZnQgKyB0YXJnZXRBcmVhLndpZHRoKQotICAgICAgICAmJiBhZGp1c3RlZFBvaW50Lnkg
PD0gKHRhcmdldEFyZWEudG9wICsgdGFyZ2V0QXJlYS5oZWlnaHQpKSB7Ci0gICAgICAgIHRlc3RQ
YXNzZWQoImFkanVzdGVkIHBvaW50IHdhcyB3aXRoaW4gIiArIGJvdW5kc1RvU3RyaW5nKHRhcmdl
dEFyZWEpKTsKLSAgICB9IGVsc2UgewotICAgICAgICB0ZXN0RmFpbGVkKCJhZGp1c3RlZCBub2Rl
IHNob3VsZCBiZSB3aXRoaW4gIiArIGJvdW5kc1RvU3RyaW5nKHRhcmdldEFyZWEpICArICIuIFdh
cyAiICsgcG9pbnRUb1N0cmluZyhhZGp1c3RlZFBvaW50KSk7Ci0gICAgfQotfQotCi1mdW5jdGlv
biB0ZXN0VG91Y2hQb2ludCh0b3VjaHBvaW50LCB0YXJnZXROb2RlLCBhbGxvd1RleHROb2RlcykK
LXsKLSAgICB2YXIgYWRqdXN0ZWROb2RlID0gaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9C
ZXN0Q2xpY2thYmxlTm9kZSh0b3VjaHBvaW50LmxlZnQsIHRvdWNocG9pbnQudG9wLCB0b3VjaHBv
aW50LndpZHRoLCB0b3VjaHBvaW50LmhlaWdodCk7Ci0gICAgaWYgKCFhbGxvd1RleHROb2RlcyAm
JiBhZGp1c3RlZE5vZGUgJiYgYWRqdXN0ZWROb2RlLm5vZGVUeXBlID09IDMpCi0gICAgICAgIGFk
anVzdGVkTm9kZSA9IGFkanVzdGVkTm9kZS5wYXJlbnROb2RlOwotICAgIHNob3VsZEJlTm9kZShh
ZGp1c3RlZE5vZGUsIHRhcmdldE5vZGUpOwotfQotCi1mdW5jdGlvbiB0ZXN0VG91Y2hQb2ludENv
bnRleHRNZW51KHRvdWNocG9pbnQsIHRhcmdldE5vZGUsIGFsbG93VGV4dE5vZGVzKQotewotICAg
IHZhciBhZGp1c3RlZE5vZGUgPSBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDb250
ZXh0TWVudU5vZGUodG91Y2hwb2ludC5sZWZ0LCB0b3VjaHBvaW50LnRvcCwgdG91Y2hwb2ludC53
aWR0aCwgdG91Y2hwb2ludC5oZWlnaHQpOwotICAgIGlmICghYWxsb3dUZXh0Tm9kZXMgJiYgYWRq
dXN0ZWROb2RlICYmIGFkanVzdGVkTm9kZS5ub2RlVHlwZSA9PSAzKQotICAgICAgICBhZGp1c3Rl
ZE5vZGUgPSBhZGp1c3RlZE5vZGUucGFyZW50Tm9kZTsKLSAgICBzaG91bGRCZU5vZGUoYWRqdXN0
ZWROb2RlLCB0YXJnZXROb2RlKTsKLX0KLQotZnVuY3Rpb24gYWRqdXN0VG91Y2hQb2ludCh0b3Vj
aHBvaW50KQotewotICAgIHZhciBhZGp1c3RlZFBvaW50ID0gaW50ZXJuYWxzLnRvdWNoUG9zaXRp
b25BZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUodG91Y2hwb2ludC5sZWZ0LCB0b3VjaHBvaW50
LnRvcCwgdG91Y2hwb2ludC53aWR0aCwgdG91Y2hwb2ludC5oZWlnaHQpOwotICAgIHJldHVybiBh
ZGp1c3RlZFBvaW50OwotfQotCi1mdW5jdGlvbiBhZGp1c3RUb3VjaFBvaW50Q29udGV4dE1lbnUo
dG91Y2hwb2ludCkKLXsKLSAgICB2YXIgYWRqdXN0ZWRQb2ludCA9IGludGVybmFscy50b3VjaFBv
c2l0aW9uQWRqdXN0ZWRUb0Jlc3RDb250ZXh0TWVudU5vZGUodG91Y2hwb2ludC5sZWZ0LCB0b3Vj
aHBvaW50LnRvcCwgdG91Y2hwb2ludC53aWR0aCwgdG91Y2hwb2ludC5oZWlnaHQpOwotICAgIHJl
dHVybiBhZGp1c3RlZFBvaW50OwotfQotCi1mdW5jdGlvbiB0b3VjaFBvaW50KHgsIHksIHJhZGl1
c1gsIHJhZGl1c1kpCi17Ci0gICAgaWYgKCFyYWRpdXNZKQotICAgICAgICByYWRpdXNZID0gcmFk
aXVzWDsKLQotICAgIHJldHVybiB7Ci0gICAgICAgIGxlZnQ6IHggLSByYWRpdXNYLAotICAgICAg
ICB0b3A6IHkgLSByYWRpdXNZLAotICAgICAgICB3aWR0aDogcmFkaXVzWCAqIDIsCi0gICAgICAg
IGhlaWdodDogcmFkaXVzWSAqIDIsCi0gICAgICAgIGdldCB4KCkgeyByZXR1cm4gdGhpcy5sZWZ0
ICsgdGhpcy53aWR0aC8yOyB9LAotICAgICAgICBnZXQgeSgpIHsgcmV0dXJuIHRoaXMudG9wICsg
dGhpcy5oZWlnaHQvMjsgfQotICAgIH07Ci19Ci0KLWZ1bmN0aW9uIG9mZnNldFRvdWNoUG9pbnQo
Ym91bmRzLCByZWxhdGl2ZVBvc2l0aW9uLCB0b3VjaE9mZnNldCwgdG91Y2hSYWRpdXNYLCB0b3Vj
aFJhZGl1c1kpCi17Ci0gICAgaWYgKCF0b3VjaFJhZGl1c1kpCi0gICAgICAgIHRvdWNoUmFkaXVz
WSA9IHRvdWNoUmFkaXVzWDsKLQotICAgIC8vIFN0YXJ0IHdpdGggdGhlIGNlbnRlciBvZiB0aGUg
dG91Y2ggYXQgdGhlIHRvcC1sZWZ0IG9mIHRoZSBib3VuZHMuCi0gICAgdmFyIHRvdWNocG9pbnQg
PSB0b3VjaFBvaW50KGJvdW5kcy5sZWZ0LCBib3VuZHMudG9wLCB0b3VjaFJhZGl1c1gsIHRvdWNo
UmFkaXVzWSk7Ci0gCi0gICAgLy8gQWRqdXN0IHRoZSB0b3VjaCBwb2ludCBhcyByZXF1ZXN0ZWQu
Ci0gICAgc3dpdGNoIChyZWxhdGl2ZVBvc2l0aW9uKSB7Ci0gICAgY2FzZSAnY2VudGVyJzoKLSAg
ICAgICAgdG91Y2hwb2ludC5sZWZ0ICs9IGJvdW5kcy53aWR0aCAvIDI7Ci0gICAgICAgIHRvdWNo
cG9pbnQudG9wICs9IGJvdW5kcy5oZWlnaHQgLyAyOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
ICdsZWZ0JzoKLSAgICAgICAgdG91Y2hwb2ludC5sZWZ0IC09IHRvdWNoT2Zmc2V0OwotICAgICAg
ICB0b3VjaHBvaW50LnRvcCArPSBib3VuZHMuaGVpZ2h0IC8gMjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSAncmlnaHQnOgotICAgICAgICB0b3VjaHBvaW50LmxlZnQgKz0gYm91bmRzLndpZHRo
ICsgdG91Y2hPZmZzZXQ7Ci0gICAgICAgIHRvdWNocG9pbnQudG9wICs9ICBib3VuZHMuaGVpZ2h0
IC8gMjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAndG9wLWxlZnQnOgotICAgICAgICB0b3Vj
aHBvaW50LmxlZnQgLT0gdG91Y2hPZmZzZXQ7Ci0gICAgICAgIHRvdWNocG9pbnQudG9wIC09IHRv
dWNoT2Zmc2V0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlICd0b3AtcmlnaHQnOgotICAgICAg
ICB0b3VjaHBvaW50LmxlZnQgKz0gYm91bmRzLndpZHRoICsgdG91Y2hPZmZzZXQ7Ci0gICAgICAg
IHRvdWNocG9pbnQudG9wIC09IHRvdWNoT2Zmc2V0OwotICAgICAgICBicmVhazsKLSAgICBjYXNl
ICdib3R0b20tbGVmdCc6Ci0gICAgICAgIHRvdWNocG9pbnQubGVmdCAtPSB0b3VjaE9mZnNldDsK
LSAgICAgICAgdG91Y2hwb2ludC50b3AgKz0gYm91bmRzLmhlaWdodCArIHRvdWNoT2Zmc2V0Owot
ICAgICAgICBicmVhazsKLSAgICBjYXNlICdib3R0b20tcmlnaHQnOgotICAgICAgICB0b3VjaHBv
aW50LmxlZnQgKz0gYm91bmRzLndpZHRoICsgdG91Y2hPZmZzZXQ7Ci0gICAgICAgIHRvdWNocG9p
bnQudG9wICs9IGJvdW5kcy5oZWlnaHQgKyB0b3VjaE9mZnNldDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSAndG9wJzoKLSAgICAgICAgdG91Y2hwb2ludC5sZWZ0ICs9IGJvdW5kcy53aWR0aCAv
IDI7Ci0gICAgICAgIHRvdWNocG9pbnQudG9wIC09IHRvdWNoT2Zmc2V0OwotICAgICAgICBicmVh
azsKLSAgICBjYXNlICdib3R0b20nOgotICAgICAgICB0b3VjaHBvaW50LmxlZnQgKz0gYm91bmRz
LndpZHRoIC8gMjsKLSAgICAgICAgdG91Y2hwb2ludC50b3AgKz0gYm91bmRzLmhlaWdodCArIHRv
dWNoT2Zmc2V0OwotICAgIH0KLQotICAgIHJldHVybiB0b3VjaHBvaW50OwotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3JvdGF0ZWQtbm9kZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcm90YXRlZC1ub2RlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdmNWY4NDYyMjYzMTRiNmIwYzBmZDgxMWFh
ODY1MWFjMDllY2VmYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcm90YXRlZC1ub2RlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLVRlc3QgdG91Y2ggYWRqdXN0bWVudCB0
byBhIG5vbi1yZWN0aWxpbmVhciBlbGVtZW50LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotRGlyZWN0IFRvdWNoZXMKLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI3JvdGF0ZWQu
Ci1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNyb3RhdGVkLgotUEFTUyBhZGp1c3RlZCBub2Rl
IHdhcyBESVYjcm90YXRlZC4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI3JvdGF0ZWQuCi1Q
QVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNyb3RhdGVkLgotUEFTUyBhZGp1c3RlZCBub2RlIHdh
cyBESVYjY29udGFpbmVyLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBESVYjY29udGFpbmVyLgot
UEFTUyBhZGp1c3RlZCBub2RlIHdhcyBESVYjY29udGFpbmVyLgotCi1BZGp1c3RlZCBUb3VjaGVz
Ci1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNyb3RhdGVkLgotUEFTUyBhZGp1c3RlZCBub2Rl
IHdhcyBESVYjcm90YXRlZC4KLQotTmVhciBNaXNzZXMKLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMg
RElWI2NvbnRhaW5lci4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI2NvbnRhaW5lci4KLQot
QWRqdXN0ZWQgcG9pbnQgd2l0aGluIGJvdW5kcwotUEFTUyBhZGp1c3RlZCBwb2ludCB3YXMgd2l0
aGluICgwLC0yMCl4KDQwLDQwKQotUEFTUyBhZGp1c3RlZCBwb2ludCB3YXMgd2l0aGluICg0MCw0
MCl4KDQwLDQwKQotUEFTUyBhZGp1c3RlZCBwb2ludCB3YXMgd2l0aGluICgtNDAsNDApeCg4MCw0
MCkKLVBBU1MgYWRqdXN0ZWQgcG9pbnQgd2FzIHdpdGhpbiAoNTAsLTIwKXgoNDAsODApCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3JvdGF0ZWQtbm9kZS5odG1sIGIvTGF5b3V0
VGVzdHMvdG91Y2hhZGp1c3RtZW50L3JvdGF0ZWQtbm9kZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2NDhhMDYzZDZjYjc5Nzk1MDVkMDhlMmFmMTlhZDg3NTVmMGU1M2FjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3RvdWNoYWRqdXN0bWVudC9yb3RhdGVkLW5vZGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEx
MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHRpdGxlPlRl
c3QgdG91Y2ggYWRqdXN0bWVudCB0byBhIG5vbi1yZWN0aWxpbmVhciBlbGVtZW50LjwvdGl0bGU+
Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90b3VjaGFkanVzdG1lbnQuanMiPjwvc2NyaXB0
PgotICAgIDxzdHlsZT4KLSAgICAgICAgYm9keSB7IG1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHg7
IH0KLSAgICAgICAgI2NvbnRhaW5lciB7Ci0gICAgICAgICAgICAtd2Via2l0LWJveC1zaXppbmc6
IGJvcmRlci1ib3g7Ci0gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgICAgICAg
ICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKLSAgICAgICAgICAgIGhlaWdodDogMTAwcHg7Ci0g
ICAgICAgICAgICB3aWR0aDogMTAwcHg7Ci0gICAgICAgIH0KLSAgICAgICAgI3JvdGF0ZWQgewot
ICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgICAgICAgICAg
LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7Ci0gICAgICAgICAgICBib3JkZXI6IDFw
eCBzb2xpZCBibGFjazsKLSAgICAgICAgICAgIGhlaWdodDogNDBweDsKLSAgICAgICAgICAgIGxl
ZnQ6IDEwcHg7Ci0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICB0
b3A6IDEwcHg7Ci0gICAgICAgICAgICB3aWR0aDogNDBweDsKLSAgICAgICAgfQotICAgIDwvc3R5
bGU+Ci0KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRp
diBpZD0icm90YXRlZCI+PC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+
Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICAvLyBTZXQgdXAgc2hv
cnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRzCi0gICAgdmFyIGUgPSB7fTsKLSAgICBbJ2NvbnRhaW5l
cicsICdyb3RhdGVkJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7Ci0gICAgICAgIGVbYV0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChhKTsKLSAgICAgICAgZVthXS5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGZ1bmN0aW9uKCkge30sIGZhbHNlKTsKLSAgICB9KTsKLQotICAgIGZ1bmN0aW9uIHRl
c3REaXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIGRlYnVnKCdEaXJlY3QgVG91Y2hlcycp
OwotCi0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoMzAsIDMwLCAyMCksIGUucm90
YXRlZCk7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoMjAsIDMwLCAyMCksIGUu
cm90YXRlZCk7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoNDAsIDMwLCAyMCks
IGUucm90YXRlZCk7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoMzAsIDIwLCAy
MCksIGUucm90YXRlZCk7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoMzAsIDQw
LCAyMCksIGUucm90YXRlZCk7Ci0KLSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hQb2ludCg4
MCwgODAsIDIwKSwgZS5jb250YWluZXIpOwotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBv
aW50KDgwLCAyMCwgMjApLCBlLmNvbnRhaW5lcik7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRv
dWNoUG9pbnQoMjAsIDgwLCAyMCksIGUuY29udGFpbmVyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biB0ZXN0QWRqdXN0ZWRUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIGRlYnVnKCdcbkFkanVzdGVk
IFRvdWNoZXMnKTsKLQotICAgICAgICAvLyBUb3VjaCBvdmVybGFwcyBjZW50ZXIgb2YgZWxlbWVu
dC4KLSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hQb2ludCgxMCwgMTAsIDMwKSwgZS5yb3Rh
dGVkKTsKLQotICAgICAgICAvLyBUb3VjaCBvdmVybGFwcyBjb3JuZXIgb2YgZWxlbWVudC4KLSAg
ICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hQb2ludCgyMCwgMCwgMjApLCBlLnJvdGF0ZWQpOwot
Ci0gICAgICAgIGRlYnVnKCdcbk5lYXIgTWlzc2VzJyk7Ci0KLSAgICAgICAgLy8gVG91Y2ggb3Zl
cmxhcHMgYm91bmRpbmctYm94IG9mIGVsZW1lbnQsIGJ1dCBub3QgdGhlIGFjdHVhbCBib3VuZHMu
Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoNzEsIDAsIDIwKSwgZS5jb250YWlu
ZXIpOwotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDcxLCA2MCwgMjApLCBlLmNv
bnRhaW5lcik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEFkanVzdGVkUG9pbnRzKCkKLSAg
ICB7Ci0gICAgICAgIGRlYnVnKCdcbkFkanVzdGVkIHBvaW50IHdpdGhpbiBib3VuZHMnKTsKLSAg
ICAgICAgdmFyIGFkanVzdGVkUG9pbnQgPSBhZGp1c3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoMjAs
IDAsIDIwKSkKLSAgICAgICAgc2hvdWxkQmVXaXRoaW4oYWRqdXN0ZWRQb2ludCwgdG91Y2hQb2lu
dCgyMCwgMCwgMjApKTsKLQotICAgICAgICBhZGp1c3RlZFBvaW50ID0gYWRqdXN0VG91Y2hQb2lu
dCh0b3VjaFBvaW50KDYwLCA2MCwgMjApKQotICAgICAgICBzaG91bGRCZVdpdGhpbihhZGp1c3Rl
ZFBvaW50LCB0b3VjaFBvaW50KDYwLCA2MCwgMjApKTsKLQotICAgICAgICBhZGp1c3RlZFBvaW50
ID0gYWRqdXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDAsIDYwLCA0MCwgMjApKQotICAgICAgICBz
aG91bGRCZVdpdGhpbihhZGp1c3RlZFBvaW50LCB0b3VjaFBvaW50KDAsIDYwLCA0MCwgMjApKTsK
LQotICAgICAgICBhZGp1c3RlZFBvaW50ID0gYWRqdXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDcw
LCAyMCwgMjAsIDQwKSkKLSAgICAgICAgc2hvdWxkQmVXaXRoaW4oYWRqdXN0ZWRQb2ludCwgdG91
Y2hQb2ludCg3MCwgMjAsIDIwLCA0MCkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3Rz
KCkKLSAgICB7Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVu
Y3Rpb24oKSB7fSwgZmFsc2UpOwotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2Fi
bGVOb2RlKSB7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbihkb2N1bWVudC50aXRsZSk7Ci0gICAg
ICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwotICAgICAgICAgICAgdGVzdEFkanVzdGVkVG91
Y2hlcygpOwotICAgICAgICAgICAgdGVzdEFkanVzdGVkUG9pbnRzKCkKLSAgICAgICAgICAgIGUu
Y29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
cnVuVGVzdHMoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc2Nyb2xsLWRlbGVnYXRpb24vaWZyYW1lLXdpdGgtbWFp
bmZyYW1lLXNjcm9sbC1vZmZzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1
c3RtZW50L3Njcm9sbC1kZWxlZ2F0aW9uL2lmcmFtZS13aXRoLW1haW5mcmFtZS1zY3JvbGwtb2Zm
c2V0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE4OTdhMTU1
YTA0ZGI4OTU0M2M1YzRjYWRmZTVjMzYyNjBiMmQwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc2Nyb2xs
LWRlbGVnYXRpb24vaWZyYW1lLXdpdGgtbWFpbmZyYW1lLXNjcm9sbC1vZmZzZXQtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotCi1UZXN0IGlmcmFtZSB3aXRoIG1h
aW4gZnJhbWUgc2Nyb2xsIG9mZnNldCBjYXNlIG9mIHRhcC10by16b29tIG1lY2hhbmljcy4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgem9vbWFibGVBcmVhLnRvcCBpcyA2
MDAKLVBBU1Mgem9vbWFibGVBcmVhLmxlZnQgaXMgMTAwCi1QQVNTIHpvb21hYmxlQXJlYS53aWR0
aCBpcyAyMDAKLVBBU1Mgem9vbWFibGVBcmVhLmhlaWdodCBpcyAxMDAKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvc2Nyb2xsLWRlbGVnYXRpb24vaWZyYW1lLXdpdGgtbWFpbmZy
YW1lLXNjcm9sbC1vZmZzZXQuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9zY3Jv
bGwtZGVsZWdhdGlvbi9pZnJhbWUtd2l0aC1tYWluZnJhbWUtc2Nyb2xsLW9mZnNldC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDQ4NmQ5NTBlODZkMjEyYmY5ZGMwMzA4MDc2
YWIzN2M0NjI2MzQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9zY3JvbGwtZGVsZWdhdGlvbi9pZnJhbWUt
d2l0aC1tYWluZnJhbWUtc2Nyb2xsLW9mZnNldC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c3R5bGU+Ci0gICAgICAgICNzY3JvbGxv
ZmZzZXRjb250YWluZXIgewotICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAg
ICAgICAgdG9wOiA1MDBweDsKLSAgICAgICAgICAgIGhlaWdodDogMTAwMHB4OwotICAgICAgICB9
Ci0gICAgICAgIGJvZHkgewotICAgICAgICAgICAgbWFyZ2luOiAwcHg7Ci0gICAgICAgIH0KLSAg
ICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KLQotPGRpdiBp
ZD1zY3JvbGxvZmZzZXRjb250YWluZXI+Ci0gICAgPGlmcmFtZSBmcmFtZWJvcmRlcj0nMHB4JyBz
cmM9J2RhdGE6dGV4dC9odG1sLAotICAgICAgICA8aHRtbD4KLSAgICAgICAgPGhlYWQ+Ci0gICAg
ICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICAgICAgI2RpdjAgeyBwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDUwcHg7IHRvcDogNTBweDsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyBi
b3gtc2l6aW5nOiBib3JkZXItYm94OyB9Ci0gICAgICAgICAgICAgICAgI2RpdjEgeyBwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDUwcHg7IHRvcDogNTBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6
IDEwMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9Ci0gICAgICAgICAgICA8L3N0eWxlPgot
ICAgICAgICA8L2hlYWQ+Ci0gICAgICAgIDxib2R5PgotICAgICAgICAgICAgPGRpdiBpZD1kaXYw
PgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9ZGl2MT48L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2
PgotICAgICAgICA8L2JvZHk+Ci0gICAgICAgIDwvaHRtbD4nPgotICAgIDwvaWZyYW1lPgotICAg
IDxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgotICAgIDxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2Pgot
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gdGVzdFJvdW5kVG91Y2goeCwgeSwgcmFk
aXVzKQotICAgIHsKLSAgICAgICAgdmFyIHggPSB4IC0gcmFkaXVzOwotICAgICAgICB2YXIgeSA9
IHkgLSByYWRpdXM7Ci0gICAgICAgIHZhciB3aWR0aCA9IHJhZGl1cyAqIDI7Ci0gICAgICAgIHZh
ciBoZWlnaHQgPSByYWRpdXMgKiAyOwotICAgICAgICB2YXIgem9vbWFibGVSZWN0ID0gaW50ZXJu
YWxzLmJlc3Rab29tYWJsZUFyZWFGb3JUb3VjaFBvaW50KHgsIHksIHdpZHRoLCBoZWlnaHQpOwot
ICAgICAgICByZXR1cm4gem9vbWFibGVSZWN0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3RE
aXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIHpvb21hYmxlQXJlYSA9IHRlc3RSb3VuZFRv
dWNoKDEwMCwgNjAwLCAxMCk7Ci0gICAgICAgIHNob3VsZEV2YWx1YXRlVG8oJ3pvb21hYmxlQXJl
YS50b3AnLCA2MDApOwotICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCd6b29tYWJsZUFyZWEubGVm
dCcsIDEwMCk7Ci0gICAgICAgIHNob3VsZEV2YWx1YXRlVG8oJ3pvb21hYmxlQXJlYS53aWR0aCcs
IDIwMCk7Ci0gICAgICAgIHNob3VsZEV2YWx1YXRlVG8oJ3pvb21hYmxlQXJlYS5oZWlnaHQnLCAx
MDApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3Vj
aE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUgJiYgaW50ZXJuYWxzLnNldERlbGVnYXRl
c1Njcm9sbGluZykgewotICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgaWZyYW1lIHdpdGgg
bWFpbiBmcmFtZSBzY3JvbGwgb2Zmc2V0IGNhc2Ugb2YgdGFwLXRvLXpvb20gbWVjaGFuaWNzLicp
OwotICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDAsNTAwKTsKLSAgICAgICAgICAgIGludGVy
bmFscy5zZXREZWxlZ2F0ZXNTY3JvbGxpbmcodHJ1ZSk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
ICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsKLSAgICAgICAgICAgIGlzU3VjY2Vzc2Z1
bGx5UGFyc2VkKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAg
ICAgfQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3Njcm9sbC1vZmZzZXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3Njcm9sbC1vZmZzZXQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MzJjNTIwNThjN2FlNTQ0YmQzOTNkZWFiYjQ3MzZl
MGYzYTUzNDQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9zY3JvbGwtb2Zmc2V0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRlc3QgdG91Y2ggYWRqdXN0bWVudCB3aGVu
IG1haW4gZnJhbWUgaXMgc2Nyb2xsIG9mZnNldC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQSNhMC4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3
YXMgQSNhMS4KLVBBU1MgYWRqdXN0ZWRQb2ludCBpcyBub24tbnVsbC4KLVBBU1MgYWRqdXN0ZWRO
b2RlIGlzIGUuYTAKLVBBU1MgYWRqdXN0ZWRQb2ludCBpcyBub24tbnVsbC4KLVBBU1MgYWRqdXN0
ZWROb2RlIGlzIGUuYTEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc2Nyb2xs
LW9mZnNldC5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3Njcm9sbC1vZmZzZXQu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNiMTZjZDczZDI5OGQ3OWY0ZjAy
NzY5N2YxZWZkYTQ1ZTc0Mjg2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc2Nyb2xsLW9mZnNldC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50IDogQWRqdXN0IGNvcnJlY3RseSBm
b3Igc2Nyb2xsIG9mZnNldCAtIGJ1ZyA4NjIwNTwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy90b3VjaGFkanVzdG1lbnQuanMiPjwvc2NyaXB0PgotICAgIDxzdHlsZT4KLSAgICAg
ICAgI3Njcm9sbG9mZnNldGNvbnRhaW5lciB7Ci0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0gICAgICAgICAgICB0b3A6IDUwMHB4OwotICAgICAgICAgICAgaGVpZ2h0OiAxMDAwcHg7
Ci0gICAgICAgIH0KLSAgICAgICAgYm9keSB7Ci0gICAgICAgICAgICBtYXJnaW46IDBweDsKLSAg
ICAgICAgfQotICAgICAgICAjZGl2MCB7IG1hcmdpbi1sZWZ0OiAyMHB4OyBoZWlnaHQ6IDEwMHB4
OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9Ci0gICAgICAgICNkaXYxIHsgbWFyZ2luLWxlZnQ6
IDEwcHg7IGhlaWdodDogMTAwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0KLSAgICA8L3N0
eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9c2Nyb2xsb2Zmc2V0Y29udGFpbmVyPgot
ICAgIDxkaXYgaWQ9ZGl2MD4KLSAgICAgICAgPGEgaWQ9YTAgaHJlZj0iI2RpdjAiPkxpbmsgMDwv
YT4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2IGlkPWRpdjE+Ci0gICAgICAgIDxhIGlkPWExIGhyZWY9
IiNkaXYxIj5MaW5rIDE8L2E+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2NyaXB0
aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICB2YXIg
YWRqdXN0ZWROb2RlOwotICAgIHZhciBhZGp1c3RlZFBvaW50OwotICAgIC8vIFNldCB1cCBzaG9y
dGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKLSAgICB2YXIgZSA9IHt9OwotICAgIFsnc2Nyb2xsb2Zm
c2V0Y29udGFpbmVyJywgJ2RpdjAnLCAnZGl2MScsICdhMCcsICdhMSddLmZvckVhY2goZnVuY3Rp
b24oYSkgewotICAgICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7Ci0gICAg
fSk7Ci0KLSAgICBmdW5jdGlvbiBhZGp1c3RlZFBvaW50QXRUb3VjaCh4LCB5LCByYWRpdXMpCi0g
ICAgewotICAgICAgICB2YXIgeCA9IHggLSByYWRpdXM7Ci0gICAgICAgIHZhciB5ID0geSAtIHJh
ZGl1czsKLSAgICAgICAgdmFyIHdpZHRoID0gcmFkaXVzICogMjsKLSAgICAgICAgdmFyIGhlaWdo
dCA9IHJhZGl1cyAqIDI7Ci0gICAgICAgIHZhciBwb3NpdGlvbiA9IGludGVybmFscy50b3VjaFBv
c2l0aW9uQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKHgsIHksIHdpZHRoLCBoZWlnaHQpOwot
ICAgICAgICByZXR1cm4gcG9zaXRpb247Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdERpcmVj
dFRvdWNoZXMoKQotICAgIHsKLSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hQb2ludCg0MCwg
MTMwLCA1MCksIGUuYTApOwotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDMwLCAy
MzAsIDUwKSwgZS5hMSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHRlc3RBZGp1c3RlZFRvdWNoZXMo
KQotICAgIHsKLSAgICAgICAgYWRqdXN0ZWRQb2ludCA9IGFkanVzdGVkUG9pbnRBdFRvdWNoKDEw
LCAxMjAsIDgwKTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCdhZGp1c3RlZFBvaW50Jyk7Ci0g
ICAgICAgIGFkanVzdGVkTm9kZSA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoYWRqdXN0ZWRQ
b2ludC54LCBhZGp1c3RlZFBvaW50LnkpOwotICAgICAgICBzaG91bGRCZSgnYWRqdXN0ZWROb2Rl
JywgJ2UuYTAnKTsKLQotICAgICAgICBhZGp1c3RlZFBvaW50ID0gYWRqdXN0ZWRQb2ludEF0VG91
Y2goNSwgMjIwLCA4MCk7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgnYWRqdXN0ZWRQb2ludCcp
OwotICAgICAgICBhZGp1c3RlZE5vZGUgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGFkanVz
dGVkUG9pbnQueCwgYWRqdXN0ZWRQb2ludC55KTsKLSAgICAgICAgc2hvdWxkQmUoJ2FkanVzdGVk
Tm9kZScsICdlLmExJyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdHMoKQotICAgIHsK
LSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50
ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9kZSkgewotICAgICAgICAg
ICAgZGVzY3JpcHRpb24oJ1Rlc3QgdG91Y2ggYWRqdXN0bWVudCB3aGVuIG1haW4gZnJhbWUgaXMg
c2Nyb2xsIG9mZnNldC4nKTsKLSAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxCeSgwLDQwMCk7Ci0g
ICAgICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwotICAgICAgICAgICAgdGVzdEFkanVzdGVk
VG91Y2hlcygpOwotICAgICAgICAgICAgZS5zY3JvbGxvZmZzZXRjb250YWluZXIuc3R5bGUuZGlz
cGxheSA9ICdub25lJzsKLSAgICAgICAgfQotICAgIH0KLSAgICBydW5UZXN0cygpOwotPC9zY3Jp
cHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1
c3RtZW50L3NlYXJjaC1jYW5jZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1
c3RtZW50L3NlYXJjaC1jYW5jZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyMTI2MjVjZGIyYTFlNGFkYTk0NDI4OGJkOTQzOTVkZDhhNDFiMDJjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNo
YWRqdXN0bWVudC9zZWFyY2gtY2FuY2VsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMwICswLDAgQEAKLQotVGVzdCB0b3VjaCBhZGp1c3RtZW50IG9uIGEgc2VhcmNoIGZpZWxkIHdp
dGggYSB2aXNpYmxlIGNhbmNlbCBidXR0b24uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi0KLVRvdWNoIGNlbnRlcmVkIG9uIGNhbmNlbCBidXR0b24gYnV0IG92ZXJsYXBwaW5nIG5l
aWdoYm9yaW5nIGNhbmRpZGF0ZS4KLVBBU1MgdGFyZ2V0Q29udGFpbnNQb2ludCBpcyB0cnVlCi1Q
QVNTIHRvdWNoQ29udGFpbnNQb2ludCBpcyB0cnVlCi0KLU9mZi1jZW50ZXIgdG91Y2hlcyBlbmNs
b3NpbmcgY2FuY2VsIGJ1dHRvbi4KLVBBU1MgdGFyZ2V0Q29udGFpbnNQb2ludCBpcyB0cnVlCi1Q
QVNTIHRvdWNoQ29udGFpbnNQb2ludCBpcyB0cnVlCi1QQVNTIHRhcmdldENvbnRhaW5zUG9pbnQg
aXMgdHJ1ZQotUEFTUyB0b3VjaENvbnRhaW5zUG9pbnQgaXMgdHJ1ZQotUEFTUyB0YXJnZXRDb250
YWluc1BvaW50IGlzIHRydWUKLVBBU1MgdG91Y2hDb250YWluc1BvaW50IGlzIHRydWUKLQotVG91
Y2hlcyBjbGlwcGluZyBsZWZ0IGVkZ2Ugb2YgY2FuY2VsLWJ1dHRvbi4KLVBBU1MgdGFyZ2V0Q29u
dGFpbnNQb2ludCBpcyB0cnVlCi1QQVNTIHRvdWNoQ29udGFpbnNQb2ludCBpcyB0cnVlCi1QQVNT
IHRhcmdldENvbnRhaW5zUG9pbnQgaXMgdHJ1ZQotUEFTUyB0b3VjaENvbnRhaW5zUG9pbnQgaXMg
dHJ1ZQotUEFTUyB0YXJnZXRDb250YWluc1BvaW50IGlzIHRydWUKLVBBU1MgdG91Y2hDb250YWlu
c1BvaW50IGlzIHRydWUKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc2VhcmNo
LWNhbmNlbC5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3NlYXJjaC1jYW5jZWwu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ4ODIxNDRhZjMyOWY5ZDEzOTU4
NmRhNDMzZDRlY2Y2MWI3NzQ5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc2VhcmNoLWNhbmNlbC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLSAgICA8dGl0bGU+VG91Y2ggQWRqdXN0bWVudCA6IFNoYWRvdyBET00gRWxlbWVu
dCBTZWFyY2ggQ2FuY2VsIEJ1dHRvbiAtIGJ1ZyA5MTg5NDwvdGl0bGU+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy90b3VjaGFkanVzdG1lbnQuanMiPjwvc2NyaXB0PgotICAgIDxzdHlsZT4K
LSAgICAgICAgaW5wdXRbdHlwZT0nc2VhcmNoJ10gewotICAgICAgICAtd2Via2l0LWFwcGVhcmFu
Y2U6IG5vbmU7Ci0gICAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKLSAgICAg
ICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTsKLSAgICAgICAgcGFkZGluZzogNXB4OwotICAgICAg
ICB9Ci0KLSAgICAgICAgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNl
bC1idXR0b24gewotICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci0gICAgICAgIC13
ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKLSAgICAgICAgYmFja2dyb3VuZDogIzk5OTsK
LSAgICAgICAgaGVpZ2h0OiAxMHB4OwotICAgICAgICBtYXJnaW46IDA7Ci0gICAgICAgIHBhZGRp
bmc6IDA7Ci0gICAgICAgIHdpZHRoOiAxMHB4OwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwv
aGVhZD4KLQotPGJvZHk+Ci0KLTxkaXY+Ci0gIDxpbnB1dCBpZD0idGFyZ2V0IiB0eXBlPSJzZWFy
Y2giIHZhbHVlPSJhYmNkIj4KLTwvZGl2PgotCi08cCBpZD0nZGVzY3JpcHRpb24nPjwvcD4KLTxk
aXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgotCi08c2NyaXB0PgotICAgIHZhciBlbGVtZW50OwotICAg
IHZhciBhZGp1c3RlZE5vZGU7Ci0gICAgdmFyIGFkanVzdGVkUG9pbnQ7Ci0gICAgdmFyIGlucHV0
Qm91bmRzOwotICAgIHZhciBjYW5jZWxCb3VuZHM7Ci0gICAgdmFyIHRleHRDb250ZW50Qm91bmRz
OwotICAgIHZhciB0b3VjaEJvdW5kczsKLSAgICB2YXIgdGFyZ2V0Qm91bmRzOwotICAgIHZhciB0
YXJnZXRDb250YWluc1BvaW50OwotICAgIHZhciB0b3VjaENvbnRhaW5zUG9pbnQ7Ci0KLSAgICBm
dW5jdGlvbiBydW5Ub3VjaFRlc3RzKCkgewotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCdjbGljaycsIGZ1bmN0aW9uKCkge30sIGZhbHNlKTsKLQotICAgICAgICBlbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwotICAgICAgICAKLSAgICAgICAgaW5w
dXRCb3VuZHMgPSBmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVudCk7Ci0KLSAgICAgICAgdmFyIHRv
dWNoUmFkaXVzID0gMjA7Ci0gICAgICAgIHZhciBvZmZzZXQgPSB0b3VjaFJhZGl1cyAvIDI7Ci0K
LSAgICAgICAgLy8gQ2VudGVyIG9mIGNhbmNlbCBidXR0b24uCi0gICAgICAgIHZhciBtaWRYID0g
aW5wdXRCb3VuZHMubGVmdCArIGlucHV0Qm91bmRzLndpZHRoIC0gMTE7Ci0gICAgICAgIHZhciBt
aWRZID0gaW5wdXRCb3VuZHMudG9wICsgaW5wdXRCb3VuZHMuaGVpZ2h0IC8gMjsKLQotICAgICAg
ICBjYW5jZWxCb3VuZHMgPSB7Ci0gICAgICAgICAgICBsZWZ0OiBtaWRYIC0gNSwKLSAgICAgICAg
ICAgIHRvcDogbWlkWSAtIDUsCi0gICAgICAgICAgICB3aWR0aDogMTAsCi0gICAgICAgICAgICBo
ZWlnaHQ6IDEwCi0gICAgICAgIH07Ci0KLSAgICAgICAgdGV4dENvbnRlbnRCb3VuZHMgPSB7Ci0g
ICAgICAgICAgIGxlZnQ6IGlucHV0Qm91bmRzLmxlZnQsCi0gICAgICAgICAgIHRvcDogaW5wdXRC
b3VuZHMudG9wLAotICAgICAgICAgICB3aWR0aDogaW5wdXRCb3VuZHMud2lkdGggLSAxNiwKLSAg
ICAgICAgICAgaGVpZ2h0OiBpbnB1dEJvdW5kcy5oZWlnaHQKLSAgICAgICAgfTsKLQotICAgICAg
ICBkZWJ1ZygnXG5Ub3VjaCBjZW50ZXJlZCBvbiBjYW5jZWwgYnV0dG9uIGJ1dCBvdmVybGFwcGlu
ZyBuZWlnaGJvcmluZyBjYW5kaWRhdGUuJyk7Ci0gICAgICAgIHRlc3RUb3VjaChtaWRYLCBtaWRZ
LCB0b3VjaFJhZGl1cywgY2FuY2VsQm91bmRzKTsKLQotICAgICAgICBkZWJ1ZygnXG5PZmYtY2Vu
dGVyIHRvdWNoZXMgZW5jbG9zaW5nIGNhbmNlbCBidXR0b24uJyk7Ci0gICAgICAgIHRlc3RUb3Vj
aChtaWRYIC0gb2Zmc2V0LCBtaWRZLCB0b3VjaFJhZGl1cywgY2FuY2VsQm91bmRzKTsKLSAgICAg
ICAgdGVzdFRvdWNoKG1pZFggLSBvZmZzZXQsIG1pZFkgKyBvZmZzZXQsIHRvdWNoUmFkaXVzLCBj
YW5jZWxCb3VuZHMpOwotICAgICAgICB0ZXN0VG91Y2gobWlkWCAtIG9mZnNldCwgbWlkWSAtIG9m
ZnNldCwgdG91Y2hSYWRpdXMsIGNhbmNlbEJvdW5kcyk7Ci0KLSAgICAgICAgZGVidWcoJ1xuVG91
Y2hlcyBjbGlwcGluZyBsZWZ0IGVkZ2Ugb2YgY2FuY2VsLWJ1dHRvbi4nKTsKLSAgICAgICAgdGVz
dFRvdWNoKG1pZFggLSB0b3VjaFJhZGl1cyAtIDIsIG1pZFksIHRvdWNoUmFkaXVzLCB0ZXh0Q29u
dGVudEJvdW5kcyk7Ci0gICAgICAgIHRlc3RUb3VjaChtaWRYIC0gdG91Y2hSYWRpdXMgLSAyLCBt
aWRZIC0gb2Zmc2V0LCB0b3VjaFJhZGl1cywgdGV4dENvbnRlbnRCb3VuZHMpOwotICAgICAgICB0
ZXN0VG91Y2gobWlkWCAtIHRvdWNoUmFkaXVzIC0gMiwgbWlkWSArIG9mZnNldCwgdG91Y2hSYWRp
dXMsIHRleHRDb250ZW50Qm91bmRzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0VG91Y2go
dG91Y2hYLCB0b3VjaFksIHJhZGl1cywgYm91bmRzKSB7Ci0KLSAgICAgICAgdGFyZ2V0Qm91bmRz
ID0gYm91bmRzOwotCi0gICAgICAgIHRvdWNoQm91bmRzID0gewotICAgICAgICAgICAgbGVmdDog
dG91Y2hYIC0gcmFkaXVzLAotICAgICAgICAgICAgdG9wOiB0b3VjaFkgLSByYWRpdXMsCi0gICAg
ICAgICAgICB3aWR0aDogMiAqIHJhZGl1cywKLSAgICAgICAgICAgIGhlaWdodDogMiAqIHJhZGl1
cwotICAgICAgICB9OwotICAgICAgICBhZGp1c3RlZFBvaW50ID0gaW50ZXJuYWxzLnRvdWNoUG9z
aXRpb25BZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUodG91Y2hCb3VuZHMubGVmdCwgdG91Y2hC
b3VuZHMudG9wLCB0b3VjaEJvdW5kcy53aWR0aCwgdG91Y2hCb3VuZHMuaGVpZ2h0KTsKLSAgICAg
ICAgdGFyZ2V0Q29udGFpbnNQb2ludCA9IGNvbnRhaW5zUG9pbnQodGFyZ2V0Qm91bmRzLCBhZGp1
c3RlZFBvaW50KTsKLSAgICAgICAgdG91Y2hDb250YWluc1BvaW50ID0gY29udGFpbnNQb2ludCh0
b3VjaEJvdW5kcywgYWRqdXN0ZWRQb2ludCk7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgndGFyZ2V0
Q29udGFpbnNQb2ludCcpOwotICAgICAgICBzaG91bGRCZVRydWUoJ3RvdWNoQ29udGFpbnNQb2lu
dCcpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNvbnRhaW5zUG9pbnQoYm91bmRzLCBwb2ludCkg
ewotICAgICAgICByZXR1cm4gYm91bmRzLmxlZnQgPD0gcG9pbnQueCAmJiBib3VuZHMudG9wIDw9
IHBvaW50LnkgJiYgYm91bmRzLmxlZnQgKyBib3VuZHMud2lkdGggPj0gcG9pbnQueCAmJiBib3Vu
ZHMubGVmdCArIGJvdW5kcy5oZWlnaHQgPj0gcG9pbnQueTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBydW5UZXN0cygpCi0gICAgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2Fi
bGVOb2RlKSB7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdCB0b3VjaCBhZGp1c3RtZW50
IG9uIGEgc2VhcmNoIGZpZWxkIHdpdGggYSB2aXNpYmxlIGNhbmNlbCBidXR0b24uJyk7Ci0gICAg
ICAgICAgICBydW5Ub3VjaFRlc3RzKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcnVuVGVzdHMo
KTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91
Y2hhZGp1c3RtZW50L3NtYWxsLXRhcmdldC10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3RvdWNoYWRqdXN0bWVudC9zbWFsbC10YXJnZXQtdGVzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1OTAzMjE2OTY3ZmViZWY1YzE0ZjI2ZWM2NDQzZmI4YmEx
YWUxNDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3NtYWxsLXRhcmdldC10ZXN0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLVRlc3RzIGlmIHNtYWxsIGNsaWNrYWJsZSB0
YXJnZXRzIGFkamFjZW50IHRvIGxhcmdlciBjbGlja2FibGUgY29udHJvbHMgYXJlIHByb3Blcmx5
IHRhcmdldHRlZCB3aXRoIHRvdWNoIGFkanVzdG1lbnQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1UZXN0aW5nIHNtYWxsIGRpcmVjdCBoaXRzLgotUEFTUyBhZGp1c3RlZCBub2Rl
IHdhcyBESVYjY2hlY2suCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIElOUFVUI3Rhc2suCi1QQVNT
IGFkanVzdGVkIG5vZGUgd2FzIElOUFVUI2l0ZW0tbGFiZWwuCi1QQVNTIGFkanVzdGVkIG5vZGUg
d2FzIERJViNyZW1vdmUtYnV0dG9uLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBESVYjY29tYm8t
bGFiZWwuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNkcm9wLWRvd24tc2VsZWN0b3IuCi1U
ZXN0aW5nIGluZGlyZWN0IGhpdHMuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNjaGVjay4K
LVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI2NoZWNrLgotUEFTUyBhZGp1c3RlZCBub2RlIHdh
cyBESVYjY2hlY2suCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNjaGVjay4KLVBBU1MgYWRq
dXN0ZWQgbm9kZSB3YXMgRElWI2NoZWNrLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBESVYjY2hl
Y2suCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNjaGVjay4KLVBBU1MgYWRqdXN0ZWQgbm9k
ZSB3YXMgRElWI2NoZWNrLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBESVYjcmVtb3ZlLWJ1dHRv
bi4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI3JlbW92ZS1idXR0b24uCi1QQVNTIGFkanVz
dGVkIG5vZGUgd2FzIERJViNyZW1vdmUtYnV0dG9uLgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBE
SVYjcmVtb3ZlLWJ1dHRvbi4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgRElWI3JlbW92ZS1idXR0
b24uCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNyZW1vdmUtYnV0dG9uLgotUEFTUyBhZGp1
c3RlZCBub2RlIHdhcyBESVYjcmVtb3ZlLWJ1dHRvbi4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMg
RElWI3JlbW92ZS1idXR0b24uCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNkcm9wLWRvd24t
c2VsZWN0b3IuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNkcm9wLWRvd24tc2VsZWN0b3Iu
Ci1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNkcm9wLWRvd24tc2VsZWN0b3IuCi1QQVNTIGFk
anVzdGVkIG5vZGUgd2FzIERJViNkcm9wLWRvd24tc2VsZWN0b3IuCi1QQVNTIGFkanVzdGVkIG5v
ZGUgd2FzIERJViNkcm9wLWRvd24tc2VsZWN0b3IuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJ
ViNkcm9wLWRvd24tc2VsZWN0b3IuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNkcm9wLWRv
d24tc2VsZWN0b3IuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIERJViNkcm9wLWRvd24tc2VsZWN0
b3IuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3NtYWxsLXRhcmdldC10ZXN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc21hbGwtdGFyZ2V0LXRlc3QuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2M0YWUxOTZhMjUyZmY5NDQ0MjI4MzVk
NmIzNDFhMDc1MTEyZDY5My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc21hbGwtdGFyZ2V0LXRlc3QuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08dGl0bGU+VG91Y2ggQWRqdXN0bWVudCA6IEltcHJvdmVkIHRhcmdldHRpbmcg
Zm9yIHNtYWxsIGNvbnRyb2xzIC0gYnVnIDkyMjkzPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy90b3VjaGFkanVzdG1lbnQuanMiPjwvc2NyaXB0PgotCi08c3R5bGU+Ci0gIGJvZHkgewotICAg
IC13ZWJraXQtbWFyZ2luLXN0YXJ0OiAyMHB4OwotICAgIG1hcmdpbi10b3A6IDIwcHg7Ci0gIH0K
LSAgLmNvbnRyb2wtcGFpciB7Ci0gICAgbWFyZ2luLWJvdHRvbTogMzBweDsKLSAgfQotCi0gICNj
aGVjayB7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ci0gICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOwotICAgIHBhZGRpbmc6IDVweDsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwot
ICB9Ci0KLSAgI3JlbW92ZS1idXR0b24gewotICAgIGJvcmRlcjogbm9uZTsKLSAgICBiYWNrZ3Jv
dW5kOiAjOTk5OwotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAgICBwYWRkaW5nOiA1cHg7
Ci0gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKLSAgfQotCi0gICNjb21iby1idXR0b24gewot
ICAgIGJvcmRlcjogMXB4IHNvbGlkICM3Nzc7Ci0gICAgcGFkZGluZzogNXB4OwotICAgIG1hcmdp
bi10b3A6IDIwcHg7Ci0gIH0KLQotICAjY29tYm8tbGFiZWwgewotICAgIGJvcmRlcjogMXB4IHNv
bGlkICM3Nzc7Ci0gICAgaGVpZ2h0OiAxZW07Ci0gICAgd2lkdGg6IDRlbTsKLSAgfQotCi0gICNj
b21iby1idXR0b24sCi0gICNjb21iby1sYWJlbCwKLSAgI2Ryb3AtZG93bi1zZWxlY3RvciB7Ci0g
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ci0g
IH0KLQotICAjZHJvcC1kb3duLXNlbGVjdG9yIHsKLSAgICAtd2Via2l0LWJveC1zaXppbmc6IGNv
bnRlbnQtYm94OwotICAgIHdpZHRoOiAwOwotICAgIGhlaWdodDogMDsKLSAgICBib3JkZXItbGVm
dDogNXB4IHNvbGlkIHRyYW5zcGFyZW50OwotICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRy
YW5zcGFyZW50OwotICAgIGJvcmRlci10b3A6IDEwcHggc29saWQgIzc3NzsKLSAgfQotICAKLTwv
c3R5bGU+Ci0KLTwvaGVhZD4KLQotPGJvZHkgaWQ9Im15Ym9keSI+Ci0KLTxkaXYgaWQ9c2FuZGJv
eD4KLSAgICA8ZGl2IGNsYXNzPSJjb250cm9sLXBhaXIiPgotICAgICAgICA8IS0tIFNtYWxsIGNo
ZWNrYm94IHRvIHRoZSBsZWZ0IG9mIGFub3RoZXIgY29udHJvbCAtLT4KLSAgICAgICAgPGRpdiBp
ZD0iY2hlY2siIG9uY2xpY2s9Im9uQ2xpY2soKTsiPjwvZGl2PgotICAgICAgICA8aW5wdXQgaWQ9
InRhc2siIHR5cGU9InRleHQiIHZhbHVlPSJUYXNrIDEiPgotICAgIDwvZGl2PgotICAgIDxkaXYg
Y2xhc3M9ImNvbnRyb2wtcGFpciI+Ci0gICAgICAgIDwhLS0gU21hbGwgcmVtb3ZlIGJ1dHRvbiB0
byB0aGUgcmlnaHQgb2YgYW5vdGhlciBjb250cm9sIC0tPgotICAgICAgICA8aW5wdXQgaWQgPSAi
aXRlbS1sYWJlbCIgdHlwZT0idGV4dCIgdmFsdWUgPSAiT3B0aW9uIDEiPgotICAgICAgICA8ZGl2
IGlkID0gInJlbW92ZS1idXR0b24iIG9uY2xpY2s9Im9uQ2xpY2soKTsiPjwvZGl2PgotICAgIDwv
ZGl2PgotICAgIDxkaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbWJvLWJ1dHRvbiI+Ci0gICAgICAg
ICAgICA8IS0tIENvbWJvLWJ1dHRvbiBjb250cm9scyAtLT4KLSAgICAgICAgICAgIDxkaXYgaWQg
PSAiY29tYm8tbGFiZWwiIG9uY2xpY2s9ImZ1bmN0aW9uKCkge307Ij48L2Rpdj4KLSAgICAgICAg
ICAgIDxkaXYgaWQgPSAiZHJvcC1kb3duLXNlbGVjdG9yIiBvbmNsaWNrPSJvbkNsaWNrKCk7Ij48
L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2Ny
aXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICB2
YXIgdG91Y2hSYWRpdXMgPSAyMDsKLSAgICB2YXIgdG91Y2hPZmZzZXQgPSA4OwotCi0gICAgdmFy
IGVsZW1lbnQ7Ci0gICAgdmFyIGFkanVzdGVkTm9kZTsKLQotICAgIGZ1bmN0aW9uIG9uQ2xpY2so
KQotICAgIHsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2goaWQpCi0gICAg
ewotICAgICAgICB0ZXN0VG91Y2goaWQsICdjZW50ZXInKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biB0ZXN0SW5kaXJlY3RUb3VjaChpZCkKLSAgICB7Ci0gICAgICAgIHRlc3RUb3VjaChpZCwgJ2xl
ZnQnKTsKLSAgICAgICAgdGVzdFRvdWNoKGlkLCAncmlnaHQnKTsKLSAgICAgICAgdGVzdFRvdWNo
KGlkLCAndG9wLWxlZnQnKTsKLSAgICAgICAgdGVzdFRvdWNoKGlkLCAndG9wLXJpZ2h0Jyk7Ci0g
ICAgICAgIHRlc3RUb3VjaChpZCwgJ2JvdHRvbS1sZWZ0Jyk7Ci0gICAgICAgIHRlc3RUb3VjaChp
ZCwgJ2JvdHRvbS1yaWdodCcpOwotICAgICAgICB0ZXN0VG91Y2goaWQsICd0b3AnKTsKLSAgICAg
ICAgdGVzdFRvdWNoKGlkLCAnYm90dG9tJyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdFRv
dWNoKGlkLCByZWxhdGl2ZVBvc2l0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7Ci0gICAgICAgIHRlc3RUb3VjaFBvaW50KG9mZnNl
dFRvdWNoUG9pbnQoZmluZEFic29sdXRlQm91bmRzKGVsZW1lbnQpLCByZWxhdGl2ZVBvc2l0aW9u
LCB0b3VjaE9mZnNldCwgdG91Y2hSYWRpdXMpLCBlbGVtZW50KTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiB0ZXN0RGlyZWN0VG91Y2hlcygpCi0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdGluZyBz
bWFsbCBkaXJlY3QgaGl0cy4nKTsKLQotICAgICAgICB0ZXN0RGlyZWN0VG91Y2goJ2NoZWNrJyk7
Ci0gICAgICAgIHRlc3REaXJlY3RUb3VjaCgndGFzaycpOwotICAgICAgICB0ZXN0RGlyZWN0VG91
Y2goJ2l0ZW0tbGFiZWwnKTsKLSAgICAgICAgdGVzdERpcmVjdFRvdWNoKCdyZW1vdmUtYnV0dG9u
Jyk7Ci0gICAgICAgIHRlc3REaXJlY3RUb3VjaCgnY29tYm8tbGFiZWwnKTsKLSAgICAgICAgdGVz
dERpcmVjdFRvdWNoKCdkcm9wLWRvd24tc2VsZWN0b3InKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biB0ZXN0SW5kaXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIGRlYnVnKCdUZXN0aW5nIGlu
ZGlyZWN0IGhpdHMuJyk7Ci0KLSAgICAgICAgdGVzdEluZGlyZWN0VG91Y2goJ2NoZWNrJyk7Ci0g
ICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoKCdyZW1vdmUtYnV0dG9uJyk7Ci0gICAgICAgIHRlc3RJ
bmRpcmVjdFRvdWNoKCdkcm9wLWRvd24tc2VsZWN0b3InKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBydW5UZXN0cygpCi0gICAgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2Fi
bGVOb2RlKSB7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdHMgaWYgc21hbGwgY2xpY2th
YmxlIHRhcmdldHMgYWRqYWNlbnQgdG8gbGFyZ2VyIGNsaWNrYWJsZSBjb250cm9scyBhcmUgcHJv
cGVybHkgdGFyZ2V0dGVkIHdpdGggdG91Y2ggYWRqdXN0bWVudC4nKTsKLSAgICAgICAgICAgIHRl
c3REaXJlY3RUb3VjaGVzKCk7Ci0gICAgICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaGVzKCk7Ci0g
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpLnN0eWxlLmRpc3Bs
YXkgPSAnbm9uZSc7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcnVuVGVzdHMoKTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50
L3RvdWNoLWlubGluZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50
L3RvdWNoLWlubGluZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDRmMDM2ZjMxZWI3MGJiODM1MzMzZjlhY2Q5MTVlNDI2ZGY1NGExLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0
bWVudC90b3VjaC1pbmxpbmVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICsw
LDAgQEAKLVRlc3RzIHRvdWNoLWFkanVzdG1lbnQgb24gaW5saW5lIGxpbmtzLiBNYWtpbmcgc3Vy
ZSB3ZSBjYW4gaGl0IG92ZXIgbGluZS1icmVha3MsIGFuZCBjYW4gbWlzcyB3aGVuIHRhcHBpbmcg
YmV0d2VlbiBwYXJ0cyBvZiBhIGxpbmUtYnJva2VuIGxpbmsuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1UZXN0IHNvbWUgZGlyZWN0IGhpdHMuCi1QQVNTIGFkanVzdGVkIG5vZGUg
d2FzIEEjMS4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQSMyLgotUEFTUyBhZGp1c3RlZCBub2Rl
IHdhcyBBIzQuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIEEjNi4KLVRlc3QgYSBmZXcgZGlyZWN0
IG1pc3Nlcy4KLVBBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgbnVsbC4KLVBBU1MgYWRqdXN0ZWQgbm9k
ZSB3YXMgbnVsbC4KLVRlc3Qgc29tZSBpbmRpcmVjdCBoaXRzLgotUEFTUyBhZGp1c3RlZCBub2Rl
IHdhcyBBIzIuCi1QQVNTIGFkanVzdGVkIG5vZGUgd2FzIEEjMy4KLVBBU1MgYWRqdXN0ZWQgbm9k
ZSB3YXMgQSM0LgotUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBBIzQuCi1QQVNTIGFkanVzdGVkIG5v
ZGUgd2FzIEEjNi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gtaW5s
aW5lcy5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWlubGluZXMuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjY5ZDdiMGU5ZjE0NzgzYmM2M2I1ZWRh
MzNkMzdiZWUwNWE1YWFkZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gtaW5saW5lcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50IDogSW5saW5lcyBhbmQgbGluZS1icmVh
a3MgLSBidWcgNzg4MDE8L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdG91Y2hh
ZGp1c3RtZW50LmpzIj48L3NjcmlwdD4KLSAgICA8c3R5bGU+Ci0gICAgICAgICNzYW5kYm94IHsg
cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBmb250OiAxNnB4IEFoZW07
IGxpbmUtaGVpZ2h0OiAyMHB4IH0KLSAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0KLTxk
aXYgaWQ9c2FuZGJveD4KLSAgICA8cCBzdHlsZT0id2lkdGg6IDIyZW07Ij4KLSAgICA8YSBpZD0i
MSIgaHJlZj0iIzEiPnNvbWUgbGluazwvYT48YnI+Ci0gICAgPGEgaWQ9IjIiIGhyZWY9IiMyIj5z
b21lIGxpbmsgYnJlYWtpbmcgbGluZXM8L2E+IGFuZCA8YSBpZD0iMyIgaHJlZj0iIzMiPmxpbms8
L2E+PGJyPgotICAgIGhvbGEgbXVuZG8hIDxhIGlkPSI0IiBocmVmPSIjNCI+YSBzcGxpdCB1cCBs
aW5rPC9hPjxicj4KLSAgICBoZWxsbyB3b3JsZCA8YSBpZD0iNSIgaHJlZj0iIzUiPnNvbWUgbGlu
ayBhbHNvIGJyZWFraW5nPC9hPjxicj4KLSAgICBoaSB0aGVyZSA8YSBpZD0iNiIgaHJlZj0iIzYi
PnNvbWUgbGluayB0aGF0IGlzIGJyZWFraW5nIG11bHRpcGxlIGxpbmVzIGp1c3QgZm9yIHRoZSB2
ZXJ5IGZ1biBvZiBpdDwvYT48YnI+PGJyPgotICAgIDwvcD4KLTwvZGl2PgotCi08cCBpZD0nZGVz
Y3JpcHRpb24nPjwvcD4KLTxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgotCi08c2NyaXB0PgotICAg
IC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKLSAgICB2YXIgZSA9IHt9Owot
ICAgIFsnc2FuZGJveCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNiddLmZvckVhY2goZnVu
Y3Rpb24oYSkgewotICAgICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7Ci0g
ICAgfSk7Ci0KLSAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2hlcygpCi0gICAgewotICAgICAg
ICBkZWJ1ZygnVGVzdCBzb21lIGRpcmVjdCBoaXRzLicpOwotICAgICAgICB0ZXN0VG91Y2hQb2lu
dCh0b3VjaFBvaW50KDMwLCAyNSwgMTApLCBlWycxJ10pOwotICAgICAgICB0ZXN0VG91Y2hQb2lu
dCh0b3VjaFBvaW50KDIwLCA2NSwgMTApLCBlWycyJ10pOwotICAgICAgICB0ZXN0VG91Y2hQb2lu
dCh0b3VjaFBvaW50KDIyMCwgODUsIDEwKSwgZVsnNCddKTsKLSAgICAgICAgdGVzdFRvdWNoUG9p
bnQodG91Y2hQb2ludCg4MCwgMTk1LCAxMCksIGVbJzYnXSk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdGVzdERpcmVjdE1pc3NlcygpCi0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdCBhIGZldyBk
aXJlY3QgbWlzc2VzLicpOwotICAgICAgICAvLyBIaXQgJ2FuZCcgYmV0d2VuIGxpbmsgMiBhbmQg
MwotICAgICAgICB0ZXN0VG91Y2hQb2ludCh0b3VjaFBvaW50KDEyMCwgNzUsIDYpLCBudWxsKTsK
LSAgICAgICAgLy8gSGl0ICdoaSB0aGVyZScgYWJvdmUgYW5kIHRvIHRoZSBsZWZ0IG9mIGxpbmsg
Ni4KLSAgICAgICAgdGVzdFRvdWNoUG9pbnQodG91Y2hQb2ludCg3MiwgMTY2LCA2KSwgbnVsbCk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0VG91Y2hlcygpCi0gICAgewotICAg
ICAgICBkZWJ1ZygnVGVzdCBzb21lIGluZGlyZWN0IGhpdHMuJyk7Ci0KLSAgICAgICAgdGVzdFRv
dWNoUG9pbnQodG91Y2hQb2ludCg1MCwgNjAsIDIwKSwgZVsnMiddKTsKLSAgICAgICAgdGVzdFRv
dWNoUG9pbnQodG91Y2hQb2ludCgxNzIsIDgzLCAyMCksIGVbJzMnXSk7Ci0gICAgICAgIHRlc3RU
b3VjaFBvaW50KHRvdWNoUG9pbnQoMjMwLCA3NCwgMjApLCBlWyc0J10pOwotICAgICAgICB0ZXN0
VG91Y2hQb2ludCh0b3VjaFBvaW50KDMwLCAxMDAsIDIwKSwgZVsnNCddKTsKLSAgICAgICAgdGVz
dFRvdWNoUG9pbnQodG91Y2hQb2ludCgyNCwgMTcwLCAyMCksIGVbJzYnXSk7Ci0KLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBydW5UZXN0cygpCi0gICAgewotICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRU
b0Jlc3RDbGlja2FibGVOb2RlKSB7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdHMgdG91
Y2gtYWRqdXN0bWVudCBvbiBpbmxpbmUgbGlua3MuIE1ha2luZyBzdXJlIHdlIGNhbiBoaXQgb3Zl
ciBsaW5lLWJyZWFrcywgYW5kIGNhbiBtaXNzIHdoZW4gdGFwcGluZyBiZXR3ZWVuIHBhcnRzIG9m
IGEgbGluZS1icm9rZW4gbGluay4nKTsKLSAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7
Ci0gICAgICAgICAgICB0ZXN0RGlyZWN0TWlzc2VzKCk7Ci0gICAgICAgICAgICB0ZXN0SW5kaXJl
Y3RUb3VjaGVzKCk7Ci0gICAgICAgICAgICBlWydzYW5kYm94J10uc3R5bGUuZGlzcGxheSA9ICdu
b25lJzsKLSAgICAgICAgfQotICAgIH0KLSAgICBydW5UZXN0cygpOwotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gt
bGlua3MtYWN0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90
b3VjaC1saW5rcy1hY3RpdmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkZDRmZWQyMTVkOWFhMTlmNDkxNjFiNzAxMDUzYzY4MTk1MWRlZmZkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNoYWRq
dXN0bWVudC90b3VjaC1saW5rcy1hY3RpdmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTcgKzAsMCBAQAotVGVzdHMgdGhhdCB0YXBEb3duIHdpbGwgdHJpZ2dlciB0aGUgYWN0aXZl
IHN0YXRlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotVGVzdGluZyBpbmRpcmVj
dCBoaXRzLgotUEFTUyBpc0xpbmtBY3RpdmUoKSBpcyB0cnVlCi1QQVNTIGlzTGlua0FjdGl2ZSgp
IGlzIHRydWUKLVBBU1MgaXNMaW5rQWN0aXZlKCkgaXMgdHJ1ZQotVGVzdGluZyBkaXJlY3QgaGl0
cy4KLVBBU1MgaXNMaW5rQWN0aXZlKCkgaXMgdHJ1ZQotUEFTUyBpc0xpbmtBY3RpdmUoKSBpcyB0
cnVlCi1QQVNTIGlzTGlua0FjdGl2ZSgpIGlzIHRydWUKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3Vj
aGFkanVzdG1lbnQvdG91Y2gtbGlua3MtYWN0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy90b3VjaGFk
anVzdG1lbnQvdG91Y2gtbGlua3MtYWN0aXZlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDBiZjQ0MjYyYzdjYmU3ZDU3NTgyZTgzZmMyMGIzM2M3OTJhZGM2Y2YuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hh
ZGp1c3RtZW50L3RvdWNoLWxpbmtzLWFjdGl2ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8dGl0bGU+VG91
Y2ggQWRqdXN0bWVudCA6IFRlc3RpbmcgdGhhdCBhY3RpdmUgd2lsbCBiZSBzZXQgb24gYSB0YXBE
b3duIC0gYnVnIDk2Njc3PC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RvdWNo
YWRqdXN0bWVudC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHN0eWxlPgotICAgICAgICAjc2FuZGJveCB7
Ci0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICBsZWZ0OiAwcHg7
Ci0gICAgICAgICAgICB0b3A6IDEwMHB4OwotICAgICAgICB9Ci0gICAgICAgIGEgewotICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsKLSAgICAgICAgfQotICAg
ICAgICBhOmFjdGl2ZSB7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwwLDI1
NSk7Ci0gICAgICAgIH0gICAgICAgIAotICAgIDwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5Pgot
Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLTxwPjxhIGhyZWY9IiIgaWQ9ImxpbmsxIj5JPC9hPiBwcm9w
b3NlIHRvIGNvbnNpZGVyIDxhIGhyZWY9IiIgaWQ9ImxpbmsyIj50aGUgcXVlc3Rpb248L2E+LCAi
Q2FuIG1hY2hpbmVzIHRoaW5rPyI8YnI+VGhpcyBzaG91bGQgYmVnaW4gd2l0aCBkZWZpbml0aW9u
cyBvZiB0aGUgbWVhbmluZyBvZiB0aGUgdGVybXMgIm1hY2hpbmUiIGFuZCA8YSBocmVmPSIiIGlk
PSJsaW5rMyI+InRoaW5rLiI8L2E+PC9wPgotPC9kaXY+Ci0KLTxwIGlkPSdkZXNjcmlwdGlvbic+
PC9wPgotPGRpdiBpZD0nY29uc29sZSc+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0gICAgdmFyIGVsZW1l
bnQ7Ci0gICAgdmFyIGFkanVzdGVkTm9kZTsKLSAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNz
IHRvIGVsZW1lbnRzCi0gICAgdmFyIGUgPSB7fTsKLSAgICBbJ3NhbmRib3gnLCAnbGluazEnLCAn
bGluazInLCAnbGluazMnXS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKLSAgICAgICAgZVthXSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOwotICAgIH0pOwotICAgIAotICAgIHZhciBjdXJFbGVt
ZW50OwotICAgIAotICAgIGZ1bmN0aW9uIGlzTGlua0FjdGl2ZSgpCi0gICAgewotICAgICAgICAv
LyBUaGVzZSBuZWVkIHRvIG1hdGNoIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHVzZWQgYWJvdmUsIGFm
dGVyIHJvdW5kLXRyaXBwaW5nLgotICAgICAgICB2YXIgZGVmYXVsdENvbG9yID0gInJnYigyNTUs
IDI1NSwgMjU1KSI7Ci0gICAgICAgIHZhciBhY3RpdmVDb2xvciA9ICJyZ2IoMCwgMCwgMjU1KSI7
Ci0gICAgCi0gICAgICAgIGNvbG9yID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY3VyRWxlbWVu
dCkuYmFja2dyb3VuZENvbG9yOwotICAgICAgICBpZiAoY29sb3IgPT0gYWN0aXZlQ29sb3IpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGNvbG9yICE9IGRlZmF1bHRDb2xv
cikKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0dvdCB1bmV4cGVjdGVkIGJhY2tncm91bmRDb2xv
cjogJyArIGNvbG9yKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAKLSAgICBm
dW5jdGlvbiB0ZXN0VGFwRG93bih0b3VjaHBvaW50LCBlbGVtZW50KQotICAgIHsKLSAgICAgICAg
Y3VyRWxlbWVudCA9IGVsZW1lbnQ7Ci0gICAgICAgIGlmIChpc0xpbmtBY3RpdmUoKSkgdGVzdEZh
aWxlZCgnTGluayB1bmV4cGVjdGVkbHkgYWN0aXZlIG9uIGVudHJ5Jyk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLmdlc3R1cmVUYXBEb3duKHRvdWNocG9pbnQueCwgdG91Y2hwb2ludC55LCB0b3VjaHBv
aW50LndpZHRoLCB0b3VjaHBvaW50LmhlaWdodCk7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiaXNM
aW5rQWN0aXZlKCkiKTsKLSAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcENhbmNlbCh0b3Vj
aHBvaW50LngsIHRvdWNocG9pbnQueSk7Ci0gICAgICAgIGlmIChpc0xpbmtBY3RpdmUoKSkgdGVz
dEZhaWxlZCgnTGluayB1bmV4cGVjdGVkbHkgYWN0aXZlIG9uIGV4aXQnKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2goZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIC8vIFRv
dWNoIGRpcmVjdGx5IGluIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuCi0gICAgICAgIHZhciB0
b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQb2ludChmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVudCks
ICdjZW50ZXInLCAwLCAyMCwgMzApOwotICAgICAgICBpZiAoZG9jdW1lbnQuZWxlbWVudEZyb21Q
b2ludCh0b3VjaHBvaW50LngsIHRvdWNocG9pbnQueSkgIT0gZWxlbWVudCkKLSAgICAgICAgICAg
IHRlc3RGYWlsZWQoJ0RpcmVjdCB0b3VjaCBlbmRlZCB1cCBvbiBzb21lIG90aGVyIGVsZW1lbnQn
KTsKLSAgICAgICAgdGVzdFRhcERvd24odG91Y2hwb2ludCwgZWxlbWVudCk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gaXNEZXNjZW5kYW50T2YocGFyZW50LCBjaGlsZCkKLSAgICB7Ci0gICAgICAg
IHZhciBuID0gY2hpbGQ7Ci0gICAgICAgIHdoaWxlKG4pIHsKLSAgICAgICAgICAgIGlmKG49PXBh
cmVudCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIG4gPSBuLnBh
cmVudE5vZGU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAK
LSAgICBmdW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3VjaChlbGVtZW50KQotICAgIHsKLSAgICAgICAg
Ly8gVG91Y2gganVzdCByaWdodCBvZiB0aGUgZWxlbWVudC4KLSAgICAgICAgdmFyIHRvdWNocG9p
bnQgPSBvZmZzZXRUb3VjaFBvaW50KGZpbmRBYnNvbHV0ZUJvdW5kcyhlbGVtZW50KSwgJ3JpZ2h0
JywgMTAsIDMwLCAyMCk7Ci0gICAgICAgIGlmIChpc0Rlc2NlbmRhbnRPZihlbGVtZW50LCBkb2N1
bWVudC5lbGVtZW50RnJvbVBvaW50KHRvdWNocG9pbnQueCwgdG91Y2hwb2ludC55KSkpCi0gICAg
ICAgICAgICB0ZXN0RmFpbGVkKCdJbmRpcmVjdCB0b3VjaCBlbmRlZCB1cCBzdGlsbCBvbiB0b3Ag
b2YgdGhlIGVsZW1lbnQnKTsKLSAgICAgICAgdGVzdFRhcERvd24odG91Y2hwb2ludCwgZWxlbWVu
dCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdERpcmVjdFRvdWNoZXMoKQotICAgIHsKLSAg
ICAgICAgZGVidWcoJ1Rlc3RpbmcgZGlyZWN0IGhpdHMuJyk7Ci0gICAgICAgIHRlc3REaXJlY3RU
b3VjaChlLmxpbmsxKTsKLSAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubGluazIpOwotICAgICAg
ICB0ZXN0RGlyZWN0VG91Y2goZS5saW5rMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdElu
ZGlyZWN0VG91Y2hlcygpCi0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdGluZyBpbmRpcmVjdCBo
aXRzLicpOwotICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaChlLmxpbmsxKTsKLSAgICAgICAgdGVz
dEluZGlyZWN0VG91Y2goZS5saW5rMik7Ci0gICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoKGUubGlu
azMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlm
ICghd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJl
cXVpcmVzIER1bXBSZW5kZXJUcmVlJyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIuZ2VzdHVyZVRhcERvd24pIHsKLSAgICAg
ICAgICAgIGRlYnVnKCdHZXN0dXJlVGFwRG93biBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZv
cm0nKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfSAKLSAgICAgICAgICAKLSAgICAg
ICAgZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgdGFwRG93biB3aWxsIHRyaWdnZXIgdGhlIGFjdGl2
ZSBzdGF0ZS4nKTsKLSAgICAgICAgdGVzdEluZGlyZWN0VG91Y2hlcygpOwotICAgICAgICB0ZXN0
RGlyZWN0VG91Y2hlcygpOwotICAgICAgICBlLnNhbmRib3guc3R5bGUuZGlzcGxheSA9ICdub25l
JzsKLSAgICB9Ci0gICAgcnVuVGVzdHMoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVz
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3Mt
bG9uZ3ByZXNzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzIy
MDM2Yzg1OTdjNWM2ODkwOGQxNDNlNzg1OTVhMjQ4NzE4ZDliMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQv
dG91Y2gtbGlua3MtbG9uZ3ByZXNzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3
ICswLDAgQEAKLVRlc3RzIGlmIGEgbG9uZyBwcmVzcyBnZXN0dXJlIG9uIGxpbmtzIHdpbGwgdHJp
Z2dlciBhIGRyYWcvZHJvcCB3aGVuIHRvdWNoIGFkanVzdG1lbnQgaXMgdXNlZC4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVRlc3RpbmcgZGlyZWN0IGhpdHMuCi1QQVNTCi1QQVNT
Ci1QQVNTCi1UZXN0aW5nIGluZGlyZWN0IGhpdHMuCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVzcy5odG1sIGIv
TGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVzcy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Mzk3MDAyMDgwYjYwMmYyMThjYTQ0OThjYmVh
ZDk4Mjg4YjY1ODJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy1sb25ncHJlc3MuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci0gICAgPHRpdGxlPlRvdWNoIEFkanVzdG1lbnQgOiBUZXN0aW5nIHRoYXQgYSBk
cmFnL2Ryb3Agd2lsbCBzdGFydCBvbiBhIGxvbmcgcHJlc3MgLSBidWcgOTI5MTQ8L3RpdGxlPgot
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdG91Y2hhZGp1c3RtZW50LmpzIj48L3NjcmlwdD4K
LSAgICA8c3R5bGU+Ci0gICAgICAgICNzYW5kYm94IHsKLSAgICAgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICAgICAgICAgIGxlZnQ6IDBweDsKLSAgICAgICAgICAgIHRvcDogMHB4Owot
ICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxkaXYgaWQ9InNh
bmRib3giPgotPHA+PGEgaHJlZj0iIiBpZD0ibGluazEiPkk8L2E+IHByb3Bvc2UgdG8gY29uc2lk
ZXIgPGEgaHJlZj0iIiBpZD0ibGluazIiPnRoZSBxdWVzdGlvbjwvYT4sICJDYW4gbWFjaGluZXMg
dGhpbms/Ijxicj5UaGlzIHNob3VsZCBiZWdpbiB3aXRoIGRlZmluaXRpb25zIG9mIHRoZSBtZWFu
aW5nIG9mIHRoZSB0ZXJtcyAibWFjaGluZSIgYW5kIDxhIGhyZWY9IiIgaWQ9ImxpbmszIj4idGhp
bmsuIjwvYT48L3A+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlk
PSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICB2YXIgZWxlbWVudDsKLSAgICB2YXIg
YWRqdXN0ZWROb2RlOwotICAgIC8vIFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMK
LSAgICB2YXIgZSA9IHt9OwotICAgIFsnc2FuZGJveCcsICdsaW5rMScsICdsaW5rMicsICdsaW5r
MyddLmZvckVhY2goZnVuY3Rpb24oYSkgewotICAgICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoYSk7Ci0gICAgfSk7Ci0KLSAgICBkb2N1bWVudC5vbmRyYWdzdGFydCA9IGZ1bmN0
aW9uKGUpIHsgZGVidWcoIlBBU1MiKTsgZS5wcmV2ZW50RGVmYXVsdCgpO30KLQotICAgIGZ1bmN0
aW9uIHRlc3RMb25nUHJlc3ModG91Y2hwb2ludCkKLSAgICB7Ci0gICAgICAgIGlmIChldmVudFNl
bmRlci5nZXN0dXJlTG9uZ1ByZXNzKQotICAgICAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUxv
bmdQcmVzcyh0b3VjaHBvaW50LngsIHRvdWNocG9pbnQueSwgdG91Y2hwb2ludC53aWR0aCwgdG91
Y2hwb2ludC5oZWlnaHQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkZWJ1ZygiZ2VzdHVy
ZUxvbmdQcmVzcyBub3QgaW1wbGVtZW50ZWQgYnkgdGhpcyBwbGF0Zm9ybS4iKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2goZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIC8v
IFRvdWNoIGRpcmVjdGx5IGluIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuCi0gICAgICAgIHZh
ciB0b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQb2ludChmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVu
dCksICdjZW50ZXInLCAwLCAyMCwgMzApOwotICAgICAgICBpZiAoZG9jdW1lbnQuZWxlbWVudEZy
b21Qb2ludCh0b3VjaHBvaW50LngsIHRvdWNocG9pbnQueSkgIT0gZWxlbWVudCkKLSAgICAgICAg
ICAgIHRlc3RGYWlsZWQoJ0RpcmVjdCB0b3VjaCBlbmRlZCB1cCBvbiBzb21lIG90aGVyIGVsZW1l
bnQnKTsKLSAgICAgICAgdGVzdExvbmdQcmVzcyh0b3VjaHBvaW50KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3VjaChlbGVtZW50KQotICAgIHsKLSAgICAgICAgLy8gVG91
Y2gganVzdCByaWdodCBvZiB0aGUgZWxlbWVudC4KLSAgICAgICAgdmFyIHRvdWNocG9pbnQgPSBv
ZmZzZXRUb3VjaFBvaW50KGZpbmRBYnNvbHV0ZUJvdW5kcyhlbGVtZW50KSwgJ3JpZ2h0JywgMTAs
IDMwLCAyMCk7Ci0gICAgICAgIGlmIChpc0Rlc2NlbmRhbnRPZihlbGVtZW50LCBkb2N1bWVudC5l
bGVtZW50RnJvbVBvaW50KHRvdWNocG9pbnQueCwgdG91Y2hwb2ludC55KSkpCi0gICAgICAgICAg
ICB0ZXN0RmFpbGVkKCdJbmRpcmVjdCB0b3VjaCBlbmRlZCB1cCBzdGlsbCBvbiB0b3Agb2YgdGhl
IGVsZW1lbnQnKTsKLSAgICAgICAgdGVzdExvbmdQcmVzcyh0b3VjaHBvaW50KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBpc0Rlc2NlbmRhbnRPZihwYXJlbnQsIGNoaWxkKQotICAgIHsKLSAgICAg
ICAgdmFyIG4gPSBjaGlsZDsKLSAgICAgICAgd2hpbGUobikgewotICAgICAgICAgICAgaWYobj09
cGFyZW50KQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgbiA9IG4u
cGFyZW50Tm9kZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gdGVzdERpcmVjdFRvdWNoZXMoKQotICAgIHsKLSAgICAgICAgZGVidWcoJ1Rl
c3RpbmcgZGlyZWN0IGhpdHMuJyk7Ci0gICAgICAgIHRlc3REaXJlY3RUb3VjaChlLmxpbmsxKTsK
LSAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubGluazIpOwotICAgICAgICB0ZXN0RGlyZWN0VG91
Y2goZS5saW5rMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0VG91Y2hlcygp
Ci0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdGluZyBpbmRpcmVjdCBoaXRzLicpOwotICAgICAg
ICB0ZXN0SW5kaXJlY3RUb3VjaChlLmxpbmsxKTsKLSAgICAgICAgdGVzdEluZGlyZWN0VG91Y2go
ZS5saW5rMik7Ci0gICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoKGUubGluazMpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRv
QmVzdENsaWNrYWJsZU5vZGUpIHsKLSAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRU
b3VjaERyYWdEcm9wRW5hYmxlZCh0cnVlKTsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0
cyBpZiBhIGxvbmcgcHJlc3MgZ2VzdHVyZSBvbiBsaW5rcyB3aWxsIHRyaWdnZXIgYSBkcmFnL2Ry
b3Agd2hlbiB0b3VjaCBhZGp1c3RtZW50IGlzIHVzZWQuJyk7Ci0gICAgICAgICAgICB0ZXN0RGly
ZWN0VG91Y2hlcygpOwotICAgICAgICAgICAgdGVzdEluZGlyZWN0VG91Y2hlcygpOwotICAgICAg
ICAgICAgZS5zYW5kYm94LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgICAgIH0KLSAgICB9
Ci0gICAgcnVuVGVzdHMoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLXR3by1maW5nZXItdGFwLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28t
ZmluZ2VyLXRhcC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJl
MTc4MTk2MmFhNmY2OGM3M2Y3ZGViM2JmZGI4M2QxOTlmYjdlYWUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50
L3RvdWNoLWxpbmtzLXR3by1maW5nZXItdGFwLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLVRlc3RzIGlmIGEgdHdvIGZpbmdlciB0YXAgZ2VzdHVyZSBvbiBsaW5r
cyB3aWxsIHRyaWdnZXIgYSBjb250ZXh0IG1lbnUgd2hlbiB0b3VjaCBhZGp1c3RtZW50IGlzIHVz
ZWQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1UZXN0aW5nIGRpcmVjdCBoaXRz
LgotUEFTUwotUEFTUwotUEFTUwotVGVzdGluZyBpbmRpcmVjdCBoaXRzLgotUEFTUwotUEFTUwot
UEFTUwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy10d28t
ZmluZ2VyLXRhcC5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtz
LXR3by1maW5nZXItdGFwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzMDUz
NWVjMWExMjk4NmI0ZjZlZWJjMTgwNGQ3ZmQ5OTY2MDM2MGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3Rv
dWNoLWxpbmtzLXR3by1maW5nZXItdGFwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5Ub3VjaCBB
ZGp1c3RtZW50IDogVGVzdGluZyB0aGF0IGEgY29udGV4dCBtZW51IHdpbGwgYXBwZWFyIG9uIGEg
dHdvLWZpbmdlciB0YXAgLSBidWcgOTk5NDc8L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdG91Y2hhZGp1c3RtZW50LmpzIj48L3NjcmlwdD4KLSAgICA8c3R5bGU+Ci0gICAgICAg
ICNzYW5kYm94IHsKLSAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAg
IGxlZnQ6IDBweDsKLSAgICAgICAgICAgIHRvcDogMHB4OwotICAgICAgICB9Ci0gICAgPC9zdHls
ZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxkaXYgaWQ9InNhbmRib3giPgotPHA+PGEgaHJlZj0i
IiBpZD0ibGluazEiPkk8L2E+IHByb3Bvc2UgdG8gY29uc2lkZXIgPGEgaHJlZj0iIiBpZD0ibGlu
azIiPnRoZSBxdWVzdGlvbjwvYT4sICJDYW4gbWFjaGluZXMgdGhpbms/Ijxicj5UaGlzIHNob3Vs
ZCBiZWdpbiB3aXRoIGRlZmluaXRpb25zIG9mIHRoZSBtZWFuaW5nIG9mIHRoZSB0ZXJtcyAibWFj
aGluZSIgYW5kIDxhIGhyZWY9IiIgaWQ9ImxpbmszIj4idGhpbmsuIjwvYT48L3A+Ci08L2Rpdj4K
LQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQot
PHNjcmlwdD4KLSAgICB2YXIgZWxlbWVudDsKLSAgICB2YXIgYWRqdXN0ZWROb2RlOwotICAgIC8v
IFNldCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKLSAgICB2YXIgZSA9IHt9OwotICAg
IFsnc2FuZGJveCcsICdsaW5rMScsICdsaW5rMicsICdsaW5rMyddLmZvckVhY2goZnVuY3Rpb24o
YSkgewotICAgICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7Ci0gICAgfSk7
Ci0KLSAgICBkb2N1bWVudC5vbmNvbnRleHRtZW51ID0gZnVuY3Rpb24oKSB7IGRlYnVnKCJQQVNT
Iik7IH0KLQotICAgIGZ1bmN0aW9uIHRlc3RUd29GaW5nZXJUYXAodG91Y2hwb2ludCkKLSAgICB7
Ci0gICAgICAgIGlmIChldmVudFNlbmRlci5nZXN0dXJlVHdvRmluZ2VyVGFwKQotICAgICAgICAg
ICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVR3b0ZpbmdlclRhcCh0b3VjaHBvaW50LngsIHRvdWNocG9p
bnQueSwgdG91Y2hwb2ludC53aWR0aCwgdG91Y2hwb2ludC5oZWlnaHQpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBkZWJ1ZygiZ2VzdHVyZVR3b0ZpbmdlclRhcCBub3QgaW1wbGVtZW50ZWQg
YnkgdGhpcyBwbGF0Zm9ybS4iKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91
Y2goZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIC8vIFRvdWNoIGRpcmVjdGx5IGluIHRoZSBjZW50
ZXIgb2YgdGhlIGVsZW1lbnQuCi0gICAgICAgIHZhciB0b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQ
b2ludChmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVudCksICdjZW50ZXInLCAwLCAyMCwgMzApOwot
ICAgICAgICBpZiAoZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0b3VjaHBvaW50LngsIHRvdWNo
cG9pbnQueSkgIT0gZWxlbWVudCkKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoJ0RpcmVjdCB0b3Vj
aCBlbmRlZCB1cCBvbiBzb21lIG90aGVyIGVsZW1lbnQnKTsKLSAgICAgICAgdGVzdFR3b0Zpbmdl
clRhcCh0b3VjaHBvaW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3Vj
aChlbGVtZW50KQotICAgIHsKLSAgICAgICAgLy8gVG91Y2gganVzdCByaWdodCBvZiB0aGUgZWxl
bWVudC4KLSAgICAgICAgdmFyIHRvdWNocG9pbnQgPSBvZmZzZXRUb3VjaFBvaW50KGZpbmRBYnNv
bHV0ZUJvdW5kcyhlbGVtZW50KSwgJ3JpZ2h0JywgMTAsIDMwLCAyMCk7Ci0gICAgICAgIGlmIChp
c0Rlc2NlbmRhbnRPZihlbGVtZW50LCBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHRvdWNocG9p
bnQueCwgdG91Y2hwb2ludC55KSkpCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdJbmRpcmVjdCB0
b3VjaCBlbmRlZCB1cCBzdGlsbCBvbiB0b3Agb2YgdGhlIGVsZW1lbnQnKTsKLSAgICAgICAgdGVz
dFR3b0ZpbmdlclRhcCh0b3VjaHBvaW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpc0Rlc2Nl
bmRhbnRPZihwYXJlbnQsIGNoaWxkKQotICAgIHsKLSAgICAgICAgdmFyIG4gPSBjaGlsZDsKLSAg
ICAgICAgd2hpbGUgKG4pIHsKLSAgICAgICAgICAgIGlmIChuID09IHBhcmVudCkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIG4gPSBuLnBhcmVudE5vZGU7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3RE
aXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIGRlYnVnKCdUZXN0aW5nIGRpcmVjdCBoaXRz
LicpOwotICAgICAgICB0ZXN0RGlyZWN0VG91Y2goZS5saW5rMSk7Ci0gICAgICAgIHRlc3REaXJl
Y3RUb3VjaChlLmxpbmsyKTsKLSAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubGluazMpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHRlc3RJbmRpcmVjdFRvdWNoZXMoKQotICAgIHsKLSAgICAgICAg
ZGVidWcoJ1Rlc3RpbmcgaW5kaXJlY3QgaGl0cy4nKTsKLSAgICAgICAgdGVzdEluZGlyZWN0VG91
Y2goZS5saW5rMSk7Ci0gICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoKGUubGluazIpOwotICAgICAg
ICB0ZXN0SW5kaXJlY3RUb3VjaChlLmxpbmszKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5U
ZXN0cygpCi0gICAgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93Lmlu
dGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2Rl
KSB7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdHMgaWYgYSB0d28gZmluZ2VyIHRhcCBn
ZXN0dXJlIG9uIGxpbmtzIHdpbGwgdHJpZ2dlciBhIGNvbnRleHQgbWVudSB3aGVuIHRvdWNoIGFk
anVzdG1lbnQgaXMgdXNlZC4nKTsKLSAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7Ci0g
ICAgICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaGVzKCk7Ci0gICAgICAgICAgICBlLnNhbmRib3gu
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAgICAgICAgfQotICAgIH0KLSAgICBydW5UZXN0cygp
OwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3Vj
aGFkanVzdG1lbnQvem9vbS1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90b3VjaGFk
anVzdG1lbnQvem9vbS1iYXNpYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGM2MzgxMzFiNzFmYjhjOTMyMTViZGY0M2JkNzAyYzQyYWQ2MmZmMDYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hh
ZGp1c3RtZW50L3pvb20tYmFzaWMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjUg
KzAsMCBAQAotVGVzdCBiYXNpYyBjYXNlcyBvZiB0YXAtdG8tem9vbSBtZWNoYW5pY3MuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHpvb21hYmxlQXJlYS50b3AgaXMgMTAw
Ci1QQVNTIHpvb21hYmxlQXJlYS5sZWZ0IGlzIDEwMAotUEFTUyB6b29tYWJsZUFyZWEud2lkdGgg
aXMgMjAwCi1QQVNTIHpvb21hYmxlQXJlYS5oZWlnaHQgaXMgMTAwCi1QQVNTIHpvb21hYmxlQXJl
YS50b3AgaXMgMjEwCi1QQVNTIHpvb21hYmxlQXJlYS5sZWZ0IGlzIDExMAotUEFTUyB6b29tYWJs
ZUFyZWEud2lkdGggaXMgMTgwCi1QQVNTIHpvb21hYmxlQXJlYS5oZWlnaHQgaXMgODAKLVBBU1Mg
em9vbWFibGVBcmVhLnRvcCBpcyAyMDAKLVBBU1Mgem9vbWFibGVBcmVhLmxlZnQgaXMgMTAwCi1Q
QVNTIHpvb21hYmxlQXJlYS53aWR0aCBpcyAyMDAKLVBBU1Mgem9vbWFibGVBcmVhLmhlaWdodCBp
cyAxMDAKLVBBU1Mgem9vbWFibGVBcmVhLnRvcCBpcyA1MAotUEFTUyB6b29tYWJsZUFyZWEubGVm
dCBpcyA1MAotUEFTUyB6b29tYWJsZUFyZWEud2lkdGggaXMgMzAwCi1QQVNTIHpvb21hYmxlQXJl
YS5oZWlnaHQgaXMgMzAwCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3pvb20t
YmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC96b29tLWJhc2ljLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1Nzk3MzI5OWVmMDY0YmRjZDA0ZWNmMTZh
MjA5NjhhZDA5OTVkZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3pvb20tYmFzaWMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDcxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHN0eWxlPgotICAg
ICAgICAjZGl2MCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNTBweDsgdG9wOiA1MHB4OyB3
aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0KLSAg
ICAgICAgI2RpdjEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwcHg7IHRvcDogNTBweDsg
d2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDEwMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9Ci0g
ICAgICAgICNkaXYyIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MHB4OyB0b3A6IDE1MHB4
OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMTAwcHg7IHBhZGRpbmc6IDEwcHg7IGJveC1zaXppbmc6
IGJvcmRlci1ib3g7IH0KLSAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0cygpIj4KLQotPGRpdiBpZD1kaXYwPgotICAgIDxkaXYgaWQ9ZGl2MT48L2Rpdj4KLSAgICA8
ZGl2IGlkPWRpdjI+PC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08
ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KLQotPHNjcmlwdD4KLSAgICBmdW5jdGlvbiB0ZXN0Um91
bmRUb3VjaCh4LCB5LCByYWRpdXMpCi0gICAgewotICAgICAgICB2YXIgeCA9IHggLSByYWRpdXM7
Ci0gICAgICAgIHZhciB5ID0geSAtIHJhZGl1czsKLSAgICAgICAgdmFyIHdpZHRoID0gcmFkaXVz
ICogMjsKLSAgICAgICAgdmFyIGhlaWdodCA9IHJhZGl1cyAqIDI7Ci0gICAgICAgIHZhciB6b29t
YWJsZVJlY3QgPSBpbnRlcm5hbHMuYmVzdFpvb21hYmxlQXJlYUZvclRvdWNoUG9pbnQoeCwgeSwg
d2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIHJldHVybiB6b29tYWJsZVJlY3Q7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gdGVzdERpcmVjdFRvdWNoZXMoKQotICAgIHsKLSAgICAgICAgem9vbWFibGVB
cmVhID0gdGVzdFJvdW5kVG91Y2goMTMwLCAxMzAsIDEwKTsKLSAgICAgICAgc2hvdWxkRXZhbHVh
dGVUbygnem9vbWFibGVBcmVhLnRvcCcsIDEwMCk7Ci0gICAgICAgIHNob3VsZEV2YWx1YXRlVG8o
J3pvb21hYmxlQXJlYS5sZWZ0JywgMTAwKTsKLSAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygnem9v
bWFibGVBcmVhLndpZHRoJywgMjAwKTsKLSAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygnem9vbWFi
bGVBcmVhLmhlaWdodCcsIDEwMCk7Ci0KLSAgICAgICAgem9vbWFibGVBcmVhID0gdGVzdFJvdW5k
VG91Y2goMTMwLCAyMzAsIDEwKTsKLSAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygnem9vbWFibGVB
cmVhLnRvcCcsIDIxMCk7Ci0gICAgICAgIHNob3VsZEV2YWx1YXRlVG8oJ3pvb21hYmxlQXJlYS5s
ZWZ0JywgMTEwKTsKLSAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygnem9vbWFibGVBcmVhLndpZHRo
JywgMTgwKTsKLSAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygnem9vbWFibGVBcmVhLmhlaWdodCcs
IDgwKTsKLQotICAgICAgICB6b29tYWJsZUFyZWEgPSB0ZXN0Um91bmRUb3VjaCgxMjAsIDIyMCwg
MjApOwotICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCd6b29tYWJsZUFyZWEudG9wJywgMjAwKTsK
LSAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygnem9vbWFibGVBcmVhLmxlZnQnLCAxMDApOwotICAg
ICAgICBzaG91bGRFdmFsdWF0ZVRvKCd6b29tYWJsZUFyZWEud2lkdGgnLCAyMDApOwotICAgICAg
ICBzaG91bGRFdmFsdWF0ZVRvKCd6b29tYWJsZUFyZWEuaGVpZ2h0JywgMTAwKTsKLQotICAgICAg
ICB6b29tYWJsZUFyZWEgPSB0ZXN0Um91bmRUb3VjaCg4MCwgMTAwLCAyMCk7Ci0gICAgICAgIHNo
b3VsZEV2YWx1YXRlVG8oJ3pvb21hYmxlQXJlYS50b3AnLCA1MCk7Ci0gICAgICAgIHNob3VsZEV2
YWx1YXRlVG8oJ3pvb21hYmxlQXJlYS5sZWZ0JywgNTApOwotICAgICAgICBzaG91bGRFdmFsdWF0
ZVRvKCd6b29tYWJsZUFyZWEud2lkdGgnLCAzMDApOwotICAgICAgICBzaG91bGRFdmFsdWF0ZVRv
KCd6b29tYWJsZUFyZWEuaGVpZ2h0JywzMDApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRl
c3RzKCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzICYmIGludGVybmFscy5iZXN0Wm9vbWFibGVBcmVhRm9yVG91Y2hQb2ludCkgewotICAg
ICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgYmFzaWMgY2FzZXMgb2YgdGFwLXRvLXpvb20gbWVj
aGFuaWNzLicpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICAgIHRlc3REaXJlY3RU
b3VjaGVzKCk7Ci0gICAgICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC96b29tLWZhdGZpbmdlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1l
bnQvem9vbS1mYXRmaW5nZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxYjBlOTM1ZjIxZTg1MDc5YjEyOGI5NjZkN2RiYzJjZDQ2NTJkMTk3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNoYWRq
dXN0bWVudC96b29tLWZhdGZpbmdlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
MyArMCwwIEBACi1UZXN0IHRoYXQgdGFyZ2V0dGVkIGFyZWEgaXMgcGlja2VkIGV2ZW4gaWYgdGhl
IHRvdWNoIGFyZWEgaXMgbm90IGZ1bGx5IGNvbnRhaW5lZC4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1Mgem9vbWFibGVBcmVhLnRvcCBpcyAxMDAKLVBBU1Mgem9vbWFibGVB
cmVhLmxlZnQgaXMgMTAwCi1QQVNTIHpvb21hYmxlQXJlYS53aWR0aCBpcyAyMDAKLVBBU1Mgem9v
bWFibGVBcmVhLmhlaWdodCBpcyAyMAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC96b29tLWZhdGZpbmdlci5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3pvb20t
ZmF0ZmluZ2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViOTMyMTJmZDI3
NzlhZGFkY2E3NjhiMmI5OTQ1N2M4MzU1YjU1YzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3pvb20tZmF0
ZmluZ2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotICAgIDxzdHlsZT4KLSAgICAgICAgI2RpdjEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDEwMHB4OyB0b3A6IDEwMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjBweDsgfQotICAgIDwv
c3R5bGU+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgotCi08ZGl2IGlkPWRp
djE+PC9kaXY+Ci0KLTxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgotPGRpdiBpZD0nY29uc29sZSc+
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gdGVzdFJvdW5kVG91Y2goeCwgeSwgcmFk
aXVzKQotICAgIHsKLSAgICAgICAgdmFyIHggPSB4IC0gcmFkaXVzOwotICAgICAgICB2YXIgeSA9
IHkgLSByYWRpdXM7Ci0gICAgICAgIHZhciB3aWR0aCA9IHJhZGl1cyAqIDI7Ci0gICAgICAgIHZh
ciBoZWlnaHQgPSByYWRpdXMgKiAyOwotICAgICAgICB2YXIgem9vbWFibGVSZWN0ID0gaW50ZXJu
YWxzLmJlc3Rab29tYWJsZUFyZWFGb3JUb3VjaFBvaW50KHgsIHksIHdpZHRoLCBoZWlnaHQpOwot
ICAgICAgICByZXR1cm4gem9vbWFibGVSZWN0OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3RE
aXJlY3RUb3VjaGVzKCkKLSAgICB7Ci0gICAgICAgIHpvb21hYmxlQXJlYSA9IHRlc3RSb3VuZFRv
dWNoKDIwMCwgMTEwLCAyMCk7Ci0gICAgICAgIHNob3VsZEV2YWx1YXRlVG8oJ3pvb21hYmxlQXJl
YS50b3AnLCAxMDApOwotICAgICAgICBzaG91bGRFdmFsdWF0ZVRvKCd6b29tYWJsZUFyZWEubGVm
dCcsIDEwMCk7Ci0gICAgICAgIHNob3VsZEV2YWx1YXRlVG8oJ3pvb21hYmxlQXJlYS53aWR0aCcs
IDIwMCk7Ci0gICAgICAgIHNob3VsZEV2YWx1YXRlVG8oJ3pvb21hYmxlQXJlYS5oZWlnaHQnLCAy
MCk7Ci0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0cygpCi0gICAgewotICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMuYmVz
dFpvb21hYmxlQXJlYUZvclRvdWNoUG9pbnQpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdU
ZXN0IHRoYXQgdGFyZ2V0dGVkIGFyZWEgaXMgcGlja2VkIGV2ZW4gaWYgdGhlIHRvdWNoIGFyZWEg
aXMgbm90IGZ1bGx5IGNvbnRhaW5lZC4nKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAg
ICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwotICAgICAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJz
ZWQoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0g
ICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cg==
</data>
<flag name="review"
          id="277511"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>