<?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>215322</bug_id>
          
          <creation_ts>2020-08-10 07:06:00 -0700</creation_ts>
          <short_desc>Update WPT OffscreenCanvas tests to include manually written tests</short_desc>
          <delta_ts>2020-08-10 10:26:18 -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>Canvas</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202797</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>clopez</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1679047</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-10 07:06:00 -0700</bug_when>
    <thetext>The current import of the OffscreenCanvas tests misses the &apos;manual&apos; directory, that includes a lot of important OffscreenCanvas tests. Opening this bug to refresh the import and include them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679048</commentid>
    <comment_count>1</comment_count>
      <attachid>406295</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-10 07:22:12 -0700</bug_when>
    <thetext>Created attachment 406295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679076</commentid>
    <comment_count>2</comment_count>
      <attachid>406302</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-08-10 09:39:30 -0700</bug_when>
    <thetext>Created attachment 406302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679107</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-10 10:25:39 -0700</bug_when>
    <thetext>Committed r265436: &lt;https://trac.webkit.org/changeset/265436&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406302.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679108</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-10 10:26:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/66787275&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406295</attachid>
            <date>2020-08-10 07:22:12 -0700</date>
            <delta_ts>2020-08-10 09:39:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215322-20200810152210.patch</filename>
            <type>text/plain</type>
            <size>150186</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDIzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCA4ZDE0NTgwOGYxZmViZjI5MDllN2M5MDg0ODVmMDVmNjdhMDhjZjEyLi5mYzU1MGYyZWNk
NzQyMzJjZDBhODdkZjc2NmNkNWY5NTZmMmY2OTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4OCBAQAorMjAyMC0wOC0xMCAgQ2hyaXMgTG9yZCAgPGNsb3JkQGln
YWxpYS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdQVCBPZmZzY3JlZW5DYW52YXMgdGVzdHMgdG8g
aW5jbHVkZSBtYW51YWxseSB3cml0dGVuIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUzMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMud29ya2VyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLndvcmtlci5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMud29ya2VyLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRfZmFpbC50LnN0ZXBfZnVuYyk6CisgICAgICAgICh0LnN0ZXAp
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZmls
bC1hbmQtc3Ryb2tlLXN0eWxlcy93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zm
c2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxvYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZl
cnQtdG8tYmxvYi9vZmZzY3JlZW5jYW52YXMuY29udmVydC50by5ibG9iLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L2NvbnZlcnQtdG8tYmxvYi9vZmZzY3JlZW5jYW52YXMuY29udmVydC50by5ibG9iLnctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQu
dG8uYmxvYi53Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZlcnQtdG8tYmxvYi93M2MtaW1wb3J0LmxvZzog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIv
b2Zmc2NyZWVuY2FudmFzLmZpbHRlci5qczogQWRkZWQuCisgICAgICAgIChnZXRSZWd1bGFyQ29u
dGV4dEZvckZpbHRlcik6CisgICAgICAgIChtYXRjaEltYWdlRGF0YVJlc3VsdHMpOgorICAgICAg
ICAoY3JlYXRlUGF0dGVybkNhbnZhcyk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXIu
dy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5jYW52YXMuZmlsdGVyLncu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvZmlsdGVyL3czYy1pbXBvcnQubG9nOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9pbWFnZS1zbW9v
dGhpbmcvaW1hZ2Uuc21vb3RoaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3Ro
aW5nL2ltYWdlLnNtb290aGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9pbWFnZS1zbW9vdGhpbmcvaW1hZ2Uu
c21vb3RoaW5nLndvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdlLXNtb290aGluZy9p
bWFnZS5zbW9vdGhpbmcud29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdlLXNtb290aGluZy9pbWFn
ZS5zbW9vdGhpbmcud29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZVRlc3RJbWFnZSk6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHRlc3QuZHJhdyk6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5n
L3czYy1pbXBvcnQubG9nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LncuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVj
dG9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5j
b25zdHJ1Y3Rvci53b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNh
bnZhcy9vZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3Iud29ya2VyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3Ro
ZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci53b3JrZXIuanM6
IEFkZGVkLgorICAgICAgICAodDEuc3RlcCk6CisgICAgICAgICh0Mi5zdGVwKToKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250
ZXh0Lndvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXIuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJl
c2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVl
bmNhbnZhcy5yZXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0
bWFwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50
cmFuc2Zlci50by5pbWFnZWJpdG1hcC53LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLncuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVy
Y29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJj
b250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNm
ZXJyYWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLnctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJyYWJsZS53Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL3czYy1pbXBvcnQubG9nOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC90cmFuc2Zvcm1hdGlvbnMvMmQudHJhbnNmb3JtYXRpb24uZ2V0VHJhbnNmb3JtLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvdHJhbnNmb3JtYXRpb25zLzJkLnRyYW5zZm9ybWF0aW9uLmdldFRyYW5z
Zm9ybS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL21hbnVhbC90cmFuc2Zvcm1hdGlvbnMvdzNjLWltcG9ydC5sb2c6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0
aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9w
YXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9wYXRoLW9i
amVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMud29ya2VyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMud29ya2VyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLndvcmtlci5qczog
QWRkZWQuCisgICAgICAgICh0X2ZhaWwudC5zdGVwX2Z1bmMpOgorICAgICAgICAodC5zdGVwKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgt
b2JqZWN0cy93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL3RleHQvMmQudGV4dC5tZWFzdXJlLndpZHRoLnNwYWNlLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi90ZXh0
LzJkLnRleHQubWVhc3VyZS53aWR0aC5zcGFjZS53b3JrZXIuanM6CisgICAgICAgICh0LnN0ZXAp
OgorCiAyMDIwLTA4LTA5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbHdheXMgcmVzb2x2ZSBSZWFkYWJsZVN0cmVhbSdzIHRlZSgpJ3MgY2FuY2VsIHByb21p
c2UgYWZ0ZXIgdGhlIHN0cmVhbSBjbG9zZXMgb3IgZXJyb3JzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNmMDYzODc4MTU0NzcxOGQ4ZjdiOGE0ZGY5ZDliNDY4NjZiNzhl
ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJk
LmdyYWRpZW50LmNvbmljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKzJkLmdyYWRpZW50
LmNvbmljCisKK0NvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4aXN0cworCisKK0ZBSUwgQ29uaWMg
Z3JhZGllbnQgZnVuY3Rpb24gZXhpc3RzIGN0eC5jcmVhdGVDb25pY0dyYWRpZW50IGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ2N0eC5jcmVhdGVDb25pY0dyYWRpZW50KDAsIDAsIDI1KScsICdjdHgu
Y3JlYXRlQ29uaWNHcmFkaWVudCcgaXMgdW5kZWZpbmVkKQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTFhNDY1MWVmNjViYjkyNjI3OWQ1ZmJhYjRjMWM5OTFkYTkzNTQ0NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMu
aHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gRE8gTk9UIEVESVQh
IFRoaXMgdGVzdCBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgL2h0bWwvY2FudmFzL3Rvb2xzL2dlbnRl
c3QucHkuIC0tPgorPHRpdGxlPk9mZnNjcmVlbkNhbnZhcyB0ZXN0OiAyZC5ncmFkaWVudC5jb25p
YzwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMi
Pjwvc2NyaXB0PgorCis8aDE+MmQuZ3JhZGllbnQuY29uaWM8L2gxPgorPHAgY2xhc3M9ImRlc2Mi
PkNvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4aXN0czwvcD4KKworCis8c2NyaXB0PgordmFyIHQg
PSBhc3luY190ZXN0KCJDb25pYyBncmFkaWVudCBmdW5jdGlvbiBleGlzdHMiKTsKK3ZhciB0X3Bh
c3MgPSB0LmRvbmUuYmluZCh0KTsKK3ZhciB0X2ZhaWwgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihy
ZWFzb24pIHsKKyAgICB0aHJvdyByZWFzb247Cit9KTsKK3Quc3RlcChmdW5jdGlvbigpIHsKKwor
dmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7Cit2YXIg
Y3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKK2NvbnN0IGcgPSBjdHgu
Y3JlYXRlQ29uaWNHcmFkaWVudCgwLCAwLCAyNSk7CitnLmFkZENvbG9yU3RvcCgwLCAiIzBmMCIp
OworZy5hZGRDb2xvclN0b3AoMC41LCAiIzBmMCIpOworZy5hZGRDb2xvclN0b3AoMC41LCAiI2Yw
MCIpOworZy5hZGRDb2xvclN0b3AoMSwgIiNmMDAiKTsKK2N0eC5maWxsU3R5bGUgPSBnOworY3R4
LmZpbGxSZWN0KDAsIDAsIDEwMCwgNTApOworX2Fzc2VydFBpeGVsKG9mZnNjcmVlbkNhbnZhcywg
MjUsMjUsIDAsMjU1LDAsMjU1LCAiMjUsMjUiLCAiMCwyNTUsMCwyNTUiKTsKK19hc3NlcnRQaXhl
bChvZmZzY3JlZW5DYW52YXMsIDUwLDI1LCAwLDI1NSwwLDI1NSwgIjUwLDI1IiwgIjAsMjU1LDAs
MjU1Iik7CitfYXNzZXJ0UGl4ZWwob2Zmc2NyZWVuQ2FudmFzLCA3NSwyNSwgMCwyNTUsMCwyNTUs
ICI3NSwyNSIsICIwLDI1NSwwLDI1NSIpOwordC5kb25lKCk7CisKK30pOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNv
bmljLndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVz
LzJkLmdyYWRpZW50LmNvbmljLndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdlMDE3
MGM0ZGVjYjVjYzliMmFhOTliNmQwZTU1MmQzYTFiZmJlYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMud29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBDb25pYyBncmFkaWVudCBmdW5jdGlv
biBleGlzdHMgY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
Y3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoMCwgMCwgMjUpJywgJ2N0eC5jcmVhdGVDb25pY0dyYWRp
ZW50JyBpcyB1bmRlZmluZWQpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9r
ZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFu
ZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLndvcmtlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLndv
cmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBX
ZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5k
LXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMud29ya2VyLmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZmls
bC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy53b3JrZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTNhNjFhZDExNGRkYmZjYzE3NjgxMmFhYjJlOTk0NmI4MjYyNDk5NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMu
d29ya2VyLmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8vIERPIE5PVCBFRElUISBUaGlzIHRlc3QgaGFz
IGJlZW4gZ2VuZXJhdGVkIGJ5IC9odG1sL2NhbnZhcy90b29scy9nZW50ZXN0LnB5LgorLy8gT2Zm
c2NyZWVuQ2FudmFzIHRlc3QgaW4gYSB3b3JrZXI6MmQuZ3JhZGllbnQuY29uaWMKKy8vIERlc2Ny
aXB0aW9uOkNvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4aXN0cworLy8gTm90ZToKKworaW1wb3J0
U2NyaXB0cygiL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIpOworaW1wb3J0U2NyaXB0cygiL2h0
bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiKTsKKwordmFyIHQgPSBhc3luY190
ZXN0KCJDb25pYyBncmFkaWVudCBmdW5jdGlvbiBleGlzdHMiKTsKK3ZhciB0X3Bhc3MgPSB0LmRv
bmUuYmluZCh0KTsKK3ZhciB0X2ZhaWwgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihyZWFzb24pIHsK
KyAgICB0aHJvdyByZWFzb247Cit9KTsKK3Quc3RlcChmdW5jdGlvbigpIHsKKwordmFyIG9mZnNj
cmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7Cit2YXIgY3R4ID0gb2Zm
c2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKK2NvbnN0IGcgPSBjdHguY3JlYXRlQ29u
aWNHcmFkaWVudCgwLCAwLCAyNSk7CitnLmFkZENvbG9yU3RvcCgwLCAiIzBmMCIpOworZy5hZGRD
b2xvclN0b3AoMC41LCAiIzBmMCIpOworZy5hZGRDb2xvclN0b3AoMC41LCAiI2YwMCIpOworZy5h
ZGRDb2xvclN0b3AoMSwgIiNmMDAiKTsKK2N0eC5maWxsU3R5bGUgPSBnOworY3R4LmZpbGxSZWN0
KDAsIDAsIDEwMCwgNTApOworX2Fzc2VydFBpeGVsKG9mZnNjcmVlbkNhbnZhcywgMjUsMjUsIDAs
MjU1LDAsMjU1LCAiMjUsMjUiLCAiMCwyNTUsMCwyNTUiKTsKK19hc3NlcnRQaXhlbChvZmZzY3Jl
ZW5DYW52YXMsIDUwLDI1LCAwLDI1NSwwLDI1NSwgIjUwLDI1IiwgIjAsMjU1LDAsMjU1Iik7Citf
YXNzZXJ0UGl4ZWwob2Zmc2NyZWVuQ2FudmFzLCA3NSwyNSwgMCwyNTUsMCwyNTUsICI3NSwyNSIs
ICIwLDI1NSwwLDI1NSIpOwordC5kb25lKCk7CisKK30pOworZG9uZSgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvdzNjLWltcG9ydC5sb2cKaW5kZXggN2Q3NTllZDNjMTVi
ODg3MWY5YTIyNjJlYjdhOTFhOGIzZWVhZDgzOS4uMzMzMjA5Yjg2MTczY2YwNDg4MmFiZWZmZTJl
N2IzYTNhMGFkY2I4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxl
cy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzL3cz
Yy1pbXBvcnQubG9nCkBAIC0yNzAsNiArMjcwLDggQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmZpbGxTdHlsZS5wYXJzZS50cmFuc3BhcmVudC0x
Lndvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZmlsbFN0eWxl
LnBhcnNlLnRyYW5zcGFyZW50LTIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHls
ZXMvMmQuZmlsbFN0eWxlLnBhcnNlLnRyYW5zcGFyZW50LTIud29ya2VyLmpzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
ZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy53b3JrZXIuanMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmVtcHR5Lmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmVtcHR5Lndvcmtlci5qcwog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuaW50ZXJwb2xhdGUu
YWxwaGEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZlcnQtdG8tYmxvYi9v
ZmZzY3JlZW5jYW52YXMuY29udmVydC50by5ibG9iLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxvYi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZlZGRkMjg4YmNhYTU0OWJkNDY3Nzg4MmVhNWEzYzhhZTFj
MTU4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Iv
b2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxvYi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACisKK1BBU1MgVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBkZWZhdWx0IHR5cGUgcHJv
ZHVjZXMgY29ycmVjdCByZXN1bHQgCitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGgg
cG5nIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IAorUEFTUyBUZXN0IHRoYXQgY29udmVydFRvQmxv
YiB3aXRoIGpwZ2UgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgCitQQVNTIFRlc3QgdGhhdCBjb252
ZXJ0VG9CbG9iIHdpdGggd2VicCBwcm9kdWNlcyBjb3JyZWN0IHJlc3VsdCAKK1BBU1MgVGVzdCB0
aGF0IGNhbGwgY29udmVydFRvQmxvYiBvbiBhIGRldGFjaGVkIE9mZnNjcmVlbkNhbnZhcyB0aHJv
d3MgZXhjZXB0aW9uIAorUEFTUyBUZXN0IHRoYXQgY2FsbCBjb252ZXJ0VG9CbG9iIG9uIGEgT2Zm
c2NyZWVuQ2FudmFzIHdpdGggc2l6ZSAwIHRocm93cyBleGNlcHRpb24gCitQQVNTIFRlc3QgdGhh
dCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBPZmZzY3JlZW5DYW52YXMgd2l0aCB0YWludGVkIG9y
aWdpbiB0aHJvd3MgZXhjZXB0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29u
dmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2IuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxv
Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFjYzBlNWJmZmQwMjBhYTBkMGVkNTUwMWZmMmIyM2ZlYTk4ZTQy
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVydC10by1ibG9iL29m
ZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2IuaHRtbApAQCAtMCwwICsxLDE2NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMu
anMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnLyNkb20tb2Zmc2NyZWVuY2FudmFzLWNvbnZlcnR0b2Jsb2IiPgorPHNjcmlwdCBp
ZD0ibXlXb3JrZXIiIHR5cGU9InRleHQvd29ya2VyIj4KK3NlbGYub25tZXNzYWdlID0gZnVuY3Rp
b24oZSkgeworfTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG1ha2VXb3JrZXIoc2Ny
aXB0KQoreworICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3NjcmlwdF0pOworICAgIHJldHVybiBu
ZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpOworfQorCitmdW5jdGlvbiBkcmF3
Q2FudmFzKGN0eCkKK3sKKyAgICBjdHguZmlsbFN0eWxlID0gInJlZCI7CisgICAgY3R4LmZpbGxS
ZWN0KDAsIDAsIDUsIDUpOworICAgIGN0eC5maWxsU3R5bGUgPSAiZ3JlZW4iOworICAgIGN0eC5m
aWxsUmVjdCg1LCAwLCA1LCA1KTsKKyAgICBjdHguZmlsbFN0eWxlID0gImJsdWUiOworICAgIGN0
eC5maWxsUmVjdCgwLCA1LCA1LCA1KTsKKyAgICBjdHguZmlsbFN0eWxlID0gImJsYWNrIjsKKyAg
ICBjdHguZmlsbFJlY3QoNSwgNSwgNSwgNSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVJbWFnZXMo
aW1hZ2UxLCBpbWFnZTIpCit7CisgICAgdmFyIGNhbnZhczEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdjYW52YXMnKTsKKyAgICB2YXIgY2FudmFzMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2NhbnZhcycpOworICAgIGNhbnZhczEud2lkdGggPSBjYW52YXMxLmhlaWdodCA9IDEwOworICAg
IGNhbnZhczIud2lkdGggPSBjYW52YXMyLmhlaWdodCA9IDEwOworICAgIHZhciBjdHgxID0gY2Fu
dmFzMS5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciBjdHgyID0gY2FudmFzMS5nZXRDb250ZXh0
KCcyZCcpOworICAgIGN0eDEuZHJhd0ltYWdlKGltYWdlMSwgMCwgMCk7CisgICAgY3R4Mi5kcmF3
SW1hZ2UoaW1hZ2UyLCAwLCAwKTsKKyAgICB2YXIgZGF0YTEgPSBjdHgxLmdldEltYWdlRGF0YSgw
LCAwLCAxMCwgMTApLmRhdGE7CisgICAgdmFyIGRhdGEyID0gY3R4Mi5nZXRJbWFnZURhdGEoMCwg
MCwgMTAsIDEwKS5kYXRhOworICAgIGFzc2VydF9lcXVhbHMoZGF0YTEubGVuZ3RoLCBkYXRhMi5s
ZW5ndGgpOworICAgIHZhciBpbWFnZU1hdGNoZWQgPSB0cnVlOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZGF0YTEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGRhdGExW2ldICE9IGRhdGEy
W2ldKSB7CisgICAgICAgICAgICBpbWFnZU1hdGNoZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorICAgIGFzc2VydF90cnVlKGltYWdlTWF0Y2hlZCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RDb252ZXJ0VG9CbG9iKHQsIHR5cGVWYWwsIHF1YWxpdHlWYWwpIHsK
KyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOwor
ICAgIHZhciBvQ3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgZHJh
d0NhbnZhcyhvQ3R4KTsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
Y2FudmFzJyk7CisgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIGRy
YXdDYW52YXMoY3R4KTsKKyAgICB2YXIgaW1hZ2VMb2FkZWRDb3VudGVyID0gMDsKKworICAgIHZh
ciBpbWFnZTEgPSBuZXcgSW1hZ2UoKTsKKyAgICB2YXIgaW1hZ2UyID0gbmV3IEltYWdlKCk7Cisg
ICAgdmFyIHByb21pc2U7CisgICAgaWYgKHR5cGVWYWwgPT0gImVtcHR5IiAmJiBxdWFsaXR5VmFs
ID09ICJlbXB0eSIpCisgICAgICAgIHByb21pc2UgPSBvZmZzY3JlZW5DYW52YXMuY29udmVydFRv
QmxvYigpOworICAgIGVsc2UgaWYgKHR5cGVWYWwgPT0gImVtcHR5IiAmJiBxdWFsaXR5VmFsICE9
ICJlbXB0eSIpCisgICAgICAgIHByb21pc2UgPSBvZmZzY3JlZW5DYW52YXMuY29udmVydFRvQmxv
Yih7cXVhbGl0eTogcXVhbGl0eVZhbH0pOworICAgIGVsc2UgaWYgKHR5cGVWYWwgIT0gImVtcHR5
IiAmJiBxdWFsaXR5VmFsID09ICJlbXB0eSIpCisgICAgICAgIHByb21pc2UgPSBvZmZzY3JlZW5D
YW52YXMuY29udmVydFRvQmxvYih7dHlwZTogdHlwZVZhbH0pOworICAgIGVsc2UKKyAgICAgICAg
cHJvbWlzZSA9IG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9CbG9iKHt0eXBlOiB0eXBlVmFsLCBx
dWFsaXR5OiBxdWFsaXR5VmFsfSk7CisgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKGJsb2IyKSB7
CisgICAgICAgIGltYWdlMi5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IyKTsKKyAgICAg
ICAgaWYgKHR5cGVWYWwgPT0gImVtcHR5IiAmJiBxdWFsaXR5VmFsID09ICJlbXB0eSIpIHsKKyAg
ICAgICAgICAgIGNhbnZhcy50b0Jsb2IoZnVuY3Rpb24oYmxvYjEpIHsKKyAgICAgICAgICAgICAg
ICBpbWFnZTEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iMSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSBlbHNlIGlmICh0eXBlVmFsID09ICJlbXB0eSIgJiYgcXVhbGl0eVZhbCAh
PSAiZW1wdHkiKSB7CisgICAgICAgICAgICBjYW52YXMudG9CbG9iKGZ1bmN0aW9uKGJsb2IxKSB7
CisgICAgICAgICAgICAgICAgaW1hZ2UxLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYjEp
OworICAgICAgICAgICAgfSwgImltYWdlL3BuZyIsIHF1YWxpdHlWYWwpOworICAgICAgICB9IGVs
c2UgaWYgKHR5cGVWYWwgIT0gImVtcHR5IiAmJiBxdWFsaXR5VmFsID09ICJlbXB0eSIpIHsKKyAg
ICAgICAgICAgIGNhbnZhcy50b0Jsb2IoZnVuY3Rpb24oYmxvYjEpIHsKKyAgICAgICAgICAgICAg
ICBpbWFnZTEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iMSk7CisgICAgICAgICAgICB9
LCB0eXBlVmFsLCAxLjApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2FudmFzLnRv
QmxvYihmdW5jdGlvbihibG9iMSkgeworICAgICAgICAgICAgICAgIGltYWdlMS5zcmMgPSBVUkwu
Y3JlYXRlT2JqZWN0VVJMKGJsb2IxKTsKKyAgICAgICAgICAgIH0sIHR5cGVWYWwsIHF1YWxpdHlW
YWwpOworICAgICAgICB9CisgICAgICAgIGltYWdlMS5vbmxvYWQgPSBpbWFnZTIub25sb2FkID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpbWFnZUxvYWRlZENvdW50ZXIr
KzsKKyAgICAgICAgICAgIGlmIChpbWFnZUxvYWRlZENvdW50ZXIgPT0gMikgeworICAgICAgICAg
ICAgICAgIGNvbXBhcmVJbWFnZXMoaW1hZ2UxLCBpbWFnZTIpOworICAgICAgICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9KTsKK30KKworYXN5bmNf
dGVzdChmdW5jdGlvbih0KSB7CisgICAgdGVzdENvbnZlcnRUb0Jsb2IodCwgImVtcHR5IiwgImVt
cHR5Iik7CisgICAgdGVzdENvbnZlcnRUb0Jsb2IodCwgImVtcHR5IiwgMS4wKTsKKyAgICB0ZXN0
Q29udmVydFRvQmxvYih0LCAiZW1wdHkiLCAwLjIpOworfSwgIlRlc3QgdGhhdCBjb252ZXJ0VG9C
bG9iIHdpdGggZGVmYXVsdCB0eXBlIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0Iik7CisKK2FzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHRlc3RDb252ZXJ0VG9CbG9iKHQsICJpbWFnZS9wbmci
LCAiZW1wdHkiKTsKKyAgICB0ZXN0Q29udmVydFRvQmxvYih0LCAiaW1hZ2UvcG5nIiwgMS4wKTsK
KyAgICB0ZXN0Q29udmVydFRvQmxvYih0LCAiaW1hZ2UvcG5nIiwgMC4yKTsKK30sICJUZXN0IHRo
YXQgY29udmVydFRvQmxvYiB3aXRoIHBuZyBwcm9kdWNlcyBjb3JyZWN0IHJlc3VsdCIpOworCith
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB0ZXN0Q29udmVydFRvQmxvYih0LCAiaW1hZ2Uv
anBlZyIsICJlbXB0eSIpOworICAgIHRlc3RDb252ZXJ0VG9CbG9iKHQsICJpbWFnZS9qcGVnIiwg
MS4wKTsKKyAgICB0ZXN0Q29udmVydFRvQmxvYih0LCAiaW1hZ2UvanBlZyIsIDAuMik7Cit9LCAi
VGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBqcGdlIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0
Iik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHRlc3RDb252ZXJ0VG9CbG9iKHQs
ICJpbWFnZS93ZWJwIiwgImVtcHR5Iik7CisgICAgdGVzdENvbnZlcnRUb0Jsb2IodCwgImltYWdl
L3dlYnAiLCAxLjApOworICAgIHRlc3RDb252ZXJ0VG9CbG9iKHQsICJpbWFnZS93ZWJwIiwgMC4y
KTsKK30sICJUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIHdlYnAgcHJvZHVjZXMgY29ycmVj
dCByZXN1bHQiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9
IG1ha2VXb3JrZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15V29ya2VyIikudGV4dENvbnRl
bnQpOworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAx
MCk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtvZmZzY3JlZW5DYW52YXN9LCBbb2Zmc2NyZWVu
Q2FudmFzXSk7CisgICAgb2Zmc2NyZWVuQ2FudmFzLmNvbnZlcnRUb0Jsb2IoKS50aGVuKHQuc3Rl
cF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF9mYWxzZSgiY29udmVydFRv
QmxvYiBkaWRuJ3QgdGhyb3csIGJ1dCBzaG91bGQgYmUiKTsKKyAgICB9KSwgdC5zdGVwX2Z1bmNf
ZG9uZShmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBET01F
eGNlcHRpb24pOworICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIkludmFsaWRTdGF0ZUVy
cm9yIik7CisgICAgfSkpOworfSwgIlRlc3QgdGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBk
ZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGV4Y2VwdGlvbiIpOworCithc3luY190ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNh
bnZhcygwLCAwKTsKKyAgICBvZmZzY3JlZW5DYW52YXMuY29udmVydFRvQmxvYigpLnRoZW4odC5z
dGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKCJjb252ZXJ0
VG9CbG9iIGRpZG4ndCB0aHJvdywgYnV0IHNob3VsZCBiZSIpOworICAgIH0pLCB0LnN0ZXBfZnVu
Y19kb25lKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIERP
TUV4Y2VwdGlvbik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiSW5kZXhTaXplRXJy
b3IiKTsKKyAgICB9KSk7Cit9LCAiVGVzdCB0aGF0IGNhbGwgY29udmVydFRvQmxvYiBvbiBhIE9m
ZnNjcmVlbkNhbnZhcyB3aXRoIHNpemUgMCB0aHJvd3MgZXhjZXB0aW9uIik7CisKK2FzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgeworICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKKyAgICBpbWcuc3Jj
ID0gIi9pbWFnZXMvZ3JlZW4ucG5nIjsKKyAgICBpbWcuY3Jvc3NPcmlnaW4gPSAiYW5vbnltb3Vz
IjsKKyAgICBpbWcub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgICAgIHZh
ciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgICAg
IHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgY3R4
LmRyYXdJbWFnZShpbWcsIDAsIDApOworICAgICAgICBvZmZzY3JlZW5DYW52YXMuY29udmVydFRv
QmxvYigpLnRoZW4odC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFz
c2VydF9mYWxzZSgiY29udmVydFRvQmxvYiBkaWRuJ3QgdGhyb3csIGJ1dCBzaG91bGQiKTsKKyAg
ICAgICAgfSksIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoZSBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUubmFtZSwgIlNlY3VyaXR5RXJyb3IiKTsKKyAgICAgICAgfSkpOworICAgIH0pOwor
fSwgIlRlc3QgdGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBPZmZzY3JlZW5DYW52YXMgd2l0
aCB0YWludGVkIG9yaWdpbiB0aHJvd3MgZXhjZXB0aW9uIik7CisKKzwvc2NyaXB0PgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5j
b252ZXJ0LnRvLmJsb2Iudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVydC10
by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2Iudy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjlhOThjMWMxMDgzNjMzY2U3ZThiZjFhNDJiNWNkYWU0YTRiNmQzMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2Fu
dmFzLmNvbnZlcnQudG8uYmxvYi53LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKK1BB
U1MgVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBkZWZhdWx0IGFyZ3VtZW50cyBwcm9kdWNl
cyBjb3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNvbnZlcnRUb0Js
b2Igd2l0aCBkZWZhdWx0IHR5cGUvMS4wIHF1YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQg
aW4gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGggZGVmYXVsdCB0
eXBlLzAuMiBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEgd29ya2VyIAorUEFT
UyBUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIHBuZy9kZWZhdWx0IHF1YWxpdHkgcHJvZHVj
ZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0VG9C
bG9iIHdpdGggcG5nLzEuMCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEgd29y
a2VyIAorUEFTUyBUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIHBuZy8wLjIgcXVhbGl0eSBw
cm9kdWNlcyBjb3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNvbnZl
cnRUb0Jsb2Igd2l0aCBqcGVnL2RlZmF1bHQgcXVhbGl0eSBwcm9kdWNlcyBjb3JyZWN0IHJlc3Vs
dCBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBqcGVnLzEu
MCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEgd29ya2VyIAorUEFTUyBUZXN0
IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIGpwZWcvMC4yIHF1YWxpdHkgcHJvZHVjZXMgY29ycmVj
dCByZXN1bHQgaW4gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGgg
d2VicC9kZWZhdWx0IHF1YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIg
CitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGggd2VicC8xLjAgcXVhbGl0eSBwcm9k
dWNlcyBjb3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNvbnZlcnRU
b0Jsb2Igd2l0aCB3ZWJwLzAuMiBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEg
d29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbCBjb252ZXJ0VG9CbG9iIG9uIGEgZGV0YWNoZWQg
T2Zmc2NyZWVuQ2FudmFzIHRocm93cyBleGNlcHRpb24gaW4gYSB3b3JrZXIgCitQQVNTIFRlc3Qg
dGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBPZmZzY3JlZW5DYW52YXMgd2l0aCBzaXplIDAg
dGhyb3dzIGV4Y2VwdGlvbiBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNhbGwgY29udmVy
dFRvQmxvYiBvbiBhIE9mZnNjcmVlbkNhbnZhcyB3aXRoIHRhaW50ZWQgb3JpZ2luIHRocm93cyBl
eGNlcHRpb24gaW4gYSB3b3JrZXIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252
ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxvYi53Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9tYW51YWwvY29udmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJs
b2Iudy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMWZhNGNmNDBlN2QyYTY4YTZkZjRlY2ZkOGJmODk4MjQ1
MzlhNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVydC10by1ibG9i
L29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2Iudy5odG1sCkBAIC0wLDAgKzEsMzM3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvaHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10
ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvI2RvbS1vZmZzY3JlZW5jYW52YXMtY29udmVydHRvYmxvYiI+Cis8c2Ny
aXB0IGlkPSJteVdvcmtlciIgdHlwZT0idGV4dC93b3JrZXIiPgorZnVuY3Rpb24gZHJhd0NhbnZh
cyhjdHgpCit7CisgICAgY3R4LmZpbGxTdHlsZSA9ICJyZWQiOworICAgIGN0eC5maWxsUmVjdCgw
LCAwLCA1LCA1KTsKKyAgICBjdHguZmlsbFN0eWxlID0gImdyZWVuIjsKKyAgICBjdHguZmlsbFJl
Y3QoNSwgMCwgNSwgNSk7CisgICAgY3R4LmZpbGxTdHlsZSA9ICJibHVlIjsKKyAgICBjdHguZmls
bFJlY3QoMCwgNSwgNSwgNSk7CisgICAgY3R4LmZpbGxTdHlsZSA9ICJibGFjayI7CisgICAgY3R4
LmZpbGxSZWN0KDUsIDUsIDUsIDUpOworfQorCitmdW5jdGlvbiB0ZXN0Q29udmVydFRvQmxvYih0
eXBlVmFsLCBxdWFsaXR5VmFsKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZz
Y3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICB2YXIgb0N0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRD
b250ZXh0KCcyZCcpOworICAgIGRyYXdDYW52YXMob0N0eCk7CisKKyAgICB2YXIgcHJvbWlzZTsK
KyAgICBpZiAodHlwZVZhbCA9PSAiZW1wdHkiICYmIHF1YWxpdHlWYWwgPT0gImVtcHR5IikKKyAg
ICAgICAgcHJvbWlzZSA9IG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9CbG9iKCk7CisgICAgZWxz
ZSBpZiAodHlwZVZhbCA9PSAiZW1wdHkiICYmIHF1YWxpdHlWYWwgIT0gImVtcHR5IikKKyAgICAg
ICAgcHJvbWlzZSA9IG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9CbG9iKHtxdWFsaXR5OiBxdWFs
aXR5VmFsfSk7CisgICAgZWxzZSBpZiAodHlwZVZhbCAhPSAiZW1wdHkiICYmIHF1YWxpdHlWYWwg
PT0gImVtcHR5IikKKyAgICAgICAgcHJvbWlzZSA9IG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9C
bG9iKHt0eXBlOiB0eXBlVmFsfSk7CisgICAgZWxzZQorICAgICAgICBwcm9taXNlID0gb2Zmc2Ny
ZWVuQ2FudmFzLmNvbnZlcnRUb0Jsb2Ioe3R5cGU6IHR5cGVWYWwsIHF1YWxpdHk6IHF1YWxpdHlW
YWx9KTsKKyAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAgICAgICBzZWxmLnBv
c3RNZXNzYWdlKGJsb2IpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0Q29udmVydFRvQmxv
YkV4Y2VwdGlvbjEoKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVu
Q2FudmFzKDEwLCAxMCk7CisgICAgc2VsZi5wb3N0TWVzc2FnZSh7b2Zmc2NyZWVuQ2FudmFzfSwg
W29mZnNjcmVlbkNhbnZhc10pOworICAgIG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9CbG9iKCku
dGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShmYWxzZSk7CisgICAg
fSwgZnVuY3Rpb24oZSkgeworICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKGUgaW5zdGFuY2VvZiBE
T01FeGNlcHRpb24gJiYgZS5uYW1lID09ICJJbnZhbGlkU3RhdGVFcnJvciIpOworICAgIH0pOwor
fQorCitmdW5jdGlvbiB0ZXN0Q29udmVydFRvQmxvYkV4Y2VwdGlvbjIoKQoreworICAgIHZhciBv
ZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDAsIDApOworICAgIG9mZnNjcmVl
bkNhbnZhcy5jb252ZXJ0VG9CbG9iKCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgc2VsZi5w
b3N0TWVzc2FnZShmYWxzZSk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICBzZWxmLnBv
c3RNZXNzYWdlKGUgaW5zdGFuY2VvZiBET01FeGNlcHRpb24gJiYgZS5uYW1lID09ICJJbmRleFNp
emVFcnJvciIpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0Q29udmVydFRvQmxvYkV4Y2Vw
dGlvbjMoYml0bWFwKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVu
Q2FudmFzKDEwLCAxMCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0
KCIyZCIpOworICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwKTsKKyAgICBvZmZzY3JlZW5D
YW52YXMuY29udmVydFRvQmxvYigpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgIHNlbGYucG9z
dE1lc3NhZ2UoZmFsc2UpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgc2VsZi5wb3N0
TWVzc2FnZShlIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uICYmIGUubmFtZSA9PSAiU2VjdXJpdHlF
cnJvciIpOworICAgIH0pOworfQorCitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICBpZiAoZS5kYXRhIGluc3RhbmNlb2YgSW1hZ2VCaXRtYXApIHsKKyAgICAgICAgdGVzdENvbnZl
cnRUb0Jsb2JFeGNlcHRpb24zKGUuZGF0YSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBzd2l0Y2goZS5kYXRhKSB7CisgICAgICAgIGNhc2UgJ3Rlc3QxJzoKKyAgICAgICAgICAgIHRl
c3RDb252ZXJ0VG9CbG9iKCJlbXB0eSIsICJlbXB0eSIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgJ3Rlc3QyJzoKKyAgICAgICAgICAgIHRlc3RDb252ZXJ0VG9CbG9iKCJlbXB0
eSIsIDEuMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDMnOgorICAg
ICAgICAgICAgdGVzdENvbnZlcnRUb0Jsb2IoImVtcHR5IiwgMC4yKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlICd0ZXN0NCc6CisgICAgICAgICAgICB0ZXN0Q29udmVydFRvQmxv
YigiaW1hZ2UvcG5nIiwgImVtcHR5Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAndGVzdDUnOgorICAgICAgICAgICAgdGVzdENvbnZlcnRUb0Jsb2IoImltYWdlL3BuZyIsIDEu
MCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDYnOgorICAgICAgICAg
ICAgdGVzdENvbnZlcnRUb0Jsb2IoImltYWdlL3BuZyIsIDAuMik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAndGVzdDcnOgorICAgICAgICAgICAgdGVzdENvbnZlcnRUb0Jsb2Io
ImltYWdlL2pwZWciLCAiZW1wdHkiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
ICd0ZXN0OCc6CisgICAgICAgICAgICB0ZXN0Q29udmVydFRvQmxvYigiaW1hZ2UvanBlZyIsIDEu
MCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDknOgorICAgICAgICAg
ICAgdGVzdENvbnZlcnRUb0Jsb2IoImltYWdlL2pwZWciLCAwLjIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgJ3Rlc3QxMCc6CisgICAgICAgICAgICB0ZXN0Q29udmVydFRvQmxv
YigiaW1hZ2Uvd2VicCIsICJlbXB0eSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgJ3Rlc3QxMSc6CisgICAgICAgICAgICB0ZXN0Q29udmVydFRvQmxvYigiaW1hZ2Uvd2VicCIs
IDEuMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDEyJzoKKyAgICAg
ICAgICAgIHRlc3RDb252ZXJ0VG9CbG9iKCJpbWFnZS93ZWJwIiwgMC4yKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0MTMnOgorICAgICAgICAgICAgdGVzdENvbnZlcnRU
b0Jsb2JFeGNlcHRpb24xKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVz
dDE0JzoKKyAgICAgICAgICAgIHRlc3RDb252ZXJ0VG9CbG9iRXhjZXB0aW9uMigpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgfQorfTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlv
biBtYWtlV29ya2VyKHRlc3QpIHsKKyAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0Q29udGVudF0pOworICAgIHZhciB3b3JrZXIg
PSBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpOworICAgIHdvcmtlci5vbmVy
cm9yID0gdGVzdC51bnJlYWNoZWRfZnVuYygiZXJyb3IiKTsKKyAgICByZXR1cm4gd29ya2VyOwor
fQorCitmdW5jdGlvbiBkcmF3Q2FudmFzKGN0eCkKK3sKKyAgICBjdHguZmlsbFN0eWxlID0gInJl
ZCI7CisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDUsIDUpOworICAgIGN0eC5maWxsU3R5bGUgPSAi
Z3JlZW4iOworICAgIGN0eC5maWxsUmVjdCg1LCAwLCA1LCA1KTsKKyAgICBjdHguZmlsbFN0eWxl
ID0gImJsdWUiOworICAgIGN0eC5maWxsUmVjdCgwLCA1LCA1LCA1KTsKKyAgICBjdHguZmlsbFN0
eWxlID0gImJsYWNrIjsKKyAgICBjdHguZmlsbFJlY3QoNSwgNSwgNSwgNSk7Cit9CisKK2Z1bmN0
aW9uIGNvbXBhcmVJbWFnZXMoaW1hZ2UxLCBpbWFnZTIpCit7CisgICAgdmFyIGNhbnZhczEgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICB2YXIgY2FudmFzMiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIGNhbnZhczEud2lkdGggPSBjYW52YXMx
LmhlaWdodCA9IDEwOworICAgIGNhbnZhczIud2lkdGggPSBjYW52YXMyLmhlaWdodCA9IDEwOwor
ICAgIHZhciBjdHgxID0gY2FudmFzMS5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciBjdHgyID0g
Y2FudmFzMS5nZXRDb250ZXh0KCcyZCcpOworICAgIGN0eDEuZHJhd0ltYWdlKGltYWdlMSwgMCwg
MCk7CisgICAgY3R4Mi5kcmF3SW1hZ2UoaW1hZ2UyLCAwLCAwKTsKKyAgICB2YXIgZGF0YTEgPSBj
dHgxLmdldEltYWdlRGF0YSgwLCAwLCAxMCwgMTApLmRhdGE7CisgICAgdmFyIGRhdGEyID0gY3R4
Mi5nZXRJbWFnZURhdGEoMCwgMCwgMTAsIDEwKS5kYXRhOworICAgIGFzc2VydF9lcXVhbHMoZGF0
YTEubGVuZ3RoLCBkYXRhMi5sZW5ndGgpOworICAgIHZhciBpbWFnZU1hdGNoZWQgPSB0cnVlOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YTEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYg
KGRhdGExW2ldICE9IGRhdGEyW2ldKSB7CisgICAgICAgICAgICBpbWFnZU1hdGNoZWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGFzc2VydF90cnVl
KGltYWdlTWF0Y2hlZCk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVXaXRoVG9CbG9iKHQsIHR5cGVW
YWwsIHF1YWxpdHlWYWwsIGJsb2IyKQoreworICAgIHZhciBpbWFnZTEgPSBuZXcgSW1hZ2UoKTsK
KyAgICB2YXIgaW1hZ2UyID0gbmV3IEltYWdlKCk7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgICBkcmF3Q2FudmFzKGN0eCk7CisgICAgdmFyIGltYWdlTG9hZGVkQ291bnRl
ciA9IDA7CisKKyAgICBpZiAodHlwZVZhbCA9PSAiZW1wdHkiICYmIHF1YWxpdHlWYWwgPT0gImVt
cHR5IikgeworICAgICAgICBjYW52YXMudG9CbG9iKGZ1bmN0aW9uKGJsb2IxKSB7CisgICAgICAg
ICAgICBpbWFnZTEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iMSk7CisgICAgICAgIH0p
OworICAgIH0gZWxzZSBpZiAodHlwZVZhbCA9PSAiZW1wdHkiICYmIHF1YWxpdHlWYWwgIT0gImVt
cHR5IikgeworICAgICAgICBjYW52YXMudG9CbG9iKGZ1bmN0aW9uKGJsb2IxKSB7CisgICAgICAg
ICAgICBpbWFnZTEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iMSk7CisgICAgICAgIH0s
ICJpbWFnZS9wbmciLCBxdWFsaXR5VmFsKTsKKyAgICB9IGVsc2UgaWYgKHR5cGVWYWwgIT0gImVt
cHR5IiAmJiBxdWFsaXR5VmFsID09ICJlbXB0eSIpIHsKKyAgICAgICAgY2FudmFzLnRvQmxvYihm
dW5jdGlvbihibG9iMSkgeworICAgICAgICAgICAgaW1hZ2UxLnNyYyA9IFVSTC5jcmVhdGVPYmpl
Y3RVUkwoYmxvYjEpOworICAgICAgICB9LCB0eXBlVmFsLCAxLjApOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGNhbnZhcy50b0Jsb2IoZnVuY3Rpb24oYmxvYjEpIHsKKyAgICAgICAgICAgIGltYWdl
MS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IxKTsKKyAgICAgICAgfSwgdHlwZVZhbCwg
cXVhbGl0eVZhbCk7CisgICAgfQorICAgIGltYWdlMi5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJM
KGJsb2IyKTsKKyAgICBpbWFnZTEub25sb2FkID0gaW1hZ2UyLm9ubG9hZCA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKCkgeworICAgICAgICBpbWFnZUxvYWRlZENvdW50ZXIrKzsKKyAgICAgICAgaWYg
KGltYWdlTG9hZGVkQ291bnRlciA9PSAyKSB7CisgICAgICAgICAgICBjb21wYXJlSW1hZ2VzKGlt
YWdlMSwgaW1hZ2UyKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9CisgICAgfSk7
Cit9CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29y
a2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1
bmMoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRoVG9CbG9iKHQsICJlbXB0eSIs
ICJlbXB0eSIsIG1zZy5kYXRhKTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0
ZXN0MScpOworfSwgIlRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGggZGVmYXVsdCBhcmd1bWVu
dHMgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIiKTsKKworYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2Vy
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbihtc2cpIHsK
KyAgICAgICAgY29tcGFyZVdpdGhUb0Jsb2IodCwgImVtcHR5IiwgMS4wLCBtc2cuZGF0YSk7Cisg
ICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDInKTsKK30sICJUZXN0IHRoYXQg
Y29udmVydFRvQmxvYiB3aXRoIGRlZmF1bHQgdHlwZS8xLjAgcXVhbGl0eSBwcm9kdWNlcyBjb3Jy
ZWN0IHJlc3VsdCBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIHQuc3RlcF9mdW5jKGZ1bmN0aW9uKG1zZykgeworICAgICAgICBjb21wYXJl
V2l0aFRvQmxvYih0LCAiZW1wdHkiLCAwLjIsIG1zZy5kYXRhKTsKKyAgICB9KSk7CisgICAgd29y
a2VyLnBvc3RNZXNzYWdlKCd0ZXN0MycpOworfSwgIlRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdp
dGggZGVmYXVsdCB0eXBlLzAuMiBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEg
d29ya2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBt
YWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5z
dGVwX2Z1bmMoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRoVG9CbG9iKHQsICJp
bWFnZS9wbmciLCAiZW1wdHkiLCBtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0
TWVzc2FnZSgndGVzdDQnKTsKK30sICJUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIHBuZy9k
ZWZhdWx0IHF1YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIiKTsKKwor
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7
CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihtc2cpIHsKKyAgICAgICAgY29tcGFyZVdpdGhUb0Jsb2IodCwgImltYWdlL3BuZyIsIDEu
MCwgbXNnLmRhdGEpOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3Q1Jyk7
Cit9LCAiVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBwbmcvMS4wIHF1YWxpdHkgcHJvZHVj
ZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFkZEV2ZW50
TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbihtc2cpIHsKKyAgICAgICAg
Y29tcGFyZVdpdGhUb0Jsb2IodCwgImltYWdlL3BuZyIsIDAuMiwgbXNnLmRhdGEpOworICAgIH0p
KTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3Q2Jyk7Cit9LCAiVGVzdCB0aGF0IGNvbnZl
cnRUb0Jsb2Igd2l0aCBwbmcvMC4yIHF1YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4g
YSB3b3JrZXIiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9
IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgY29tcGFyZVdpdGhUb0Jsb2IodCwg
ImltYWdlL2pwZWciLCAiZW1wdHkiLCBtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5w
b3N0TWVzc2FnZSgndGVzdDcnKTsKK30sICJUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIGpw
ZWcvZGVmYXVsdCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEgd29ya2VyIik7
CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2Vy
KHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRoVG9CbG9iKHQsICJpbWFnZS9qcGVn
IiwgMS4wLCBtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVz
dDgnKTsKK30sICJUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIGpwZWcvMS4wIHF1YWxpdHkg
cHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIiKTsKKworYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbihtc2cpIHsKKyAg
ICAgICAgY29tcGFyZVdpdGhUb0Jsb2IodCwgImltYWdlL2pwZWciLCAwLjIsIG1zZy5kYXRhKTsK
KyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0OScpOworfSwgIlRlc3QgdGhh
dCBjb252ZXJ0VG9CbG9iIHdpdGgganBlZy8wLjIgcXVhbGl0eSBwcm9kdWNlcyBjb3JyZWN0IHJl
c3VsdCBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIg
d29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVz
c2FnZScsIHQuc3RlcF9mdW5jKGZ1bmN0aW9uKG1zZykgeworICAgICAgICBjb21wYXJlV2l0aFRv
QmxvYih0LCAiaW1hZ2Uvd2VicCIsICJlbXB0eSIsIG1zZy5kYXRhKTsKKyAgICB9KSk7CisgICAg
d29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0MTAnKTsKK30sICJUZXN0IHRoYXQgY29udmVydFRvQmxv
YiB3aXRoIHdlYnAvZGVmYXVsdCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEg
d29ya2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBt
YWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5z
dGVwX2Z1bmMoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRoVG9CbG9iKHQsICJp
bWFnZS93ZWJwIiwgMS4wLCBtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVz
c2FnZSgndGVzdDExJyk7Cit9LCAiVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCB3ZWJwLzEu
MCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEgd29ya2VyIik7CisKK2FzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAg
IHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
bXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRoVG9CbG9iKHQsICJpbWFnZS93ZWJwIiwgMC4yLCBt
c2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDEyJyk7Cit9
LCAiVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCB3ZWJwLzAuMiBxdWFsaXR5IHByb2R1Y2Vz
IGNvcnJlY3QgcmVzdWx0IGluIGEgd29ya2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAg
ICAgaWYgKG1zZy5kYXRhIGluc3RhbmNlb2YgT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0p
KTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3QxMycpOworfSwgIlRlc3QgdGhhdCBjYWxs
IGNvbnZlcnRUb0Jsb2Igb24gYSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGV4Y2Vw
dGlvbiBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIg
d29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVz
c2FnZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGFzc2VydF90
cnVlKG1zZy5kYXRhKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfSkpOworICAgIHdvcmtlci5w
b3N0TWVzc2FnZSgndGVzdDE0Jyk7Cit9LCAiVGVzdCB0aGF0IGNhbGwgY29udmVydFRvQmxvYiBv
biBhIE9mZnNjcmVlbkNhbnZhcyB3aXRoIHNpemUgMCB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29y
a2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBpbWcgPSBuZXcgSW1h
Z2UoKTsKKyAgICBpbWcuc3JjID0gIi9pbWFnZXMvZ3JlZW4ucG5nIjsKKyAgICBpbWcuY3Jvc3NP
cmlnaW4gPSAiYW5vbnltb3VzIjsKKyAgICBpbWcub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgo
KSA9PiB7CisgICAgICAgIGNyZWF0ZUltYWdlQml0bWFwKGltZykudGhlbih0LnN0ZXBfZnVuY19k
b25lKGJpdG1hcCA9PiB7CisgICAgICAgICAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsK
KyAgICAgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1
bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShtc2cu
ZGF0YSk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KSk7CisgICAg
ICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoYml0bWFwKTsKKyAgICAgICAgfSkpOworICAgIH0p
OworfSwgIlRlc3QgdGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBPZmZzY3JlZW5DYW52YXMg
d2l0aCB0YWludGVkIG9yaWdpbiB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29ya2VyIik7CisKKzwv
c2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVydC10by1ibG9iL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZlcnQtdG8tYmxvYi93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wN2I5MzgxOWYzNDJjZmVkODliMGZjYjViZThmYzdkZTY5ZDc1YWJm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZlcnQtdG8tYmxvYi93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29u
dmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2IuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxv
Yi53Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2Fu
dmFzLmZpbHRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29mZnNjcmVl
bmNhbnZhcy5maWx0ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNjE1Mjc3ZTcyZjYyOTYx
NjM1NDgyNWFmYThiZDJlYTFlYjkzZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIG5vbmUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIv
b2Zmc2NyZWVuY2FudmFzLmZpbHRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZz
Y3JlZW5jYW52YXMuZmlsdGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU2OTE5ODNmMWUxMDI3OTY3OThh
NmQ1MjUzYjk1ZTBkYjUzMjIzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9m
aWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJvZmZzY3JlZW5jYW52YXMuZmlsdGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgcGF0
dGVybkNhbnZhcyA9IGNyZWF0ZVBhdHRlcm5DYW52YXMoKTsKKwordmFyIGdldE9mZnNjcmVlbkNv
bnRleHRGb3JGaWx0ZXIgPSBmdW5jdGlvbihmaWx0ZXIsIHBhdHRlcm4pIHsKKyAgdmFyIG9jID0g
bmV3IE9mZnNjcmVlbkNhbnZhcyg4MCwgODApOworICB2YXIgb2ZmQ3R4ID0gb2MuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgb2ZmQ3R4LmZpbHRlciA9IGZpbHRlcjsKKyAgb2ZmQ3R4LmRyYXdJbWFnZShw
YXR0ZXJuLCA1LCA1KTsKKyAgb2ZmQ3R4LmRyYXdJbWFnZShwYXR0ZXJuLCAyNSwgMjUpOworICBv
ZmZDdHguZHJhd0ltYWdlKHBhdHRlcm4sIDQ1LCA0NSk7CisgIHJldHVybiBvZmZDdHg7Cit9Owor
Cit2YXIgdGVzdEZpbHRlciA9IGZ1bmN0aW9uKGZpbHRlcikgeworICB2YXIgb2ZmQ3R4ID0gZ2V0
T2Zmc2NyZWVuQ29udGV4dEZvckZpbHRlcihmaWx0ZXIsIHBhdHRlcm5DYW52YXMpOworICB2YXIg
Y3R4ID0gZ2V0UmVndWxhckNvbnRleHRGb3JGaWx0ZXIoZmlsdGVyLCBwYXR0ZXJuQ2FudmFzKTsK
KyAgdmFyIG9mZkltYWdlRGF0YSA9IG9mZkN0eC5nZXRJbWFnZURhdGEoMCwgMCwgODAsIDgwKS5k
YXRhOworICB2YXIgaW1hZ2VEYXRhID0gY3R4LmdldEltYWdlRGF0YSgwLCAwLCA4MCwgODApLmRh
dGE7CisgIG1hdGNoSW1hZ2VEYXRhUmVzdWx0cyhvZmZJbWFnZURhdGEsIGltYWdlRGF0YSwgZmls
dGVyKTsKK307CisKK2dlbmVyYXRlX3Rlc3RzKHRlc3RGaWx0ZXIsIFtmaWx0ZXJzXSk7CisKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5jYW52
YXMuZmlsdGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5jYW52YXMuZmls
dGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNiMmUyNDU4MDMwZjUzZGRiZTFkNjZiZjMxMTUyODQ3MzNjNjg1
MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNh
bnZhcy5maWx0ZXIuanMKQEAgLTAsMCArMSw0OCBAQAordmFyIGdldFJlZ3VsYXJDb250ZXh0Rm9y
RmlsdGVyID0gZnVuY3Rpb24oZmlsdGVyLCBwYXR0ZXJuKSB7CisgIHZhciBjID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgIGMud2lkdGggPSBjLmhlaWdodCA9IDgwOworICB2
YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOworICBjdHguZmlsdGVyID0gZmlsdGVyOworICBj
dHguZHJhd0ltYWdlKHBhdHRlcm4sIDUsIDUpOworICBjdHguZHJhd0ltYWdlKHBhdHRlcm4sIDI1
LCAyNSk7CisgIGN0eC5kcmF3SW1hZ2UocGF0dGVybiwgNDUsIDQ1KTsKKyAgcmV0dXJuIGN0eDsK
K307CisKK3ZhciBtYXRjaEltYWdlRGF0YVJlc3VsdHMgPSBmdW5jdGlvbihvZmZzY3JlZW5JbWFn
ZSwgcmVndWxhckltYWdlLCBmaWx0ZXIpIHsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhvZmZzY3Jl
ZW5JbWFnZSwgcmVndWxhckltYWdlLAorICAgICAgIlRoZSBpbWFnZSBkYXRhIGdlbmVyYXRlZCBi
eSBmaWx0ZXIgIiArCisgICAgICBmaWx0ZXIgKworICAgICAgIiBzaG91bGQgYmUgdGhlIHNhbWUg
Zm9yIGJvdGggT2Zmc2NyZWVuQ2FudmFzIGFuZCByZWd1bGFyIGNhbnZhcyIpOworfTsKKwordmFy
IGNyZWF0ZVBhdHRlcm5DYW52YXMgPSBmdW5jdGlvbigpIHsKKyAgdmFyIHBhdHRlcm5DYW52YXMg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgcGF0dGVybkNhbnZhcy53aWR0
aCA9IDIwOworICBwYXR0ZXJuQ2FudmFzLmhlaWdodCA9IDIwOworICB2YXIgcGF0dGVybkN0eCA9
IHBhdHRlcm5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgcGF0dGVybkN0eC5maWxsU3R5bGUg
PSAnI0EwMCc7CisgIHBhdHRlcm5DdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgcGF0dGVy
bkN0eC5maWxsU3R5bGUgPSAnIzBBMCc7CisgIHBhdHRlcm5DdHguZmlsbFJlY3QoMTAsIDAsIDEw
LCAxMCk7CisgIHBhdHRlcm5DdHguZmlsbFN0eWxlID0gJyMwMEEnOworICBwYXR0ZXJuQ3R4LmZp
bGxSZWN0KDAsIDEwLCAxMCwgMTApOworICBwYXR0ZXJuQ3R4LmZpbGxTdHlsZSA9ICIjQUEwIjsK
KyAgcGF0dGVybkN0eC5maWxsUmVjdCgxMCwgMTAsIDEwLCAxMCk7CisgIHJldHVybiBwYXR0ZXJu
Q2FudmFzOworfTsKKwordmFyIGZpbHRlcnMgPSAgICBbICJub25lIiAgICAgICAgICAsCisgICAg
ICAiYmx1cigxMHB4KSIgICAgICAgICAgICAgICAgICwKKyAgICAgICJicmlnaHRuZXNzKDQwJSki
ICAgICAgICAgICAgLAorICAgICAgImNvbnRyYXN0KDIwJSkiICAgICAgICAgICAgICAsCisgICAg
ICAiZHJvcC1zaGFkb3coMCAwIDVweCBncmVlbikiICwKKyAgICAgICJncmF5c2NhbGUoMTAwJSki
ICAgICAgICAgICAgLAorICAgICAgImludmVydCgxMDAlKSIgICAgICAgICAgICAgICAsCisgICAg
ICAib3BhY2l0eSg1MCUpIiAgICAgICAgICAgICAgICwKKyAgICAgICJzYXR1cmF0ZSgyMCUpIiAg
ICAgICAgICAgICAgLAorICAgICAgInNlcGlhKDEwMCUpIiAgICAgICAgICAgICAgICAsCisgICAg
ICAic2VwaWEoMSkgaHVlLXJvdGF0ZSgyMDBkZWcpIiwKKyAgICAgICJ1cmwoI3VybCkiICAgICAg
ICAgICAgICAgICAgXTsKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29m
ZnNjcmVlbmNhbnZhcy5maWx0ZXIudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmls
dGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXIudy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVl
M2Y3MTNmZjI5NjM2OWQwYjQwNWY4MWRkNjQ4ZjA1YWMwNDA0YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci53LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIgQEAKK0ZBSUw6IFRpbWVkIG91dCB3YWl0aW5nIGZvciBub3RpZnlE
b25lIHRvIGJlIGNhbGxlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29m
ZnNjcmVlbmNhbnZhcy5maWx0ZXIudy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZz
Y3JlZW5jYW52YXMuZmlsdGVyLncuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmVkOTE1YjUzOTI5OTgxMDUz
NjVmOWU3Yzk3NjgwMThjNDFhZjlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L2ZpbHRlci9vZmZzY3JlZW5jYW52YXMuZmlsdGVyLncuaHRtbApAQCAtMCwwICsxLDU0IEBACis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ib2Zmc2NyZWVuY2FudmFzLmZpbHRlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSdt
eVdvcmtlcicgdHlwZT0ndGV4dC93b3JrZXInPgorc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
KSB7CisgIHZhciBnZXRPZmZzY3JlZW5DYW52YXNGb3JGaWx0ZXIgPSBmdW5jdGlvbihmaWx0ZXIs
IHBhdHRlcm4pIHsKKyAgICB2YXIgb2MgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDgwLCA4MCk7Cisg
ICAgdmFyIG9mZkN0eCA9IG9jLmdldENvbnRleHQoJzJkJyk7CisgICAgb2ZmQ3R4LmZpbHRlciA9
IGZpbHRlcjsKKyAgICBvZmZDdHguZHJhd0ltYWdlKHBhdHRlcm4sIDUsIDUpOworICAgIG9mZkN0
eC5kcmF3SW1hZ2UocGF0dGVybiwgMjUsIDI1KTsKKyAgICBvZmZDdHguZHJhd0ltYWdlKHBhdHRl
cm4sIDQ1LCA0NSk7CisgICAgcmV0dXJuIG9jOworICB9OworCisgIHZhciBmaWx0ZXJzID0gZS5k
YXRhLmZpbHRlcnM7CisgIHZhciBwYXR0ZXJuID0gZS5kYXRhLnBhdHRlcm47CisgIHZhciByZXQg
PSBbXTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWx0ZXJzLmxlbmd0aDsgaSsrKSB7CisgICAg
IHZhciBvYyA9IGdldE9mZnNjcmVlbkNhbnZhc0ZvckZpbHRlcihmaWx0ZXJzW2ldLCBwYXR0ZXJu
KTsKKyAgICAgdmFyIGltYWdlQml0bWFwID0gb2MudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7Cisg
ICAgIHJldC5wdXNoKGltYWdlQml0bWFwKTsKKyAgfQorICBzZWxmLnBvc3RNZXNzYWdlKHJldCwg
cmV0KTsKK307Cis8L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgcGF0dGVybkNhbnZhcyA9IGNyZWF0
ZVBhdHRlcm5DYW52YXMoKTsKKworLy8gQnVpbGQgYSBsaXN0IG9mIGltYWdlIGRhdGEgb24gcmVn
dWxhciBjYW52YXMgd2l0aCBkaWZmZXJlbnQgZmlsdGVycwordmFyIGxpc3RDYW52YXNJbWFnZURh
dGEgPSBbXTsKK2ZvciAodmFyIGogPSAwOyBqIDwgZmlsdGVycy5sZW5ndGg7IGorKykgeworICB2
YXIgY3R4ID0gZ2V0UmVndWxhckNvbnRleHRGb3JGaWx0ZXIoZmlsdGVyc1tqXSwgcGF0dGVybkNh
bnZhcyk7CisgIGxpc3RDYW52YXNJbWFnZURhdGEucHVzaChjdHguZ2V0SW1hZ2VEYXRhKDAsIDAs
IDgwLCA4MCkuZGF0YSk7Cit9CisKK2Z1bmN0aW9uIGNvbnN1bWVJbWFnZUJpdG1hcChwYXR0ZXJu
SW1hZ2UpIHsKKyAgYXN5bmNfdGVzdCh0ID0+IHsKKyAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXlXb3JrZXInKS50ZXh0Q29udGVudF0pOworICAgIHZh
ciB3b3JrZXIgPSBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpOworICAgIHdv
cmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgbXNnID0+IHsKKyAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbXNnLmRhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIG91dHB1dEN0
eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoJzJkJyk7Cisg
ICAgICAgIG91dHB1dEN0eC5kcmF3SW1hZ2UobXNnLmRhdGFbaV0sIDAsIDAsIDgwLCA4MCk7Cisg
ICAgICAgIG1hdGNoSW1hZ2VEYXRhUmVzdWx0cyhvdXRwdXRDdHguZ2V0SW1hZ2VEYXRhKDAsIDAs
IDgwLCA4MCkuZGF0YSwgbGlzdENhbnZhc0ltYWdlRGF0YVtpXSwgZmlsdGVyc1tpXSk7CisgICAg
ICB9CisgICAgICB0LmRvbmUoKTsKKyAgICB9KTsKKyAgd29ya2VyLnBvc3RNZXNzYWdlKHtmaWx0
ZXJzOiBmaWx0ZXJzLCBwYXR0ZXJuOiBwYXR0ZXJuSW1hZ2V9LCBbcGF0dGVybkltYWdlXSk7Cisg
IH0pOworfQorCitjcmVhdGVJbWFnZUJpdG1hcChwYXR0ZXJuQ2FudmFzKS50aGVuKGNvbnN1bWVJ
bWFnZUJpdG1hcCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0
ZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL3czYy1pbXBvcnQubG9n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ5MmI0MDk5N2M1YWFhYmExOTBiOThmNGQxZGUxNzBlNGZjNDM0MTAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL3czYy1pbXBvcnQubG9nCkBA
IC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKwor
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1By
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIvb2Zmc2NyZWVu
Y2FudmFzLmZpbHRlci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5jYW52
YXMuZmlsdGVyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5jYW52YXMuZmls
dGVyLncuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdlLXNtb290aGluZy9p
bWFnZS5zbW9vdGhpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdlLXNtb290
aGluZy9pbWFnZS5zbW9vdGhpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMzM4MTExMDBj
NjMyNzUwZTA1MzMzNDdhZTMwMDJkZWJkZTA1MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorCitQQVNTIFdoZW4gdGhlIGNvbnRleHQgaXMgY3JlYXRlZCwgaW1hZ2VT
bW9vdGhpbmdFbmFibGVkIG11c3QgYmUgc2V0IHRvIHRydWUuIAorUEFTUyBPbiBnZXR0aW5nIGlt
YWdlU21vb3RoaW5nRW5hYmxlZCwgdGhlIHVzZXIgYWdlbnQgbXVzdCByZXR1cm4gdGhlIGxhc3Qg
dmFsdWUgaXQgd2FzIHNldCB0by4gCitQQVNTIFRlc3QgdGhhdCBpbWFnZSBzbW9vdGhpbmcgaXMg
YWN0dWFsbHkgb24gYnkgZGVmYXVsdC4gCitQQVNTIFRlc3QgdGhhdCBpbWFnZSBzbW9vdGhpbmcg
d29ya3Mgd2hlbiBpbWFnZVNtb290aGluZ0VuYWJsZWQgaXMgc2V0IHRvIHRydWUgCitQQVNTIFRl
c3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBp
bnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGRyYXdJbWFnZSgpLiAKK0ZBSUwgVGVzdCB0aGF0IGlt
YWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlIChuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRp
b24pIHdvcmtzIHdpdGggZmlsbFJlY3QgYW5kIGNyZWF0ZVBhdHRlcm4oKS4gYXNzZXJ0X2FycmF5
X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMCB0byBiZSAwIGJ1dCBnb3QgMTc2IChleHBlY3Rl
ZCBhcnJheSBbMCwgMjU1LCAwLCAyNTVdIGdvdCBvYmplY3QgIjE3Niw3OCwwLDI1NSIpCitGQUlM
IFRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJv
ciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGZpbGwoKSBhbmQgY3JlYXRlUGF0dGVybigpLiBh
c3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAwIHRvIGJlIDAgYnV0IGdvdCAx
NzYgKGV4cGVjdGVkIGFycmF5IFswLCAyNTUsIDAsIDI1NV0gZ290IG9iamVjdCAiMTc2LDc4LDAs
MjU1IikKK0ZBSUwgVGVzdCB0aGF0IGltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlIChuZWFy
ZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24pIHdvcmtzIHdpdGggc3Ryb2tlKCkgYW5kIGNyZWF0
ZVBhdHRlcm4oKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMCB0byBi
ZSAwIGJ1dCBnb3QgMTc2IChleHBlY3RlZCBhcnJheSBbMCwgMjU1LCAwLCAyNTVdIGdvdCBvYmpl
Y3QgIjE3Niw3OCwwLDI1NSIpCitQQVNTIFRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQg
PSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSBzdGlsbCB3b3JrcyBhZnRl
ciByZXBhaW50cy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9pbWFnZS1zbW9vdGhp
bmcvaW1hZ2Uuc21vb3RoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5n
L2ltYWdlLnNtb290aGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ODUyNGM1MWQxYWNhZGNmYTc1ODJm
OWFlYjczMjU2NGJiNTBlMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1h
Z2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy5odG1sCkBAIC0wLDAgKzEsMTI4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5PZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQgaW1hZ2VTbW9vdGhpbmdFbmFibGVkIHRlc3Q8L3RpdGxlPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN0aGUtb2Zmc2Ny
ZWVuLTJkLXJlbmRlcmluZy1jb250ZXh0Ij4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjcmVhdGVUZXN0
SW1hZ2UoKSB7CisgIHZhciBpbWFnZSA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7Cisg
IHZhciBpbWdjdHggPSBpbWFnZS5nZXRDb250ZXh0KCcyZCcpOworICBpbWdjdHguZmlsbFN0eWxl
ID0gIiNGMDAiOworICBpbWdjdHguZmlsbFJlY3QoMCwgMCwgMiwgMik7CisgIGltZ2N0eC5maWxs
U3R5bGUgPSAiIzBGMCI7CisgIGltZ2N0eC5maWxsUmVjdCgwLCAwLCAxLCAxKTsKKyAgcmV0dXJu
IGltYWdlOworfQorCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0g
bmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZh
cy5nZXRDb250ZXh0KCcyZCcpOworICBhc3NlcnRfdHJ1ZShjdHguaW1hZ2VTbW9vdGhpbmdFbmFi
bGVkKTsKK30sICJXaGVuIHRoZSBjb250ZXh0IGlzIGNyZWF0ZWQsIGltYWdlU21vb3RoaW5nRW5h
YmxlZCBtdXN0IGJlIHNldCB0byB0cnVlLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIg
b2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgdmFyIGN0
eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICBjdHguaW1hZ2VTbW9vdGhp
bmdFbmFibGVkID0gZmFsc2U7CisgIGFzc2VydF9mYWxzZShjdHguaW1hZ2VTbW9vdGhpbmdFbmFi
bGVkKTsKK30sICJPbiBnZXR0aW5nIGltYWdlU21vb3RoaW5nRW5hYmxlZCwgdGhlIHVzZXIgYWdl
bnQgbXVzdCByZXR1cm4gdGhlIGxhc3QgdmFsdWUgaXQgd2FzIHNldCB0by4iKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMo
MTAwLCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsK
KyAgdmFyIGltYWdlID0gY3JlYXRlVGVzdEltYWdlKCk7CisgIGN0eC5zY2FsZSgxMCwgMTApOwor
ICBjdHguZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKyAgdmFyIHBpeGVscyA9IGN0eC5nZXRJbWFn
ZURhdGEoOSwgOSwgMSwgMSkuZGF0YTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGl4ZWxzWzBdLCAw
KTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGl4ZWxzWzFdLCAyNTUpOworfSwgIlRlc3QgdGhhdCBp
bWFnZSBzbW9vdGhpbmcgaXMgYWN0dWFsbHkgb24gYnkgZGVmYXVsdC4iKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAw
LCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAg
Y3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IHRydWU7CisgIHZhciBpbWFnZSA9IGNyZWF0ZVRl
c3RJbWFnZSgpOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmRyYXdJbWFnZShpbWFnZSwg
MCwgMCk7CisgIHZhciBwaXhlbHMgPSBjdHguZ2V0SW1hZ2VEYXRhKDksIDksIDEsIDEpLmRhdGE7
CisgIGFzc2VydF9ub3RfZXF1YWxzKHBpeGVsc1swXSwgMCk7CisgIGFzc2VydF9ub3RfZXF1YWxz
KHBpeGVsc1sxXSwgMjU1KTsKK30sICJUZXN0IHRoYXQgaW1hZ2Ugc21vb3RoaW5nIHdvcmtzIHdo
ZW4gaW1hZ2VTbW9vdGhpbmdFbmFibGVkIGlzIHNldCB0byB0cnVlIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwg
NTApOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIHZh
ciBpbWFnZSA9IGNyZWF0ZVRlc3RJbWFnZSgpOworICBjdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVk
ID0gZmFsc2U7CisgIGN0eC5zY2FsZSgxMCwgMTApOworICBjdHguZHJhd0ltYWdlKGltYWdlLCAw
LCAwKTsKKyAgdmFyIHBpeGVscyA9IGN0eC5nZXRJbWFnZURhdGEoOSwgOSwgMSwgMSkuZGF0YTsK
KyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbHMsIFswLCAyNTUsIDAsIDI1NV0pOworfSwgIlRl
c3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBp
bnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGRyYXdJbWFnZSgpLiIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUw
KTsKKyAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICB2YXIg
aW1hZ2UgPSBjcmVhdGVUZXN0SW1hZ2UoKTsKKyAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9
IGZhbHNlOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmZpbGxTdHlsZSA9IGN0eC5jcmVh
dGVQYXR0ZXJuKGltYWdlLCAncmVwZWF0Jyk7CisgIGN0eC5maWxsUmVjdCgwLCAwLCAxMCwgMTAp
OworICB2YXIgcGl4ZWxzID0gY3R4LmdldEltYWdlRGF0YSg5LCA5LCAxLCAxKS5kYXRhOworICBh
c3NlcnRfYXJyYXlfZXF1YWxzKHBpeGVscywgWzAsIDI1NSwgMCwgMjU1XSk7Cit9LCAiVGVzdCB0
aGF0IGltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlIChuZWFyZXN0LW5laWdoYm9yIGludGVy
cG9sYXRpb24pIHdvcmtzIHdpdGggZmlsbFJlY3QgYW5kIGNyZWF0ZVBhdHRlcm4oKS4iKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5D
YW52YXMoMTAwLCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgn
MmQnKTsKKyAgdmFyIGltYWdlID0gY3JlYXRlVGVzdEltYWdlKCk7CisgIGN0eC5pbWFnZVNtb290
aGluZ0VuYWJsZWQgPSBmYWxzZTsKKyAgY3R4LmZpbGxTdHlsZSA9IGN0eC5jcmVhdGVQYXR0ZXJu
KGltYWdlLCAncmVwZWF0Jyk7CisgIGN0eC5zY2FsZSgxMCwgMTApOworICBjdHgucmVjdCgwLCAw
LCAxMCwgMTApOworICBjdHguZmlsbCgpOworICB2YXIgcGl4ZWxzID0gY3R4LmdldEltYWdlRGF0
YSg5LCA5LCAxLCAxKS5kYXRhOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBpeGVscywgWzAsIDI1
NSwgMCwgMjU1XSk7Cit9LCAiVGVzdCB0aGF0IGltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNl
IChuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24pIHdvcmtzIHdpdGggZmlsbCgpIGFuZCBj
cmVhdGVQYXR0ZXJuKCkuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBvZmZzY3JlZW5D
YW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOworICB2YXIgY3R4ID0gb2Zmc2Ny
ZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIHZhciBpbWFnZSA9IGNyZWF0ZVRlc3RJbWFn
ZSgpOworICBjdHguc3Ryb2tlU3R5bGUgPSBjdHguY3JlYXRlUGF0dGVybihpbWFnZSwgJ3JlcGVh
dCcpOworICBjdHgubGluZVdpZHRoID0gNTsKKyAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9
IGZhbHNlOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmJlZ2luUGF0aCgpOworICBjdHgu
bW92ZVRvKDAsIDApOworICBjdHgubGluZVRvKDEwLCAxMCk7CisgIGN0eC5zdHJva2UoKTsKKyAg
dmFyIHBpeGVscyA9IGN0eC5nZXRJbWFnZURhdGEoOSwgOSwgMSwgMSkuZGF0YTsKKyAgYXNzZXJ0
X2FycmF5X2VxdWFscyhwaXhlbHMsIFswLCAyNTUsIDAsIDI1NV0pOworfSwgIlRlc3QgdGhhdCBp
bWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0
aW9uKSB3b3JrcyB3aXRoIHN0cm9rZSgpIGFuZCBjcmVhdGVQYXR0ZXJuKCkuIik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgIHZhciByZXBhaW50cyA9IDU7CisgIHZhciBvZmZzY3JlZW5DYW52YXMg
PSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2Fu
dmFzLmdldENvbnRleHQoJzJkJyk7CisKKyAgZnVuY3Rpb24gZHJhdygpIHsKKyAgICBjdHguY2xl
YXJSZWN0KDAsIDAsIDEwLCAxMCk7CisgICAgY3R4LnNldFRyYW5zZm9ybSgxLCAwLCAwLCAxLCAw
LCAwKTsKKyAgICB2YXIgaW1hZ2UgPSBjcmVhdGVUZXN0SW1hZ2UoKTsKKyAgICBjdHguaW1hZ2VT
bW9vdGhpbmdFbmFibGVkID0gZmFsc2U7CisgICAgY3R4LnNjYWxlKDEwLCAxMCk7CisgICAgY3R4
LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgdmFyIHBpeGVscyA9IGN0eC5nZXRJbWFnZURh
dGEoOSwgOSwgMSwgMSkuZGF0YTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBpeGVscywgWzAs
IDI1NSwgMCwgMjU1XSk7CisgIH0KKworICB3aGlsZSAocmVwYWludHMgPiAwKSB7CisgICAgZHJh
dygpOworICAgIHJlcGFpbnRzID0gcmVwYWludHMgLSAxOworICB9CisKK30sICJUZXN0IHRoYXQg
aW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hib3IgaW50ZXJwb2xh
dGlvbikgc3RpbGwgd29ya3MgYWZ0ZXIgcmVwYWludHMuIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL21hbnVhbC9pbWFnZS1zbW9vdGhpbmcvaW1hZ2Uuc21vb3RoaW5nLndvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNt
b290aGluZy53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMzM4MTExMDBjNjMyNzUw
ZTA1MzMzNDdhZTMwMDJkZWJkZTA1MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy53b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKKworUEFTUyBXaGVuIHRoZSBjb250ZXh0IGlzIGNyZWF0ZWQsIGltYWdl
U21vb3RoaW5nRW5hYmxlZCBtdXN0IGJlIHNldCB0byB0cnVlLiAKK1BBU1MgT24gZ2V0dGluZyBp
bWFnZVNtb290aGluZ0VuYWJsZWQsIHRoZSB1c2VyIGFnZW50IG11c3QgcmV0dXJuIHRoZSBsYXN0
IHZhbHVlIGl0IHdhcyBzZXQgdG8uIAorUEFTUyBUZXN0IHRoYXQgaW1hZ2Ugc21vb3RoaW5nIGlz
IGFjdHVhbGx5IG9uIGJ5IGRlZmF1bHQuIAorUEFTUyBUZXN0IHRoYXQgaW1hZ2Ugc21vb3RoaW5n
IHdvcmtzIHdoZW4gaW1hZ2VTbW9vdGhpbmdFbmFibGVkIGlzIHNldCB0byB0cnVlIAorUEFTUyBU
ZXN0IHRoYXQgaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hib3Ig
aW50ZXJwb2xhdGlvbikgd29ya3Mgd2l0aCBkcmF3SW1hZ2UoKS4gCitGQUlMIFRlc3QgdGhhdCBp
bWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0
aW9uKSB3b3JrcyB3aXRoIGZpbGxSZWN0IGFuZCBjcmVhdGVQYXR0ZXJuKCkuIGFzc2VydF9hcnJh
eV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDAgdG8gYmUgMCBidXQgZ290IDE3NiAoZXhwZWN0
ZWQgYXJyYXkgWzAsIDI1NSwgMCwgMjU1XSBnb3Qgb2JqZWN0ICIxNzYsNzgsMCwyNTUiKQorRkFJ
TCBUZXN0IHRoYXQgaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hi
b3IgaW50ZXJwb2xhdGlvbikgd29ya3Mgd2l0aCBmaWxsKCkgYW5kIGNyZWF0ZVBhdHRlcm4oKS4g
YXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMCB0byBiZSAwIGJ1dCBnb3Qg
MTc2IChleHBlY3RlZCBhcnJheSBbMCwgMjU1LCAwLCAyNTVdIGdvdCBvYmplY3QgIjE3Niw3OCww
LDI1NSIpCitGQUlMIFRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVh
cmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIHN0cm9rZSgpIGFuZCBjcmVh
dGVQYXR0ZXJuKCkuIGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDAgdG8g
YmUgMCBidXQgZ290IDE3NiAoZXhwZWN0ZWQgYXJyYXkgWzAsIDI1NSwgMCwgMjU1XSBnb3Qgb2Jq
ZWN0ICIxNzYsNzgsMCwyNTUiKQorUEFTUyBUZXN0IHRoYXQgaW1hZ2VTbW9vdGhpbmdFbmFibGVk
ID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hib3IgaW50ZXJwb2xhdGlvbikgc3RpbGwgd29ya3MgYWZ0
ZXIgcmVwYWludHMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3Ro
aW5nL2ltYWdlLnNtb290aGluZy53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9pbWFnZS1z
bW9vdGhpbmcvaW1hZ2Uuc21vb3RoaW5nLndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1
MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy53b3JrZXIuaHRtbApA
QCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3Ro
aW5nL2ltYWdlLnNtb290aGluZy53b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21v
b3RoaW5nL2ltYWdlLnNtb290aGluZy53b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGMzN2U4NGIxZjIy
ODY3NWU1MjNlNGRkMzkzMjRhZmMyODM3MzMxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L21hbnVhbC9pbWFnZS1zbW9vdGhpbmcvaW1hZ2Uuc21vb3RoaW5nLndvcmtlci5qcwpAQCAtMCww
ICsxLDEyNiBAQAorLy8gc3BlYyBsaW5rOiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN0
aGUtb2Zmc2NyZWVuLTJkLXJlbmRlcmluZy1jb250ZXh0CisKK2ltcG9ydFNjcmlwdHMoIi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiKTsKKworZnVuY3Rpb24gY3JlYXRlVGVzdEltYWdlKCkgewor
ICB2YXIgaW1hZ2UgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOworICB2YXIgaW1nY3R4
ID0gaW1hZ2UuZ2V0Q29udGV4dCgnMmQnKTsKKyAgaW1nY3R4LmZpbGxTdHlsZSA9ICIjRjAwIjsK
KyAgaW1nY3R4LmZpbGxSZWN0KDAsIDAsIDIsIDIpOworICBpbWdjdHguZmlsbFN0eWxlID0gIiMw
RjAiOworICBpbWdjdHguZmlsbFJlY3QoMCwgMCwgMSwgMSk7CisgIHJldHVybiBpbWFnZTsKK30K
KwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3Jl
ZW5DYW52YXMoMTAwLCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgYXNzZXJ0X3RydWUoY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCk7Cit9LCAi
V2hlbiB0aGUgY29udGV4dCBpcyBjcmVhdGVkLCBpbWFnZVNtb290aGluZ0VuYWJsZWQgbXVzdCBi
ZSBzZXQgdG8gdHJ1ZS4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNh
bnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3Jl
ZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9
IGZhbHNlOworICBhc3NlcnRfZmFsc2UoY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCk7Cit9LCAi
T24gZ2V0dGluZyBpbWFnZVNtb290aGluZ0VuYWJsZWQsIHRoZSB1c2VyIGFnZW50IG11c3QgcmV0
dXJuIHRoZSBsYXN0IHZhbHVlIGl0IHdhcyBzZXQgdG8uIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7
CisgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOwor
ICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIHZhciBpbWFn
ZSA9IGNyZWF0ZVRlc3RJbWFnZSgpOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmRyYXdJ
bWFnZShpbWFnZSwgMCwgMCk7CisgIHZhciBwaXhlbHMgPSBjdHguZ2V0SW1hZ2VEYXRhKDksIDks
IDEsIDEpLmRhdGE7CisgIGFzc2VydF9ub3RfZXF1YWxzKHBpeGVsc1swXSwgMCk7CisgIGFzc2Vy
dF9ub3RfZXF1YWxzKHBpeGVsc1sxXSwgMjU1KTsKK30sICJUZXN0IHRoYXQgaW1hZ2Ugc21vb3Ro
aW5nIGlzIGFjdHVhbGx5IG9uIGJ5IGRlZmF1bHQuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
IHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOworICB2
YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIGN0eC5pbWFnZVNt
b290aGluZ0VuYWJsZWQgPSB0cnVlOworICB2YXIgaW1hZ2UgPSBjcmVhdGVUZXN0SW1hZ2UoKTsK
KyAgY3R4LnNjYWxlKDEwLCAxMCk7CisgIGN0eC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworICB2
YXIgcGl4ZWxzID0gY3R4LmdldEltYWdlRGF0YSg5LCA5LCAxLCAxKS5kYXRhOworICBhc3NlcnRf
bm90X2VxdWFscyhwaXhlbHNbMF0sIDApOworICBhc3NlcnRfbm90X2VxdWFscyhwaXhlbHNbMV0s
IDI1NSk7Cit9LCAiVGVzdCB0aGF0IGltYWdlIHNtb290aGluZyB3b3JrcyB3aGVuIGltYWdlU21v
b3RoaW5nRW5hYmxlZCBpcyBzZXQgdG8gdHJ1ZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2
YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgdmFy
IGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICB2YXIgaW1hZ2UgPSBj
cmVhdGVUZXN0SW1hZ2UoKTsKKyAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlOwor
ICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgIHZh
ciBwaXhlbHMgPSBjdHguZ2V0SW1hZ2VEYXRhKDksIDksIDEsIDEpLmRhdGE7CisgIGFzc2VydF9h
cnJheV9lcXVhbHMocGl4ZWxzLCBbMCwgMjU1LCAwLCAyNTVdKTsKK30sICJUZXN0IHRoYXQgaW1h
Z2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hib3IgaW50ZXJwb2xhdGlv
bikgd29ya3Mgd2l0aCBkcmF3SW1hZ2UoKS4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFy
IG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgIHZhciBj
dHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgdmFyIGltYWdlID0gY3Jl
YXRlVGVzdEltYWdlKCk7CisgIGN0eC5pbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZTsKKyAg
Y3R4LnNjYWxlKDEwLCAxMCk7CisgIGN0eC5maWxsU3R5bGUgPSBjdHguY3JlYXRlUGF0dGVybihp
bWFnZSwgJ3JlcGVhdCcpOworICBjdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgdmFyIHBp
eGVscyA9IGN0eC5nZXRJbWFnZURhdGEoOSwgOSwgMSwgMSkuZGF0YTsKKyAgYXNzZXJ0X2FycmF5
X2VxdWFscyhwaXhlbHMsIFswLCAyNTUsIDAsIDI1NV0pOworfSwgIlRlc3QgdGhhdCBpbWFnZVNt
b290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSB3
b3JrcyB3aXRoIGZpbGxSZWN0IGFuZCBjcmVhdGVQYXR0ZXJuKCkuIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwg
NTApOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIHZh
ciBpbWFnZSA9IGNyZWF0ZVRlc3RJbWFnZSgpOworICBjdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVk
ID0gZmFsc2U7CisgIGN0eC5maWxsU3R5bGUgPSBjdHguY3JlYXRlUGF0dGVybihpbWFnZSwgJ3Jl
cGVhdCcpOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LnJlY3QoMCwgMCwgMTAsIDEwKTsK
KyAgY3R4LmZpbGwoKTsKKyAgdmFyIHBpeGVscyA9IGN0eC5nZXRJbWFnZURhdGEoOSwgOSwgMSwg
MSkuZGF0YTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbHMsIFswLCAyNTUsIDAsIDI1NV0p
OworfSwgIlRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1u
ZWlnaGJvciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGZpbGwoKSBhbmQgY3JlYXRlUGF0dGVy
bigpLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3
IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5n
ZXRDb250ZXh0KCcyZCcpOworICB2YXIgaW1hZ2UgPSBjcmVhdGVUZXN0SW1hZ2UoKTsKKyAgY3R4
LnN0cm9rZVN0eWxlID0gY3R4LmNyZWF0ZVBhdHRlcm4oaW1hZ2UsICdyZXBlYXQnKTsKKyAgY3R4
LmxpbmVXaWR0aCA9IDU7CisgIGN0eC5pbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZTsKKyAg
Y3R4LnNjYWxlKDEwLCAxMCk7CisgIGN0eC5iZWdpblBhdGgoKTsKKyAgY3R4Lm1vdmVUbygwLCAw
KTsKKyAgY3R4LmxpbmVUbygxMCwgMTApOworICBjdHguc3Ryb2tlKCk7CisgIHZhciBwaXhlbHMg
PSBjdHguZ2V0SW1hZ2VEYXRhKDksIDksIDEsIDEpLmRhdGE7CisgIGFzc2VydF9hcnJheV9lcXVh
bHMocGl4ZWxzLCBbMCwgMjU1LCAwLCAyNTVdKTsKK30sICJUZXN0IHRoYXQgaW1hZ2VTbW9vdGhp
bmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hib3IgaW50ZXJwb2xhdGlvbikgd29ya3Mg
d2l0aCBzdHJva2UoKSBhbmQgY3JlYXRlUGF0dGVybigpLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkg
eworICB2YXIgcmVwYWludHMgPSA1OworICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNj
cmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250
ZXh0KCcyZCcpOworCisgIGZ1bmN0aW9uIGRyYXcoKSB7CisgICAgY3R4LmNsZWFyUmVjdCgwLCAw
LCAxMCwgMTApOworICAgIGN0eC5zZXRUcmFuc2Zvcm0oMSwgMCwgMCwgMSwgMCwgMCk7CisgICAg
dmFyIGltYWdlID0gY3JlYXRlVGVzdEltYWdlKCk7CisgICAgY3R4LmltYWdlU21vb3RoaW5nRW5h
YmxlZCA9IGZhbHNlOworICAgIGN0eC5zY2FsZSgxMCwgMTApOworICAgIGN0eC5kcmF3SW1hZ2Uo
aW1hZ2UsIDAsIDApOworICAgIHZhciBwaXhlbHMgPSBjdHguZ2V0SW1hZ2VEYXRhKDksIDksIDEs
IDEpLmRhdGE7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbHMsIFswLCAyNTUsIDAsIDI1
NV0pOworICB9CisKKyAgd2hpbGUgKHJlcGFpbnRzID4gMCkgeworICAgIGRyYXcoKTsKKyAgICBy
ZXBhaW50cyA9IHJlcGFpbnRzIC0gMTsKKyAgfQorCit9LCAiVGVzdCB0aGF0IGltYWdlU21vb3Ro
aW5nRW5hYmxlZCA9IGZhbHNlIChuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24pIHN0aWxs
IHdvcmtzIGFmdGVyIHJlcGFpbnRzLiIpOworCitkb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L2ltYWdlLXNtb290aGluZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDI2ZDg4NDkyMzUw
OGUzN2E3ZTIwMmY2OWFlODUwYTI2NWI0NTUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL2ltYWdlLXNtb290aGluZy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdlLXNtb290aGluZy9pbWFnZS5zbW9vdGhpbmcud29y
a2VyLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjMwMTI1MDM4ZmU2OGYwZmZlOWI5NmYwZDk2NzdjNzAzMTZhYjRhNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBUZXN0
IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50
cyB0byBpdHMgcGxhY2Vob2xkZXIuIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24g
YW4gT2Zmc2NyZWVuQ2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2Fu
dmFzRWxlbWVudCBpcyBhIG5vb3AuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNWNiYTM2ODExNmRiNThjYmNiM2NkY2I5ZTI0NGExOGRiZGE4NjUwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb21taXQuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvaHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI29m
ZnNjcmVlbmNvbnRleHQyZC1jb21taXQiPgorPHNjcmlwdD4KKworZnVuY3Rpb24gdmVyaWZ5UGxh
Y2Vob2xkZXIocGxhY2Vob2xkZXIsIGV4cGVjdGVkUiwgZXhwZWN0ZWRHLCBleHBlY3RlZEIsIGV4
cGVjdGVkQSwgZXhwZWN0ZWRDbHJTdHIpCit7CisgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIGNhbnZhcy53aWR0aCA9IGNhbnZhcy5oZWlnaHQg
PSAxMDsKKyAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgY3R4LmRy
YXdJbWFnZShwbGFjZWhvbGRlciwgMCwgMCk7CisgICAgX2Fzc2VydFBpeGVsKGNhbnZhcywgNSw1
LCBleHBlY3RlZFIsIGV4cGVjdGVkRywgZXhwZWN0ZWRCLCBleHBlY3RlZEEsICI1LDUiLCBleHBl
Y3RlZENsclN0cik7Cit9CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIHBsYWNlaG9sZGVy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgcGxhY2Vob2xkZXIud2lk
dGggPSBwbGFjZWhvbGRlci5oZWlnaHQgPSAxMDsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0g
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKTsKKyAgICB2YXIgY3R4ID0g
b2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgY3R4LmZpbGxTdHlsZSA9ICIj
MGYwIjsKKyAgICBjdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgICAvLyBjb21taXQoKSBw
cm9wYWdhdGlvbiBpcyB0YWtlbiBjYXJlIG9mIGJ5IGFuIGFzeW5jIHRhc2ssIHdoaWNoIG1lYW5z
IHRoZQorICAgIC8vIHBsYWNlIGhvbGRlciBjb250ZW50cyBzaG91bGQgc3RpbGwgYmUgdHJhbnNw
YXJlbnQgYmxhY2sgYXQgdGhpcyBtb21lbnQuCisgICAgdmVyaWZ5UGxhY2Vob2xkZXIocGxhY2Vo
b2xkZXIsIDAsMCwwLDAsICIwLDAsMCwwIik7CisgICAgLy8gU2V0IHRpbWVvdXQgYWN0cyBhcyBh
IHN5bmMgYmFycmllciB0byBhbGxvdyBjb21taXQgdG8gcHJvcGFnYXRlCisgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmVyaWZ5UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIsIDAs
MjU1LDAsMjU1LCAiMCwyNTUsMCwyNTUiKTsKKyAgICB9LCAwKTsKK30sICJUZXN0IHRoYXQgY2Fs
bGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVzIGl0cyBjb250ZW50cyB0byBpdHMg
cGxhY2Vob2xkZXIuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNh
bnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICB2YXIgY3R4ID0gb2Zmc2Ny
ZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgY3R4LmZpbGxTdHlsZSA9ICIjMGYwIjsK
KyAgICBjdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgICBjdHguY29tbWl0KCk7Cit9LCAi
VGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5v
dCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgaXMgYSBub29wLiIpOworCis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzQyMThlY2FjMjczZDA1NDdmNWU0OWMzZDEyM2ZkYWY4M2YzZWFiNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQ
QVNTIFRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMgaXRz
IGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGNv
bW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJyZWQgZnJvbSBh
IEhUTUxDYW52YXNFbGVtZW50IHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3b3JrZXIuIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLmNvbW1pdC53Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ0YmFkMTFjOTQ4
MjZkNzAwNDQyYjI3MjdhZDI0MWVmNGE1NzJkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LncuaHRt
bApAQCAtMCwwICsxLDc5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvaHRtbC9jYW52YXMv
cmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI29mZnNjcmVlbmNvbnRleHQyZC1jb21t
aXQiPgorCis8c2NyaXB0IGlkPSJteVdvcmtlciIgdHlwZT0idGV4dC93b3JrZXIiPgorCitmdW5j
dGlvbiB0ZXN0Q29tbWl0UHVzaGVzQ29udGVudHMob2Zmc2NyZWVuQ2FudmFzKSB7CisgIHRyeSB7
CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIGN0
eC5maWxsU3R5bGUgPSAiIzBmMCI7CisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDEwLCAxMCk7Cisg
ICAgY3R4LmNvbW1pdCgpOworICAgIHJldHVybiB0cnVlOworICB9IGNhdGNoKGUpIHsKKyAgICBy
ZXR1cm4gZmFsc2U7CisgIH0KK30KKworZnVuY3Rpb24gdGVzdENvbW1pdEV4Y2VwdGlvbigpIHsK
KyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOwor
ICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHgu
ZmlsbFN0eWxlID0gIiMwZjAiOworICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMCwgMTApOworICAg
IHJldHVybiB0cnVlOworfQorCitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICBz
d2l0Y2ggKGUuZGF0YS5tc2cpIHsKKyAgICAgICAgY2FzZSAndGVzdDEnOgorICAgICAgICAgICAg
c2VsZi5wb3N0TWVzc2FnZSh0ZXN0Q29tbWl0UHVzaGVzQ29udGVudHMoZS5kYXRhLmRhdGEpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0Mic6CisgICAgICAgICAgICBz
ZWxmLnBvc3RNZXNzYWdlKHRlc3RDb21taXRFeGNlcHRpb24oKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICB9Cit9OworCis8L3NjcmlwdD4KKworPHNjcmlwdD4KKworZnVuY3Rpb24gdmVyaWZ5
UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpIHsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9
IDEwOworICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHguZHJh
d0ltYWdlKHBsYWNlaG9sZGVyLCAwLCAwKTsKKyAgICBfYXNzZXJ0UGl4ZWwoY2FudmFzLCA1LDUs
IDAsMjU1LDAsMjU1LCAiNSw1IiwgIjAsMjU1LDAsMjU1Iik7Cit9CisKK2Z1bmN0aW9uIG1ha2VX
b3JrZXIodGVzdCkgeworICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2RvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJteVdvcmtlciIpLnRleHRDb250ZW50XSk7CisgICAgdmFyIHdvcmtlciA9IG5ldyBX
b3JrZXIoVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSk7CisgICAgd29ya2VyLm9uZXJyb3IgPSB0
ZXN0LnVucmVhY2hlZF9mdW5jKCJlcnJvciIpOworICAgIHJldHVybiB3b3JrZXI7Cit9CisKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIHBsYWNlaG9sZGVyLndpZHRoID0gcGxhY2Vob2xk
ZXIuaGVpZ2h0ID0gMTA7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IHBsYWNlaG9sZGVyLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIo
dCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19k
b25lKGZ1bmN0aW9uKG1zZykgeworICAgICAgYXNzZXJ0X3RydWUobXNnLmRhdGEpOworICAgICAg
dmVyaWZ5UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9z
dE1lc3NhZ2Uoe21zZzogJ3Rlc3QxJywgZGF0YTogb2Zmc2NyZWVuQ2FudmFzfSwgW29mZnNjcmVl
bkNhbnZhc10pOworfSwgIlRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1p
dCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4iKTsKKworYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29y
a2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9u
KG1zZykgeworICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdv
cmtlci5wb3N0TWVzc2FnZSh7bXNnOiAndGVzdDInfSk7Cit9LCAiVGVzdCB0aGF0IGNhbGxpbmcg
Y29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9t
IGEgSFRNTENhbnZhc0VsZW1lbnQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpbiBhIHdvcmtlci4iKTsK
KworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3It
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMTNlNjg2YTE1YWFjZmFjZDg0YzcxMjU3YWM1ZDE4
MjkyNDI1MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVl
bi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb25z
dHJ1Y3RvciBnZW5lcmF0ZXMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0LiAKK1BBU1MgVGVzdCB0
aGF0IE9mZnNjcmVlbkNhbnZhcyBjb25zdHJ1Y3RvciBoYW5kbGVzIGludmFsaWQgYXJndW1lbnRz
IGNvcnJlY3RseSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA2NjVmNzQ1MmNlNzVmNjY5Yjg4M2QzNjY2ZWMzYzQ5MmIyMjVlZjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmNvbnN0cnVjdG9yLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiPjwvc2Ny
aXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
LyNkb20tb2Zmc2NyZWVuY2FudmFzIj4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMud2lkdGgsIDEwMCk7CisgICAgYXNzZXJ0
X2VxdWFscyhvZmZzY3JlZW5DYW52YXMuaGVpZ2h0LCA1MCk7CisKKyAgICBvZmZzY3JlZW5DYW52
YXMud2lkdGggPSA1MDsKKyAgICBvZmZzY3JlZW5DYW52YXMuaGVpZ2h0ID0gMTAwOworICAgIGFz
c2VydF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzLndpZHRoLCA1MCk7CisgICAgYXNzZXJ0X2VxdWFs
cyhvZmZzY3JlZW5DYW52YXMuaGVpZ2h0LCAxMDApOworfSwgIlRlc3QgdGhhdCBjYWxsaW5nIE9m
ZnNjcmVlbkNhbnZhcydzIGNvbnN0cnVjdG9yIGdlbmVyYXRlcyBjb3JyZWN0IHdpZHRoIGFuZCBo
ZWlnaHQuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhczEg
PSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsIDEpOworCisgICAgb2Zmc2NyZWVuQ2FudmFzMS53aWR0
aCA9IG51bGw7CisgICAgb2Zmc2NyZWVuQ2FudmFzMS5oZWlnaHQgPSBudWxsOworICAgIGFzc2Vy
dF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzMS53aWR0aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhv
ZmZzY3JlZW5DYW52YXMxLmhlaWdodCwgMCk7CisKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgZnVuY3Rpb24oKSB7IG5ldyBPZmZzY3JlZW5DYW52YXMoLTEsIC0xKTsgfSk7CisKKyAg
ICB2YXIgb2Zmc2NyZWVuQ2FudmFzMiA9IG5ldyBPZmZzY3JlZW5DYW52YXMobnVsbCwgbnVsbCk7
CisgICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMyLndpZHRoLCAwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKG9mZnNjcmVlbkNhbnZhczIuaGVpZ2h0LCAwKTsKKworICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgb2Zmc2NyZWVuQ2FudmFzMi53aWR0aCA9IC0x
OyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG9mZnNj
cmVlbkNhbnZhczIuaGVpZ2h0ID0gLTE7IH0pOworCisgICAgdmFyIG9iaiA9IHtOYW1lOiAiSm9o
biBEb2UiLCBBZ2U6IDMwfTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rp
b24oKSB7IG9mZnNjcmVlbkNhbnZhczIud2lkdGggPSBvYmo7IH0pOworICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgb2Zmc2NyZWVuQ2FudmFzMi5oZWlnaHQgPSBv
Ymo7IH0pOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgbmV3
IE9mZnNjcmVlbkNhbnZhcyhvYmosIG9iaik7IH0pOworfSwgIlRlc3QgdGhhdCBPZmZzY3JlZW5D
YW52YXMgY29uc3RydWN0b3IgaGFuZGxlcyBpbnZhbGlkIGFyZ3VtZW50cyBjb3JyZWN0bHkiKTsK
KworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3Iud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29u
c3RydWN0b3Iud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWEyZTlkMjhkYWEwYzll
ZTkzYjYyM2JhNzJlYjJkMjVkNGMxYTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci53b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5n
IE9mZnNjcmVlbkNhbnZhcydzIGNvbnN0cnVjdG9yIGdlbmVyYXRlcyBjb3JyZWN0IHdpZHRoIGFu
ZCBoZWlnaHQuIAorUEFTUyBUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzIGNvbnN0cnVjdG9yIGhh
bmRsZXMgaW52YWxpZCBhcmd1bWVudHMgY29ycmVjdGx5IGluIGEgd29ya2VyIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFz
LmNvbnN0cnVjdG9yLndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci53b3JrZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5jb25zdHJ1Y3Rvci53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1w
bGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0
cnVjdG9yLndvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3Iud29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyY2ZiNzI4
ZjAzZjE1NTFlZDU5NzdmNmRmMWIzOWM2OWM2MGJmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVj
dG9yLndvcmtlci5qcwpAQCAtMCwwICsxLDQ1IEBACisvLyBzcGVjIGxpbms6IGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1vZmZzY3JlZW5jYW52YXMKKworaW1wb3J0U2NyaXB0cygi
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIpOworaW1wb3J0U2NyaXB0cygiL2h0bWwvY2FudmFz
L3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiKTsKKwordmFyIHQxID0gYXN5bmNfdGVzdCgiVGVz
dCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29uc3RydWN0b3IgZ2VuZXJhdGVzIGNv
cnJlY3Qgd2lkdGggYW5kIGhlaWdodC4iKTsKK3QxLnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgdmFy
IG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMud2lkdGgsIDEwMCk7CisgICAgYXNzZXJ0X2VxdWFs
cyhvZmZzY3JlZW5DYW52YXMuaGVpZ2h0LCA1MCk7CisKKyAgICBvZmZzY3JlZW5DYW52YXMud2lk
dGggPSA1MDsKKyAgICBvZmZzY3JlZW5DYW52YXMuaGVpZ2h0ID0gMTAwOworICAgIGFzc2VydF9l
cXVhbHMob2Zmc2NyZWVuQ2FudmFzLndpZHRoLCA1MCk7CisgICAgYXNzZXJ0X2VxdWFscyhvZmZz
Y3JlZW5DYW52YXMuaGVpZ2h0LCAxMDApOworICAgIHQxLmRvbmUoKTsKK30pOworCit2YXIgdDIg
PSBhc3luY190ZXN0KCJUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzIGNvbnN0cnVjdG9yIGhhbmRs
ZXMgaW52YWxpZCBhcmd1bWVudHMgY29ycmVjdGx5IGluIGEgd29ya2VyIik7Cit0Mi5zdGVwKGZ1
bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMxID0gbmV3IE9mZnNjcmVlbkNhbnZh
cygxLCAxKTsKKworICAgIG9mZnNjcmVlbkNhbnZhczEud2lkdGggPSBudWxsOworICAgIG9mZnNj
cmVlbkNhbnZhczEuaGVpZ2h0ID0gbnVsbDsKKyAgICBhc3NlcnRfZXF1YWxzKG9mZnNjcmVlbkNh
bnZhczEud2lkdGgsIDApOworICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzMS5oZWln
aHQsIDApOworCisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBu
ZXcgT2Zmc2NyZWVuQ2FudmFzKC0xLCAtMSk7IH0pOworCisgICAgdmFyIG9mZnNjcmVlbkNhbnZh
czIgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKG51bGwsIG51bGwpOworICAgIGFzc2VydF9lcXVhbHMo
b2Zmc2NyZWVuQ2FudmFzMi53aWR0aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW5D
YW52YXMyLmhlaWdodCwgMCk7CisKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVu
Y3Rpb24oKSB7IG9mZnNjcmVlbkNhbnZhczIud2lkdGggPSAtMTsgfSk7CisgICAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBvZmZzY3JlZW5DYW52YXMyLmhlaWdodCA9
IC0xOyB9KTsKKworICAgIHZhciBvYmogPSB7TmFtZTogIkpvaG4gRG9lIiwgQWdlOiAzMH07Cisg
ICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBvZmZzY3JlZW5DYW52
YXMyLndpZHRoID0gb2JqOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVu
Y3Rpb24oKSB7IG9mZnNjcmVlbkNhbnZhczIuaGVpZ2h0ID0gb2JqOyB9KTsKKyAgICBhc3NlcnRf
dGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBPZmZzY3JlZW5DYW52YXMob2Jq
LCBvYmopOyB9KTsKKyAgICB0Mi5kb25lKCk7Cit9KTsKKworZG9uZSgpOworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdl
dGNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NTdhMjkzZWM0YTliZDY4YzZkOTFmOWFiYzgyNTU0YzRkZjg4ZjZhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5n
ZXRjb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1MgVGVzdCB0aGF0
IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBhIFR5cGVFcnJvci4g
CitGQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5z
IGNvcnJlY3QgcmVzdWx0cyBBcmd1bWVudCAxICgnY29udGV4dFR5cGUnKSB0byBPZmZzY3JlZW5D
YW52YXMuZ2V0Q29udGV4dCBtdXN0IGJlIG9uZSBvZjogIjJkIiwgIndlYmdsIgorUEFTUyBUZXN0
IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJu
cyBudWxsIHRoZSBzZWNvbmQgdGltZSAKK1BBU1MgVGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMg
c2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAorUEFTUyBUZXN0IHRo
YXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3Jl
ZW5DYW52YXMgCitGQUlMIFRlc3QgdGhhdCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgd2l0aCBhbHBoYSBkaXNhYmxlZCBtYWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9wYXF1ZSBh
c3NlcnRfYXBwcm94X2VxdWFsczogR3JlZW4gY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDUsIDUp
IGV4cGVjdGVkIDEyNyArLy0gMiBidXQgZ290IDI1NQorUEFTUyBUZXN0IHRoYXQgT2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEgZW5hYmxlZCBwcmVzZXJ2ZXMgdGhl
IGFscGhhIAorUEFTUyBUZXN0IHRoYXQgJ2FscGhhJyBjb250ZXh0IGNyZWF0aW9uIGF0dHJpYnV0
ZSBpcyB0cnVlIGJ5IGRlZmF1bHQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTM3YjU4MmRjMWI1MjRjNjZlZGNmZWU3NjNlMDRkNzU4ODdkMWI4
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9odG1sL2NhbnZhcy9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpz
Ij48L3NjcmlwdD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy8jZG9tLW9mZnNjcmVlbmNhbnZhcy1nZXRjb250ZXh0Ij4KKzxzY3JpcHQ+CisKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5D
YW52YXMoMSwgMSk7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkg
eyBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnM2QnKTsgfSk7Cit9LCAiVGVzdCB0aGF0IGdl
dENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBhIFR5cGVFcnJvci4iKTsK
KwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzMSA9IG5ldyBPZmZz
Y3JlZW5DYW52YXMoMSwgMSk7CisgICAgdmFyIGN0eDEgPSBvZmZzY3JlZW5DYW52YXMxLmdldENv
bnRleHQoJzJkJyk7CisgICAgYXNzZXJ0X3RydWUoY3R4MSBpbnN0YW5jZW9mIE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCk7CisKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzMiA9IG5l
dyBPZmZzY3JlZW5DYW52YXMoMSwgMSk7CisgICAgdmFyIGN0eDIgPSBvZmZzY3JlZW5DYW52YXMy
LmdldENvbnRleHQoJ3dlYmdsJyk7CisgICAgYXNzZXJ0X3RydWUoY3R4MiBpbnN0YW5jZW9mIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCk7CisKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzMyA9IG5ldyBP
ZmZzY3JlZW5DYW52YXMoMSwgMSk7CisgICAgdmFyIGN0eDMgPSBvZmZzY3JlZW5DYW52YXMzLmdl
dENvbnRleHQoJ3dlYmdsMicpOworICAgIGFzc2VydF90cnVlKGN0eDMgaW5zdGFuY2VvZiBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0KTsKK30sICJUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBv
cnRlZCBzdHJpbmcgcmV0dXJucyBjb3JyZWN0IHJlc3VsdHMiKTsKKwordGVzdChmdW5jdGlvbigp
IHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzMSA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMSwgMSk7
CisgICAgdmFyIGN0eDEgPSBvZmZzY3JlZW5DYW52YXMxLmdldENvbnRleHQoJzJkJyk7CisgICAg
dmFyIGN0eDIgPSBvZmZzY3JlZW5DYW52YXMxLmdldENvbnRleHQoJ3dlYmdsJyk7CisgICAgYXNz
ZXJ0X2VxdWFscyhjdHgyLCBudWxsKTsKKworICAgIHZhciBvZmZzY3JlZW5DYW52YXMyID0gbmV3
IE9mZnNjcmVlbkNhbnZhcygxLCAxKTsKKyAgICB2YXIgY3R4MyA9IG9mZnNjcmVlbkNhbnZhczIu
Z2V0Q29udGV4dCgnd2ViZ2wnKTsKKyAgICB2YXIgY3R4NCA9IG9mZnNjcmVlbkNhbnZhczIuZ2V0
Q29udGV4dCgnMmQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGN0eDQsIG51bGwpOworfSwgIlRlc3Qg
dGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlwZSByZXR1cm5z
IG51bGwgdGhlIHNlY29uZCB0aW1lIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9m
ZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMSwgMik7CisgICAgdmFyIGN0eCA9
IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciBkc3RDYW52YXMgPSBj
dHguY2FudmFzOworICAgIGFzc2VydF9lcXVhbHMoZHN0Q2FudmFzLndpZHRoLCAxKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGRzdENhbnZhcy5oZWlnaHQsIDIpOworfSwgIlRlc3QgdGhhdCAyZGNvbnRl
eHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyIpOwor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2Ny
ZWVuQ2FudmFzKDEsIDIpOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4
dCgnd2ViZ2wnKTsKKyAgICB2YXIgZHN0Q2FudmFzID0gY3R4LmNhbnZhczsKKyAgICBhc3NlcnRf
ZXF1YWxzKGRzdENhbnZhcy53aWR0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhkc3RDYW52YXMu
aGVpZ2h0LCAyKTsKK30sICJUZXN0IHRoYXQgd2ViZ2xjb250ZXh0LmNhbnZhcyBzaG91bGQgcmV0
dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMiKTsKKwordGVzdChmdW5jdGlvbigpIHsK
KyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOwor
ICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnLCB7YWxwaGE6IGZh
bHNlfSk7CisgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDI1NSwgMCwgMC41KSc7CisgICAg
Y3R4LmZpbGxSZWN0KDAsIDAsIDEwLCAxMCk7CisgICAgX2Fzc2VydFBpeGVsQXBwcm94KG9mZnNj
cmVlbkNhbnZhcywgNSw1LCAwLDEyNywwLDI1NSwgIjUsNSIsICIwLDEyNywwLDI1NSIsIDIpOwor
fSwgIlRlc3QgdGhhdCBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBo
YSBkaXNhYmxlZCBtYWtlcyB0aGUgT2Zmc2NyZWVuQ2FudmFzIG9wYXF1ZSIpOworCit0ZXN0KGZ1
bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFz
KDEwLCAxMCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcs
IHthbHBoYTogdHJ1ZX0pOworICAgIGN0eC5maWxsU3R5bGUgPSAncmdiYSgwLCAyNTUsIDAsIDAu
NSknOworICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMCwgMTApOworICAgIF9hc3NlcnRQaXhlbEFw
cHJveChvZmZzY3JlZW5DYW52YXMsIDUsNSwgMCwyNTUsMCwxMjcsICI1LDUiLCAiMCwyNTUsMCwx
MjciLCAyKTsKK30sICJUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
IHdpdGggYWxwaGEgZW5hYmxlZCBwcmVzZXJ2ZXMgdGhlIGFscGhhIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAs
IDEwKTsKKyAgICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7Cisg
ICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDI1NSwgMCwgMC41KSc7CisgICAgY3R4LmZpbGxS
ZWN0KDAsIDAsIDEwLCAxMCk7CisgICAgX2Fzc2VydFBpeGVsQXBwcm94KG9mZnNjcmVlbkNhbnZh
cywgNSw1LCAwLDI1NSwwLDEyNywgIjUsNSIsICIwLDI1NSwwLDEyNyIsIDIpOworfSwgIlRlc3Qg
dGhhdCAnYWxwaGEnIGNvbnRleHQgY3JlYXRpb24gYXR0cmlidXRlIGlzIHRydWUgYnkgZGVmYXVs
dCIpOworCis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFz
LmdldGNvbnRleHQud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOWZjMmNmOWFhZGRl
N2YyZGIxYjNlMmUzMzY4OWVkNzA3MTc4Y2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndv
cmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIFRlc3QgdGhhdCBnZXRD
b250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIAorRkFJ
TCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHN1cHBvcnRlZCBzdHJpbmcgcmV0dXJucyBjb3Jy
ZWN0IHJlc3VsdHMgQ2FuJ3QgZmluZCB2YXJpYWJsZTogV2ViR0xSZW5kZXJpbmdDb250ZXh0CitQ
QVNTIFRlc3QgdGhhdCBnZXRDb250ZXh0IHR3aWNlIHdpdGggZGlmZmVyZW50IGNvbnRleHQgdHlw
ZSByZXR1cm5zIG51bGwgdGhlIHNlY29uZCB0aW1lIAorUEFTUyBUZXN0IHRoYXQgMmRjb250ZXh0
LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMgCitQQVNT
IFRlc3QgdGhhdCB3ZWJnbGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFs
IE9mZnNjcmVlbkNhbnZhcyAKK0ZBSUwgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRCB3aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52YXMg
b3BhcXVlIGFzc2VydF9hcHByb3hfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBh
dCAoNSwgNSkgZXhwZWN0ZWQgMTI3ICsvLSAyIGJ1dCBnb3QgMjU1CitQQVNTIFRlc3QgdGhhdCBP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBoYSBlbmFibGVkIHByZXNl
cnZlcyB0aGUgYWxwaGEgCitQQVNTIFRlc3QgdGhhdCAnYWxwaGEnIGNvbnRleHQgY3JlYXRpb24g
YXR0cmlidXRlIGlzIHRydWUgYnkgZGVmYXVsdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5nZXRjb250ZXh0Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2Vy
Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktp
dCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29u
dGV4dC53b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ1ZTEyNDNlOTdlYjFmODU1YWMzNjAwZGE4NTUw
YTA0OWUyMTk5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXIuanMKQEAgLTAsMCAr
MSw3NyBAQAorLy8gc3BlYyBsaW5rOiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNkb20t
b2Zmc2NyZWVuY2FudmFzLWdldGNvbnRleHQKKworaW1wb3J0U2NyaXB0cygiL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyIpOworaW1wb3J0U2NyaXB0cygiL2h0bWwvY2FudmFzL3Jlc291cmNlcy9j
YW52YXMtdGVzdHMuanMiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgb2Zmc2NyZWVu
Q2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxLCAxKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pz
KFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCczZCcp
OyB9KTsKK30sICJUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHVuLXN1cHBvcnRlZCBzdHJpbmcg
dGhyb3dzIGEgVHlwZUVycm9yLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvZmZz
Y3JlZW5DYW52YXMxID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxLCAxKTsKKyAgICB2YXIgY3R4MSA9
IG9mZnNjcmVlbkNhbnZhczEuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBhc3NlcnRfdHJ1ZShjdHgx
IGluc3RhbmNlb2YgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKTsKKworICAgIHZh
ciBvZmZzY3JlZW5DYW52YXMyID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxLCAxKTsKKyAgICB2YXIg
Y3R4MiA9IG9mZnNjcmVlbkNhbnZhczIuZ2V0Q29udGV4dCgnd2ViZ2wnKTsKKyAgICBhc3NlcnRf
dHJ1ZShjdHgyIGluc3RhbmNlb2YgV2ViR0xSZW5kZXJpbmdDb250ZXh0KTsKKworICAgIHZhciBv
ZmZzY3JlZW5DYW52YXMzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxLCAxKTsKKyAgICB2YXIgY3R4
MyA9IG9mZnNjcmVlbkNhbnZhczMuZ2V0Q29udGV4dCgnd2ViZ2wyJyk7CisgICAgYXNzZXJ0X3Ry
dWUoY3R4MyBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpOworfSwgIlRlc3QgdGhh
dCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmluZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0
cyIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMxID0gbmV3
IE9mZnNjcmVlbkNhbnZhcygxLCAxKTsKKyAgICB2YXIgY3R4MSA9IG9mZnNjcmVlbkNhbnZhczEu
Z2V0Q29udGV4dCgnMmQnKTsKKyAgICB2YXIgY3R4MiA9IG9mZnNjcmVlbkNhbnZhczEuZ2V0Q29u
dGV4dCgnd2ViZ2wnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGN0eDIsIG51bGwpOworCisgICAgdmFy
IG9mZnNjcmVlbkNhbnZhczIgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsIDEpOworICAgIHZhciBj
dHgzID0gb2Zmc2NyZWVuQ2FudmFzMi5nZXRDb250ZXh0KCd3ZWJnbCcpOworICAgIHZhciBjdHg0
ID0gb2Zmc2NyZWVuQ2FudmFzMi5nZXRDb250ZXh0KCcyZCcpOworICAgIGFzc2VydF9lcXVhbHMo
Y3R4NCwgbnVsbCk7Cit9LCAiVGVzdCB0aGF0IGdldENvbnRleHQgdHdpY2Ugd2l0aCBkaWZmZXJl
bnQgY29udGV4dCB0eXBlIHJldHVybnMgbnVsbCB0aGUgc2Vjb25kIHRpbWUiKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZh
cygxLCAyKTsKKyAgICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7
CisgICAgdmFyIGRzdENhbnZhcyA9IGN0eC5jYW52YXM7CisgICAgYXNzZXJ0X2VxdWFscyhkc3RD
YW52YXMud2lkdGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoZHN0Q2FudmFzLmhlaWdodCwgMik7
Cit9LCAiVGVzdCB0aGF0IDJkY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2lu
YWwgT2Zmc2NyZWVuQ2FudmFzIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNj
cmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMSwgMik7CisgICAgdmFyIGN0eCA9IG9m
ZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCd3ZWJnbCcpOworICAgIHZhciBkc3RDYW52YXMgPSBj
dHguY2FudmFzOworICAgIGFzc2VydF9lcXVhbHMoZHN0Q2FudmFzLndpZHRoLCAxKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGRzdENhbnZhcy5oZWlnaHQsIDIpOworfSwgIlRlc3QgdGhhdCB3ZWJnbGNv
bnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyIp
OworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zm
c2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRD
b250ZXh0KCcyZCcsIHthbHBoYTogZmFsc2V9KTsKKyAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEo
MCwgMjU1LCAwLCAwLjUpJzsKKyAgICBjdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgICBf
YXNzZXJ0UGl4ZWxBcHByb3gob2Zmc2NyZWVuQ2FudmFzLCA1LDUsIDAsMTI3LDAsMjU1LCAiNSw1
IiwgIjAsMTI3LDAsMjU1IiwgMik7Cit9LCAiVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCB3aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBPZmZzY3JlZW5DYW52
YXMgb3BhcXVlIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZh
cyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICB2YXIgY3R4ID0gb2Zmc2NyZWVu
Q2FudmFzLmdldENvbnRleHQoJzJkJywge2FscGhhOiB0cnVlfSk7CisgICAgY3R4LmZpbGxTdHls
ZSA9ICdyZ2JhKDAsIDI1NSwgMCwgMC41KSc7CisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDEwLCAx
MCk7CisgICAgX2Fzc2VydFBpeGVsQXBwcm94KG9mZnNjcmVlbkNhbnZhcywgNSw1LCAwLDI1NSww
LDEyNywgIjUsNSIsICIwLDI1NSwwLDEyNyIsIDIpOworfSwgIlRlc3QgdGhhdCBPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQgd2l0aCBhbHBoYSBlbmFibGVkIHByZXNlcnZlcyB0aGUg
YWxwaGEiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0g
bmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52
YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMCwgMjU1LCAw
LCAwLjUpJzsKKyAgICBjdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgICBfYXNzZXJ0UGl4
ZWxBcHByb3gob2Zmc2NyZWVuQ2FudmFzLCA1LDUsIDAsMjU1LDAsMTI3LCAiNSw1IiwgIjAsMjU1
LDAsMTI3IiwgMik7Cit9LCAiVGVzdCB0aGF0ICdhbHBoYScgY29udGV4dCBjcmVhdGlvbiBhdHRy
aWJ1dGUgaXMgdHJ1ZSBieSBkZWZhdWx0Iik7CisKK2RvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMucmVzaXplLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMucmVzaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzExYzhkZjRiNjVhNzkw
MGFkZGM3NDZhYTlhMGVlNzc5NDE4NjFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKKworUEFTUyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3
aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdo
ZW4gdGhlcmUgaXMgbm8gY29udGV4dCBhdHRhY2hlZC4gCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRp
bmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52
YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBhIDJkIGNvbnRleHQgYXR0YWNoZWQuIAorUEFTUyBWZXJp
ZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgYW4g
T2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSB3ZWJnbCBjb250ZXh0IGF0dGFj
aGVkLiAKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3IgaGVpZ2h0IGF0
dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIAorUEFT
UyBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9m
IGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gZXZlbiB3aGVuIG5vdCBj
aGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gCitQQVNTIFZlcmlmeSB0aGF0IHJl
c2l6aW5nIGEgMmQgY29udGV4dCByZXNldHMgaXRzIHN0YXRlLiAKK1BBU1MgVmVyaWZ5IHRoYXQg
c2V0dGluZyB0aGUgc2l6ZSBvZiBhIDJkIGNvbnRleHQgdG8gdGhlIHNhbWUgc2l6ZSBpdCBhbHJl
YWR5IGhhZCByZXNldHMgaXRzIHN0YXRlLiAKK1BBU1MgVmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4g
T2Zmc2NyZWVuQ2FudmFzIHdpdGggYSAyZCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXpl
IHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIAorUEFTUyBWZXJpZnkg
dGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIHdlYmdsIGNvbnRleHQgcHJv
cGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVyIGNhbnZhcyBhc3luY2hyb25v
dXNseS4gCitQQVNTIFZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRoZSBm
cmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMucmVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyNTlmNzljYTI4MTk5MzZl
MzNiYWZlOGQwYmViNmNlNjEwMzI1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS5odG1sCkBAIC0w
LDAgKzEsMjM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5UZXN0IHJlc2l6aW5nIGFuIE9m
ZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4dDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2Fu
dmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiPjwvc2NyaXB0PgorPGJvZHk+PC9ib2R5Pgor
PHNjcmlwdD4KK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBjYW52YXMgPSBuZXcgT2Zmc2NyZWVu
Q2FudmFzKDEwLCAyMCk7CisgIGNhbnZhcy53aWR0aCA9IDMwOworICBjYW52YXMuaGVpZ2h0ID0g
NDA7CisgIGFzc2VydF9lcXVhbHMoY2FudmFzLndpZHRoLCAzMCk7CisgIGFzc2VydF9lcXVhbHMo
Y2FudmFzLmhlaWdodCwgNDApOworfSwgIlZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRo
IGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0
aGVyZSBpcyBubyBjb250ZXh0IGF0dGFjaGVkLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2
YXIgY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMjApOworICBjYW52YXMuZ2V0Q29u
dGV4dCgnMmQnKTsKKyAgY2FudmFzLndpZHRoID0gMzA7CisgIGNhbnZhcy5oZWlnaHQgPSA0MDsK
KyAgYXNzZXJ0X2VxdWFscyhjYW52YXMud2lkdGgsIDMwKTsKKyAgYXNzZXJ0X2VxdWFscyhjYW52
YXMuaGVpZ2h0LCA0MCk7CisgIHZhciBpbWFnZSA9IGNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRt
YXAoKTsKKyAgYXNzZXJ0X2VxdWFscyhpbWFnZS53aWR0aCwgMzApOworICBhc3NlcnRfZXF1YWxz
KGltYWdlLmhlaWdodCwgNDApOworfSwgIlZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRo
IGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0
aGVyZSBpcyBhIDJkIGNvbnRleHQgYXR0YWNoZWQuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
IHZhciBjYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAyMCk7CisgIGNhbnZhcy5nZXRD
b250ZXh0KCd3ZWJnbCcpOworICBjYW52YXMud2lkdGggPSAzMDsKKyAgY2FudmFzLmhlaWdodCA9
IDQwOworICBhc3NlcnRfZXF1YWxzKGNhbnZhcy53aWR0aCwgMzApOworICBhc3NlcnRfZXF1YWxz
KGNhbnZhcy5oZWlnaHQsIDQwKTsKKyAgdmFyIGltYWdlID0gY2FudmFzLnRyYW5zZmVyVG9JbWFn
ZUJpdG1hcCgpOworICBhc3NlcnRfZXF1YWxzKGltYWdlLndpZHRoLCAzMCk7CisgIGFzc2VydF9l
cXVhbHMoaW1hZ2UuaGVpZ2h0LCA0MCk7Cit9LCAiVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUg
d2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3
aGVuIHRoZXJlIGlzIGEgd2ViZ2wgY29udGV4dCBhdHRhY2hlZC4iKTsKKwordGVzdChmdW5jdGlv
bigpIHsKKyAgdmFyIHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFz
Jyk7CisgIHBsYWNlaG9sZGVyLndpZHRoID0gMjsKKyAgcGxhY2Vob2xkZXIuaGVpZ2h0ID0gMjsK
KyAgdmFyIG9mZnNjcmVlbiA9IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVu
KCk7CisgIGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJvciIsICgpID0+IHsgcGxh
Y2Vob2xkZXIud2lkdGggPSAxOyB9KTsKKyAgYXNzZXJ0X3Rocm93c19kb20oIkludmFsaWRTdGF0
ZUVycm9yIiwgKCkgPT4geyBwbGFjZWhvbGRlci5oZWlnaHQgPSAxOyB9KTsKK30sICJWZXJpZnkg
dGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vo
b2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNlcHRpb24iKTsKKwordGVzdChmdW5jdGlvbigpIHsK
KyAgdmFyIHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Cisg
IHBsYWNlaG9sZGVyLndpZHRoID0gMTsKKyAgcGxhY2Vob2xkZXIuaGVpZ2h0ID0gMTsKKyAgdmFy
IG9mZnNjcmVlbiA9IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7Cisg
IGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJvciIsICgpID0+IHsgcGxhY2Vob2xk
ZXIud2lkdGggPSAxOyB9KTsKKyAgYXNzZXJ0X3Rocm93c19kb20oIkludmFsaWRTdGF0ZUVycm9y
IiwgKCkgPT4geyBwbGFjZWhvbGRlci5oZWlnaHQgPSAxOyB9KTsKK30sICJWZXJpZnkgdGhhdCB3
cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIg
Y2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gZXZlbiB3aGVuIG5vdCBjaGFuZ2luZyB0aGUgdmFs
dWUgb2YgdGhlIGF0dHJpYnV0ZS4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGNhbnZh
cyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDIwKTsKKyAgdmFyIGN0eCA9IGNhbnZhcy5nZXRD
b250ZXh0KCcyZCcpOworICBjdHgubGluZVdpZHRoID0gNTsKKyAgY2FudmFzLndpZHRoID0gMzA7
CisgIGFzc2VydF9lcXVhbHMoY3R4LmxpbmVXaWR0aCwgMSk7CisgIGN0eC5saW5lV2lkdGggPSA1
OworICBjYW52YXMuaGVpZ2h0ID0gNDA7CisgIGFzc2VydF9lcXVhbHMoY3R4LmxpbmVXaWR0aCwg
MSk7Cit9LCAiVmVyaWZ5IHRoYXQgcmVzaXppbmcgYSAyZCBjb250ZXh0IHJlc2V0cyBpdHMgc3Rh
dGUuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBjYW52YXMgPSBuZXcgT2Zmc2NyZWVu
Q2FudmFzKDEwLCAyMCk7CisgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAg
Y3R4LmxpbmVXaWR0aCA9IDU7CisgIGNhbnZhcy53aWR0aCA9IGNhbnZhcy53aWR0aDsKKyAgYXNz
ZXJ0X2VxdWFscyhjdHgubGluZVdpZHRoLCAxKTsKKyAgY3R4LmxpbmVXaWR0aCA9IDU7CisgIGNh
bnZhcy5oZWlnaHQgPSBjYW52YXMuaGVpZ2h0OworICBhc3NlcnRfZXF1YWxzKGN0eC5saW5lV2lk
dGgsIDEpOworfSwgIlZlcmlmeSB0aGF0IHNldHRpbmcgdGhlIHNpemUgb2YgYSAyZCBjb250ZXh0
IHRvIHRoZSBzYW1lIHNpemUgaXQgYWxyZWFkeSBoYWQgcmVzZXRzIGl0cyBzdGF0ZS4iKTsKKwor
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgIHZhciBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBsYWNl
aG9sZGVyKTsgLy8gU28gdGhhdCB3ZSBjYW4gY2hlY2sgY29tcHV0ZWQgc3R5bGUvCisgIHBsYWNl
aG9sZGVyLndpZHRoID0gMTA7CisgIHBsYWNlaG9sZGVyLmhlaWdodCA9IDIwOworICB2YXIgb2Zm
c2NyZWVuID0gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKTsKKyAgdmFy
IGN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCcyZCcpOworICB0LnN0ZXAoZnVuY3Rpb24oKSB7
CisgICAgLy8gVmVyaWZ5IHRoYXQgc2V0dGluZyB0aGUgc2l6ZSBvZiBhbiBPZmZzY3JlZW5DYW52
YXMgdGhhdCBoYXMgYSBwbGFjZWhvbGRlciB3b3Jrcy4KKyAgICBvZmZzY3JlZW4ud2lkdGggPSAz
MDsKKyAgICBvZmZzY3JlZW4uaGVpZ2h0ID0gNDA7CisgICAgYXNzZXJ0X2VxdWFscyhvZmZzY3Jl
ZW4ud2lkdGgsIDMwKTsKKyAgICBhc3NlcnRfZXF1YWxzKG9mZnNjcmVlbi5oZWlnaHQsIDQwKTsK
KyAgICB2YXIgaW1hZ2UgPSBvZmZzY3JlZW4udHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CisgICAg
YXNzZXJ0X2VxdWFscyhpbWFnZS53aWR0aCwgMzApOworICAgIGFzc2VydF9lcXVhbHMoaW1hZ2Uu
aGVpZ2h0LCA0MCk7CisgIH0pOworICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgLy8gVmVyaWZ5
IHRoYXQgc2V0dGluZyB0aGUgc2l6ZSBvZiBhbiBPZmZzY3JlZW5DYW52YXMgZG9lcyBub3QgZGly
ZWN0bHkgdXBkYXRlIHRoZSBzaXplIG9mIGl0cyBwbGFjZWhvbGRlciBjYW52YXMuCisgICAgYXNz
ZXJ0X2VxdWFscyhwbGFjZWhvbGRlci53aWR0aCwgMTApOworICAgIGFzc2VydF9lcXVhbHMocGxh
Y2Vob2xkZXIuaGVpZ2h0LCAyMCk7CisgIH0pOworICB2YXIgYXN5bmNTdGVwc0NvbXBsZXRlZCA9
IDA7CisgIGNyZWF0ZUltYWdlQml0bWFwKHBsYWNlaG9sZGVyKS50aGVuKGltYWdlID0+IHsKKyAg
ICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgcGxhY2Vob2xk
ZXIgd2FzIG5vdCB1cGRhdGVkIHN5bmNocm9ub3VzbHkuCisgICAgICBhc3NlcnRfZXF1YWxzKGlt
YWdlLndpZHRoLCAxMCk7CisgICAgICBhc3NlcnRfZXF1YWxzKGltYWdlLmhlaWdodCwgMjApOwor
ICAgIH0pOworICAgIGFzeW5jU3RlcHNDb21wbGV0ZWQgPSBhc3luY1N0ZXBzQ29tcGxldGVkICsg
MTsKKyAgICBpZiAoYXN5bmNTdGVwc0NvbXBsZXRlZCA9PSAyKSB7CisgICAgICB0LmRvbmUoKTsK
KyAgICB9CisgIH0pOworICAvLyBXZSB3YWl0IGZvciB1cCB0byAzIGZyYW1lcyBiZWZvcmUgY2hl
Y2tpbmcgdGhlIGluZm9ybWF0aW9uIGhhcyBwcm9wYWdhdGVkLgorICByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoKCkgPT4geworICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgdC5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgICAvLyBWZXJpZnkgdGhhdCB1cGRhdGVzIHRoZSBzaXplIG9mIGl0cyBwbGFjZWhvbGRl
ciBjYW52YXMuCisgICAgICAgIGFzc2VydF9lcXVhbHMocGxhY2Vob2xkZXIud2lkdGgsIDMwKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhwbGFjZWhvbGRlci5oZWlnaHQsIDQwKTsKKyAgICAgICAg
dmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwbGFjZWhvbGRlcik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd3
aWR0aCcpLCAiMzBweCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGNvbXB1dGVkU3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgnaGVpZ2h0JyksICI0MHB4Iik7CisgICAgICB9KTsKKyAgICAgIGNyZWF0
ZUltYWdlQml0bWFwKHBsYWNlaG9sZGVyKS50aGVuKGltYWdlID0+IHsKKyAgICAgICAgdC5zdGVw
KGZ1bmN0aW9uKCkgeworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IGFuIGltYWdlIGdyYWJiZWQg
ZnJvbSB0aGUgcGxhY2Vob2xkZXIgaGFzIHRoZSBjb3JyZWN0IGRpbWVuc2lvbnMKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGltYWdlLndpZHRoLCAzMCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhpbWFnZS5oZWlnaHQsIDQwKTsKKyAgICAgICAgfSk7CisgICAgICAgIGFzeW5jU3RlcHNDb21w
bGV0ZWQgPSBhc3luY1N0ZXBzQ29tcGxldGVkICsgMTsKKyAgICAgICAgaWYgKGFzeW5jU3RlcHND
b21wbGV0ZWQgPT0gMikgeworICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9CisgICAgICB9
KTsKKyAgICB9KTsKKyAgICB9KTsKKyAgfSk7Cit9LCAiVmVyaWZ5IHRoYXQgcmVzaXppbmcgYW4g
T2Zmc2NyZWVuQ2FudmFzIHdpdGggYSAyZCBjb250ZXh0IHByb3BhZ2F0ZXMgdGhlIG5ldyBzaXpl
IHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHkuIik7CisKK2FzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgeworICB2YXIgcGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdjYW52YXMnKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwbGFjZWhvbGRlcik7
IC8vIFNvIHRoYXQgd2UgY2FuIGNoZWNrIGNvbXB1dGVkIHN0eWxlLworICBwbGFjZWhvbGRlci53
aWR0aCA9IDEwOworICBwbGFjZWhvbGRlci5oZWlnaHQgPSAyMDsKKyAgdmFyIG9mZnNjcmVlbiA9
IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CisgIHZhciBjdHggPSBv
ZmZzY3JlZW4uZ2V0Q29udGV4dCgnd2ViZ2wnKTsKKyAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAg
IC8vIFZlcmlmeSB0aGF0IHNldHRpbmcgdGhlIHNpemUgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHRo
YXQgaGFzIGEgcGxhY2Vob2xkZXIgd29ya3MuCisgICAgb2Zmc2NyZWVuLndpZHRoID0gMzA7Cisg
ICAgb2Zmc2NyZWVuLmhlaWdodCA9IDQwOworICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuLndp
ZHRoLCAzMCk7CisgICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW4uaGVpZ2h0LCA0MCk7CisgICAg
dmFyIGltYWdlID0gb2Zmc2NyZWVuLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOworICAgIGFzc2Vy
dF9lcXVhbHMoaW1hZ2Uud2lkdGgsIDMwKTsKKyAgICBhc3NlcnRfZXF1YWxzKGltYWdlLmhlaWdo
dCwgNDApOworICB9KTsKKyAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgIC8vIFZlcmlmeSB0aGF0
IHNldHRpbmcgdGhlIHNpemUgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIGRvZXMgbm90IGRpcmVjdGx5
IHVwZGF0ZSB0aGUgc2l6ZSBvZiBpdHMgcGxhY2Vob2xkZXIgY2FudmFzLgorICAgIGFzc2VydF9l
cXVhbHMocGxhY2Vob2xkZXIud2lkdGgsIDEwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBsYWNlaG9s
ZGVyLmhlaWdodCwgMjApOworICB9KTsKKyAgdmFyIGFzeW5jU3RlcHNDb21wbGV0ZWQgPSAwOwor
ICBjcmVhdGVJbWFnZUJpdG1hcChwbGFjZWhvbGRlcikudGhlbihpbWFnZSA9PiB7CisgICAgdC5z
dGVwKGZ1bmN0aW9uKCkgeworICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHBsYWNlaG9sZGVyIHdh
cyBub3QgdXBkYXRlZCBzeW5jaHJvbm91c2x5LgorICAgICAgYXNzZXJ0X2VxdWFscyhpbWFnZS53
aWR0aCwgMTApOworICAgICAgYXNzZXJ0X2VxdWFscyhpbWFnZS5oZWlnaHQsIDIwKTsKKyAgICB9
KTsKKyAgICBhc3luY1N0ZXBzQ29tcGxldGVkID0gYXN5bmNTdGVwc0NvbXBsZXRlZCArIDE7Cisg
ICAgaWYgKGFzeW5jU3RlcHNDb21wbGV0ZWQgPT0gMikgeworICAgICAgdC5kb25lKCk7CisgICAg
fQorICB9KTsKKyAgLy8gV2Ugd2FpdCBmb3IgdXAgdG8gMyBmcmFtZXMgYmVmb3JlIGNoZWNraW5n
IHRoZSBpbmZvcm1hdGlvbiBoYXMgcHJvcGFnYXRlZC4KKyAgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCgpID0+IHsKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIC8vIFZlcmlmeSB0aGF0IHVwZGF0ZXMgdGhlIHNpemUgb2YgaXRzIHBsYWNlaG9sZGVy
IGNhbnZhcy4KKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBsYWNlaG9sZGVyLndpZHRoLCAzMCk7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwbGFjZWhvbGRlci5oZWlnaHQsIDQwKTsKKyAgICAg
ICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBsYWNlaG9s
ZGVyKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgnd2lkdGgnKSwgIjMwcHgiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvbXB1dGVk
U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnaGVpZ2h0JyksICI0MHB4Iik7CisgICAgICAgIH0pOwor
ICAgICAgICBjcmVhdGVJbWFnZUJpdG1hcChwbGFjZWhvbGRlcikudGhlbihpbWFnZSA9PiB7Cisg
ICAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQg
YW4gaW1hZ2UgZ3JhYmJlZCBmcm9tIHRoZSBwbGFjZWhvbGRlciBoYXMgdGhlIGNvcnJlY3QgZGlt
ZW5zaW9ucworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhpbWFnZS53aWR0aCwgMzApOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhpbWFnZS5oZWlnaHQsIDQwKTsKKyAgICAgICAgICB9KTsK
KyAgICAgICAgICBhc3luY1N0ZXBzQ29tcGxldGVkID0gYXN5bmNTdGVwc0NvbXBsZXRlZCArIDE7
CisgICAgICAgICAgaWYgKGFzeW5jU3RlcHNDb21wbGV0ZWQgPT0gMikgeworICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0pOworICAgIH0pOwor
ICB9KTsKK30sICJWZXJpZnkgdGhhdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBh
IHdlYmdsIGNvbnRleHQgcHJvcGFnYXRlcyB0aGUgbmV3IHNpemUgdG8gaXRzIHBsYWNlaG9sZGVy
IGNhbnZhcyBhc3luY2hyb25vdXNseS4iKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KXsKKyAg
dmFyIHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgIHBs
YWNlaG9sZGVyLndpZHRoID0gMTsKKyAgcGxhY2Vob2xkZXIuaGVpZ2h0ID0gMTsKKyAgdmFyIG9m
ZnNjcmVlbiA9IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CisgIHZh
ciBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgnMmQnKTsKKyAgb2Zmc2NyZWVuLndpZHRoID0g
b2Zmc2NyZWVuLmhlaWdodCA9IDEwOworICBjdHguZmlsbFN0eWxlID0gJyMwZjAnOworICBjdHgu
ZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgLy8gV2Ugd2FpdCBmb3IgdXAgdG8gMyBmcmFtZXMg
YmVmb3JlIGNoZWNraW5nIHRoZSBpbmZvcm1hdGlvbiBoYXMgcHJvcGFnYXRlZC4KKyAgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4g
eworICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgdmFyIHRlc3RD
YW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICAgICAgdGVzdENh
bnZhcy53aWR0aCA9IHRlc3RDYW52YXMuaGVpZ2h0ID0gMjA7CisgICAgICAgIHRlc3RDdHggPSB0
ZXN0Q2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgIHRlc3RDdHguZHJhd0ltYWdlKHBs
YWNlaG9sZGVyLCAwLCAwKTsKKyAgICAgICAgdmFyIHBpeGVsMSA9IHRlc3RDdHguZ2V0SW1hZ2VE
YXRhKDksIDksIDEsIDEpLmRhdGE7CisgICAgICAgIHZhciBwaXhlbDIgPSB0ZXN0Q3R4LmdldElt
YWdlRGF0YSg5LCAxMCwgMSwgMSkuZGF0YTsKKyAgICAgICAgdmFyIHBpeGVsMyA9IHRlc3RDdHgu
Z2V0SW1hZ2VEYXRhKDEwLCA5LCAxLCAxKS5kYXRhOworICAgICAgICB0LnN0ZXAoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwbGFjZWhvbGRlci53aWR0aCwgMTApOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocGxhY2Vob2xkZXIuaGVpZ2h0LCAxMCk7CisgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbDEsIFswLCAyNTUsIDAsIDI1NV0pOworICAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMocGl4ZWwyLCBbMCwgMCwgMCwgMF0pOworICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMocGl4ZWwzLCBbMCwgMCwgMCwgMF0pOworICAgICAgICB9KTsKKyAg
ICAgICAgdC5kb25lKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSk7Cit9LCAiVmVyaWZ5IHRo
YXQgZHJhd0ltYWdlIHVzZXMgdGhlIHNpemUgb2YgdGhlIGZyYW1lIGFzIHRoZSBpbnRpbnNpYyBz
aXplIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzLiIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5z
ZmVyLnRvLmltYWdlYml0bWFwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2ZTFkN2U2NjliOWIyMjdiYTAxNWEyZjcxNTdmNDBiNTUy
Y2NjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFw
IHJldHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgCitG
QUlMIFRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcmV0dXJucyBhbiBJbWFnZUJpdG1h
cCB3aXRoIGNvcnJlY3QgY29sb3IgYXNzZXJ0X2VxdWFsczogQWxwaGEgY2hhbm5lbCBvZiB0aGUg
cGl4ZWwgYXQgKDUwLCAyNSkgZXhwZWN0ZWQgMjU1IGJ1dCBnb3QgMAorUEFTUyBUZXN0IHRoYXQg
dHJhbnNmZXJUb0ltYWdlQml0bWFwIHdvbid0IGNoYW5nZSBjb250ZXh0J3MgcHJvcGVydHkgCitG
QUlMIFRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcHJlc2VydmVzIHRyYW5zZm9ybSBh
c3NlcnRfZXF1YWxzOiBHcmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoMjMsIDI1KSBleHBl
Y3RlZCAyNTUgYnV0IGdvdCAwCitQQVNTIFRlc3QgdGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFnZUJp
dG1hcCBvbiBhIGRldGFjaGVkIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uIAor
UEFTUyBUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHdpdGhvdXQgYSBjb250ZXh0IHRo
cm93cyBhbiBleGNlcHRpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
dHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWE4MzgwMmE0M2Y0M2Qx
NDRmZWE4NDc0NTJlMzlhOGNmMmRiNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFn
ZWJpdG1hcC5odG1sCkBAIC0wLDAgKzEsMTEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
aHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1vZmZzY3Jl
ZW5jYW52YXMtdHJhbnNmZXJ0b2ltYWdlYml0bWFwIj4KKworPHNjcmlwdCBpZD0ibXlXb3JrZXIi
IHR5cGU9InRleHQvd29ya2VyIj4KKworc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Cit9
OworCis8L3NjcmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIG1ha2VXb3JrZXIoc2NyaXB0KQor
eworICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3NjcmlwdF0pOworICAgIHJldHVybiBuZXcgV29y
a2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpOworfQorCit0ZXN0KGZ1bmN0aW9uKCkgewor
ICAgIGZ1bmN0aW9uIHRlc3RTaXplKGNvbnRleHRUeXBlKSB7CisgICAgICAgIHZhciBvZmZzY3Jl
ZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOworICAgICAgICB2YXIgY3R4
ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoY29udGV4dFR5cGUpOworICAgICAgICB2YXIg
aW1hZ2UgPSBvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoaW1hZ2Uud2lkdGgsIDEwMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
aW1hZ2UuaGVpZ2h0LCA1MCk7CisgICAgfQorCisgICAgdGVzdFNpemUoJzJkJyk7CisgICAgdGVz
dFNpemUoJ3dlYmdsJyk7Cit9LCAiVGVzdCB0aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCByZXR1
cm5zIGFuIEltYWdlQml0bWFwIHdpdGggY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0Iik7CisKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgICAgZnVuY3Rpb24gdGVzdEltYWdlQml0bWFwQ2xyKHNob3VsZENh
bGxUd2ljZSwgYWxwaGFWYWwpIHsKKyAgICAgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBP
ZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgICAgICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52
YXMuZ2V0Q29udGV4dCgnMmQnLCB7YWxwaGE6IGFscGhhVmFsfSk7CisgICAgICAgIGN0eC5maWxs
U3R5bGUgPSAiIzBmMCI7CisgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMDAsIDUwKTsKKyAg
ICAgICAgdmFyIGltYWdlID0gb2Zmc2NyZWVuQ2FudmFzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgp
OworCisgICAgICAgIGlmIChzaG91bGRDYWxsVHdpY2UpCisgICAgICAgICAgICBpbWFnZSA9IG9m
ZnNjcmVlbkNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKKworICAgICAgICB2YXIgZHJh
d0NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgICAgICBkcmF3
Q2FudmFzLndpZHRoID0gMTAwOworICAgICAgICBkcmF3Q2FudmFzLmhlaWdodCA9IDUwOworICAg
ICAgICB2YXIgZEN0eCA9IGRyYXdDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICAgICAgZEN0
eC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworCisgICAgICAgIGlmIChzaG91bGRDYWxsVHdpY2Up
IHsKKyAgICAgICAgICAgIGlmIChhbHBoYVZhbCkKKyAgICAgICAgICAgICAgICBfYXNzZXJ0UGl4
ZWwoZHJhd0NhbnZhcywgNTAsMjUsIDAsMCwwLDAsICI1MCwyNSIsICIwLDAsMCwwIik7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgX2Fzc2VydFBpeGVsKGRyYXdDYW52YXMsIDUw
LDI1LCAwLDAsMCwyNTUsICI1MCwyNSIsICIwLDAsMCwyNTUiKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIF9hc3NlcnRQaXhlbChkcmF3Q2FudmFzLCA1MCwyNSwgMCwyNTUsMCwyNTUs
ICI1MCwyNSIsICIwLDI1NSwwLDI1NSIpOworICAgICAgICB9CisgICAgfQorCisgICAgdGVzdElt
YWdlQml0bWFwQ2xyKGZhbHNlLCB0cnVlKTsKKyAgICB0ZXN0SW1hZ2VCaXRtYXBDbHIodHJ1ZSwg
dHJ1ZSk7CisgICAgdGVzdEltYWdlQml0bWFwQ2xyKHRydWUsIGZhbHNlKTsKK30sICJUZXN0IHRo
YXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHJldHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3Jy
ZWN0IGNvbG9yIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZh
cyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVl
bkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIGN0eC5saW5lV2lkdGggPSAxMDsKKyAgICB2
YXIgaW1hZ2UgPSBvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CisgICAg
YXNzZXJ0X2VxdWFscyhjdHgubGluZVdpZHRoLCAxMCk7Cit9LCAiVGVzdCB0aGF0IHRyYW5zZmVy
VG9JbWFnZUJpdG1hcCB3b24ndCBjaGFuZ2UgY29udGV4dCdzIHByb3BlcnR5Iik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52
YXMoMTAwLCA1MCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcy
ZCcpOworICAgIGN0eC5yZWN0KDAsIDAsIDI1LCA1MCk7CisgICAgY3R4LmNsaXAoKTsKKyAgICBj
dHgudHJhbnNsYXRlKDIwLCAyMCk7CisKKyAgICBjdHguZmlsbFN0eWxlID0gJyMwZjAnOworICAg
IHZhciBpbWFnZTEgPSBvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7Cisg
ICAgLy8gdHJhc25mb3JtIHNob3VsZCBiZSBwcmVzZXJ2ZWQKKyAgICBjdHguZmlsbFJlY3QoMCwg
MCwgMTAsIDEwKTsKKyAgICB2YXIgaW1hZ2UyID0gb2Zmc2NyZWVuQ2FudmFzLnRyYW5zZmVyVG9J
bWFnZUJpdG1hcCgpOworCisgICAgdmFyIGRyYXdDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdjYW52YXMnKTsKKyAgICBkcmF3Q2FudmFzLndpZHRoID0gMTAwOworICAgIGRyYXdDYW52
YXMuaGVpZ2h0ID0gNTA7CisgICAgdmFyIGRDdHggPSBkcmF3Q2FudmFzLmdldENvbnRleHQoJzJk
Jyk7CisgICAgZEN0eC5kcmF3SW1hZ2UoaW1hZ2UyLCAwLCAwKTsKKyAgICAvLyBWZXJpZnkgdGhh
dCB0cmFuc2Zvcm0gd2FzIGNhcnJpZWQgb3Zlci4KKyAgICBfYXNzZXJ0UGl4ZWwoZHJhd0NhbnZh
cywgMjMsMjUsIDAsMjU1LDAsMjU1LCAiMjMsMjUiLCAiMCwyNTUsMCwyNTUiKTsKKyAgICAvLyBW
ZXJpZnkgdGhhdCBjbGlwIHdhcyBjYXJyaWVkIG92ZXIuCisgICAgX2Fzc2VydFBpeGVsKGRyYXdD
YW52YXMsIDI3LDI1LCAwLDAsMCwwLCAiMjcsMjUiLCAiMCwwLDAsMCIpOworfSwgIlRlc3QgdGhh
dCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcHJlc2VydmVzIHRyYW5zZm9ybSIpOworCithc3luY190
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcihkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0Q29udGVudCk7CisgICAgdmFyIG9mZnNjcmVl
bkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICB3b3JrZXIucG9zdE1l
c3NhZ2Uob2Zmc2NyZWVuQ2FudmFzLCBbb2Zmc2NyZWVuQ2FudmFzXSk7CisgICAgYXNzZXJ0X3Ro
cm93c19kb20oIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IG9mZnNjcmVlbkNhbnZh
cy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsgfSk7CisgICAgdC5kb25lKCk7Cit9LCAiVGVzdCB0
aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIG9uIGEgZGV0YWNoZWQgT2Zmc2NyZWVuQ2Fu
dmFzIHRocm93cyBhbiBleGNlcHRpb24iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIg
b2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOworICAgIGFzc2Vy
dF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeyBvZmZzY3JlZW5D
YW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7IH0pOworfSwgIlRlc3QgdGhhdCB0cmFuc2Zl
clRvSW1hZ2VCaXRtYXAgd2l0aG91dCBhIGNvbnRleHQgdGhyb3dzIGFuIGV4Y2VwdGlvbiIpOwor
Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFnZWJpdG1hcC53LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAudy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlj
OWY1MTJmZTg2OGRlNmExMzUwYzJjMWFlMmM1NzQ2YjE5Mzc2NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJh
bnNmZXIudG8uaW1hZ2ViaXRtYXAudy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQ
QVNTIFRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcmV0dXJucyBhbiBJbWFnZUJpdG1h
cCB3aXRoIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0
aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCByZXR1cm5zIGFuIEltYWdlQml0bWFwIHdpdGggY29y
cmVjdCBjb2xvciBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0lt
YWdlQml0bWFwIHR3aWNlIHJldHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IGNvbG9y
IGluIGEgd29ya2VyIAorRkFJTCBUZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAg
dHdpY2Ugb24gYSBhbHBoYS1kaXNhYmxlZCBjb250ZXh0IHJldHVybnMgYW4gSW1hZ2VCaXRtYXAg
d2l0aCBjb3JyZWN0IGNvbG9yIGluIGEgd29ya2VyIGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVj
dGVkIHByb3BlcnR5IDMgdG8gYmUgMjU1IGJ1dCBnb3QgMCAoZXhwZWN0ZWQgYXJyYXkgWzAsIDAs
IDAsIDI1NV0gZ290IG9iamVjdCAiMCwwLDAsMCIpCitQQVNTIFRlc3QgdGhhdCB0cmFuc2ZlclRv
SW1hZ2VCaXRtYXAgd29uJ3QgY2hhbmdlIGNvbnRleHQncyBwcm9wZXJ0eSBpbiBhIHdvcmtlciAK
K0ZBSUwgVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHByZXNlcnZlcyB0cmFu
c2Zvcm0gaW4gYSB3b3JrZXIgYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkg
MSB0byBiZSAyNTUgYnV0IGdvdCAwIChleHBlY3RlZCBhcnJheSBbMCwgMjU1LCAwLCAyNTVdIGdv
dCBvYmplY3QgIjAsMCwwLDAiKQorUEFTUyBUZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1hZ2VC
aXRtYXAgb24gYSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBp
biBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHdp
dGhvdXQgYSBjb250ZXh0IHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3b3JrZXIgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAudy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFnZWJpdG1hcC53
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjUxY2UwZWZhMjJjZjkwZjY1NDE1ZTI0M2M3NDdlMWZlM2ViYzhh
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAudy5odG1sCkBAIC0wLDAg
KzEsMjAxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvaHRtbC9jYW52YXMvcmVzb3VyY2Vz
L2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1vZmZzY3JlZW5jYW52YXMtdHJhbnNmZXJ0b2lt
YWdlYml0bWFwIj4KKworPHNjcmlwdCBpZD0ibXlXb3JrZXIiIHR5cGU9InRleHQvd29ya2VyIj4K
KworZnVuY3Rpb24gdGVzdFNpemUoY29udGV4dFR5cGUpCit7CisgICAgdmFyIG9mZnNjcmVlbkNh
bnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgICAgdmFyIGN0eCA9IG9mZnNj
cmVlbkNhbnZhcy5nZXRDb250ZXh0KGNvbnRleHRUeXBlKTsKKyAgICB2YXIgaW1hZ2UgPSBvZmZz
Y3JlZW5DYW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CisgICAgaWYgKGltYWdlLndpZHRo
ID09IDEwMCAmJiBpbWFnZS5oZWlnaHQgPT0gNTApCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gdGVzdEltYWdlQml0bWFwQ2xyKHNob3VsZENh
bGxUd2ljZSwgYWxwaGFWYWwpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNj
cmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENv
bnRleHQoJzJkJywge2FscGhhOiBhbHBoYVZhbH0pOworICAgIGN0eC5maWxsU3R5bGUgPSAiIzBm
MCI7CisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDEwMCwgNTApOworICAgIHZhciBpbWFnZSA9IG9m
ZnNjcmVlbkNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKKworICAgIGlmIChzaG91bGRD
YWxsVHdpY2UpCisgICAgICAgIGltYWdlID0gb2Zmc2NyZWVuQ2FudmFzLnRyYW5zZmVyVG9JbWFn
ZUJpdG1hcCgpOworICAgIHJldHVybiBpbWFnZTsKK30KKworZnVuY3Rpb24gaXNJbnZhbGlkU3Rh
dGVFcnJvcihmdW5jU3RyLCBvZmZzY3JlZW5DYW52YXMpCit7CisgICAgdHJ5IHsKKyAgICAgICAg
ZXZhbChmdW5jU3RyKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGlmIChlIGluc3RhbmNl
b2YgRE9NRXhjZXB0aW9uICYmIGUubmFtZSA9PSAiSW52YWxpZFN0YXRlRXJyb3IiKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHRlc3RJbWFnZUJpdG1hcFNpemUoKQoreworICAgIHJldHVybiB0ZXN0U2l6ZSgnMmQn
KSAmJiB0ZXN0U2l6ZSgnd2ViZ2wnKTsKK30KKworZnVuY3Rpb24gdGVzdExpbmVXaWR0aE5vdEFs
dGVyZWQoKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFz
KDEwMCwgNTApOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQn
KTsKKyAgICBjdHgubGluZVdpZHRoID0gMTA7CisgICAgdmFyIGltYWdlID0gb2Zmc2NyZWVuQ2Fu
dmFzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOworICAgIHJldHVybiBjdHgubGluZVdpZHRoID09
IDEwOworfQorCitmdW5jdGlvbiB0ZXN0VHJhbnNmb3JtUHJlc2VydmVkKCkKK3sKKyAgICB2YXIg
b2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgICB2YXIg
Y3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgY3R4LnJlY3QoMCwg
MCwgMjUsIDUwKTsKKyAgICBjdHguY2xpcCgpOworICAgIGN0eC50cmFuc2xhdGUoMjAsIDIwKTsK
KworICAgIGN0eC5maWxsU3R5bGUgPSAnIzBmMCc7CisgICAgdmFyIGltYWdlMSA9IG9mZnNjcmVl
bkNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKKyAgICAvLyB0cmFzbmZvcm0gc2hvdWxk
IGJlIHByZXNlcnZlZAorICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMCwgMTApOworICAgIHZhciBp
bWFnZTIgPSBvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CisgICAgcmV0
dXJuIGltYWdlMjsKK30KKworZnVuY3Rpb24gdGVzdEV4Y2VwdGlvbigpCit7CisgICAgdmFyIG9m
ZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICByZXR1cm4g
aXNJbnZhbGlkU3RhdGVFcnJvcigib2Zmc2NyZWVuQ2FudmFzLnRyYW5zZmVyVG9JbWFnZUJpdG1h
cCgpIiwgb2Zmc2NyZWVuQ2FudmFzKTsKK30KKworc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
KSB7CisgICAgc3dpdGNoIChlLmRhdGEpIHsKKyAgICAgICAgY2FzZSAndGVzdDEnOgorICAgICAg
ICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0ZXN0SW1hZ2VCaXRtYXBTaXplKCkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3Rlc3QyJzoKKyAgICAgICAgICAgIHNlbGYucG9zdE1l
c3NhZ2UodGVzdEltYWdlQml0bWFwQ2xyKGZhbHNlLCB0cnVlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAndGVzdDMnOgorICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0
ZXN0SW1hZ2VCaXRtYXBDbHIodHJ1ZSwgdHJ1ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgJ3Rlc3Q0JzoKKyAgICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UodGVzdEltYWdl
Qml0bWFwQ2xyKHRydWUsIGZhbHNlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAndGVzdDUnOgorICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0ZXN0TGluZVdpZHRoTm90
QWx0ZXJlZCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0Nic6Cisg
ICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRlc3RUcmFuc2Zvcm1QcmVzZXJ2ZWQoKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDcnOgorICAgICAgICAgICAgdmFy
IG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICAgICAg
ICAgIHNlbGYucG9zdE1lc3NhZ2Uoe29mZnNjcmVlbkNhbnZhczogb2Zmc2NyZWVuQ2FudmFzfSwg
W29mZnNjcmVlbkNhbnZhc10pOworICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShpc0ludmFs
aWRTdGF0ZUVycm9yKCJvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCkiLCBv
ZmZzY3JlZW5DYW52YXMpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0
OCc6CisgICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRlc3RFeGNlcHRpb24oKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICB9Cit9OworCis8L3NjcmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0
aW9uIG1ha2VXb3JrZXIodGVzdCkgeworICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJteVdvcmtlciIpLnRleHRDb250ZW50XSk7CisgICAgdmFyIHdvcmtl
ciA9IG5ldyBXb3JrZXIoVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSk7CisgICAgd29ya2VyLm9u
ZXJyb3IgPSB0ZXN0LnVucmVhY2hlZF9mdW5jKCJlcnJvciIpOworICAgIHJldHVybiB3b3JrZXI7
Cit9CisKK2Z1bmN0aW9uIGRyYXdJbWFnZUJpdG1hcChpbWFnZSwgeCwgeSkKK3sKKyAgICB2YXIg
ZHJhd0NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIGRyYXdD
YW52YXMud2lkdGggPSAxMDA7CisgICAgZHJhd0NhbnZhcy5oZWlnaHQgPSA1MDsKKyAgICB2YXIg
ZEN0eCA9IGRyYXdDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBkQ3R4LmRyYXdJbWFnZShp
bWFnZSwgMCwgMCk7CisgICAgcmV0dXJuIGRDdHguZ2V0SW1hZ2VEYXRhKHgsIHksIDEsIDEpLmRh
dGE7Cit9CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtl
V29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVw
X2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUobXNnLmRhdGEp
OworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3QxJyk7Cit9LCAiVGVzdCB0
aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCByZXR1cm5zIGFuIEltYWdlQml0bWFwIHdpdGggY29y
cmVjdCB3aWR0aCBhbmQgaGVpZ2h0IGluIGEgd29ya2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRF
dmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsK
KyAgICAgICAgdmFyIGNsciA9IGRyYXdJbWFnZUJpdG1hcChtc2cuZGF0YSwgNTAsIDI1KTsKKyAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjbHIsIFswLCAyNTUsIDAsIDI1NV0pOworICAgIH0p
KTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3QyJyk7Cit9LCAiVGVzdCB0aGF0IHRyYW5z
ZmVyVG9JbWFnZUJpdG1hcCByZXR1cm5zIGFuIEltYWdlQml0bWFwIHdpdGggY29ycmVjdCBjb2xv
ciBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgd29y
a2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2Fn
ZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIHZhciBjbHIgPSBk
cmF3SW1hZ2VCaXRtYXAobXNnLmRhdGEsIDUwLCAyNSk7CisgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoY2xyLCBbMCwgMCwgMCwgMF0pOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3Nh
Z2UoJ3Rlc3QzJyk7Cit9LCAiVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHR3
aWNlIHJldHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IGNvbG9yIGluIGEgd29ya2Vy
Iik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29y
a2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1
bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgdmFyIGNsciA9IGRyYXdJbWFnZUJpdG1h
cChtc2cuZGF0YSwgNTAsIDI1KTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjbHIsIFsw
LCAwLCAwLCAyNTVdKTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0NCcp
OworfSwgIlRlc3QgdGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB0d2ljZSBvbiBhIGFs
cGhhLWRpc2FibGVkIGNvbnRleHQgcmV0dXJucyBhbiBJbWFnZUJpdG1hcCB3aXRoIGNvcnJlY3Qg
Y29sb3IgaW4gYSB3b3JrZXIiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFy
IHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKG1zZykgeworICAgICAgICBhc3NlcnRf
dHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDUn
KTsKK30sICJUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHdvbid0IGNoYW5nZSBjb250
ZXh0J3MgcHJvcGVydHkgaW4gYSB3b3JrZXIiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7
CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlz
dGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKG1zZykgeworICAgICAg
ICB2YXIgY2xyMSA9IGRyYXdJbWFnZUJpdG1hcChtc2cuZGF0YSwgMjMsIDI1KTsKKyAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhjbHIxLCBbMCwgMjU1LCAwLCAyNTVdKTsKKyAgICAgICAgdmFy
IGNscjIgPSBkcmF3SW1hZ2VCaXRtYXAobXNnLmRhdGEsIDI3LCAyNSk7CisgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoY2xyMiwgWzAsIDAsIDAsIDBdKTsKKyAgICB9KSk7CisgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKCd0ZXN0NicpOworfSwgIlRlc3QgdGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFn
ZUJpdG1hcCBwcmVzZXJ2ZXMgdHJhbnNmb3JtIGluIGEgd29ya2VyIik7CisKK2FzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtl
ci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbiht
c2cpIHsKKyAgICAgICAgaWYgKG1zZy5kYXRhID09IHRydWUgfHwgbXNnLmRhdGEgPT0gZmFsc2Up
CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtl
ci5wb3N0TWVzc2FnZSgndGVzdDcnKTsKK30sICJUZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1h
Z2VCaXRtYXAgb24gYSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlv
biBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgd29y
a2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2Fn
ZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGFzc2VydF90cnVl
KG1zZy5kYXRhKTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0OCcpOwor
fSwgIlRlc3QgdGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB3aXRob3V0IGEgY29udGV4
dCB0aHJvd3MgYW4gZXhjZXB0aW9uIGluIGEgd29ya2VyIik7CisKKzwvc2NyaXB0PgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRy
b2wudG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTYwNDg1YjdiNmFkNmY3
MDYyZGVmOWZlN2I3OWU1Y2I3NGI4M2JlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wu
dG8ub2Zmc2NyZWVuLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBUZXN0IHRo
YXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNj
cmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCAKK1BBU1MgVGVzdCB0aGF0IGNhbGxp
bmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGhhcyBhbHJlYWR5IHRy
YW5zZmVycmVkIGl0cyBjb250cm9sIHRocm93cyBhbiBleGNlcHRpb24gCitQQVNTIFRlc3QgdGhh
dCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNl
cHRpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zl
cmNvbnRyb2wudG8ub2Zmc2NyZWVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVhMzc1YjJhZGFmYjQ5ZWNk
MzI4NWI3MzVlNjg3NDdhYjQxYTUwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRv
Lm9mZnNjcmVlbi5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9odG1sL2NhbnZhcy9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZG9tLWNhbnZh
cy10cmFuc2ZlcmNvbnRyb2x0b29mZnNjcmVlbiI+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9u
KCkgeworICAgIHZhciBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZh
cycpOworICAgIHBsYWNlaG9sZGVyLndpZHRoID0gMTAwOworICAgIHBsYWNlaG9sZGVyLmhlaWdo
dCA9IDUwOworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbigpOworICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzLndp
ZHRoLCAxMDApOworICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzLmhlaWdodCwgNTAp
OworfSwgIlRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2VuZXJhdGVkIGJ5IHRyYW5zZmVy
Q29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0Iik7CisKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnY2FudmFzJyk7CisgICAgcGxhY2Vob2xkZXIud2lkdGggPSAxMDA7CisgICAgcGxhY2Vo
b2xkZXIuaGVpZ2h0ID0gNTA7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IHBsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CisgICAgYXNzZXJ0X3Rocm93c19kb20oIklu
dmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHBsYWNlaG9sZGVyLmdldENvbnRleHQoJzJk
Jyk7IH0pOworfSwgIlRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRl
ciBjYW52YXMgdGhhdCBoYXMgYWxyZWFkeSB0cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0aHJvd3Mg
YW4gZXhjZXB0aW9uIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIHBsYWNlaG9sZGVy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgcGxhY2Vob2xkZXIud2lk
dGggPSAxMDA7CisgICAgcGxhY2Vob2xkZXIuaGVpZ2h0ID0gNTA7CisgICAgdmFyIG9mZnNjcmVl
bkNhbnZhcyA9IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CisgICAg
YXNzZXJ0X3Rocm93c19kb20oIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHBsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7IH0pOworfSwgIlRlc3QgdGhhdCBj
YWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRp
b24iKTsKKworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVl
bi53LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zM2I4NTMyY2IyZTAwNDE0YTZkNTRhNmRhNzlhZTc2ZWFmNDY1NjNmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8ub2Zmc2NyZWVuLnctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIFRlc3QgdGhhdCBhbiBPZmZzY3JlZW5DYW52YXMgZ2Vu
ZXJhdGVkIGJ5IHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGdldHMgY29ycmVjdCB3aWR0aCBh
bmQgaGVpZ2h0IHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgCitQQVNTIFRlc3Qg
dGhhdCBjYWxsaW5nIGdldENvbnRleHQgb24gYSBwbGFjZWhvbGRlciBjYW52YXMgdGhhdCBpcyB0
cmFuc2ZlcnJlZCBpdHMgY29udHJvbCB0byBhbiBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4
Y2VwdGlvbiwgd2hlbiB0aGUgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29y
a2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0
d2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVlbkNh
bnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRy
b2wudG8ub2Zmc2NyZWVuLncuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNh
bnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTM0N2U3YjUwYjIxOTdjYzdhZmMwNjM5OGYyZjZlMzljMzc2OTczMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53Lmh0bWwKQEAgLTAsMCAr
MSw3NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9j
YW52YXMtdGVzdHMuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnLyNkb20tY2FudmFzLXRyYW5zZmVyY29udHJvbHRvb2Zmc2Ny
ZWVuIj4KKworPHNjcmlwdCBpZD0ibXlXb3JrZXIiIHR5cGU9InRleHQvd29ya2VyIj4KKworZnVu
Y3Rpb24gdGVzdFNpemUob2Zmc2NyZWVuQ2FudmFzKQoreworICAgIGlmIChvZmZzY3JlZW5DYW52
YXMud2lkdGggPT0gMTAwICYmIG9mZnNjcmVlbkNhbnZhcy5oZWlnaHQgPT0gNTApCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKworc2VsZi5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihlKSB7CisgICAgc3dpdGNoIChlLmRhdGEubXNnKSB7CisgICAgICAgIGNhc2UgJ3Rl
c3QxJzoKKyAgICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UodGVzdFNpemUoZS5kYXRhLmRhdGEp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0Mic6CisgICAgICAgICAg
ICBzZWxmLnBvc3RNZXNzYWdlKCIiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
ICd0ZXN0Myc6CisgICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCIiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgIH0KK307CisKKzwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24gbWFr
ZVdvcmtlcihzY3JpcHQpCit7CisgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbc2NyaXB0XSk7Cisg
ICAgcmV0dXJuIG5ldyBXb3JrZXIoVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSk7Cit9CisKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIHBsYWNlaG9sZGVyLndpZHRoID0gMTAwOworICAg
IHBsYWNlaG9sZGVyLmhlaWdodCA9IDUwOworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOworICAgIHZhciB3b3JrZXIgPSBt
YWtlV29ya2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVdvcmtlciIpLnRleHRDb250ZW50
KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jX2Rv
bmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGFzc2VydF90cnVlKG1zZy5kYXRhKTsKKyAgICB9
KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHttc2c6ICd0ZXN0MScsIGRhdGE6IG9mZnNjcmVl
bkNhbnZhc30sIFtvZmZzY3JlZW5DYW52YXNdKTsKK30sICJUZXN0IHRoYXQgYW4gT2Zmc2NyZWVu
Q2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJl
Y3Qgd2lkdGggYW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIik7
CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBwbGFjZWhvbGRlciA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIHBsYWNlaG9sZGVyLndpZHRoID0gMTAw
OworICAgIHBsYWNlaG9sZGVyLmhlaWdodCA9IDUwOworICAgIHZhciBvZmZzY3JlZW5DYW52YXMg
PSBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOworICAgIHZhciB3b3Jr
ZXIgPSBtYWtlV29ya2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVdvcmtlciIpLnRleHRD
b250ZW50KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9m
dW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGFzc2VydF90aHJvd3NfZG9tKCJJbnZh
bGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeyBwbGFjZWhvbGRlci5nZXRDb250ZXh0KCcyZCcp
OyB9KTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHttc2c6ICd0ZXN0MicsIGRh
dGE6IG9mZnNjcmVlbkNhbnZhc30sIFtvZmZzY3JlZW5DYW52YXNdKTsKK30sICJUZXN0IHRoYXQg
Y2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRoYXQgaXMgdHJhbnNm
ZXJyZWQgaXRzIGNvbnRyb2wgdG8gYW4gT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBhbiBleGNlcHRp
b24sIHdoZW4gdGhlIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlciIp
OworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgcGxhY2Vob2xkZXIgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICBwbGFjZWhvbGRlci53aWR0aCA9IDEw
MDsKKyAgICBwbGFjZWhvbGRlci5oZWlnaHQgPSA1MDsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFz
ID0gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKTsKKyAgICB2YXIgd29y
a2VyID0gbWFrZVdvcmtlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0
Q29udGVudCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBf
ZnVuY19kb25lKGZ1bmN0aW9uKG1zZykgeworICAgICAgICBhc3NlcnRfdGhyb3dzX2RvbSgiSW52
YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9s
VG9PZmZzY3JlZW4oKTsgfSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7bXNn
OiAndGVzdDMnLCBkYXRhOiBvZmZzY3JlZW5DYW52YXN9LCBbb2Zmc2NyZWVuQ2FudmFzXSk7Cit9
LCAiVGVzdCB0aGF0IGNhbGxpbmcgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gdHdpY2UgdGhy
b3dzIGFuIGV4Y2VwdGlvbiwgd2hlbiBpdHMgYXNzb2NpYXRlZCBPZmZzY3JlZW5DYW52YXMgaXMg
dHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIiKTsKKworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNm
ZXJyYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZhMWJlYjBhYjViNzBmYjE0YTU5MWMwZWJkNzk2OTVmY2MyMTAxMjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFz
LnRyYW5zZmVycmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIFRlc3Qg
dGhhdCBvZmZzY3JlZW5DYW52YXMncyBzaXplIGlzIGNvcnJlY3QgYWZ0ZXIgYmVpbmcgdHJhbnNm
ZXJyZWQgdG8gYSB3b3JrZXIuIAorUEFTUyBUZXN0IHRoYXQgdHJhbnNmZXIgYW4gT2Zmc2NyZWVu
Q2FudmFzIHRoYXQgaGFzIGEgY29udGV4dCB0aHJvd3MgZXhjZXB0aW9uLiAKK1BBU1MgVGVzdCB0
aGF0IHRyYW5zZmVyIGFuIE9mZnNjcmVlbkNhbnZhcyB0d2ljZSB0aHJvd3MgZXhjZXB0aW9uLiAK
K1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCgnMmQnKSBvbiBhIGRldGFjaGVkIE9m
ZnNjcmVlbkNhbnZhcyB0aHJvd3MgZXhjZXB0aW9uLiAKK1BBU1MgVGVzdCB0aGF0IGNhbGxpbmcg
Z2V0Q29udGV4dCgnd2ViZ2wnKSBvbiBhIGRldGFjaGVkIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3Mg
ZXhjZXB0aW9uLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMzIxYzMyNGZhMDAxOWZhNTQyODY0ZTc4MDMyYzAwZmYzNGQyNDdhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29m
ZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMi
Pjwvc2NyaXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnLyNvZmZzY3JlZW5jYW52YXMiPgorCis8c2NyaXB0IGlkPSJteVdvcmtlciIgdHlwZT0i
dGV4dC93b3JrZXIiPgorCitmdW5jdGlvbiB0ZXN0MShvZmZzY3JlZW5DYW52YXMpCit7CisgICAg
cmV0dXJuIG9mZnNjcmVlbkNhbnZhcy53aWR0aCA9PSAxMCAmJiBvZmZzY3JlZW5DYW52YXMuaGVp
Z2h0ID09IDEwOworfQorCitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICBzd2l0
Y2goZS5kYXRhLm1zZykgeworICAgICAgICBjYXNlICd0ZXN0MSc6CisgICAgICAgICAgICBzZWxm
LnBvc3RNZXNzYWdlKHRlc3QxKGUuZGF0YS5kYXRhKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICB9Cit9OworCis8L3NjcmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIG1ha2VXb3JrZXIoc2Ny
aXB0KQoreworICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3NjcmlwdF0pOworICAgIHJldHVybiBu
ZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpOworfQorCithc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcihkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0Q29udGVudCk7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZh
cyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2Uo
e21zZzogJ3Rlc3QxJywgZGF0YTogb2Zmc2NyZWVuQ2FudmFzfSwgW29mZnNjcmVlbkNhbnZhc10p
OworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9u
ZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUobXNnLmRhdGEpOworICAgIH0p
KTsKKyAgICBhc3NlcnRfZXF1YWxzKG9mZnNjcmVlbkNhbnZhcy53aWR0aCwgMCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMuaGVpZ2h0LCAwKTsKK30sICJUZXN0IHRoYXQgb2Zm
c2NyZWVuQ2FudmFzJ3Mgc2l6ZSBpcyBjb3JyZWN0IGFmdGVyIGJlaW5nIHRyYW5zZmVycmVkIHRv
IGEgd29ya2VyLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIHRlc3RFeGNl
cHRpb24oY29udGV4dFR5cGUpIHsKKyAgICAgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15V29ya2VyIikudGV4dENvbnRlbnQpOworICAgICAgICB2
YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOworICAgICAg
ICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoY29udGV4dFR5cGUpOworICAg
ICAgICBhc3NlcnRfdGhyb3dzX2RvbSgiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7b2Zmc2NyZWVuQ2FudmFzfSwgW29mZnNj
cmVlbkNhbnZhc10pOworICAgICAgICB9KTsKKyAgICB9CisgICAgdGVzdEV4Y2VwdGlvbignMmQn
KTsKKyAgICB0ZXN0RXhjZXB0aW9uKCd3ZWJnbCcpOworfSwgIlRlc3QgdGhhdCB0cmFuc2ZlciBh
biBPZmZzY3JlZW5DYW52YXMgdGhhdCBoYXMgYSBjb250ZXh0IHRocm93cyBleGNlcHRpb24uIik7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm15V29ya2VyIikudGV4dENvbnRlbnQpOworICAgIHZhciBvZmZz
Y3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgd29ya2VyLnBv
c3RNZXNzYWdlKHtvZmZzY3JlZW5DYW52YXN9LCBbb2Zmc2NyZWVuQ2FudmFzXSk7CisgICAgYXNz
ZXJ0X3Rocm93c19kb20oIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAg
IHdvcmtlci5wb3N0TWVzc2FnZSh7b2Zmc2NyZWVuQ2FudmFzfSwgW29mZnNjcmVlbkNhbnZhc10p
OworICAgIH0pOworfSwgIlRlc3QgdGhhdCB0cmFuc2ZlciBhbiBPZmZzY3JlZW5DYW52YXMgdHdp
Y2UgdGhyb3dzIGV4Y2VwdGlvbi4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgd29y
a2VyID0gbWFrZVdvcmtlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0
Q29udGVudCk7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMo
MTAsIDEwKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe29mZnNjcmVlbkNhbnZhc30sIFtvZmZz
Y3JlZW5DYW52YXNdKTsKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgiSW52YWxpZFN0YXRlRXJyb3Ii
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7
CisgICAgfSk7Cit9LCAiVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCgnMmQnKSBvbiBhIGRl
dGFjaGVkIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgZXhjZXB0aW9uLiIpOworCit0ZXN0KGZ1bmN0
aW9uKCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJteVdvcmtlciIpLnRleHRDb250ZW50KTsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0g
bmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7b2Zm
c2NyZWVuQ2FudmFzfSwgW29mZnNjcmVlbkNhbnZhc10pOworICAgIGFzc2VydF90aHJvd3NfZG9t
KCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICBvZmZzY3JlZW5DYW52
YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKTsKKyAgICB9KTsKK30sICJUZXN0IHRoYXQgY2FsbGluZyBn
ZXRDb250ZXh0KCd3ZWJnbCcpIG9uIGEgZGV0YWNoZWQgT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBl
eGNlcHRpb24uIik7CisKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUudy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLnRyYW5zZmVycmFibGUudy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI3ZDg2MWY4
Y2Y3YTE0MTFiNTgyOTk1Mzc2MDE4OTc4ZDIxMjFkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJy
YWJsZS53LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBUZXN0IHRoYXQgT2Zm
c2NyZWVuQ2FudmFzJ3Mgc2l6ZSBpcyBjb3JyZWN0IGFmdGVyIGJlaW5nIHRyYW5zZmVycmVkIGZy
b20gYSB3b3JrZXIuIAorUEFTUyBUZXN0IHRoYXQgdHJhbnNmZXIgYW4gT2Zmc2NyZWVuQ2FudmFz
IHRoYXQgaGFzIGEgMmQgY29udGV4dCB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29ya2VyLiAKK1BB
U1MgVGVzdCB0aGF0IHRyYW5zZmVyIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGhhcyBhIHdlYmds
IGNvbnRleHQgdGhyb3dzIGV4Y2VwdGlvbiBpbiBhIHdvcmtlci4gCitQQVNTIFRlc3QgdGhhdCB0
cmFuc2ZlciBhbiBPZmZzY3JlZW5DYW52YXMgdHdpY2UgdGhyb3dzIGV4Y2VwdGlvbiBpbiBhIHdv
cmtlci4gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQoJzJkJykgb24gYSBkZXRh
Y2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGV4Y2VwdGlvbiBpbiBhIHdvcmtlci4gCitQQVNT
IFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQoJ3dlYmdsJykgb24gYSBkZXRhY2hlZCBPZmZz
Y3JlZW5DYW52YXMgdGhyb3dzIGV4Y2VwdGlvbiBpbiBhIHdvcmtlci4gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJh
bnNmZXJyYWJsZS53Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUudy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Zjk4MWU4
ZjA5YWFiNzZmMGVkNTEzMWM4M2UwZWU4ODgyZjE3ODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVy
cmFibGUudy5odG1sCkBAIC0wLDAgKzEsMTQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
aHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI29mZnNjcmVlbmNh
bnZhcyI+CisKKzxzY3JpcHQgaWQ9Im15V29ya2VyIiB0eXBlPSJ0ZXh0L3dvcmtlciI+CisKK2Z1
bmN0aW9uIGlzSW52YWxpZFN0YXRlRXJyb3IoZnVuY1N0ciwgb2Zmc2NyZWVuQ2FudmFzKQorewor
ICAgIHRyeSB7CisgICAgICAgIGV2YWwoZnVuY1N0cik7CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICBpZiAoZSBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlLm5hbWUgPT0gIkludmFsaWRT
dGF0ZUVycm9yIikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0RXhjZXB0aW9uV2l0aDJEQ29udGV4dCgpCit7
CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsK
KyAgICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgcmV0
dXJuIGlzSW52YWxpZFN0YXRlRXJyb3IoInNlbGYucG9zdE1lc3NhZ2Uob2Zmc2NyZWVuQ2FudmFz
LCBbb2Zmc2NyZWVuQ2FudmFzXSkiLCBvZmZzY3JlZW5DYW52YXMpOworfQorCitmdW5jdGlvbiB0
ZXN0RXhjZXB0aW9uV2l0aFdlYkdMQ29udGV4dCgpCit7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZh
cyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICB2YXIgY3R4ID0gb2Zmc2NyZWVu
Q2FudmFzLmdldENvbnRleHQoJ3dlYmdsJyk7CisgICAgcmV0dXJuIGlzSW52YWxpZFN0YXRlRXJy
b3IoInNlbGYucG9zdE1lc3NhZ2Uob2Zmc2NyZWVuQ2FudmFzLCBbb2Zmc2NyZWVuQ2FudmFzXSki
LCBvZmZzY3JlZW5DYW52YXMpOworfQorCitmdW5jdGlvbiB0ZXN0RXhjZXB0aW9uV2l0aERldGFj
aGVkT2Zmc2NyZWVuQ2FudmFzMSgpCit7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBP
ZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICBzZWxmLnBvc3RNZXNzYWdlKG9mZnNjcmVlbkNh
bnZhcywgW29mZnNjcmVlbkNhbnZhc10pOworICAgIHJldHVybiBpc0ludmFsaWRTdGF0ZUVycm9y
KCJzZWxmLnBvc3RNZXNzYWdlKG9mZnNjcmVlbkNhbnZhcywgW29mZnNjcmVlbkNhbnZhc10pIiwg
b2Zmc2NyZWVuQ2FudmFzKTsKK30KKworZnVuY3Rpb24gdGVzdEV4Y2VwdGlvbldpdGhEZXRhY2hl
ZE9mZnNjcmVlbkNhbnZhczIoKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zm
c2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgc2VsZi5wb3N0TWVzc2FnZShvZmZzY3JlZW5DYW52
YXMsIFtvZmZzY3JlZW5DYW52YXNdKTsKKyAgICByZXR1cm4gaXNJbnZhbGlkU3RhdGVFcnJvcigi
b2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJykiLCBvZmZzY3JlZW5DYW52YXMpOworfQor
CitmdW5jdGlvbiB0ZXN0RXhjZXB0aW9uV2l0aERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzMygpCit7
CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsK
KyAgICBzZWxmLnBvc3RNZXNzYWdlKG9mZnNjcmVlbkNhbnZhcywgW29mZnNjcmVlbkNhbnZhc10p
OworICAgIHJldHVybiBpc0ludmFsaWRTdGF0ZUVycm9yKCJvZmZzY3JlZW5DYW52YXMuZ2V0Q29u
dGV4dCgnd2ViZ2wnKSIsIG9mZnNjcmVlbkNhbnZhcyk7Cit9CisKK3NlbGYub25tZXNzYWdlID0g
ZnVuY3Rpb24oZSkgeworICAgIHN3aXRjaChlLmRhdGEpIHsKKyAgICAgICAgY2FzZSAndGVzdDEn
OgorICAgICAgICAgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMo
MTAsIDEwKTsKKyAgICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2Uob2Zmc2NyZWVuQ2FudmFzLCBb
b2Zmc2NyZWVuQ2FudmFzXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVz
dDInOgorICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0ZXN0RXhjZXB0aW9uV2l0aDJEQ29u
dGV4dCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0Myc6CisgICAg
ICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRlc3RFeGNlcHRpb25XaXRoV2ViR0xDb250ZXh0KCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3Rlc3Q0JzoKKyAgICAgICAgICAg
IHNlbGYucG9zdE1lc3NhZ2UodGVzdEV4Y2VwdGlvbldpdGhEZXRhY2hlZE9mZnNjcmVlbkNhbnZh
czEoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDUnOgorICAgICAg
ICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0ZXN0RXhjZXB0aW9uV2l0aERldGFjaGVkT2Zmc2NyZWVu
Q2FudmFzMigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0Nic6Cisg
ICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRlc3RFeGNlcHRpb25XaXRoRGV0YWNoZWRPZmZz
Y3JlZW5DYW52YXMzKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfTsKKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBtYWtlV29ya2VyKHRlc3QpIHsKKyAgICB2YXIgYmxv
YiA9IG5ldyBCbG9iKFtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0Q29u
dGVudF0pOworICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwo
YmxvYikpOworICAgIHdvcmtlci5vbmVycm9yID0gdGVzdC51bnJlYWNoZWRfZnVuYygiZXJyb3Ii
KTsKKyAgICByZXR1cm4gd29ya2VyOworfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMobXNnLmRhdGEud2lkdGgsIDEwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyht
c2cuZGF0YS5oZWlnaHQsIDEwKTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0
ZXN0MScpOworfSwgIlRlc3QgdGhhdCBPZmZzY3JlZW5DYW52YXMncyBzaXplIGlzIGNvcnJlY3Qg
YWZ0ZXIgYmVpbmcgdHJhbnNmZXJyZWQgZnJvbSBhIHdvcmtlci4iKTsKKworYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2Vy
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKG1z
ZykgeworICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtl
ci5wb3N0TWVzc2FnZSgndGVzdDInKTsKK30sICJUZXN0IHRoYXQgdHJhbnNmZXIgYW4gT2Zmc2Ny
ZWVuQ2FudmFzIHRoYXQgaGFzIGEgMmQgY29udGV4dCB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29y
a2VyLiIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFr
ZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3Rl
cF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGFzc2VydF90cnVlKG1zZy5kYXRh
KTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0MycpOworfSwgIlRlc3Qg
dGhhdCB0cmFuc2ZlciBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBoYXMgYSB3ZWJnbCBjb250ZXh0
IHRocm93cyBleGNlcHRpb24gaW4gYSB3b3JrZXIuIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24o
dCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAg
ICAgICAgaWYgKG1zZy5kYXRhID09IHRydWUgfHwgbXNnLmRhdGEgPT0gZmFsc2UpCisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVz
c2FnZSgndGVzdDQnKTsKK30sICJUZXN0IHRoYXQgdHJhbnNmZXIgYW4gT2Zmc2NyZWVuQ2FudmFz
IHR3aWNlIHRocm93cyBleGNlcHRpb24gaW4gYSB3b3JrZXIuIik7CisKK2FzeW5jX3Rlc3QoZnVu
Y3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtlci5h
ZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbihtc2cp
IHsKKyAgICAgICAgaWYgKG1zZy5kYXRhID09IHRydWUgfHwgbXNnLmRhdGEgPT0gZmFsc2UpCisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5w
b3N0TWVzc2FnZSgndGVzdDUnKTsKK30sICJUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0KCcy
ZCcpIG9uIGEgZGV0YWNoZWQgT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBleGNlcHRpb24gaW4gYSB3
b3JrZXIuIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBt
YWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5z
dGVwX2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgaWYgKG1zZy5kYXRhID09IHRy
dWUgfHwgbXNnLmRhdGEgPT0gZmFsc2UpCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0
YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDYnKTsKK30sICJUZXN0
IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0KCd3ZWJnbCcpIG9uIGEgZGV0YWNoZWQgT2Zmc2NyZWVu
Q2FudmFzIHRocm93cyBleGNlcHRpb24gaW4gYSB3b3JrZXIuIik7CisKKzwvc2NyaXB0PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvdzNjLWltcG9ydC5s
b2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmJhNjI2MDU4NDBkMjdiMmRkYWQ3ZjMyYzczMzhjODU4NDg1MDMxMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5jb25zdHJ1Y3Rvci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci53b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29u
dGV4dC53b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zm
c2NyZWVuY2FudmFzLnJlc2l6ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFnZWJpdG1hcC5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zl
ci50by5pbWFnZWJpdG1hcC53Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4uaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJh
bnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJy
YWJsZS53Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90cmFuc2Zvcm1hdGlvbnMv
MmQudHJhbnNmb3JtYXRpb24uZ2V0VHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC90cmFuc2Zvcm1hdGlvbnMvMmQudHJhbnNmb3JtYXRpb24uZ2V0VHJhbnNmb3JtLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NWRjZjA2NGVlODIxN2RiMWQwNzkwMjY3OTFlMTA5ZmY3MDg1
YWU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RyYW5zZm9ybWF0aW9ucy8y
ZC50cmFuc2Zvcm1hdGlvbi5nZXRUcmFuc2Zvcm0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIFRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZ2V0VHJhbnNmb3JtIHdvcmtzIGNvcnJl
Y3RseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90cmFuc2Zvcm1hdGlvbnMvMmQu
dHJhbnNmb3JtYXRpb24uZ2V0VHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdHJhbnNm
b3JtYXRpb25zLzJkLnRyYW5zZm9ybWF0aW9uLmdldFRyYW5zZm9ybS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIzYjcwYWMyMDg2NzRjNWJmMjQ5YzZmNThiNDY0N2I5OGJlNmQ1ZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvdHJhbnNmb3JtYXRpb25zLzJkLnRyYW5zZm9ybWF0aW9uLmdl
dFRyYW5zZm9ybS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KKy8vIEVuc3VyZSB0
aGF0IGNvbnRleHQyZC5nZXRUcmFuc2Zvcm0gd29ya3MKK2NvbnN0IGVwc2lsb24gPSAxZS01Owor
Y29uc3QgY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygzMDAsIDE1MCk7Citjb25zdCBjdHgg
PSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKwordGVzdChmdW5jdGlvbih0KSB7CisKKyAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhjdHguZ2V0VHJhbnNmb3JtKCkudG9GbG9hdDMyQXJyYXkoKSwKKyAg
ICBbMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMV0sCisgICAg
IkFzc2VydCB0aGF0IGFuIHVudHJhbnNmb3JtZWQgbWF0cml4IGlzIGlkZW50aXR5Iik7CisKKyAg
Y3R4LnNjYWxlKDIsIDMpOworICB0cmFuc2Zvcm0gPSBjdHguZ2V0VHJhbnNmb3JtKCk7CisgIGFz
c2VydF9hcnJheV9lcXVhbHMoY3R4LmdldFRyYW5zZm9ybSgpLnRvRmxvYXQzMkFycmF5KCksCisg
ICAgWzIsIDAsIDAsIDAsIDAsIDMsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDFdLAorICAg
ICJBc3NlcnQgdGhhdCBjb250ZXh0MmQgc2NhbGluZyB3b3JrcyIpOworCisgIGN0eC5yb3RhdGUo
TWF0aC5QSS8yKTsKKyAgdHJhbnNmb3JtID0gY3R4LmdldFRyYW5zZm9ybSgpOworICBhc3NlcnRf
YXJyYXlfYXBwcm94X2VxdWFscyhjdHguZ2V0VHJhbnNmb3JtKCkudG9GbG9hdDMyQXJyYXkoKSwK
KyAgICBbMCwgMywgMCwgMCwgLTIsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDFdLCBl
cHNpbG9uLAorICAgICJBc3NlcnQgdGhhdCBjb250ZXh0MmQgcm90YXRlIHdvcmtzIik7CisKKyAg
Y3R4LnRyYW5zbGF0ZSgxLCAtMSk7CisgIHRyYW5zZm9ybSA9IGN0eC5nZXRUcmFuc2Zvcm0oKTsK
KyAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoY3R4LmdldFRyYW5zZm9ybSgpLnRvRmxvYXQz
MkFycmF5KCksCisgICAgWzAsIDMsIDAsIDAsIC0yLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAyLCAz
LCAwLCAxXSwgZXBzaWxvbiwKKyAgICAiQXNzZXJ0IGNvbnRleHQyZCB0cmFuc2xhdGUgd29ya3Mu
Iik7CisKKyAgY3R4LnJlc2V0VHJhbnNmb3JtKCk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoY3R4
LmdldFRyYW5zZm9ybSgpLnRvRmxvYXQzMkFycmF5KCksCisgICAgWzEsIDAsIDAsIDAsIDAsIDEs
IDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDFdLAorICAgICJBc3NlcnQgdGhhdCBhIHJlc2V0
IG1hdHJpeCBpcyBpZGVudGl0eSIpOworfSwgJ1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgZ2V0VHJh
bnNmb3JtIHdvcmtzIGNvcnJlY3RseS4nKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RyYW5zZm9ybWF0aW9ucy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90cmFuc2Zvcm1hdGlvbnMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDM0
NDIxOTJjM2YwZTI5ZDcwMjc1YzAxYTFhYWZkMTZmYWQxNTBjMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90cmFuc2Zvcm1hdGlvbnMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RyYW5zZm9ybWF0aW9ucy8yZC50cmFu
c2Zvcm1hdGlvbi5nZXRUcmFuc2Zvcm0uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0aC1v
YmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5iYXNpYy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjdlZjA1YzAyMDhmMjczMDM1MGIzZmQ0N2M0YTQ0ZDU0NDk2Zjg5OQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJ
blN0cm9rZS5iYXNpYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisyZC5wYXRoLmlzUG9p
bnRJblN0cm9rZS5iYXNpYworCitkZXRlY3RzIHdoZXRoZXIgcG9pbnQgaXMgaW4gdGhlIGFyZWEg
Y29udGFpbmVkIGJ5IHRoZSBzdHJva2Ugb2YgdGhlIHBhdGgKKworCitQQVNTIGRldGVjdHMgd2hl
dGhlciBwb2ludCBpcyBpbiB0aGUgYXJlYSBjb250YWluZWQgYnkgdGhlIHN0cm9rZSBvZiB0aGUg
cGF0aCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2lu
dEluU3Ryb2tlLmJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1Bv
aW50SW5TdHJva2UuYmFzaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTFjNmYxYmQ2NDg2MzM4ZjJhNmZj
OTRhMzQ0Y2E0MjkzZTU3ODU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0aC1vYmpl
Y3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLmh0bWwKQEAgLTAsMCArMSwzNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8IS0tIERPIE5PVCBFRElUISBUaGlzIHRlc3QgaGFzIGJlZW4gZ2Vu
ZXJhdGVkIGJ5IC9odG1sL2NhbnZhcy90b29scy9nZW50ZXN0LnB5LiAtLT4KKzx0aXRsZT5PZmZz
Y3JlZW5DYW52YXMgdGVzdDogMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWM8L3RpdGxlPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9odG1sL2NhbnZhcy9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzIj48L3NjcmlwdD4K
KworPGgxPjJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljPC9oMT4KKzxwIGNsYXNzPSJkZXNj
Ij5kZXRlY3RzIHdoZXRoZXIgcG9pbnQgaXMgaW4gdGhlIGFyZWEgY29udGFpbmVkIGJ5IHRoZSBz
dHJva2Ugb2YgdGhlIHBhdGg8L3A+CisKKworPHNjcmlwdD4KK3ZhciB0ID0gYXN5bmNfdGVzdCgi
ZGV0ZWN0cyB3aGV0aGVyIHBvaW50IGlzIGluIHRoZSBhcmVhIGNvbnRhaW5lZCBieSB0aGUgc3Ry
b2tlIG9mIHRoZSBwYXRoIik7Cit2YXIgdF9wYXNzID0gdC5kb25lLmJpbmQodCk7Cit2YXIgdF9m
YWlsID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24ocmVhc29uKSB7CisgICAgdGhyb3cgcmVhc29uOwor
fSk7Cit0LnN0ZXAoZnVuY3Rpb24oKSB7CisKK3ZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zm
c2NyZWVuQ2FudmFzKDEwMCwgNTApOwordmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250
ZXh0KCcyZCcpOworCitjdHguc3Ryb2tlU3R5bGUgPSAnIzBmMCc7CitjdHguYmVnaW5QYXRoKCk7
CitjdHgucmVjdCgwLCAwLCAyMCwgMjApOworX2Fzc2VydFNhbWUoY3R4LmlzUG9pbnRJblN0cm9r
ZSgwLCAwKSwgdHJ1ZSwgImN0eC5pc1BvaW50SW5TdHJva2UoMCwgMCkiLCAidHJ1ZSIpOworX2Fz
c2VydFNhbWUoY3R4LmlzUG9pbnRJblN0cm9rZSgzMCwgMTApLCBmYWxzZSwgImN0eC5pc1BvaW50
SW5TdHJva2UoMzAsIDEwKSIsICJmYWxzZSIpOworCit2YXIgcGF0aCA9IG5ldyBQYXRoMkQoKTsK
K3BhdGgucmVjdCgyMCwgMjAsIDEwMCwgMTAwKTsKK19hc3NlcnRTYW1lKGN0eC5pc1BvaW50SW5T
dHJva2UocGF0aCwgMjAsIDIwKSwgdHJ1ZSwgImN0eC5pc1BvaW50SW5TdHJva2UocGF0aCwgMjAs
IDIwKSIsICJ0cnVlIik7CitfYXNzZXJ0U2FtZShjdHguaXNQb2ludEluU3Ryb2tlKHBhdGgsIDEy
MCwgMjApLCB0cnVlLCAiY3R4LmlzUG9pbnRJblN0cm9rZShwYXRoLCAxMjAsIDIwKSIsICJ0cnVl
Iik7Cit0LmRvbmUoKTsKKworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3Bh
dGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5iYXNpYy53b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2lj
Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZkMGNmMmYzNTE4MTBmYTlmMmY5Zjkx
MTc5YTFlNmMyNjRjYzIwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0
cy8yZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5iYXNpYy53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIGRldGVjdHMgd2hldGhlciBwb2ludCBpcyBpbiB0aGUgYXJlYSBj
b250YWluZWQgYnkgdGhlIHN0cm9rZSBvZiB0aGUgcGF0aCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLndvcmtlci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLndv
cmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBi
NTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5p
c1BvaW50SW5TdHJva2UuYmFzaWMud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlz
IGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0
aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2lj
Lndvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJblN0cm9r
ZS5iYXNpYy53b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIyOGNlNmEwZjFiYjkyM2U1MjQ2OTRjYzkw
NDgyMWU2NzA0OWEzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8y
ZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5iYXNpYy53b3JrZXIuanMKQEAgLTAsMCArMSwzMiBAQAor
Ly8gRE8gTk9UIEVESVQhIFRoaXMgdGVzdCBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgL2h0bWwvY2Fu
dmFzL3Rvb2xzL2dlbnRlc3QucHkuCisvLyBPZmZzY3JlZW5DYW52YXMgdGVzdCBpbiBhIHdvcmtl
cjoyZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5iYXNpYworLy8gRGVzY3JpcHRpb246ZGV0ZWN0cyB3
aGV0aGVyIHBvaW50IGlzIGluIHRoZSBhcmVhIGNvbnRhaW5lZCBieSB0aGUgc3Ryb2tlIG9mIHRo
ZSBwYXRoCisvLyBOb3RlOgorCitpbXBvcnRTY3JpcHRzKCIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIik7CitpbXBvcnRTY3JpcHRzKCIvaHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0
cy5qcyIpOworCit2YXIgdCA9IGFzeW5jX3Rlc3QoImRldGVjdHMgd2hldGhlciBwb2ludCBpcyBp
biB0aGUgYXJlYSBjb250YWluZWQgYnkgdGhlIHN0cm9rZSBvZiB0aGUgcGF0aCIpOwordmFyIHRf
cGFzcyA9IHQuZG9uZS5iaW5kKHQpOwordmFyIHRfZmFpbCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KHJlYXNvbikgeworICAgIHRocm93IHJlYXNvbjsKK30pOwordC5zdGVwKGZ1bmN0aW9uKCkgewor
Cit2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKK3Zh
ciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworY3R4LnN0cm9rZVN0
eWxlID0gJyMwZjAnOworY3R4LmJlZ2luUGF0aCgpOworY3R4LnJlY3QoMCwgMCwgMjAsIDIwKTsK
K19hc3NlcnRTYW1lKGN0eC5pc1BvaW50SW5TdHJva2UoMCwgMCksIHRydWUsICJjdHguaXNQb2lu
dEluU3Ryb2tlKDAsIDApIiwgInRydWUiKTsKK19hc3NlcnRTYW1lKGN0eC5pc1BvaW50SW5TdHJv
a2UoMzAsIDEwKSwgZmFsc2UsICJjdHguaXNQb2ludEluU3Ryb2tlKDMwLCAxMCkiLCAiZmFsc2Ui
KTsKKwordmFyIHBhdGggPSBuZXcgUGF0aDJEKCk7CitwYXRoLnJlY3QoMjAsIDIwLCAxMDAsIDEw
MCk7CitfYXNzZXJ0U2FtZShjdHguaXNQb2ludEluU3Ryb2tlKHBhdGgsIDIwLCAyMCksIHRydWUs
ICJjdHguaXNQb2ludEluU3Ryb2tlKHBhdGgsIDIwLCAyMCkiLCAidHJ1ZSIpOworX2Fzc2VydFNh
bWUoY3R4LmlzUG9pbnRJblN0cm9rZShwYXRoLCAxMjAsIDIwKSwgdHJ1ZSwgImN0eC5pc1BvaW50
SW5TdHJva2UocGF0aCwgMTIwLCAyMCkiLCAidHJ1ZSIpOwordC5kb25lKCk7CisKK30pOworZG9u
ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vcGF0aC1vYmplY3RzL3czYy1pbXBvcnQubG9nCmluZGV4IDcwMDNhODA0NGU1ZDg3
NWNhNTJmZjQxMTQ5ZDQ5N2I4YmJmYjQ1MmUuLmI4ZDFlN2Y3NzBhZjNkMzcwYTY5NDJkYTAwN2Yy
ODEzMGFmZTkzZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy93M2MtaW1wb3J0
LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9wYXRoLW9iamVjdHMvdzNjLWltcG9ydC5sb2cKQEAgLTE4Niw2
ICsxODYsOCBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRo
LmlzUG9pbnRJblBhdGgudW5jbG9zZWQud29ya2VyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3Rz
LzJkLnBhdGguaXNQb2ludEluUGF0aC53aW5kaW5nLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9wYXRoLW9iamVj
dHMvMmQucGF0aC5pc1BvaW50SW5QYXRoLndpbmRpbmcud29ya2VyLmpzCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0
aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9w
YXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMud29ya2VyLmpzCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGgubGluZVRvLmJhc2ljLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9w
YXRoLW9iamVjdHMvMmQucGF0aC5saW5lVG8uYmFzaWMud29ya2VyLmpzCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0
aC1vYmplY3RzLzJkLnBhdGgubGluZVRvLmVuc3VyZXN1YnBhdGguMS5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi90ZXh0LzJkLnRleHQubWVhc3VyZS53aWR0aC5zcGFjZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vdGV4dC8yZC50ZXh0Lm1lYXN1cmUud2lkdGguc3BhY2UuaHRtbAppbmRleCAzNmY0YTMzZGU2
MDEzNDg1ZTUxMTk3MzY2ZTQyOTY4ZTVkMWJjOTJjLi42ODJiNWMwZWY0Njg0NjQ5MjVmNTA5ZTA2
OWJkMzcxNGZkNWQyM2U3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi90ZXh0LzJkLnRleHQubWVhc3Vy
ZS53aWR0aC5zcGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3RleHQvMmQudGV4dC5tZWFzdXJlLndp
ZHRoLnNwYWNlLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgZm9udHMuYWRkKGYpOwogZm9udHMucmVh
ZHkudGhlbihmdW5jdGlvbigpIHsKICAgICBjdHguZm9udCA9ICc1MHB4IENhbnZhc1Rlc3QnOwog
ICAgIF9hc3NlcnRTYW1lKGN0eC5tZWFzdXJlVGV4dCgnQSBCJykud2lkdGgsIDE1MCwgImN0eC5t
ZWFzdXJlVGV4dCgnQSBCJykud2lkdGgiLCAiMTUwIik7Ci0gICAgX2Fzc2VydFNhbWUoY3R4Lm1l
YXN1cmVUZXh0KCdBICBCJykud2lkdGgsIDE1MCwgImN0eC5tZWFzdXJlVGV4dCgnQSAgQicpLndp
ZHRoIiwgIjE1MCIpOworICAgIF9hc3NlcnRTYW1lKGN0eC5tZWFzdXJlVGV4dCgnQSAgQicpLndp
ZHRoLCAyMDAsICJjdHgubWVhc3VyZVRleHQoJ0EgIEInKS53aWR0aCIsICIyMDAiKTsKICAgICBf
YXNzZXJ0U2FtZShjdHgubWVhc3VyZVRleHQoJ0EgXHgwOVx4MGFceDBjXHgwZCAgXHgwOVx4MGFc
eDBjXHgwZEInKS53aWR0aCwgMTUwLCAiY3R4Lm1lYXN1cmVUZXh0KCdBIFxceDA5XFx4MGFcXHgw
Y1xceDBkICBcXHgwOVxceDBhXFx4MGNcXHgwZEInKS53aWR0aCIsICIxNTAiKTsKICAgICBfYXNz
ZXJ0KGN0eC5tZWFzdXJlVGV4dCgnQSBceDBiIEInKS53aWR0aCA+PSAyMDAsICJjdHgubWVhc3Vy
ZVRleHQoJ0EgXFx4MGIgQicpLndpZHRoID49IDIwMCIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi90ZXh0LzJkLnRleHQubWVhc3VyZS53aWR0aC5zcGFjZS53b3JrZXIuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi90
ZXh0LzJkLnRleHQubWVhc3VyZS53aWR0aC5zcGFjZS53b3JrZXIuanMKaW5kZXggYzU5NGI1OTA0
OGNhNDlhNWY2ODE5YTM3N2IxOWYyNGNlYmI3OWRmZi4uMDk3ZDA4MmVlOTViOWQ4N2JmY2I4MjA5
YmU4NGMyYTBiZTIwZTY5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vdGV4dC8yZC50ZXh0Lm1lYXN1
cmUud2lkdGguc3BhY2Uud29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3RleHQvMmQudGV4dC5tZWFz
dXJlLndpZHRoLnNwYWNlLndvcmtlci5qcwpAQCAtMjMsNyArMjMsNyBAQCBmb250cy5hZGQoZik7
CiBmb250cy5yZWFkeS50aGVuKGZ1bmN0aW9uKCkgewogICAgIGN0eC5mb250ID0gJzUwcHggQ2Fu
dmFzVGVzdCc7CiAgICAgX2Fzc2VydFNhbWUoY3R4Lm1lYXN1cmVUZXh0KCdBIEInKS53aWR0aCwg
MTUwLCAiY3R4Lm1lYXN1cmVUZXh0KCdBIEInKS53aWR0aCIsICIxNTAiKTsKLSAgICBfYXNzZXJ0
U2FtZShjdHgubWVhc3VyZVRleHQoJ0EgIEInKS53aWR0aCwgMTUwLCAiY3R4Lm1lYXN1cmVUZXh0
KCdBICBCJykud2lkdGgiLCAiMTUwIik7CisgICAgX2Fzc2VydFNhbWUoY3R4Lm1lYXN1cmVUZXh0
KCdBICBCJykud2lkdGgsIDIwMCwgImN0eC5tZWFzdXJlVGV4dCgnQSAgQicpLndpZHRoIiwgIjIw
MCIpOwogICAgIF9hc3NlcnRTYW1lKGN0eC5tZWFzdXJlVGV4dCgnQSBceDA5XHgwYVx4MGNceDBk
ICBceDA5XHgwYVx4MGNceDBkQicpLndpZHRoLCAxNTAsICJjdHgubWVhc3VyZVRleHQoJ0EgXFx4
MDlcXHgwYVxceDBjXFx4MGQgIFxceDA5XFx4MGFcXHgwY1xceDBkQicpLndpZHRoIiwgIjE1MCIp
OwogICAgIF9hc3NlcnQoY3R4Lm1lYXN1cmVUZXh0KCdBIFx4MGIgQicpLndpZHRoID49IDIwMCwg
ImN0eC5tZWFzdXJlVGV4dCgnQSBcXHgwYiBCJykud2lkdGggPj0gMjAwIik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406302</attachid>
            <date>2020-08-10 09:39:30 -0700</date>
            <delta_ts>2020-08-10 10:25:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215322-20200810173929.patch</filename>
            <type>text/plain</type>
            <size>152434</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDIzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCA4ZDE0NTgwOGYxZmViZjI5MDllN2M5MDg0ODVmMDVmNjdhMDhjZjEyLi43NTU5M2M1OTc2
YThhMWQ0MjQ3NTVkN2E3ZGI2M2U1NTc1MzYyMjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4OCBAQAorMjAyMC0wOC0xMCAgQ2hyaXMgTG9yZCAgPGNsb3JkQGln
YWxpYS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdQVCBPZmZzY3JlZW5DYW52YXMgdGVzdHMgdG8g
aW5jbHVkZSBtYW51YWxseSB3cml0dGVuIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUzMjIKKworICAgICAgICBSZXZpZXdlZCBieSBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJlei4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9vZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5j
b25pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9vZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5j
b25pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMud29y
a2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNv
bmljLndvcmtlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29u
aWMud29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRfZmFpbC50LnN0ZXBfZnVuYyk6CisgICAg
ICAgICh0LnN0ZXApOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0
LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxvYi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL2NvbnZlcnQtdG8tYmxvYi9vZmZzY3JlZW5jYW52YXMuY29udmVydC50by5ibG9iLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL2NvbnZlcnQtdG8tYmxvYi9vZmZzY3JlZW5jYW52YXMuY29udmVydC50by5i
bG9iLnctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2Fu
dmFzLmNvbnZlcnQudG8uYmxvYi53Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZlcnQtdG8tYmxvYi93M2Mt
aW1wb3J0LmxvZzogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci5qczogQWRkZWQuCisgICAgICAgIChn
ZXRSZWd1bGFyQ29udGV4dEZvckZpbHRlcik6CisgICAgICAgIChtYXRjaEltYWdlRGF0YVJlc3Vs
dHMpOgorICAgICAgICAoY3JlYXRlUGF0dGVybkNhbnZhcyk6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNh
bnZhcy5maWx0ZXIudy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5jYW52
YXMuZmlsdGVyLncuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL3czYy1pbXBvcnQubG9nOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC9pbWFnZS1zbW9vdGhpbmcvaW1hZ2Uuc21vb3RoaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
aW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9pbWFnZS1zbW9v
dGhpbmcvaW1hZ2Uuc21vb3RoaW5nLndvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdl
LXNtb290aGluZy9pbWFnZS5zbW9vdGhpbmcud29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdlLXNt
b290aGluZy9pbWFnZS5zbW9vdGhpbmcud29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0
ZVRlc3RJbWFnZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHRlc3QuZHJhdyk6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1h
Z2Utc21vb3RoaW5nL3czYy1pbXBvcnQubG9nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LnctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LncuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVjdG9y
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLmNvbnN0cnVjdG9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci53b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3Iud29ya2VyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rv
ci53b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAodDEuc3RlcCk6CisgICAgICAgICh0Mi5zdGVw
KToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5n
ZXRjb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5nZXRjb250ZXh0Lndvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXIu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2Fu
dmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVy
LnRvLmltYWdlYml0bWFwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFnZWJpdG1hcC53LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdl
Yml0bWFwLncuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90
aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9m
ZnNjcmVlbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52
YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5v
ZmZzY3JlZW4udy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMudHJhbnNmZXJyYWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLnctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNm
ZXJyYWJsZS53Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL3czYy1pbXBvcnQu
bG9nOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90cmFuc2Zvcm1hdGlvbnMvMmQudHJhbnNmb3JtYXRpb24uZ2V0VHJhbnNm
b3JtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdHJhbnNmb3JtYXRpb25zLzJkLnRyYW5zZm9ybWF0
aW9uLmdldFRyYW5zZm9ybS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90cmFuc2Zvcm1hdGlvbnMvdzNjLWltcG9y
dC5sb2c6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMud29ya2VyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMu
d29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2lj
Lndvcmtlci5qczogQWRkZWQuCisgICAgICAgICh0X2ZhaWwudC5zdGVwX2Z1bmMpOgorICAgICAg
ICAodC5zdGVwKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL3BhdGgtb2JqZWN0cy93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3RleHQvMmQudGV4dC5tZWFzdXJlLndpZHRo
LnNwYWNlLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi90ZXh0LzJkLnRleHQubWVhc3VyZS53aWR0aC5zcGFjZS53b3JrZXIuanM6CisgICAg
ICAgICh0LnN0ZXApOgorCiAyMDIwLTA4LTA5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBBbHdheXMgcmVzb2x2ZSBSZWFkYWJsZVN0cmVhbSdzIHRlZSgpJ3Mg
Y2FuY2VsIHByb21pc2UgYWZ0ZXIgdGhlIHN0cmVhbSBjbG9zZXMgb3IgZXJyb3JzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQu
Y29uaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmMDYzODc4MTU0NzcxOGQ4ZjdiOGE0ZGY5
ZDliNDY4NjZiNzhlZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJv
a2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
KzJkLmdyYWRpZW50LmNvbmljCisKK0NvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4aXN0cworCisK
K0ZBSUwgQ29uaWMgZ3JhZGllbnQgZnVuY3Rpb24gZXhpc3RzIGN0eC5jcmVhdGVDb25pY0dyYWRp
ZW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2N0eC5jcmVhdGVDb25pY0dyYWRpZW50KDAsIDAs
IDI1KScsICdjdHguY3JlYXRlQ29uaWNHcmFkaWVudCcgaXMgdW5kZWZpbmVkKQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTFhNDY1MWVmNjViYjkyNjI3OWQ1ZmJhYjRjMWM5OTFkYTkzNTQ0NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3Jh
ZGllbnQuY29uaWMuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0g
RE8gTk9UIEVESVQhIFRoaXMgdGVzdCBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgL2h0bWwvY2FudmFz
L3Rvb2xzL2dlbnRlc3QucHkuIC0tPgorPHRpdGxlPk9mZnNjcmVlbkNhbnZhcyB0ZXN0OiAyZC5n
cmFkaWVudC5jb25pYzwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52
YXMtdGVzdHMuanMiPjwvc2NyaXB0PgorCis8aDE+MmQuZ3JhZGllbnQuY29uaWM8L2gxPgorPHAg
Y2xhc3M9ImRlc2MiPkNvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4aXN0czwvcD4KKworCis8c2Ny
aXB0PgordmFyIHQgPSBhc3luY190ZXN0KCJDb25pYyBncmFkaWVudCBmdW5jdGlvbiBleGlzdHMi
KTsKK3ZhciB0X3Bhc3MgPSB0LmRvbmUuYmluZCh0KTsKK3ZhciB0X2ZhaWwgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihyZWFzb24pIHsKKyAgICB0aHJvdyByZWFzb247Cit9KTsKK3Quc3RlcChmdW5j
dGlvbigpIHsKKwordmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAw
LCA1MCk7Cit2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKK2Nv
bnN0IGcgPSBjdHguY3JlYXRlQ29uaWNHcmFkaWVudCgwLCAwLCAyNSk7CitnLmFkZENvbG9yU3Rv
cCgwLCAiIzBmMCIpOworZy5hZGRDb2xvclN0b3AoMC41LCAiIzBmMCIpOworZy5hZGRDb2xvclN0
b3AoMC41LCAiI2YwMCIpOworZy5hZGRDb2xvclN0b3AoMSwgIiNmMDAiKTsKK2N0eC5maWxsU3R5
bGUgPSBnOworY3R4LmZpbGxSZWN0KDAsIDAsIDEwMCwgNTApOworX2Fzc2VydFBpeGVsKG9mZnNj
cmVlbkNhbnZhcywgMjUsMjUsIDAsMjU1LDAsMjU1LCAiMjUsMjUiLCAiMCwyNTUsMCwyNTUiKTsK
K19hc3NlcnRQaXhlbChvZmZzY3JlZW5DYW52YXMsIDUwLDI1LCAwLDI1NSwwLDI1NSwgIjUwLDI1
IiwgIjAsMjU1LDAsMjU1Iik7CitfYXNzZXJ0UGl4ZWwob2Zmc2NyZWVuQ2FudmFzLCA3NSwyNSwg
MCwyNTUsMCwyNTUsICI3NSwyNSIsICIwLDI1NSwwLDI1NSIpOwordC5kb25lKCk7CisKK30pOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJk
LmdyYWRpZW50LmNvbmljLndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1z
dHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDdlMDE3MGM0ZGVjYjVjYzliMmFhOTliNmQwZTU1MmQzYTFiZmJlYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29u
aWMud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBDb25pYyBncmFk
aWVudCBmdW5jdGlvbiBleGlzdHMgY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAnY3R4LmNyZWF0ZUNvbmljR3JhZGllbnQoMCwgMCwgMjUpJywgJ2N0eC5jcmVh
dGVDb25pY0dyYWRpZW50JyBpcyB1bmRlZmluZWQpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2Zp
bGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMud29ya2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmNvbmljLndvcmtlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRp
ZW50LmNvbmljLndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRl
ZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQuY29uaWMud29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9v
ZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy53b3JrZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTNhNjFhZDExNGRkYmZjYzE3NjgxMmFhYjJlOTk0NmI4MjYyNDk5NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3Jh
ZGllbnQuY29uaWMud29ya2VyLmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8vIERPIE5PVCBFRElUISBU
aGlzIHRlc3QgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IC9odG1sL2NhbnZhcy90b29scy9nZW50ZXN0
LnB5LgorLy8gT2Zmc2NyZWVuQ2FudmFzIHRlc3QgaW4gYSB3b3JrZXI6MmQuZ3JhZGllbnQuY29u
aWMKKy8vIERlc2NyaXB0aW9uOkNvbmljIGdyYWRpZW50IGZ1bmN0aW9uIGV4aXN0cworLy8gTm90
ZToKKworaW1wb3J0U2NyaXB0cygiL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIpOworaW1wb3J0
U2NyaXB0cygiL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiKTsKKwordmFy
IHQgPSBhc3luY190ZXN0KCJDb25pYyBncmFkaWVudCBmdW5jdGlvbiBleGlzdHMiKTsKK3ZhciB0
X3Bhc3MgPSB0LmRvbmUuYmluZCh0KTsKK3ZhciB0X2ZhaWwgPSB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihyZWFzb24pIHsKKyAgICB0aHJvdyByZWFzb247Cit9KTsKK3Quc3RlcChmdW5jdGlvbigpIHsK
KwordmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7Cit2
YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKK2NvbnN0IGcgPSBj
dHguY3JlYXRlQ29uaWNHcmFkaWVudCgwLCAwLCAyNSk7CitnLmFkZENvbG9yU3RvcCgwLCAiIzBm
MCIpOworZy5hZGRDb2xvclN0b3AoMC41LCAiIzBmMCIpOworZy5hZGRDb2xvclN0b3AoMC41LCAi
I2YwMCIpOworZy5hZGRDb2xvclN0b3AoMSwgIiNmMDAiKTsKK2N0eC5maWxsU3R5bGUgPSBnOwor
Y3R4LmZpbGxSZWN0KDAsIDAsIDEwMCwgNTApOworX2Fzc2VydFBpeGVsKG9mZnNjcmVlbkNhbnZh
cywgMjUsMjUsIDAsMjU1LDAsMjU1LCAiMjUsMjUiLCAiMCwyNTUsMCwyNTUiKTsKK19hc3NlcnRQ
aXhlbChvZmZzY3JlZW5DYW52YXMsIDUwLDI1LCAwLDI1NSwwLDI1NSwgIjUwLDI1IiwgIjAsMjU1
LDAsMjU1Iik7CitfYXNzZXJ0UGl4ZWwob2Zmc2NyZWVuQ2FudmFzLCA3NSwyNSwgMCwyNTUsMCwy
NTUsICI3NSwyNSIsICIwLDI1NSwwLDI1NSIpOwordC5kb25lKCk7CisKK30pOworZG9uZSgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9vZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvdzNjLWltcG9ydC5sb2cKaW5kZXgg
N2Q3NTllZDNjMTViODg3MWY5YTIyNjJlYjdhOTFhOGIzZWVhZDgzOS4uMzMzMjA5Yjg2MTczY2Yw
NDg4MmFiZWZmZTJlN2IzYTNhMGFkY2I4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vZmlsbC1hbmQt
c3Ryb2tlLXN0eWxlcy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJv
a2Utc3R5bGVzL3czYy1pbXBvcnQubG9nCkBAIC0yNzAsNiArMjcwLDggQEAgTGlzdCBvZiBmaWxl
czoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmZpbGxTdHlsZS5wYXJzZS50
cmFuc3BhcmVudC0xLndvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMv
MmQuZmlsbFN0eWxlLnBhcnNlLnRyYW5zcGFyZW50LTIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5k
LXN0cm9rZS1zdHlsZXMvMmQuZmlsbFN0eWxlLnBhcnNlLnRyYW5zcGFyZW50LTIud29ya2VyLmpz
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcy8yZC5ncmFkaWVudC5jb25pYy53b3Jr
ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmVtcHR5
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLmdyYWRpZW50LmVtcHR5
Lndvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQuZ3JhZGllbnQu
aW50ZXJwb2xhdGUuYWxwaGEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZl
cnQtdG8tYmxvYi9vZmZzY3JlZW5jYW52YXMuY29udmVydC50by5ibG9iLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQu
dG8uYmxvYi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZlZGRkMjg4YmNhYTU0OWJkNDY3Nzg4
MmVhNWEzYzhhZTFjMTU4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252
ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxvYi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw5IEBACisKK1BBU1MgVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBkZWZh
dWx0IHR5cGUgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgCitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0
VG9CbG9iIHdpdGggcG5nIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IAorUEFTUyBUZXN0IHRoYXQg
Y29udmVydFRvQmxvYiB3aXRoIGpwZ2UgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgCitQQVNTIFRl
c3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGggd2VicCBwcm9kdWNlcyBjb3JyZWN0IHJlc3VsdCAK
K1BBU1MgVGVzdCB0aGF0IGNhbGwgY29udmVydFRvQmxvYiBvbiBhIGRldGFjaGVkIE9mZnNjcmVl
bkNhbnZhcyB0aHJvd3MgZXhjZXB0aW9uIAorUEFTUyBUZXN0IHRoYXQgY2FsbCBjb252ZXJ0VG9C
bG9iIG9uIGEgT2Zmc2NyZWVuQ2FudmFzIHdpdGggc2l6ZSAwIHRocm93cyBleGNlcHRpb24gCitQ
QVNTIFRlc3QgdGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBPZmZzY3JlZW5DYW52YXMgd2l0
aCB0YWludGVkIG9yaWdpbiB0aHJvd3MgZXhjZXB0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvY29udmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2Iu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNv
bnZlcnQudG8uYmxvYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjYzBlNWJmZmQwMjBhYTBkMGVkNTUwMWZm
MmIyM2ZlYTk4ZTQyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVy
dC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2IuaHRtbApAQCAtMCwwICsx
LDE2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9j
YW52YXMtdGVzdHMuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnLyNkb20tb2Zmc2NyZWVuY2FudmFzLWNvbnZlcnR0b2Jsb2Ii
PgorPHNjcmlwdCBpZD0ibXlXb3JrZXIiIHR5cGU9InRleHQvd29ya2VyIj4KK3NlbGYub25tZXNz
YWdlID0gZnVuY3Rpb24oZSkgeworfTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIG1h
a2VXb3JrZXIoc2NyaXB0KQoreworICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3NjcmlwdF0pOwor
ICAgIHJldHVybiBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpOworfQorCitm
dW5jdGlvbiBkcmF3Q2FudmFzKGN0eCkKK3sKKyAgICBjdHguZmlsbFN0eWxlID0gInJlZCI7Cisg
ICAgY3R4LmZpbGxSZWN0KDAsIDAsIDUsIDUpOworICAgIGN0eC5maWxsU3R5bGUgPSAiZ3JlZW4i
OworICAgIGN0eC5maWxsUmVjdCg1LCAwLCA1LCA1KTsKKyAgICBjdHguZmlsbFN0eWxlID0gImJs
dWUiOworICAgIGN0eC5maWxsUmVjdCgwLCA1LCA1LCA1KTsKKyAgICBjdHguZmlsbFN0eWxlID0g
ImJsYWNrIjsKKyAgICBjdHguZmlsbFJlY3QoNSwgNSwgNSwgNSk7Cit9CisKK2Z1bmN0aW9uIGNv
bXBhcmVJbWFnZXMoaW1hZ2UxLCBpbWFnZTIpCit7CisgICAgdmFyIGNhbnZhczEgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICB2YXIgY2FudmFzMiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIGNhbnZhczEud2lkdGggPSBjYW52YXMxLmhlaWdo
dCA9IDEwOworICAgIGNhbnZhczIud2lkdGggPSBjYW52YXMyLmhlaWdodCA9IDEwOworICAgIHZh
ciBjdHgxID0gY2FudmFzMS5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciBjdHgyID0gY2FudmFz
MS5nZXRDb250ZXh0KCcyZCcpOworICAgIGN0eDEuZHJhd0ltYWdlKGltYWdlMSwgMCwgMCk7Cisg
ICAgY3R4Mi5kcmF3SW1hZ2UoaW1hZ2UyLCAwLCAwKTsKKyAgICB2YXIgZGF0YTEgPSBjdHgxLmdl
dEltYWdlRGF0YSgwLCAwLCAxMCwgMTApLmRhdGE7CisgICAgdmFyIGRhdGEyID0gY3R4Mi5nZXRJ
bWFnZURhdGEoMCwgMCwgMTAsIDEwKS5kYXRhOworICAgIGFzc2VydF9lcXVhbHMoZGF0YTEubGVu
Z3RoLCBkYXRhMi5sZW5ndGgpOworICAgIHZhciBpbWFnZU1hdGNoZWQgPSB0cnVlOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgZGF0YTEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGRhdGEx
W2ldICE9IGRhdGEyW2ldKSB7CisgICAgICAgICAgICBpbWFnZU1hdGNoZWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGFzc2VydF90cnVlKGltYWdl
TWF0Y2hlZCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb252ZXJ0VG9CbG9iKHQsIHR5cGVWYWwsIHF1
YWxpdHlWYWwpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZh
cygxMCwgMTApOworICAgIHZhciBvQ3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJk
Jyk7CisgICAgZHJhd0NhbnZhcyhvQ3R4KTsKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcy
ZCcpOworICAgIGRyYXdDYW52YXMoY3R4KTsKKyAgICB2YXIgaW1hZ2VMb2FkZWRDb3VudGVyID0g
MDsKKworICAgIHZhciBpbWFnZTEgPSBuZXcgSW1hZ2UoKTsKKyAgICB2YXIgaW1hZ2UyID0gbmV3
IEltYWdlKCk7CisgICAgdmFyIHByb21pc2U7CisgICAgaWYgKHR5cGVWYWwgPT0gImVtcHR5IiAm
JiBxdWFsaXR5VmFsID09ICJlbXB0eSIpCisgICAgICAgIHByb21pc2UgPSBvZmZzY3JlZW5DYW52
YXMuY29udmVydFRvQmxvYigpOworICAgIGVsc2UgaWYgKHR5cGVWYWwgPT0gImVtcHR5IiAmJiBx
dWFsaXR5VmFsICE9ICJlbXB0eSIpCisgICAgICAgIHByb21pc2UgPSBvZmZzY3JlZW5DYW52YXMu
Y29udmVydFRvQmxvYih7cXVhbGl0eTogcXVhbGl0eVZhbH0pOworICAgIGVsc2UgaWYgKHR5cGVW
YWwgIT0gImVtcHR5IiAmJiBxdWFsaXR5VmFsID09ICJlbXB0eSIpCisgICAgICAgIHByb21pc2Ug
PSBvZmZzY3JlZW5DYW52YXMuY29udmVydFRvQmxvYih7dHlwZTogdHlwZVZhbH0pOworICAgIGVs
c2UKKyAgICAgICAgcHJvbWlzZSA9IG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9CbG9iKHt0eXBl
OiB0eXBlVmFsLCBxdWFsaXR5OiBxdWFsaXR5VmFsfSk7CisgICAgcHJvbWlzZS50aGVuKGZ1bmN0
aW9uKGJsb2IyKSB7CisgICAgICAgIGltYWdlMi5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJs
b2IyKTsKKyAgICAgICAgaWYgKHR5cGVWYWwgPT0gImVtcHR5IiAmJiBxdWFsaXR5VmFsID09ICJl
bXB0eSIpIHsKKyAgICAgICAgICAgIGNhbnZhcy50b0Jsb2IoZnVuY3Rpb24oYmxvYjEpIHsKKyAg
ICAgICAgICAgICAgICBpbWFnZTEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iMSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIGlmICh0eXBlVmFsID09ICJlbXB0eSIgJiYg
cXVhbGl0eVZhbCAhPSAiZW1wdHkiKSB7CisgICAgICAgICAgICBjYW52YXMudG9CbG9iKGZ1bmN0
aW9uKGJsb2IxKSB7CisgICAgICAgICAgICAgICAgaW1hZ2UxLnNyYyA9IFVSTC5jcmVhdGVPYmpl
Y3RVUkwoYmxvYjEpOworICAgICAgICAgICAgfSwgImltYWdlL3BuZyIsIHF1YWxpdHlWYWwpOwor
ICAgICAgICB9IGVsc2UgaWYgKHR5cGVWYWwgIT0gImVtcHR5IiAmJiBxdWFsaXR5VmFsID09ICJl
bXB0eSIpIHsKKyAgICAgICAgICAgIGNhbnZhcy50b0Jsb2IoZnVuY3Rpb24oYmxvYjEpIHsKKyAg
ICAgICAgICAgICAgICBpbWFnZTEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iMSk7Cisg
ICAgICAgICAgICB9LCB0eXBlVmFsLCAxLjApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgY2FudmFzLnRvQmxvYihmdW5jdGlvbihibG9iMSkgeworICAgICAgICAgICAgICAgIGltYWdl
MS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IxKTsKKyAgICAgICAgICAgIH0sIHR5cGVW
YWwsIHF1YWxpdHlWYWwpOworICAgICAgICB9CisgICAgICAgIGltYWdlMS5vbmxvYWQgPSBpbWFn
ZTIub25sb2FkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpbWFnZUxv
YWRlZENvdW50ZXIrKzsKKyAgICAgICAgICAgIGlmIChpbWFnZUxvYWRlZENvdW50ZXIgPT0gMikg
eworICAgICAgICAgICAgICAgIGNvbXBhcmVJbWFnZXMoaW1hZ2UxLCBpbWFnZTIpOworICAgICAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9KTsK
K30KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdGVzdENvbnZlcnRUb0Jsb2IodCwg
ImVtcHR5IiwgImVtcHR5Iik7CisgICAgdGVzdENvbnZlcnRUb0Jsb2IodCwgImVtcHR5IiwgMS4w
KTsKKyAgICB0ZXN0Q29udmVydFRvQmxvYih0LCAiZW1wdHkiLCAwLjIpOworfSwgIlRlc3QgdGhh
dCBjb252ZXJ0VG9CbG9iIHdpdGggZGVmYXVsdCB0eXBlIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0
Iik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHRlc3RDb252ZXJ0VG9CbG9iKHQs
ICJpbWFnZS9wbmciLCAiZW1wdHkiKTsKKyAgICB0ZXN0Q29udmVydFRvQmxvYih0LCAiaW1hZ2Uv
cG5nIiwgMS4wKTsKKyAgICB0ZXN0Q29udmVydFRvQmxvYih0LCAiaW1hZ2UvcG5nIiwgMC4yKTsK
K30sICJUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIHBuZyBwcm9kdWNlcyBjb3JyZWN0IHJl
c3VsdCIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB0ZXN0Q29udmVydFRvQmxv
Yih0LCAiaW1hZ2UvanBlZyIsICJlbXB0eSIpOworICAgIHRlc3RDb252ZXJ0VG9CbG9iKHQsICJp
bWFnZS9qcGVnIiwgMS4wKTsKKyAgICB0ZXN0Q29udmVydFRvQmxvYih0LCAiaW1hZ2UvanBlZyIs
IDAuMik7Cit9LCAiVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBqcGdlIHByb2R1Y2VzIGNv
cnJlY3QgcmVzdWx0Iik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHRlc3RDb252
ZXJ0VG9CbG9iKHQsICJpbWFnZS93ZWJwIiwgImVtcHR5Iik7CisgICAgdGVzdENvbnZlcnRUb0Js
b2IodCwgImltYWdlL3dlYnAiLCAxLjApOworICAgIHRlc3RDb252ZXJ0VG9CbG9iKHQsICJpbWFn
ZS93ZWJwIiwgMC4yKTsKK30sICJUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIHdlYnAgcHJv
ZHVjZXMgY29ycmVjdCByZXN1bHQiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAg
dmFyIHdvcmtlciA9IG1ha2VXb3JrZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15V29ya2Vy
IikudGV4dENvbnRlbnQpOworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVu
Q2FudmFzKDEwLCAxMCk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtvZmZzY3JlZW5DYW52YXN9
LCBbb2Zmc2NyZWVuQ2FudmFzXSk7CisgICAgb2Zmc2NyZWVuQ2FudmFzLmNvbnZlcnRUb0Jsb2Io
KS50aGVuKHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF9mYWxz
ZSgiY29udmVydFRvQmxvYiBkaWRuJ3QgdGhyb3csIGJ1dCBzaG91bGQgYmUiKTsKKyAgICB9KSwg
dC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF90cnVlKGUgaW5z
dGFuY2VvZiBET01FeGNlcHRpb24pOworICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIklu
dmFsaWRTdGF0ZUVycm9yIik7CisgICAgfSkpOworfSwgIlRlc3QgdGhhdCBjYWxsIGNvbnZlcnRU
b0Jsb2Igb24gYSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGV4Y2VwdGlvbiIpOwor
Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3
IE9mZnNjcmVlbkNhbnZhcygwLCAwKTsKKyAgICBvZmZzY3JlZW5DYW52YXMuY29udmVydFRvQmxv
YigpLnRoZW4odC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X2Zh
bHNlKCJjb252ZXJ0VG9CbG9iIGRpZG4ndCB0aHJvdywgYnV0IHNob3VsZCBiZSIpOworICAgIH0p
LCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZSBp
bnN0YW5jZW9mIERPTUV4Y2VwdGlvbik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAi
SW5kZXhTaXplRXJyb3IiKTsKKyAgICB9KSk7Cit9LCAiVGVzdCB0aGF0IGNhbGwgY29udmVydFRv
QmxvYiBvbiBhIE9mZnNjcmVlbkNhbnZhcyB3aXRoIHNpemUgMCB0aHJvd3MgZXhjZXB0aW9uIik7
CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsK
KyAgICBpbWcuc3JjID0gIi9pbWFnZXMvZ3JlZW4ucG5nIjsKKyAgICBpbWcuY3Jvc3NPcmlnaW4g
PSAiYW5vbnltb3VzIjsKKyAgICBpbWcub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZSgoKSA9PiB7
CisgICAgICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAx
MCk7CisgICAgICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsK
KyAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApOworICAgICAgICBvZmZzY3JlZW5DYW52
YXMuY29udmVydFRvQmxvYigpLnRoZW4odC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGFzc2VydF9mYWxzZSgiY29udmVydFRvQmxvYiBkaWRuJ3QgdGhyb3csIGJ1dCBz
aG91bGQiKTsKKyAgICAgICAgfSksIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoZSBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbik7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIlNlY3VyaXR5RXJyb3IiKTsKKyAgICAgICAgfSkp
OworICAgIH0pOworfSwgIlRlc3QgdGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBPZmZzY3Jl
ZW5DYW52YXMgd2l0aCB0YWludGVkIG9yaWdpbiB0aHJvd3MgZXhjZXB0aW9uIik7CisKKzwvc2Ny
aXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVydC10by1ibG9iL29mZnNj
cmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2Iudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvY29udmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2Iudy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjlhOThjMWMxMDgzNjMzY2U3ZThiZjFhNDJiNWNkYWU0YTRi
NmQzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Iv
b2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxvYi53LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACisKK1BBU1MgVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBkZWZhdWx0IGFyZ3Vt
ZW50cyBwcm9kdWNlcyBjb3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0
IGNvbnZlcnRUb0Jsb2Igd2l0aCBkZWZhdWx0IHR5cGUvMS4wIHF1YWxpdHkgcHJvZHVjZXMgY29y
cmVjdCByZXN1bHQgaW4gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdp
dGggZGVmYXVsdCB0eXBlLzAuMiBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEg
d29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIHBuZy9kZWZhdWx0IHF1
YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhh
dCBjb252ZXJ0VG9CbG9iIHdpdGggcG5nLzEuMCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVz
dWx0IGluIGEgd29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIHBuZy8w
LjIgcXVhbGl0eSBwcm9kdWNlcyBjb3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciAKK1BBU1MgVGVz
dCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBqcGVnL2RlZmF1bHQgcXVhbGl0eSBwcm9kdWNlcyBj
b3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Ig
d2l0aCBqcGVnLzEuMCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEgd29ya2Vy
IAorUEFTUyBUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIGpwZWcvMC4yIHF1YWxpdHkgcHJv
ZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0
VG9CbG9iIHdpdGggd2VicC9kZWZhdWx0IHF1YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQg
aW4gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGggd2VicC8xLjAg
cXVhbGl0eSBwcm9kdWNlcyBjb3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0
aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCB3ZWJwLzAuMiBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3Qg
cmVzdWx0IGluIGEgd29ya2VyIAorUEFTUyBUZXN0IHRoYXQgY2FsbCBjb252ZXJ0VG9CbG9iIG9u
IGEgZGV0YWNoZWQgT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBleGNlcHRpb24gaW4gYSB3b3JrZXIg
CitQQVNTIFRlc3QgdGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBPZmZzY3JlZW5DYW52YXMg
d2l0aCBzaXplIDAgdGhyb3dzIGV4Y2VwdGlvbiBpbiBhIHdvcmtlciAKK1BBU1MgVGVzdCB0aGF0
IGNhbGwgY29udmVydFRvQmxvYiBvbiBhIE9mZnNjcmVlbkNhbnZhcyB3aXRoIHRhaW50ZWQgb3Jp
Z2luIHRocm93cyBleGNlcHRpb24gaW4gYSB3b3JrZXIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNvbnZlcnQudG8uYmxvYi53
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5j
b252ZXJ0LnRvLmJsb2Iudy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMWZhNGNmNDBlN2QyYTY4YTZkZjRl
Y2ZkOGJmODk4MjQ1MzlhNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29u
dmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2Iudy5odG1sCkBAIC0w
LDAgKzEsMzM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvaHRtbC9jYW52YXMvcmVzb3Vy
Y2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1vZmZzY3JlZW5jYW52YXMtY29udmVydHRv
YmxvYiI+Cis8c2NyaXB0IGlkPSJteVdvcmtlciIgdHlwZT0idGV4dC93b3JrZXIiPgorZnVuY3Rp
b24gZHJhd0NhbnZhcyhjdHgpCit7CisgICAgY3R4LmZpbGxTdHlsZSA9ICJyZWQiOworICAgIGN0
eC5maWxsUmVjdCgwLCAwLCA1LCA1KTsKKyAgICBjdHguZmlsbFN0eWxlID0gImdyZWVuIjsKKyAg
ICBjdHguZmlsbFJlY3QoNSwgMCwgNSwgNSk7CisgICAgY3R4LmZpbGxTdHlsZSA9ICJibHVlIjsK
KyAgICBjdHguZmlsbFJlY3QoMCwgNSwgNSwgNSk7CisgICAgY3R4LmZpbGxTdHlsZSA9ICJibGFj
ayI7CisgICAgY3R4LmZpbGxSZWN0KDUsIDUsIDUsIDUpOworfQorCitmdW5jdGlvbiB0ZXN0Q29u
dmVydFRvQmxvYih0eXBlVmFsLCBxdWFsaXR5VmFsKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZh
cyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICB2YXIgb0N0eCA9IG9mZnNjcmVl
bkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIGRyYXdDYW52YXMob0N0eCk7CisKKyAgICB2
YXIgcHJvbWlzZTsKKyAgICBpZiAodHlwZVZhbCA9PSAiZW1wdHkiICYmIHF1YWxpdHlWYWwgPT0g
ImVtcHR5IikKKyAgICAgICAgcHJvbWlzZSA9IG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9CbG9i
KCk7CisgICAgZWxzZSBpZiAodHlwZVZhbCA9PSAiZW1wdHkiICYmIHF1YWxpdHlWYWwgIT0gImVt
cHR5IikKKyAgICAgICAgcHJvbWlzZSA9IG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9CbG9iKHtx
dWFsaXR5OiBxdWFsaXR5VmFsfSk7CisgICAgZWxzZSBpZiAodHlwZVZhbCAhPSAiZW1wdHkiICYm
IHF1YWxpdHlWYWwgPT0gImVtcHR5IikKKyAgICAgICAgcHJvbWlzZSA9IG9mZnNjcmVlbkNhbnZh
cy5jb252ZXJ0VG9CbG9iKHt0eXBlOiB0eXBlVmFsfSk7CisgICAgZWxzZQorICAgICAgICBwcm9t
aXNlID0gb2Zmc2NyZWVuQ2FudmFzLmNvbnZlcnRUb0Jsb2Ioe3R5cGU6IHR5cGVWYWwsIHF1YWxp
dHk6IHF1YWxpdHlWYWx9KTsKKyAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAg
ICAgICBzZWxmLnBvc3RNZXNzYWdlKGJsb2IpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0
Q29udmVydFRvQmxvYkV4Y2VwdGlvbjEoKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBu
ZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgc2VsZi5wb3N0TWVzc2FnZSh7b2Zmc2Ny
ZWVuQ2FudmFzfSwgW29mZnNjcmVlbkNhbnZhc10pOworICAgIG9mZnNjcmVlbkNhbnZhcy5jb252
ZXJ0VG9CbG9iKCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShm
YWxzZSk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKGUg
aW5zdGFuY2VvZiBET01FeGNlcHRpb24gJiYgZS5uYW1lID09ICJJbnZhbGlkU3RhdGVFcnJvciIp
OworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0Q29udmVydFRvQmxvYkV4Y2VwdGlvbjIoKQor
eworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDAsIDApOwor
ICAgIG9mZnNjcmVlbkNhbnZhcy5jb252ZXJ0VG9CbG9iKCkudGhlbihmdW5jdGlvbigpIHsKKyAg
ICAgICAgc2VsZi5wb3N0TWVzc2FnZShmYWxzZSk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAg
ICAgICBzZWxmLnBvc3RNZXNzYWdlKGUgaW5zdGFuY2VvZiBET01FeGNlcHRpb24gJiYgZS5uYW1l
ID09ICJJbmRleFNpemVFcnJvciIpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0Q29udmVy
dFRvQmxvYkV4Y2VwdGlvbjMoYml0bWFwKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBu
ZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZh
cy5nZXRDb250ZXh0KCIyZCIpOworICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwKTsKKyAg
ICBvZmZzY3JlZW5DYW52YXMuY29udmVydFRvQmxvYigpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgIHNlbGYucG9zdE1lc3NhZ2UoZmFsc2UpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgc2VsZi5wb3N0TWVzc2FnZShlIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uICYmIGUubmFtZSA9
PSAiU2VjdXJpdHlFcnJvciIpOworICAgIH0pOworfQorCitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGUpIHsKKyAgICBpZiAoZS5kYXRhIGluc3RhbmNlb2YgSW1hZ2VCaXRtYXApIHsKKyAgICAg
ICAgdGVzdENvbnZlcnRUb0Jsb2JFeGNlcHRpb24zKGUuZGF0YSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzd2l0Y2goZS5kYXRhKSB7CisgICAgICAgIGNhc2UgJ3Rlc3QxJzoKKyAg
ICAgICAgICAgIHRlc3RDb252ZXJ0VG9CbG9iKCJlbXB0eSIsICJlbXB0eSIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3Rlc3QyJzoKKyAgICAgICAgICAgIHRlc3RDb252ZXJ0
VG9CbG9iKCJlbXB0eSIsIDEuMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAn
dGVzdDMnOgorICAgICAgICAgICAgdGVzdENvbnZlcnRUb0Jsb2IoImVtcHR5IiwgMC4yKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0NCc6CisgICAgICAgICAgICB0ZXN0
Q29udmVydFRvQmxvYigiaW1hZ2UvcG5nIiwgImVtcHR5Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAndGVzdDUnOgorICAgICAgICAgICAgdGVzdENvbnZlcnRUb0Jsb2IoImlt
YWdlL3BuZyIsIDEuMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDYn
OgorICAgICAgICAgICAgdGVzdENvbnZlcnRUb0Jsb2IoImltYWdlL3BuZyIsIDAuMik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDcnOgorICAgICAgICAgICAgdGVzdENv
bnZlcnRUb0Jsb2IoImltYWdlL2pwZWciLCAiZW1wdHkiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlICd0ZXN0OCc6CisgICAgICAgICAgICB0ZXN0Q29udmVydFRvQmxvYigiaW1h
Z2UvanBlZyIsIDEuMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDkn
OgorICAgICAgICAgICAgdGVzdENvbnZlcnRUb0Jsb2IoImltYWdlL2pwZWciLCAwLjIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3Rlc3QxMCc6CisgICAgICAgICAgICB0ZXN0
Q29udmVydFRvQmxvYigiaW1hZ2Uvd2VicCIsICJlbXB0eSIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgJ3Rlc3QxMSc6CisgICAgICAgICAgICB0ZXN0Q29udmVydFRvQmxvYigi
aW1hZ2Uvd2VicCIsIDEuMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVz
dDEyJzoKKyAgICAgICAgICAgIHRlc3RDb252ZXJ0VG9CbG9iKCJpbWFnZS93ZWJwIiwgMC4yKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0MTMnOgorICAgICAgICAgICAg
dGVzdENvbnZlcnRUb0Jsb2JFeGNlcHRpb24xKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAndGVzdDE0JzoKKyAgICAgICAgICAgIHRlc3RDb252ZXJ0VG9CbG9iRXhjZXB0aW9u
MigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfTsKKworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CitmdW5jdGlvbiBtYWtlV29ya2VyKHRlc3QpIHsKKyAgICB2YXIgYmxvYiA9IG5ldyBCbG9i
KFtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0Q29udGVudF0pOworICAg
IHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpOworICAg
IHdvcmtlci5vbmVycm9yID0gdGVzdC51bnJlYWNoZWRfZnVuYygiZXJyb3IiKTsKKyAgICByZXR1
cm4gd29ya2VyOworfQorCitmdW5jdGlvbiBkcmF3Q2FudmFzKGN0eCkKK3sKKyAgICBjdHguZmls
bFN0eWxlID0gInJlZCI7CisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDUsIDUpOworICAgIGN0eC5m
aWxsU3R5bGUgPSAiZ3JlZW4iOworICAgIGN0eC5maWxsUmVjdCg1LCAwLCA1LCA1KTsKKyAgICBj
dHguZmlsbFN0eWxlID0gImJsdWUiOworICAgIGN0eC5maWxsUmVjdCgwLCA1LCA1LCA1KTsKKyAg
ICBjdHguZmlsbFN0eWxlID0gImJsYWNrIjsKKyAgICBjdHguZmlsbFJlY3QoNSwgNSwgNSwgNSk7
Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVJbWFnZXMoaW1hZ2UxLCBpbWFnZTIpCit7CisgICAgdmFy
IGNhbnZhczEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICB2YXIgY2Fu
dmFzMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIGNhbnZhczEud2lk
dGggPSBjYW52YXMxLmhlaWdodCA9IDEwOworICAgIGNhbnZhczIud2lkdGggPSBjYW52YXMyLmhl
aWdodCA9IDEwOworICAgIHZhciBjdHgxID0gY2FudmFzMS5nZXRDb250ZXh0KCcyZCcpOworICAg
IHZhciBjdHgyID0gY2FudmFzMS5nZXRDb250ZXh0KCcyZCcpOworICAgIGN0eDEuZHJhd0ltYWdl
KGltYWdlMSwgMCwgMCk7CisgICAgY3R4Mi5kcmF3SW1hZ2UoaW1hZ2UyLCAwLCAwKTsKKyAgICB2
YXIgZGF0YTEgPSBjdHgxLmdldEltYWdlRGF0YSgwLCAwLCAxMCwgMTApLmRhdGE7CisgICAgdmFy
IGRhdGEyID0gY3R4Mi5nZXRJbWFnZURhdGEoMCwgMCwgMTAsIDEwKS5kYXRhOworICAgIGFzc2Vy
dF9lcXVhbHMoZGF0YTEubGVuZ3RoLCBkYXRhMi5sZW5ndGgpOworICAgIHZhciBpbWFnZU1hdGNo
ZWQgPSB0cnVlOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YTEubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgaWYgKGRhdGExW2ldICE9IGRhdGEyW2ldKSB7CisgICAgICAgICAgICBpbWFnZU1h
dGNoZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAg
IGFzc2VydF90cnVlKGltYWdlTWF0Y2hlZCk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVXaXRoVG9C
bG9iKHQsIHR5cGVWYWwsIHF1YWxpdHlWYWwsIGJsb2IyKQoreworICAgIHZhciBpbWFnZTEgPSBu
ZXcgSW1hZ2UoKTsKKyAgICB2YXIgaW1hZ2UyID0gbmV3IEltYWdlKCk7CisgICAgdmFyIGNhbnZh
cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIHZhciBjdHggPSBjYW52
YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBkcmF3Q2FudmFzKGN0eCk7CisgICAgdmFyIGltYWdl
TG9hZGVkQ291bnRlciA9IDA7CisKKyAgICBpZiAodHlwZVZhbCA9PSAiZW1wdHkiICYmIHF1YWxp
dHlWYWwgPT0gImVtcHR5IikgeworICAgICAgICBjYW52YXMudG9CbG9iKGZ1bmN0aW9uKGJsb2Ix
KSB7CisgICAgICAgICAgICBpbWFnZTEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iMSk7
CisgICAgICAgIH0pOworICAgIH0gZWxzZSBpZiAodHlwZVZhbCA9PSAiZW1wdHkiICYmIHF1YWxp
dHlWYWwgIT0gImVtcHR5IikgeworICAgICAgICBjYW52YXMudG9CbG9iKGZ1bmN0aW9uKGJsb2Ix
KSB7CisgICAgICAgICAgICBpbWFnZTEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iMSk7
CisgICAgICAgIH0sICJpbWFnZS9wbmciLCBxdWFsaXR5VmFsKTsKKyAgICB9IGVsc2UgaWYgKHR5
cGVWYWwgIT0gImVtcHR5IiAmJiBxdWFsaXR5VmFsID09ICJlbXB0eSIpIHsKKyAgICAgICAgY2Fu
dmFzLnRvQmxvYihmdW5jdGlvbihibG9iMSkgeworICAgICAgICAgICAgaW1hZ2UxLnNyYyA9IFVS
TC5jcmVhdGVPYmplY3RVUkwoYmxvYjEpOworICAgICAgICB9LCB0eXBlVmFsLCAxLjApOworICAg
IH0gZWxzZSB7CisgICAgICAgIGNhbnZhcy50b0Jsb2IoZnVuY3Rpb24oYmxvYjEpIHsKKyAgICAg
ICAgICAgIGltYWdlMS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IxKTsKKyAgICAgICAg
fSwgdHlwZVZhbCwgcXVhbGl0eVZhbCk7CisgICAgfQorICAgIGltYWdlMi5zcmMgPSBVUkwuY3Jl
YXRlT2JqZWN0VVJMKGJsb2IyKTsKKyAgICBpbWFnZTEub25sb2FkID0gaW1hZ2UyLm9ubG9hZCA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICBpbWFnZUxvYWRlZENvdW50ZXIrKzsK
KyAgICAgICAgaWYgKGltYWdlTG9hZGVkQ291bnRlciA9PSAyKSB7CisgICAgICAgICAgICBjb21w
YXJlSW1hZ2VzKGltYWdlMSwgaW1hZ2UyKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICB9CisgICAgfSk7Cit9CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3Jr
ZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdl
JywgdC5zdGVwX2Z1bmMoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRoVG9CbG9i
KHQsICJlbXB0eSIsICJlbXB0eSIsIG1zZy5kYXRhKTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBv
c3RNZXNzYWdlKCd0ZXN0MScpOworfSwgIlRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGggZGVm
YXVsdCBhcmd1bWVudHMgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIiKTsKKwor
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7
CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihtc2cpIHsKKyAgICAgICAgY29tcGFyZVdpdGhUb0Jsb2IodCwgImVtcHR5IiwgMS4wLCBt
c2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDInKTsKK30s
ICJUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIGRlZmF1bHQgdHlwZS8xLjAgcXVhbGl0eSBw
cm9kdWNlcyBjb3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jKGZ1bmN0aW9uKG1zZykgeworICAg
ICAgICBjb21wYXJlV2l0aFRvQmxvYih0LCAiZW1wdHkiLCAwLjIsIG1zZy5kYXRhKTsKKyAgICB9
KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0MycpOworfSwgIlRlc3QgdGhhdCBjb252
ZXJ0VG9CbG9iIHdpdGggZGVmYXVsdCB0eXBlLzAuMiBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3Qg
cmVzdWx0IGluIGEgd29ya2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZh
ciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdt
ZXNzYWdlJywgdC5zdGVwX2Z1bmMoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRo
VG9CbG9iKHQsICJpbWFnZS9wbmciLCAiZW1wdHkiLCBtc2cuZGF0YSk7CisgICAgfSkpOworICAg
IHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDQnKTsKK30sICJUZXN0IHRoYXQgY29udmVydFRvQmxv
YiB3aXRoIHBuZy9kZWZhdWx0IHF1YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3
b3JrZXIiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1h
a2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgY29tcGFyZVdpdGhUb0Jsb2IodCwgImlt
YWdlL3BuZyIsIDEuMCwgbXNnLmRhdGEpOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3Nh
Z2UoJ3Rlc3Q1Jyk7Cit9LCAiVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBwbmcvMS4wIHF1
YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIiKTsKKworYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29y
a2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbihtc2cp
IHsKKyAgICAgICAgY29tcGFyZVdpdGhUb0Jsb2IodCwgImltYWdlL3BuZyIsIDAuMiwgbXNnLmRh
dGEpOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3Q2Jyk7Cit9LCAiVGVz
dCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCBwbmcvMC4yIHF1YWxpdHkgcHJvZHVjZXMgY29ycmVj
dCByZXN1bHQgaW4gYSB3b3JrZXIiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAg
dmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgY29tcGFyZVdp
dGhUb0Jsb2IodCwgImltYWdlL2pwZWciLCAiZW1wdHkiLCBtc2cuZGF0YSk7CisgICAgfSkpOwor
ICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDcnKTsKK30sICJUZXN0IHRoYXQgY29udmVydFRv
QmxvYiB3aXRoIGpwZWcvZGVmYXVsdCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGlu
IGEgd29ya2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIg
PSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywg
dC5zdGVwX2Z1bmMoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRoVG9CbG9iKHQs
ICJpbWFnZS9qcGVnIiwgMS4wLCBtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0
TWVzc2FnZSgndGVzdDgnKTsKK30sICJUZXN0IHRoYXQgY29udmVydFRvQmxvYiB3aXRoIGpwZWcv
MS4wIHF1YWxpdHkgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgaW4gYSB3b3JrZXIiKTsKKworYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7Cisg
ICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhmdW5jdGlv
bihtc2cpIHsKKyAgICAgICAgY29tcGFyZVdpdGhUb0Jsb2IodCwgImltYWdlL2pwZWciLCAwLjIs
IG1zZy5kYXRhKTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0OScpOwor
fSwgIlRlc3QgdGhhdCBjb252ZXJ0VG9CbG9iIHdpdGgganBlZy8wLjIgcXVhbGl0eSBwcm9kdWNl
cyBjb3JyZWN0IHJlc3VsdCBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jKGZ1bmN0aW9uKG1zZykgeworICAgICAgICBj
b21wYXJlV2l0aFRvQmxvYih0LCAiaW1hZ2Uvd2VicCIsICJlbXB0eSIsIG1zZy5kYXRhKTsKKyAg
ICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0MTAnKTsKK30sICJUZXN0IHRoYXQg
Y29udmVydFRvQmxvYiB3aXRoIHdlYnAvZGVmYXVsdCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3Qg
cmVzdWx0IGluIGEgd29ya2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZh
ciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdt
ZXNzYWdlJywgdC5zdGVwX2Z1bmMoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRo
VG9CbG9iKHQsICJpbWFnZS93ZWJwIiwgMS4wLCBtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdv
cmtlci5wb3N0TWVzc2FnZSgndGVzdDExJyk7Cit9LCAiVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Ig
d2l0aCB3ZWJwLzEuMCBxdWFsaXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEgd29ya2Vy
Iik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29y
a2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1
bmMoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGNvbXBhcmVXaXRoVG9CbG9iKHQsICJpbWFnZS93
ZWJwIiwgMC4yLCBtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgn
dGVzdDEyJyk7Cit9LCAiVGVzdCB0aGF0IGNvbnZlcnRUb0Jsb2Igd2l0aCB3ZWJwLzAuMiBxdWFs
aXR5IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGluIGEgd29ya2VyIik7CisKK2FzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKHQpOworICAgIHdvcmtl
ci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbiht
c2cpIHsKKyAgICAgICAgaWYgKG1zZy5kYXRhIGluc3RhbmNlb2YgT2JqZWN0KQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgICAgIHQuZG9u
ZSgpOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3QxMycpOworfSwgIlRl
c3QgdGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMg
dGhyb3dzIGV4Y2VwdGlvbiBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAg
ICAgIGFzc2VydF90cnVlKG1zZy5kYXRhKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfSkpOwor
ICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDE0Jyk7Cit9LCAiVGVzdCB0aGF0IGNhbGwgY29u
dmVydFRvQmxvYiBvbiBhIE9mZnNjcmVlbkNhbnZhcyB3aXRoIHNpemUgMCB0aHJvd3MgZXhjZXB0
aW9uIGluIGEgd29ya2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBp
bWcgPSBuZXcgSW1hZ2UoKTsKKyAgICBpbWcuc3JjID0gIi9pbWFnZXMvZ3JlZW4ucG5nIjsKKyAg
ICBpbWcuY3Jvc3NPcmlnaW4gPSAiYW5vbnltb3VzIjsKKyAgICBpbWcub25sb2FkID0gdC5zdGVw
X2Z1bmNfZG9uZSgoKSA9PiB7CisgICAgICAgIGNyZWF0ZUltYWdlQml0bWFwKGltZykudGhlbih0
LnN0ZXBfZnVuY19kb25lKGJpdG1hcCA9PiB7CisgICAgICAgICAgICB2YXIgd29ya2VyID0gbWFr
ZVdvcmtlcih0KTsKKyAgICAgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdl
JywgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAg
ICB9KSk7CisgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoYml0bWFwKTsKKyAgICAgICAg
fSkpOworICAgIH0pOworfSwgIlRlc3QgdGhhdCBjYWxsIGNvbnZlcnRUb0Jsb2Igb24gYSBPZmZz
Y3JlZW5DYW52YXMgd2l0aCB0YWludGVkIG9yaWdpbiB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29y
a2VyIik7CisKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvY29udmVy
dC10by1ibG9iL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZlcnQtdG8tYmxv
Yi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2I5MzgxOWYzNDJjZmVkODliMGZjYjViZThm
YzdkZTY5ZDc1YWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2NvbnZlcnQt
dG8tYmxvYi93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvY29udmVydC10by1ibG9iL29mZnNjcmVlbmNhbnZhcy5jb252ZXJ0LnRvLmJsb2Iu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL21hbnVhbC9jb252ZXJ0LXRvLWJsb2Ivb2Zmc2NyZWVuY2FudmFzLmNv
bnZlcnQudG8uYmxvYi53Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIv
b2Zmc2NyZWVuY2FudmFzLmZpbHRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmls
dGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNjE1
Mjc3ZTcyZjYyOTYxNjM1NDgyNWFmYThiZDJlYTFlYjkzZmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIG5vbmUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L2ZpbHRlci9vZmZzY3JlZW5jYW52YXMuZmlsdGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU2OTE5ODNm
MWUxMDI3OTY3OThhNmQ1MjUzYjk1ZTBkYjUzMjIzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci5odG1sCkBAIC0wLDAgKzEs
MjcgQEAKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJvZmZzY3JlZW5jYW52YXMuZmlsdGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+Cit2YXIgcGF0dGVybkNhbnZhcyA9IGNyZWF0ZVBhdHRlcm5DYW52YXMoKTsKKwordmFyIGdl
dE9mZnNjcmVlbkNvbnRleHRGb3JGaWx0ZXIgPSBmdW5jdGlvbihmaWx0ZXIsIHBhdHRlcm4pIHsK
KyAgdmFyIG9jID0gbmV3IE9mZnNjcmVlbkNhbnZhcyg4MCwgODApOworICB2YXIgb2ZmQ3R4ID0g
b2MuZ2V0Q29udGV4dCgnMmQnKTsKKyAgb2ZmQ3R4LmZpbHRlciA9IGZpbHRlcjsKKyAgb2ZmQ3R4
LmRyYXdJbWFnZShwYXR0ZXJuLCA1LCA1KTsKKyAgb2ZmQ3R4LmRyYXdJbWFnZShwYXR0ZXJuLCAy
NSwgMjUpOworICBvZmZDdHguZHJhd0ltYWdlKHBhdHRlcm4sIDQ1LCA0NSk7CisgIHJldHVybiBv
ZmZDdHg7Cit9OworCit2YXIgdGVzdEZpbHRlciA9IGZ1bmN0aW9uKGZpbHRlcikgeworICB2YXIg
b2ZmQ3R4ID0gZ2V0T2Zmc2NyZWVuQ29udGV4dEZvckZpbHRlcihmaWx0ZXIsIHBhdHRlcm5DYW52
YXMpOworICB2YXIgY3R4ID0gZ2V0UmVndWxhckNvbnRleHRGb3JGaWx0ZXIoZmlsdGVyLCBwYXR0
ZXJuQ2FudmFzKTsKKyAgdmFyIG9mZkltYWdlRGF0YSA9IG9mZkN0eC5nZXRJbWFnZURhdGEoMCwg
MCwgODAsIDgwKS5kYXRhOworICB2YXIgaW1hZ2VEYXRhID0gY3R4LmdldEltYWdlRGF0YSgwLCAw
LCA4MCwgODApLmRhdGE7CisgIG1hdGNoSW1hZ2VEYXRhUmVzdWx0cyhvZmZJbWFnZURhdGEsIGlt
YWdlRGF0YSwgZmlsdGVyKTsKK307CisKK2dlbmVyYXRlX3Rlc3RzKHRlc3RGaWx0ZXIsIFtmaWx0
ZXJzXSk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9v
ZmZzY3JlZW5jYW52YXMuZmlsdGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3Jl
ZW5jYW52YXMuZmlsdGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMmUyNDU4MDMwZjUzZGRiZTFkNjZiZjMx
MTUyODQ3MzNjNjg1MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVy
L29mZnNjcmVlbmNhbnZhcy5maWx0ZXIuanMKQEAgLTAsMCArMSw0OCBAQAordmFyIGdldFJlZ3Vs
YXJDb250ZXh0Rm9yRmlsdGVyID0gZnVuY3Rpb24oZmlsdGVyLCBwYXR0ZXJuKSB7CisgIHZhciBj
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgIGMud2lkdGggPSBjLmhlaWdo
dCA9IDgwOworICB2YXIgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOworICBjdHguZmlsdGVyID0g
ZmlsdGVyOworICBjdHguZHJhd0ltYWdlKHBhdHRlcm4sIDUsIDUpOworICBjdHguZHJhd0ltYWdl
KHBhdHRlcm4sIDI1LCAyNSk7CisgIGN0eC5kcmF3SW1hZ2UocGF0dGVybiwgNDUsIDQ1KTsKKyAg
cmV0dXJuIGN0eDsKK307CisKK3ZhciBtYXRjaEltYWdlRGF0YVJlc3VsdHMgPSBmdW5jdGlvbihv
ZmZzY3JlZW5JbWFnZSwgcmVndWxhckltYWdlLCBmaWx0ZXIpIHsKKyAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhvZmZzY3JlZW5JbWFnZSwgcmVndWxhckltYWdlLAorICAgICAgIlRoZSBpbWFnZSBkYXRh
IGdlbmVyYXRlZCBieSBmaWx0ZXIgIiArCisgICAgICBmaWx0ZXIgKworICAgICAgIiBzaG91bGQg
YmUgdGhlIHNhbWUgZm9yIGJvdGggT2Zmc2NyZWVuQ2FudmFzIGFuZCByZWd1bGFyIGNhbnZhcyIp
OworfTsKKwordmFyIGNyZWF0ZVBhdHRlcm5DYW52YXMgPSBmdW5jdGlvbigpIHsKKyAgdmFyIHBh
dHRlcm5DYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgcGF0dGVy
bkNhbnZhcy53aWR0aCA9IDIwOworICBwYXR0ZXJuQ2FudmFzLmhlaWdodCA9IDIwOworICB2YXIg
cGF0dGVybkN0eCA9IHBhdHRlcm5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgcGF0dGVybkN0
eC5maWxsU3R5bGUgPSAnI0EwMCc7CisgIHBhdHRlcm5DdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEw
KTsKKyAgcGF0dGVybkN0eC5maWxsU3R5bGUgPSAnIzBBMCc7CisgIHBhdHRlcm5DdHguZmlsbFJl
Y3QoMTAsIDAsIDEwLCAxMCk7CisgIHBhdHRlcm5DdHguZmlsbFN0eWxlID0gJyMwMEEnOworICBw
YXR0ZXJuQ3R4LmZpbGxSZWN0KDAsIDEwLCAxMCwgMTApOworICBwYXR0ZXJuQ3R4LmZpbGxTdHls
ZSA9ICIjQUEwIjsKKyAgcGF0dGVybkN0eC5maWxsUmVjdCgxMCwgMTAsIDEwLCAxMCk7CisgIHJl
dHVybiBwYXR0ZXJuQ2FudmFzOworfTsKKwordmFyIGZpbHRlcnMgPSAgICBbICJub25lIiAgICAg
ICAgICAsCisgICAgICAiYmx1cigxMHB4KSIgICAgICAgICAgICAgICAgICwKKyAgICAgICJicmln
aHRuZXNzKDQwJSkiICAgICAgICAgICAgLAorICAgICAgImNvbnRyYXN0KDIwJSkiICAgICAgICAg
ICAgICAsCisgICAgICAiZHJvcC1zaGFkb3coMCAwIDVweCBncmVlbikiICwKKyAgICAgICJncmF5
c2NhbGUoMTAwJSkiICAgICAgICAgICAgLAorICAgICAgImludmVydCgxMDAlKSIgICAgICAgICAg
ICAgICAsCisgICAgICAib3BhY2l0eSg1MCUpIiAgICAgICAgICAgICAgICwKKyAgICAgICJzYXR1
cmF0ZSgyMCUpIiAgICAgICAgICAgICAgLAorICAgICAgInNlcGlhKDEwMCUpIiAgICAgICAgICAg
ICAgICAsCisgICAgICAic2VwaWEoMSkgaHVlLXJvdGF0ZSgyMDBkZWcpIiwKKyAgICAgICJ1cmwo
I3VybCkiICAgICAgICAgICAgICAgICAgXTsKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXIudy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXIudy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmVlM2Y3MTNmZjI5NjM2OWQwYjQwNWY4MWRkNjQ4ZjA1YWMwNDA0YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRl
ci53LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0ZBSUw6IFRpbWVkIG91dCB3YWl0aW5n
IGZvciBub3RpZnlEb25lIHRvIGJlIGNhbGxlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvZmlsdGVyL29mZnNjcmVlbmNhbnZhcy5maWx0ZXIudy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L2ZpbHRlci9vZmZzY3JlZW5jYW52YXMuZmlsdGVyLncuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmVkOTE1
YjUzOTI5OTgxMDUzNjVmOWU3Yzk3NjgwMThjNDFhZjlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3JlZW5jYW52YXMuZmlsdGVyLncuaHRtbApAQCAtMCww
ICsxLDU0IEBACis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ib2Zmc2NyZWVuY2FudmFzLmZpbHRlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IGlkPSdteVdvcmtlcicgdHlwZT0ndGV4dC93b3JrZXInPgorc2VsZi5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihlKSB7CisgIHZhciBnZXRPZmZzY3JlZW5DYW52YXNGb3JGaWx0ZXIgPSBmdW5j
dGlvbihmaWx0ZXIsIHBhdHRlcm4pIHsKKyAgICB2YXIgb2MgPSBuZXcgT2Zmc2NyZWVuQ2FudmFz
KDgwLCA4MCk7CisgICAgdmFyIG9mZkN0eCA9IG9jLmdldENvbnRleHQoJzJkJyk7CisgICAgb2Zm
Q3R4LmZpbHRlciA9IGZpbHRlcjsKKyAgICBvZmZDdHguZHJhd0ltYWdlKHBhdHRlcm4sIDUsIDUp
OworICAgIG9mZkN0eC5kcmF3SW1hZ2UocGF0dGVybiwgMjUsIDI1KTsKKyAgICBvZmZDdHguZHJh
d0ltYWdlKHBhdHRlcm4sIDQ1LCA0NSk7CisgICAgcmV0dXJuIG9jOworICB9OworCisgIHZhciBm
aWx0ZXJzID0gZS5kYXRhLmZpbHRlcnM7CisgIHZhciBwYXR0ZXJuID0gZS5kYXRhLnBhdHRlcm47
CisgIHZhciByZXQgPSBbXTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWx0ZXJzLmxlbmd0aDsg
aSsrKSB7CisgICAgIHZhciBvYyA9IGdldE9mZnNjcmVlbkNhbnZhc0ZvckZpbHRlcihmaWx0ZXJz
W2ldLCBwYXR0ZXJuKTsKKyAgICAgdmFyIGltYWdlQml0bWFwID0gb2MudHJhbnNmZXJUb0ltYWdl
Qml0bWFwKCk7CisgICAgIHJldC5wdXNoKGltYWdlQml0bWFwKTsKKyAgfQorICBzZWxmLnBvc3RN
ZXNzYWdlKHJldCwgcmV0KTsKK307Cis8L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgcGF0dGVybkNh
bnZhcyA9IGNyZWF0ZVBhdHRlcm5DYW52YXMoKTsKKworLy8gQnVpbGQgYSBsaXN0IG9mIGltYWdl
IGRhdGEgb24gcmVndWxhciBjYW52YXMgd2l0aCBkaWZmZXJlbnQgZmlsdGVycwordmFyIGxpc3RD
YW52YXNJbWFnZURhdGEgPSBbXTsKK2ZvciAodmFyIGogPSAwOyBqIDwgZmlsdGVycy5sZW5ndGg7
IGorKykgeworICB2YXIgY3R4ID0gZ2V0UmVndWxhckNvbnRleHRGb3JGaWx0ZXIoZmlsdGVyc1tq
XSwgcGF0dGVybkNhbnZhcyk7CisgIGxpc3RDYW52YXNJbWFnZURhdGEucHVzaChjdHguZ2V0SW1h
Z2VEYXRhKDAsIDAsIDgwLCA4MCkuZGF0YSk7Cit9CisKK2Z1bmN0aW9uIGNvbnN1bWVJbWFnZUJp
dG1hcChwYXR0ZXJuSW1hZ2UpIHsKKyAgYXN5bmNfdGVzdCh0ID0+IHsKKyAgICB2YXIgYmxvYiA9
IG5ldyBCbG9iKFtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXlXb3JrZXInKS50ZXh0Q29udGVu
dF0pOworICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxv
YikpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgbXNnID0+IHsKKyAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXNnLmRhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
dmFyIG91dHB1dEN0eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRl
eHQoJzJkJyk7CisgICAgICAgIG91dHB1dEN0eC5kcmF3SW1hZ2UobXNnLmRhdGFbaV0sIDAsIDAs
IDgwLCA4MCk7CisgICAgICAgIG1hdGNoSW1hZ2VEYXRhUmVzdWx0cyhvdXRwdXRDdHguZ2V0SW1h
Z2VEYXRhKDAsIDAsIDgwLCA4MCkuZGF0YSwgbGlzdENhbnZhc0ltYWdlRGF0YVtpXSwgZmlsdGVy
c1tpXSk7CisgICAgICB9CisgICAgICB0LmRvbmUoKTsKKyAgICB9KTsKKyAgd29ya2VyLnBvc3RN
ZXNzYWdlKHtmaWx0ZXJzOiBmaWx0ZXJzLCBwYXR0ZXJuOiBwYXR0ZXJuSW1hZ2V9LCBbcGF0dGVy
bkltYWdlXSk7CisgIH0pOworfQorCitjcmVhdGVJbWFnZUJpdG1hcChwYXR0ZXJuQ2FudmFzKS50
aGVuKGNvbnN1bWVJbWFnZUJpdG1hcCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L21hbnVhbC9maWx0ZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MmI0MDk5N2M1YWFhYmExOTBiOThmNGQxZGUxNzBl
NGZjNDM0MTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvZmlsdGVyL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9maWx0
ZXIvb2Zmc2NyZWVuY2FudmFzLmZpbHRlci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9v
ZmZzY3JlZW5jYW52YXMuZmlsdGVyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ZpbHRlci9vZmZzY3Jl
ZW5jYW52YXMuZmlsdGVyLncuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdl
LXNtb290aGluZy9pbWFnZS5zbW9vdGhpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L2ltYWdlLXNtb290aGluZy9pbWFnZS5zbW9vdGhpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBlMzM4MTExMDBjNjMyNzUwZTA1MzMzNDdhZTMwMDJkZWJkZTA1MTIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorCitQQVNTIFdoZW4gdGhlIGNvbnRleHQgaXMgY3Jl
YXRlZCwgaW1hZ2VTbW9vdGhpbmdFbmFibGVkIG11c3QgYmUgc2V0IHRvIHRydWUuIAorUEFTUyBP
biBnZXR0aW5nIGltYWdlU21vb3RoaW5nRW5hYmxlZCwgdGhlIHVzZXIgYWdlbnQgbXVzdCByZXR1
cm4gdGhlIGxhc3QgdmFsdWUgaXQgd2FzIHNldCB0by4gCitQQVNTIFRlc3QgdGhhdCBpbWFnZSBz
bW9vdGhpbmcgaXMgYWN0dWFsbHkgb24gYnkgZGVmYXVsdC4gCitQQVNTIFRlc3QgdGhhdCBpbWFn
ZSBzbW9vdGhpbmcgd29ya3Mgd2hlbiBpbWFnZVNtb290aGluZ0VuYWJsZWQgaXMgc2V0IHRvIHRy
dWUgCitQQVNTIFRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVz
dC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGRyYXdJbWFnZSgpLiAKK0ZBSUwg
VGVzdCB0aGF0IGltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlIChuZWFyZXN0LW5laWdoYm9y
IGludGVycG9sYXRpb24pIHdvcmtzIHdpdGggZmlsbFJlY3QgYW5kIGNyZWF0ZVBhdHRlcm4oKS4g
YXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMCB0byBiZSAwIGJ1dCBnb3Qg
MTc2IChleHBlY3RlZCBhcnJheSBbMCwgMjU1LCAwLCAyNTVdIGdvdCBvYmplY3QgIjE3Niw3OCww
LDI1NSIpCitGQUlMIFRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVh
cmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGZpbGwoKSBhbmQgY3JlYXRl
UGF0dGVybigpLiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAwIHRvIGJl
IDAgYnV0IGdvdCAxNzYgKGV4cGVjdGVkIGFycmF5IFswLCAyNTUsIDAsIDI1NV0gZ290IG9iamVj
dCAiMTc2LDc4LDAsMjU1IikKK0ZBSUwgVGVzdCB0aGF0IGltYWdlU21vb3RoaW5nRW5hYmxlZCA9
IGZhbHNlIChuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24pIHdvcmtzIHdpdGggc3Ryb2tl
KCkgYW5kIGNyZWF0ZVBhdHRlcm4oKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJv
cGVydHkgMCB0byBiZSAwIGJ1dCBnb3QgMTc2IChleHBlY3RlZCBhcnJheSBbMCwgMjU1LCAwLCAy
NTVdIGdvdCBvYmplY3QgIjE3Niw3OCwwLDI1NSIpCitQQVNTIFRlc3QgdGhhdCBpbWFnZVNtb290
aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSBzdGls
bCB3b3JrcyBhZnRlciByZXBhaW50cy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9p
bWFnZS1zbW9vdGhpbmcvaW1hZ2Uuc21vb3RoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1h
Z2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ODUyNGM1MWQx
YWNhZGNmYTc1ODJmOWFlYjczMjU2NGJiNTBlMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy5odG1sCkBAIC0wLDAgKzEs
MTI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5P
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgaW1hZ2VTbW9vdGhpbmdFbmFibGVkIHRl
c3Q8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
LyN0aGUtb2Zmc2NyZWVuLTJkLXJlbmRlcmluZy1jb250ZXh0Ij4KKzxzY3JpcHQ+CitmdW5jdGlv
biBjcmVhdGVUZXN0SW1hZ2UoKSB7CisgIHZhciBpbWFnZSA9IG5ldyBPZmZzY3JlZW5DYW52YXMo
MTAwLCA1MCk7CisgIHZhciBpbWdjdHggPSBpbWFnZS5nZXRDb250ZXh0KCcyZCcpOworICBpbWdj
dHguZmlsbFN0eWxlID0gIiNGMDAiOworICBpbWdjdHguZmlsbFJlY3QoMCwgMCwgMiwgMik7Cisg
IGltZ2N0eC5maWxsU3R5bGUgPSAiIzBGMCI7CisgIGltZ2N0eC5maWxsUmVjdCgwLCAwLCAxLCAx
KTsKKyAgcmV0dXJuIGltYWdlOworfQorCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgb2Zmc2Ny
ZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgdmFyIGN0eCA9IG9m
ZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICBhc3NlcnRfdHJ1ZShjdHguaW1hZ2VT
bW9vdGhpbmdFbmFibGVkKTsKK30sICJXaGVuIHRoZSBjb250ZXh0IGlzIGNyZWF0ZWQsIGltYWdl
U21vb3RoaW5nRW5hYmxlZCBtdXN0IGJlIHNldCB0byB0cnVlLiIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUw
KTsKKyAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICBjdHgu
aW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2U7CisgIGFzc2VydF9mYWxzZShjdHguaW1hZ2VT
bW9vdGhpbmdFbmFibGVkKTsKK30sICJPbiBnZXR0aW5nIGltYWdlU21vb3RoaW5nRW5hYmxlZCwg
dGhlIHVzZXIgYWdlbnQgbXVzdCByZXR1cm4gdGhlIGxhc3QgdmFsdWUgaXQgd2FzIHNldCB0by4i
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZz
Y3JlZW5DYW52YXMoMTAwLCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29u
dGV4dCgnMmQnKTsKKyAgdmFyIGltYWdlID0gY3JlYXRlVGVzdEltYWdlKCk7CisgIGN0eC5zY2Fs
ZSgxMCwgMTApOworICBjdHguZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKyAgdmFyIHBpeGVscyA9
IGN0eC5nZXRJbWFnZURhdGEoOSwgOSwgMSwgMSkuZGF0YTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMo
cGl4ZWxzWzBdLCAwKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGl4ZWxzWzFdLCAyNTUpOworfSwg
IlRlc3QgdGhhdCBpbWFnZSBzbW9vdGhpbmcgaXMgYWN0dWFsbHkgb24gYnkgZGVmYXVsdC4iKTsK
KwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3Jl
ZW5DYW52YXMoMTAwLCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IHRydWU7CisgIHZhciBpbWFn
ZSA9IGNyZWF0ZVRlc3RJbWFnZSgpOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmRyYXdJ
bWFnZShpbWFnZSwgMCwgMCk7CisgIHZhciBwaXhlbHMgPSBjdHguZ2V0SW1hZ2VEYXRhKDksIDks
IDEsIDEpLmRhdGE7CisgIGFzc2VydF9ub3RfZXF1YWxzKHBpeGVsc1swXSwgMCk7CisgIGFzc2Vy
dF9ub3RfZXF1YWxzKHBpeGVsc1sxXSwgMjU1KTsKK30sICJUZXN0IHRoYXQgaW1hZ2Ugc21vb3Ro
aW5nIHdvcmtzIHdoZW4gaW1hZ2VTbW9vdGhpbmdFbmFibGVkIGlzIHNldCB0byB0cnVlIik7CisK
K3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVu
Q2FudmFzKDEwMCwgNTApOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQo
JzJkJyk7CisgIHZhciBpbWFnZSA9IGNyZWF0ZVRlc3RJbWFnZSgpOworICBjdHguaW1hZ2VTbW9v
dGhpbmdFbmFibGVkID0gZmFsc2U7CisgIGN0eC5zY2FsZSgxMCwgMTApOworICBjdHguZHJhd0lt
YWdlKGltYWdlLCAwLCAwKTsKKyAgdmFyIHBpeGVscyA9IGN0eC5nZXRJbWFnZURhdGEoOSwgOSwg
MSwgMSkuZGF0YTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbHMsIFswLCAyNTUsIDAsIDI1
NV0pOworfSwgIlRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVz
dC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGRyYXdJbWFnZSgpLiIpOworCit0
ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNh
bnZhcygxMDAsIDUwKTsKKyAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcy
ZCcpOworICB2YXIgaW1hZ2UgPSBjcmVhdGVUZXN0SW1hZ2UoKTsKKyAgY3R4LmltYWdlU21vb3Ro
aW5nRW5hYmxlZCA9IGZhbHNlOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmZpbGxTdHls
ZSA9IGN0eC5jcmVhdGVQYXR0ZXJuKGltYWdlLCAncmVwZWF0Jyk7CisgIGN0eC5maWxsUmVjdCgw
LCAwLCAxMCwgMTApOworICB2YXIgcGl4ZWxzID0gY3R4LmdldEltYWdlRGF0YSg5LCA5LCAxLCAx
KS5kYXRhOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBpeGVscywgWzAsIDI1NSwgMCwgMjU1XSk7
Cit9LCAiVGVzdCB0aGF0IGltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlIChuZWFyZXN0LW5l
aWdoYm9yIGludGVycG9sYXRpb24pIHdvcmtzIHdpdGggZmlsbFJlY3QgYW5kIGNyZWF0ZVBhdHRl
cm4oKS4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5l
dyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMu
Z2V0Q29udGV4dCgnMmQnKTsKKyAgdmFyIGltYWdlID0gY3JlYXRlVGVzdEltYWdlKCk7CisgIGN0
eC5pbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZTsKKyAgY3R4LmZpbGxTdHlsZSA9IGN0eC5j
cmVhdGVQYXR0ZXJuKGltYWdlLCAncmVwZWF0Jyk7CisgIGN0eC5zY2FsZSgxMCwgMTApOworICBj
dHgucmVjdCgwLCAwLCAxMCwgMTApOworICBjdHguZmlsbCgpOworICB2YXIgcGl4ZWxzID0gY3R4
LmdldEltYWdlRGF0YSg5LCA5LCAxLCAxKS5kYXRhOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBp
eGVscywgWzAsIDI1NSwgMCwgMjU1XSk7Cit9LCAiVGVzdCB0aGF0IGltYWdlU21vb3RoaW5nRW5h
YmxlZCA9IGZhbHNlIChuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24pIHdvcmtzIHdpdGgg
ZmlsbCgpIGFuZCBjcmVhdGVQYXR0ZXJuKCkuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZh
ciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOworICB2YXIg
Y3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIHZhciBpbWFnZSA9IGNy
ZWF0ZVRlc3RJbWFnZSgpOworICBjdHguc3Ryb2tlU3R5bGUgPSBjdHguY3JlYXRlUGF0dGVybihp
bWFnZSwgJ3JlcGVhdCcpOworICBjdHgubGluZVdpZHRoID0gNTsKKyAgY3R4LmltYWdlU21vb3Ro
aW5nRW5hYmxlZCA9IGZhbHNlOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmJlZ2luUGF0
aCgpOworICBjdHgubW92ZVRvKDAsIDApOworICBjdHgubGluZVRvKDEwLCAxMCk7CisgIGN0eC5z
dHJva2UoKTsKKyAgdmFyIHBpeGVscyA9IGN0eC5nZXRJbWFnZURhdGEoOSwgOSwgMSwgMSkuZGF0
YTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbHMsIFswLCAyNTUsIDAsIDI1NV0pOworfSwg
IlRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJv
ciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIHN0cm9rZSgpIGFuZCBjcmVhdGVQYXR0ZXJuKCku
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciByZXBhaW50cyA9IDU7CisgIHZhciBvZmZz
Y3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOworICB2YXIgY3R4ID0g
b2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKKyAgZnVuY3Rpb24gZHJhdygpIHsK
KyAgICBjdHguY2xlYXJSZWN0KDAsIDAsIDEwLCAxMCk7CisgICAgY3R4LnNldFRyYW5zZm9ybSgx
LCAwLCAwLCAxLCAwLCAwKTsKKyAgICB2YXIgaW1hZ2UgPSBjcmVhdGVUZXN0SW1hZ2UoKTsKKyAg
ICBjdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2U7CisgICAgY3R4LnNjYWxlKDEwLCAx
MCk7CisgICAgY3R4LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgdmFyIHBpeGVscyA9IGN0
eC5nZXRJbWFnZURhdGEoOSwgOSwgMSwgMSkuZGF0YTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KHBpeGVscywgWzAsIDI1NSwgMCwgMjU1XSk7CisgIH0KKworICB3aGlsZSAocmVwYWludHMgPiAw
KSB7CisgICAgZHJhdygpOworICAgIHJlcGFpbnRzID0gcmVwYWludHMgLSAxOworICB9CisKK30s
ICJUZXN0IHRoYXQgaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hi
b3IgaW50ZXJwb2xhdGlvbikgc3RpbGwgd29ya3MgYWZ0ZXIgcmVwYWludHMuIik7Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC9pbWFnZS1zbW9vdGhpbmcvaW1hZ2Uuc21v
b3RoaW5nLndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3Ro
aW5nL2ltYWdlLnNtb290aGluZy53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMzM4
MTExMDBjNjMyNzUwZTA1MzMzNDdhZTMwMDJkZWJkZTA1MTIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy53b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKKworUEFTUyBXaGVuIHRoZSBjb250ZXh0IGlzIGNy
ZWF0ZWQsIGltYWdlU21vb3RoaW5nRW5hYmxlZCBtdXN0IGJlIHNldCB0byB0cnVlLiAKK1BBU1Mg
T24gZ2V0dGluZyBpbWFnZVNtb290aGluZ0VuYWJsZWQsIHRoZSB1c2VyIGFnZW50IG11c3QgcmV0
dXJuIHRoZSBsYXN0IHZhbHVlIGl0IHdhcyBzZXQgdG8uIAorUEFTUyBUZXN0IHRoYXQgaW1hZ2Ug
c21vb3RoaW5nIGlzIGFjdHVhbGx5IG9uIGJ5IGRlZmF1bHQuIAorUEFTUyBUZXN0IHRoYXQgaW1h
Z2Ugc21vb3RoaW5nIHdvcmtzIHdoZW4gaW1hZ2VTbW9vdGhpbmdFbmFibGVkIGlzIHNldCB0byB0
cnVlIAorUEFTUyBUZXN0IHRoYXQgaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJl
c3QtbmVpZ2hib3IgaW50ZXJwb2xhdGlvbikgd29ya3Mgd2l0aCBkcmF3SW1hZ2UoKS4gCitGQUlM
IFRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJv
ciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGZpbGxSZWN0IGFuZCBjcmVhdGVQYXR0ZXJuKCku
IGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDAgdG8gYmUgMCBidXQgZ290
IDE3NiAoZXhwZWN0ZWQgYXJyYXkgWzAsIDI1NSwgMCwgMjU1XSBnb3Qgb2JqZWN0ICIxNzYsNzgs
MCwyNTUiKQorRkFJTCBUZXN0IHRoYXQgaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5l
YXJlc3QtbmVpZ2hib3IgaW50ZXJwb2xhdGlvbikgd29ya3Mgd2l0aCBmaWxsKCkgYW5kIGNyZWF0
ZVBhdHRlcm4oKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMCB0byBi
ZSAwIGJ1dCBnb3QgMTc2IChleHBlY3RlZCBhcnJheSBbMCwgMjU1LCAwLCAyNTVdIGdvdCBvYmpl
Y3QgIjE3Niw3OCwwLDI1NSIpCitGQUlMIFRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQg
PSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIHN0cm9r
ZSgpIGFuZCBjcmVhdGVQYXR0ZXJuKCkuIGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHBy
b3BlcnR5IDAgdG8gYmUgMCBidXQgZ290IDE3NiAoZXhwZWN0ZWQgYXJyYXkgWzAsIDI1NSwgMCwg
MjU1XSBnb3Qgb2JqZWN0ICIxNzYsNzgsMCwyNTUiKQorUEFTUyBUZXN0IHRoYXQgaW1hZ2VTbW9v
dGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hib3IgaW50ZXJwb2xhdGlvbikgc3Rp
bGwgd29ya3MgYWZ0ZXIgcmVwYWludHMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
aW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy53b3JrZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC9pbWFnZS1zbW9vdGhpbmcvaW1hZ2Uuc21vb3RoaW5nLndvcmtlci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy53
b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
aW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy53b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdlLnNtb290aGluZy53b3JrZXIuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGMzN2U4NGIxZjIyODY3NWU1MjNlNGRkMzkzMjRhZmMyODM3MzMxNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL21hbnVhbC9pbWFnZS1zbW9vdGhpbmcvaW1hZ2Uuc21vb3RoaW5nLndvcmtl
ci5qcwpAQCAtMCwwICsxLDEyNiBAQAorLy8gc3BlYyBsaW5rOiBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnLyN0aGUtb2Zmc2NyZWVuLTJkLXJlbmRlcmluZy1jb250ZXh0CisKK2ltcG9ydFNj
cmlwdHMoIi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiKTsKKworZnVuY3Rpb24gY3JlYXRlVGVz
dEltYWdlKCkgeworICB2YXIgaW1hZ2UgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOwor
ICB2YXIgaW1nY3R4ID0gaW1hZ2UuZ2V0Q29udGV4dCgnMmQnKTsKKyAgaW1nY3R4LmZpbGxTdHls
ZSA9ICIjRjAwIjsKKyAgaW1nY3R4LmZpbGxSZWN0KDAsIDAsIDIsIDIpOworICBpbWdjdHguZmls
bFN0eWxlID0gIiMwRjAiOworICBpbWdjdHguZmlsbFJlY3QoMCwgMCwgMSwgMSk7CisgIHJldHVy
biBpbWFnZTsKK30KKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9
IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52
YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgYXNzZXJ0X3RydWUoY3R4LmltYWdlU21vb3RoaW5nRW5h
YmxlZCk7Cit9LCAiV2hlbiB0aGUgY29udGV4dCBpcyBjcmVhdGVkLCBpbWFnZVNtb290aGluZ0Vu
YWJsZWQgbXVzdCBiZSBzZXQgdG8gdHJ1ZS4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFy
IG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgIHZhciBj
dHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgY3R4LmltYWdlU21vb3Ro
aW5nRW5hYmxlZCA9IGZhbHNlOworICBhc3NlcnRfZmFsc2UoY3R4LmltYWdlU21vb3RoaW5nRW5h
YmxlZCk7Cit9LCAiT24gZ2V0dGluZyBpbWFnZVNtb290aGluZ0VuYWJsZWQsIHRoZSB1c2VyIGFn
ZW50IG11c3QgcmV0dXJuIHRoZSBsYXN0IHZhbHVlIGl0IHdhcyBzZXQgdG8uIik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFz
KDEwMCwgNTApOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7
CisgIHZhciBpbWFnZSA9IGNyZWF0ZVRlc3RJbWFnZSgpOworICBjdHguc2NhbGUoMTAsIDEwKTsK
KyAgY3R4LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgIHZhciBwaXhlbHMgPSBjdHguZ2V0SW1h
Z2VEYXRhKDksIDksIDEsIDEpLmRhdGE7CisgIGFzc2VydF9ub3RfZXF1YWxzKHBpeGVsc1swXSwg
MCk7CisgIGFzc2VydF9ub3RfZXF1YWxzKHBpeGVsc1sxXSwgMjU1KTsKK30sICJUZXN0IHRoYXQg
aW1hZ2Ugc21vb3RoaW5nIGlzIGFjdHVhbGx5IG9uIGJ5IGRlZmF1bHQuIik7CisKK3Rlc3QoZnVu
Y3Rpb24oKSB7CisgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEw
MCwgNTApOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7Cisg
IGN0eC5pbWFnZVNtb290aGluZ0VuYWJsZWQgPSB0cnVlOworICB2YXIgaW1hZ2UgPSBjcmVhdGVU
ZXN0SW1hZ2UoKTsKKyAgY3R4LnNjYWxlKDEwLCAxMCk7CisgIGN0eC5kcmF3SW1hZ2UoaW1hZ2Us
IDAsIDApOworICB2YXIgcGl4ZWxzID0gY3R4LmdldEltYWdlRGF0YSg5LCA5LCAxLCAxKS5kYXRh
OworICBhc3NlcnRfbm90X2VxdWFscyhwaXhlbHNbMF0sIDApOworICBhc3NlcnRfbm90X2VxdWFs
cyhwaXhlbHNbMV0sIDI1NSk7Cit9LCAiVGVzdCB0aGF0IGltYWdlIHNtb290aGluZyB3b3JrcyB3
aGVuIGltYWdlU21vb3RoaW5nRW5hYmxlZCBpcyBzZXQgdG8gdHJ1ZSIpOworCit0ZXN0KGZ1bmN0
aW9uKCkgeworICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAs
IDUwKTsKKyAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICB2
YXIgaW1hZ2UgPSBjcmVhdGVUZXN0SW1hZ2UoKTsKKyAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxl
ZCA9IGZhbHNlOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LmRyYXdJbWFnZShpbWFnZSwg
MCwgMCk7CisgIHZhciBwaXhlbHMgPSBjdHguZ2V0SW1hZ2VEYXRhKDksIDksIDEsIDEpLmRhdGE7
CisgIGFzc2VydF9hcnJheV9lcXVhbHMocGl4ZWxzLCBbMCwgMjU1LCAwLCAyNTVdKTsKK30sICJU
ZXN0IHRoYXQgaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hib3Ig
aW50ZXJwb2xhdGlvbikgd29ya3Mgd2l0aCBkcmF3SW1hZ2UoKS4iKTsKKwordGVzdChmdW5jdGlv
bigpIHsKKyAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1
MCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgdmFy
IGltYWdlID0gY3JlYXRlVGVzdEltYWdlKCk7CisgIGN0eC5pbWFnZVNtb290aGluZ0VuYWJsZWQg
PSBmYWxzZTsKKyAgY3R4LnNjYWxlKDEwLCAxMCk7CisgIGN0eC5maWxsU3R5bGUgPSBjdHguY3Jl
YXRlUGF0dGVybihpbWFnZSwgJ3JlcGVhdCcpOworICBjdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEw
KTsKKyAgdmFyIHBpeGVscyA9IGN0eC5nZXRJbWFnZURhdGEoOSwgOSwgMSwgMSkuZGF0YTsKKyAg
YXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbHMsIFswLCAyNTUsIDAsIDI1NV0pOworfSwgIlRlc3Qg
dGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxzZSAobmVhcmVzdC1uZWlnaGJvciBpbnRl
cnBvbGF0aW9uKSB3b3JrcyB3aXRoIGZpbGxSZWN0IGFuZCBjcmVhdGVQYXR0ZXJuKCkuIik7CisK
K3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVu
Q2FudmFzKDEwMCwgNTApOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQo
JzJkJyk7CisgIHZhciBpbWFnZSA9IGNyZWF0ZVRlc3RJbWFnZSgpOworICBjdHguaW1hZ2VTbW9v
dGhpbmdFbmFibGVkID0gZmFsc2U7CisgIGN0eC5maWxsU3R5bGUgPSBjdHguY3JlYXRlUGF0dGVy
bihpbWFnZSwgJ3JlcGVhdCcpOworICBjdHguc2NhbGUoMTAsIDEwKTsKKyAgY3R4LnJlY3QoMCwg
MCwgMTAsIDEwKTsKKyAgY3R4LmZpbGwoKTsKKyAgdmFyIHBpeGVscyA9IGN0eC5nZXRJbWFnZURh
dGEoOSwgOSwgMSwgMSkuZGF0YTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbHMsIFswLCAy
NTUsIDAsIDI1NV0pOworfSwgIlRlc3QgdGhhdCBpbWFnZVNtb290aGluZ0VuYWJsZWQgPSBmYWxz
ZSAobmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uKSB3b3JrcyB3aXRoIGZpbGwoKSBhbmQg
Y3JlYXRlUGF0dGVybigpLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgb2Zmc2NyZWVu
Q2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgdmFyIGN0eCA9IG9mZnNj
cmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICB2YXIgaW1hZ2UgPSBjcmVhdGVUZXN0SW1h
Z2UoKTsKKyAgY3R4LnN0cm9rZVN0eWxlID0gY3R4LmNyZWF0ZVBhdHRlcm4oaW1hZ2UsICdyZXBl
YXQnKTsKKyAgY3R4LmxpbmVXaWR0aCA9IDU7CisgIGN0eC5pbWFnZVNtb290aGluZ0VuYWJsZWQg
PSBmYWxzZTsKKyAgY3R4LnNjYWxlKDEwLCAxMCk7CisgIGN0eC5iZWdpblBhdGgoKTsKKyAgY3R4
Lm1vdmVUbygwLCAwKTsKKyAgY3R4LmxpbmVUbygxMCwgMTApOworICBjdHguc3Ryb2tlKCk7Cisg
IHZhciBwaXhlbHMgPSBjdHguZ2V0SW1hZ2VEYXRhKDksIDksIDEsIDEpLmRhdGE7CisgIGFzc2Vy
dF9hcnJheV9lcXVhbHMocGl4ZWxzLCBbMCwgMjU1LCAwLCAyNTVdKTsKK30sICJUZXN0IHRoYXQg
aW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gZmFsc2UgKG5lYXJlc3QtbmVpZ2hib3IgaW50ZXJwb2xh
dGlvbikgd29ya3Mgd2l0aCBzdHJva2UoKSBhbmQgY3JlYXRlUGF0dGVybigpLiIpOworCit0ZXN0
KGZ1bmN0aW9uKCkgeworICB2YXIgcmVwYWludHMgPSA1OworICB2YXIgb2Zmc2NyZWVuQ2FudmFz
ID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgdmFyIGN0eCA9IG9mZnNjcmVlbkNh
bnZhcy5nZXRDb250ZXh0KCcyZCcpOworCisgIGZ1bmN0aW9uIGRyYXcoKSB7CisgICAgY3R4LmNs
ZWFyUmVjdCgwLCAwLCAxMCwgMTApOworICAgIGN0eC5zZXRUcmFuc2Zvcm0oMSwgMCwgMCwgMSwg
MCwgMCk7CisgICAgdmFyIGltYWdlID0gY3JlYXRlVGVzdEltYWdlKCk7CisgICAgY3R4LmltYWdl
U21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlOworICAgIGN0eC5zY2FsZSgxMCwgMTApOworICAgIGN0
eC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworICAgIHZhciBwaXhlbHMgPSBjdHguZ2V0SW1hZ2VE
YXRhKDksIDksIDEsIDEpLmRhdGE7CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhwaXhlbHMsIFsw
LCAyNTUsIDAsIDI1NV0pOworICB9CisKKyAgd2hpbGUgKHJlcGFpbnRzID4gMCkgeworICAgIGRy
YXcoKTsKKyAgICByZXBhaW50cyA9IHJlcGFpbnRzIC0gMTsKKyAgfQorCit9LCAiVGVzdCB0aGF0
IGltYWdlU21vb3RoaW5nRW5hYmxlZCA9IGZhbHNlIChuZWFyZXN0LW5laWdoYm9yIGludGVycG9s
YXRpb24pIHN0aWxsIHdvcmtzIGFmdGVyIHJlcGFpbnRzLiIpOworCitkb25lKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL2ltYWdlLXNtb290aGluZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NDI2ZDg4NDkyMzUwOGUzN2E3ZTIwMmY2OWFlODUwYTI2NWI0NTUzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL2ltYWdlLXNtb290aGluZy93M2MtaW1wb3J0LmxvZwpAQCAtMCww
ICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvaW1hZ2Utc21vb3RoaW5nL2ltYWdl
LnNtb290aGluZy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL2ltYWdlLXNtb290aGluZy9pbWFnZS5z
bW9vdGhpbmcud29ya2VyLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYxYzcwNTBlNWU4MjhjM2YzMjNmMjk1ZmIxZDJhNGZlYzhj
MDA3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNh
bnZhcy9vZmZzY3JlZW5jYW52YXMuY29tbWl0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
KworRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52YXMncyBjb21taXQgcHVzaGVz
IGl0cyBjb250ZW50cyB0byBpdHMgcGxhY2Vob2xkZXIuIHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNlaG9sZGVyLnRyYW5z
ZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK0ZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgY29tbWl0IG9u
IGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2ZlcnJlZCBmcm9tIGEgSFRNTENh
bnZhc0VsZW1lbnQgaXMgYSBub29wLiBjdHguY29tbWl0IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4g
J2N0eC5jb21taXQoKScsICdjdHguY29tbWl0JyBpcyB1bmRlZmluZWQpCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29t
bWl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLmNvbW1pdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1Y2JhMzY4MTE2ZGI1OGNiY2IzY2RjYjll
MjQ0YTE4ZGJkYTg2NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC5odG1sCkBAIC0wLDAgKzEsNDEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9odG1sL2NhbnZhcy9yZXNvdXJjZXMvY2FudmFz
LXRlc3RzLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jb2Zmc2NyZWVuY29udGV4dDJkLWNvbW1pdCI+Cis8c2NyaXB0Pgor
CitmdW5jdGlvbiB2ZXJpZnlQbGFjZWhvbGRlcihwbGFjZWhvbGRlciwgZXhwZWN0ZWRSLCBleHBl
Y3RlZEcsIGV4cGVjdGVkQiwgZXhwZWN0ZWRBLCBleHBlY3RlZENsclN0cikKK3sKKyAgICB2YXIg
Y2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgY2FudmFzLndp
ZHRoID0gY2FudmFzLmhlaWdodCA9IDEwOworICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4
dCgnMmQnKTsKKyAgICBjdHguZHJhd0ltYWdlKHBsYWNlaG9sZGVyLCAwLCAwKTsKKyAgICBfYXNz
ZXJ0UGl4ZWwoY2FudmFzLCA1LDUsIGV4cGVjdGVkUiwgZXhwZWN0ZWRHLCBleHBlY3RlZEIsIGV4
cGVjdGVkQSwgIjUsNSIsIGV4cGVjdGVkQ2xyU3RyKTsKK30KKwordGVzdChmdW5jdGlvbigpIHsK
KyAgICB2YXIgcGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsK
KyAgICBwbGFjZWhvbGRlci53aWR0aCA9IHBsYWNlaG9sZGVyLmhlaWdodCA9IDEwOworICAgIHZh
ciBvZmZzY3JlZW5DYW52YXMgPSBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
bigpOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAg
ICBjdHguZmlsbFN0eWxlID0gIiMwZjAiOworICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMCwgMTAp
OworICAgIC8vIGNvbW1pdCgpIHByb3BhZ2F0aW9uIGlzIHRha2VuIGNhcmUgb2YgYnkgYW4gYXN5
bmMgdGFzaywgd2hpY2ggbWVhbnMgdGhlCisgICAgLy8gcGxhY2UgaG9sZGVyIGNvbnRlbnRzIHNo
b3VsZCBzdGlsbCBiZSB0cmFuc3BhcmVudCBibGFjayBhdCB0aGlzIG1vbWVudC4KKyAgICB2ZXJp
ZnlQbGFjZWhvbGRlcihwbGFjZWhvbGRlciwgMCwwLDAsMCwgIjAsMCwwLDAiKTsKKyAgICAvLyBT
ZXQgdGltZW91dCBhY3RzIGFzIGEgc3luYyBiYXJyaWVyIHRvIGFsbG93IGNvbW1pdCB0byBwcm9w
YWdhdGUKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB2ZXJpZnlQbGFjZWhv
bGRlcihwbGFjZWhvbGRlciwgMCwyNTUsMCwyNTUsICIwLDI1NSwwLDI1NSIpOworICAgIH0sIDAp
OworfSwgIlRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbW1pdCBwdXNoZXMg
aXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4iKTsKKwordGVzdChmdW5jdGlvbigpIHsK
KyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOwor
ICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHgu
ZmlsbFN0eWxlID0gIiMwZjAiOworICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMCwgMTApOworICAg
IGN0eC5jb21taXQoKTsKK30sICJUZXN0IHRoYXQgY2FsbGluZyBjb21taXQgb24gYW4gT2Zmc2Ny
ZWVuQ2FudmFzIHRoYXQgaXMgbm90IHRyYW5zZmVycmVkIGZyb20gYSBIVE1MQ2FudmFzRWxlbWVu
dCBpcyBhIG5vb3AuIik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFz
LmNvbW1pdC53LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzQzMzJjZTUxYWJmZTM3MTJkMGUy
NDk1OGE4MDUyODFhNjA3MDc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3Ro
ZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb21taXQudy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACisKK0ZBSUwgVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFz
J3MgY29tbWl0IHB1c2hlcyBpdHMgY29udGVudHMgdG8gaXRzIHBsYWNlaG9sZGVyLiBwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdw
bGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVyLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitQQVNTIFRlc3QgdGhhdCBj
YWxsaW5nIGNvbW1pdCBvbiBhbiBPZmZzY3JlZW5DYW52YXMgdGhhdCBpcyBub3QgdHJhbnNmZXJy
ZWQgZnJvbSBhIEhUTUxDYW52YXNFbGVtZW50IHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3b3Jr
ZXIuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNj
cmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbW1pdC53Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ0
YmFkMTFjOTQ4MjZkNzAwNDQyYjI3MjdhZDI0MWVmNGE1NzJkMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29t
bWl0LncuaHRtbApAQCAtMCwwICsxLDc5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvaHRt
bC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI29mZnNjcmVlbmNvbnRl
eHQyZC1jb21taXQiPgorCis8c2NyaXB0IGlkPSJteVdvcmtlciIgdHlwZT0idGV4dC93b3JrZXIi
PgorCitmdW5jdGlvbiB0ZXN0Q29tbWl0UHVzaGVzQ29udGVudHMob2Zmc2NyZWVuQ2FudmFzKSB7
CisgIHRyeSB7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcp
OworICAgIGN0eC5maWxsU3R5bGUgPSAiIzBmMCI7CisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDEw
LCAxMCk7CisgICAgY3R4LmNvbW1pdCgpOworICAgIHJldHVybiB0cnVlOworICB9IGNhdGNoKGUp
IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KKworZnVuY3Rpb24gdGVzdENvbW1pdEV4Y2Vw
dGlvbigpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygx
MCwgMTApOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsK
KyAgICBjdHguZmlsbFN0eWxlID0gIiMwZjAiOworICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMCwg
MTApOworICAgIHJldHVybiB0cnVlOworfQorCitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUp
IHsKKyAgICBzd2l0Y2ggKGUuZGF0YS5tc2cpIHsKKyAgICAgICAgY2FzZSAndGVzdDEnOgorICAg
ICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0ZXN0Q29tbWl0UHVzaGVzQ29udGVudHMoZS5kYXRh
LmRhdGEpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0Mic6CisgICAg
ICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRlc3RDb21taXRFeGNlcHRpb24oKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICB9Cit9OworCis8L3NjcmlwdD4KKworPHNjcmlwdD4KKworZnVuY3Rp
b24gdmVyaWZ5UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpIHsKKyAgICB2YXIgY2FudmFzID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgY2FudmFzLndpZHRoID0gY2FudmFz
LmhlaWdodCA9IDEwOworICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAg
ICBjdHguZHJhd0ltYWdlKHBsYWNlaG9sZGVyLCAwLCAwKTsKKyAgICBfYXNzZXJ0UGl4ZWwoY2Fu
dmFzLCA1LDUsIDAsMjU1LDAsMjU1LCAiNSw1IiwgIjAsMjU1LDAsMjU1Iik7Cit9CisKK2Z1bmN0
aW9uIG1ha2VXb3JrZXIodGVzdCkgeworICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJteVdvcmtlciIpLnRleHRDb250ZW50XSk7CisgICAgdmFyIHdvcmtl
ciA9IG5ldyBXb3JrZXIoVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSk7CisgICAgd29ya2VyLm9u
ZXJyb3IgPSB0ZXN0LnVucmVhY2hlZF9mdW5jKCJlcnJvciIpOworICAgIHJldHVybiB3b3JrZXI7
Cit9CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBwbGFjZWhvbGRlciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIHBsYWNlaG9sZGVyLndpZHRoID0g
cGxhY2Vob2xkZXIuaGVpZ2h0ID0gMTA7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IHBsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CisgICAgdmFyIHdvcmtlciA9IG1h
a2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0
ZXBfZnVuY19kb25lKGZ1bmN0aW9uKG1zZykgeworICAgICAgYXNzZXJ0X3RydWUobXNnLmRhdGEp
OworICAgICAgdmVyaWZ5UGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpOworICAgIH0pKTsKKyAgICB3
b3JrZXIucG9zdE1lc3NhZ2Uoe21zZzogJ3Rlc3QxJywgZGF0YTogb2Zmc2NyZWVuQ2FudmFzfSwg
W29mZnNjcmVlbkNhbnZhc10pOworfSwgIlRlc3QgdGhhdCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZh
cydzIGNvbW1pdCBwdXNoZXMgaXRzIGNvbnRlbnRzIHRvIGl0cyBwbGFjZWhvbGRlci4iKTsKKwor
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7
CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25l
KGZ1bmN0aW9uKG1zZykgeworICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkp
OworICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7bXNnOiAndGVzdDInfSk7Cit9LCAiVGVzdCB0aGF0
IGNhbGxpbmcgY29tbWl0IG9uIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGlzIG5vdCB0cmFuc2Zl
cnJlZCBmcm9tIGEgSFRNTENhbnZhc0VsZW1lbnQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpbiBhIHdv
cmtlci4iKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
b2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29u
c3RydWN0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMTNlNjg2YTE1YWFjZmFjZDg0Yzcx
MjU3YWM1ZDE4MjkyNDI1MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBPZmZzY3JlZW5DYW52
YXMncyBjb25zdHJ1Y3RvciBnZW5lcmF0ZXMgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0LiAKK1BB
U1MgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhcyBjb25zdHJ1Y3RvciBoYW5kbGVzIGludmFsaWQg
YXJndW1lbnRzIGNvcnJlY3RseSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rv
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA2NjVmNzQ1MmNlNzVmNjY5Yjg4M2QzNjY2ZWMzYzQ5MmIyMjVl
ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmNvbnN0cnVjdG9yLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMu
anMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnLyNkb20tb2Zmc2NyZWVuY2FudmFzIj4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAw
LCA1MCk7CisgICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMud2lkdGgsIDEwMCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMuaGVpZ2h0LCA1MCk7CisKKyAgICBvZmZz
Y3JlZW5DYW52YXMud2lkdGggPSA1MDsKKyAgICBvZmZzY3JlZW5DYW52YXMuaGVpZ2h0ID0gMTAw
OworICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzLndpZHRoLCA1MCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMuaGVpZ2h0LCAxMDApOworfSwgIlRlc3QgdGhhdCBj
YWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbnN0cnVjdG9yIGdlbmVyYXRlcyBjb3JyZWN0IHdp
ZHRoIGFuZCBoZWlnaHQuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVl
bkNhbnZhczEgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsIDEpOworCisgICAgb2Zmc2NyZWVuQ2Fu
dmFzMS53aWR0aCA9IG51bGw7CisgICAgb2Zmc2NyZWVuQ2FudmFzMS5oZWlnaHQgPSBudWxsOwor
ICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzMS53aWR0aCwgMCk7CisgICAgYXNzZXJ0
X2VxdWFscyhvZmZzY3JlZW5DYW52YXMxLmhlaWdodCwgMCk7CisKKyAgICBhc3NlcnRfdGhyb3dz
X2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBPZmZzY3JlZW5DYW52YXMoLTEsIC0xKTsg
fSk7CisKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzMiA9IG5ldyBPZmZzY3JlZW5DYW52YXMobnVs
bCwgbnVsbCk7CisgICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMyLndpZHRoLCAwKTsK
KyAgICBhc3NlcnRfZXF1YWxzKG9mZnNjcmVlbkNhbnZhczIuaGVpZ2h0LCAwKTsKKworICAgIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgb2Zmc2NyZWVuQ2FudmFzMi53
aWR0aCA9IC0xOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7IG9mZnNjcmVlbkNhbnZhczIuaGVpZ2h0ID0gLTE7IH0pOworCisgICAgdmFyIG9iaiA9IHtO
YW1lOiAiSm9obiBEb2UiLCBBZ2U6IDMwfTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJv
ciwgZnVuY3Rpb24oKSB7IG9mZnNjcmVlbkNhbnZhczIud2lkdGggPSBvYmo7IH0pOworICAgIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgb2Zmc2NyZWVuQ2FudmFzMi5o
ZWlnaHQgPSBvYmo7IH0pOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlv
bigpIHsgbmV3IE9mZnNjcmVlbkNhbnZhcyhvYmosIG9iaik7IH0pOworfSwgIlRlc3QgdGhhdCBP
ZmZzY3JlZW5DYW52YXMgY29uc3RydWN0b3IgaGFuZGxlcyBpbnZhbGlkIGFyZ3VtZW50cyBjb3Jy
ZWN0bHkiKTsKKworPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3Iud29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5j
YW52YXMuY29uc3RydWN0b3Iud29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWEyZTlk
MjhkYWEwYzllZTkzYjYyM2JhNzJlYjJkMjVkNGMxYTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1
Y3Rvci53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFRlc3QgdGhh
dCBjYWxsaW5nIE9mZnNjcmVlbkNhbnZhcydzIGNvbnN0cnVjdG9yIGdlbmVyYXRlcyBjb3JyZWN0
IHdpZHRoIGFuZCBoZWlnaHQuIAorUEFTUyBUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzIGNvbnN0
cnVjdG9yIGhhbmRsZXMgaW52YWxpZCBhcmd1bWVudHMgY29ycmVjdGx5IGluIGEgd29ya2VyIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2Ny
ZWVuY2FudmFzLmNvbnN0cnVjdG9yLndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci53b3JrZXIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNj
cmVlbmNhbnZhcy5jb25zdHJ1Y3Rvci53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRo
aXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVu
IHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLmNvbnN0cnVjdG9yLndvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVu
LWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3Iud29ya2VyLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcyY2ZiNzI4ZjAzZjE1NTFlZDU5NzdmNmRmMWIzOWM2OWM2MGJmM2EKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFz
LmNvbnN0cnVjdG9yLndvcmtlci5qcwpAQCAtMCwwICsxLDQ1IEBACisvLyBzcGVjIGxpbms6IGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1vZmZzY3JlZW5jYW52YXMKKworaW1wb3J0
U2NyaXB0cygiL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIpOworaW1wb3J0U2NyaXB0cygiL2h0
bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiKTsKKwordmFyIHQxID0gYXN5bmNf
dGVzdCgiVGVzdCB0aGF0IGNhbGxpbmcgT2Zmc2NyZWVuQ2FudmFzJ3MgY29uc3RydWN0b3IgZ2Vu
ZXJhdGVzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodC4iKTsKK3QxLnN0ZXAoZnVuY3Rpb24oKSB7
CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7
CisgICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMud2lkdGgsIDEwMCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhvZmZzY3JlZW5DYW52YXMuaGVpZ2h0LCA1MCk7CisKKyAgICBvZmZzY3JlZW5D
YW52YXMud2lkdGggPSA1MDsKKyAgICBvZmZzY3JlZW5DYW52YXMuaGVpZ2h0ID0gMTAwOworICAg
IGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzLndpZHRoLCA1MCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhvZmZzY3JlZW5DYW52YXMuaGVpZ2h0LCAxMDApOworICAgIHQxLmRvbmUoKTsKK30pOwor
Cit2YXIgdDIgPSBhc3luY190ZXN0KCJUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzIGNvbnN0cnVj
dG9yIGhhbmRsZXMgaW52YWxpZCBhcmd1bWVudHMgY29ycmVjdGx5IGluIGEgd29ya2VyIik7Cit0
Mi5zdGVwKGZ1bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMxID0gbmV3IE9mZnNj
cmVlbkNhbnZhcygxLCAxKTsKKworICAgIG9mZnNjcmVlbkNhbnZhczEud2lkdGggPSBudWxsOwor
ICAgIG9mZnNjcmVlbkNhbnZhczEuaGVpZ2h0ID0gbnVsbDsKKyAgICBhc3NlcnRfZXF1YWxzKG9m
ZnNjcmVlbkNhbnZhczEud2lkdGgsIDApOworICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuQ2Fu
dmFzMS5oZWlnaHQsIDApOworCisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0
aW9uKCkgeyBuZXcgT2Zmc2NyZWVuQ2FudmFzKC0xLCAtMSk7IH0pOworCisgICAgdmFyIG9mZnNj
cmVlbkNhbnZhczIgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKG51bGwsIG51bGwpOworICAgIGFzc2Vy
dF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzMi53aWR0aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhv
ZmZzY3JlZW5DYW52YXMyLmhlaWdodCwgMCk7CisKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgZnVuY3Rpb24oKSB7IG9mZnNjcmVlbkNhbnZhczIud2lkdGggPSAtMTsgfSk7CisgICAg
YXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBvZmZzY3JlZW5DYW52YXMy
LmhlaWdodCA9IC0xOyB9KTsKKworICAgIHZhciBvYmogPSB7TmFtZTogIkpvaG4gRG9lIiwgQWdl
OiAzMH07CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeyBvZmZz
Y3JlZW5DYW52YXMyLndpZHRoID0gb2JqOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgZnVuY3Rpb24oKSB7IG9mZnNjcmVlbkNhbnZhczIuaGVpZ2h0ID0gb2JqOyB9KTsKKyAg
ICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7IG5ldyBPZmZzY3JlZW5D
YW52YXMob2JqLCBvYmopOyB9KTsKKyAgICB0Mi5kb25lKCk7Cit9KTsKKworZG9uZSgpOworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLmdldGNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZDlhYTBlMTY3N2U5NDk0ODBiMjIzMzEyMjM4ZjQ3MDk5ZWYxMzc3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVl
bmNhbnZhcy5nZXRjb250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1BBU1Mg
VGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCB1bi1zdXBwb3J0ZWQgc3RyaW5nIHRocm93cyBhIFR5
cGVFcnJvci4gCitGQUlMIFRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGggc3VwcG9ydGVkIHN0cmlu
ZyByZXR1cm5zIGNvcnJlY3QgcmVzdWx0cyBBcmd1bWVudCAxICgnY29udGV4dFR5cGUnKSB0byBP
ZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCBtdXN0IGJlIG9uZSBvZjogIjJkIiwgIndlYmdsIgor
RkFJTCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5
cGUgcmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFs
aWQgc3RhdGUuCitQQVNTIFRlc3QgdGhhdCAyZGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4g
dGhlIG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKK1BBU1MgVGVzdCB0aGF0IHdlYmdsY29udGV4
dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAorRkFJ
TCBUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEg
ZGlzYWJsZWQgbWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUgYXNzZXJ0X2FwcHJveF9l
cXVhbHM6IEdyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1KSBleHBlY3RlZCAxMjcg
Ky8tIDIgYnV0IGdvdCAyNTUKK1BBU1MgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRCB3aXRoIGFscGhhIGVuYWJsZWQgcHJlc2VydmVzIHRoZSBhbHBoYSAKK1BBU1Mg
VGVzdCB0aGF0ICdhbHBoYScgY29udGV4dCBjcmVhdGlvbiBhdHRyaWJ1dGUgaXMgdHJ1ZSBieSBk
ZWZhdWx0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUt
b2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjUzN2I1ODJkYzFiNTI0YzY2ZWRjZmVlNzYzZTA0ZDc1ODg3ZDFiOGEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2Fu
dmFzLmdldGNvbnRleHQuaHRtbApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvaHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1v
ZmZzY3JlZW5jYW52YXMtZ2V0Y29udGV4dCI+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9uKCkg
eworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsIDEpOwor
ICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsgb2Zmc2NyZWVuQ2Fu
dmFzLmdldENvbnRleHQoJzNkJyk7IH0pOworfSwgIlRlc3QgdGhhdCBnZXRDb250ZXh0IHdpdGgg
dW4tc3VwcG9ydGVkIHN0cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhczEgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEs
IDEpOworICAgIHZhciBjdHgxID0gb2Zmc2NyZWVuQ2FudmFzMS5nZXRDb250ZXh0KCcyZCcpOwor
ICAgIGFzc2VydF90cnVlKGN0eDEgaW5zdGFuY2VvZiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQpOworCisgICAgdmFyIG9mZnNjcmVlbkNhbnZhczIgPSBuZXcgT2Zmc2NyZWVuQ2Fu
dmFzKDEsIDEpOworICAgIHZhciBjdHgyID0gb2Zmc2NyZWVuQ2FudmFzMi5nZXRDb250ZXh0KCd3
ZWJnbCcpOworICAgIGFzc2VydF90cnVlKGN0eDIgaW5zdGFuY2VvZiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQpOworCisgICAgdmFyIG9mZnNjcmVlbkNhbnZhczMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFz
KDEsIDEpOworICAgIHZhciBjdHgzID0gb2Zmc2NyZWVuQ2FudmFzMy5nZXRDb250ZXh0KCd3ZWJn
bDInKTsKKyAgICBhc3NlcnRfdHJ1ZShjdHgzIGluc3RhbmNlb2YgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dCk7Cit9LCAiVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJl
dHVybnMgY29ycmVjdCByZXN1bHRzIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9m
ZnNjcmVlbkNhbnZhczEgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsIDEpOworICAgIHZhciBjdHgx
ID0gb2Zmc2NyZWVuQ2FudmFzMS5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciBjdHgyID0gb2Zm
c2NyZWVuQ2FudmFzMS5nZXRDb250ZXh0KCd3ZWJnbCcpOworICAgIGFzc2VydF9lcXVhbHMoY3R4
MiwgbnVsbCk7CisKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzMiA9IG5ldyBPZmZzY3JlZW5DYW52
YXMoMSwgMSk7CisgICAgdmFyIGN0eDMgPSBvZmZzY3JlZW5DYW52YXMyLmdldENvbnRleHQoJ3dl
YmdsJyk7CisgICAgdmFyIGN0eDQgPSBvZmZzY3JlZW5DYW52YXMyLmdldENvbnRleHQoJzJkJyk7
CisgICAgYXNzZXJ0X2VxdWFscyhjdHg0LCBudWxsKTsKK30sICJUZXN0IHRoYXQgZ2V0Q29udGV4
dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBudWxsIHRoZSBzZWNv
bmQgdGltZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMg
PSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsIDIpOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52
YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICB2YXIgZHN0Q2FudmFzID0gY3R4LmNhbnZhczsKKyAg
ICBhc3NlcnRfZXF1YWxzKGRzdENhbnZhcy53aWR0aCwgMSk7CisgICAgYXNzZXJ0X2VxdWFscyhk
c3RDYW52YXMuaGVpZ2h0LCAyKTsKK30sICJUZXN0IHRoYXQgMmRjb250ZXh0LmNhbnZhcyBzaG91
bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMiKTsKKwordGVzdChmdW5jdGlv
bigpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxLCAy
KTsKKyAgICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJ3dlYmdsJyk7Cisg
ICAgdmFyIGRzdENhbnZhcyA9IGN0eC5jYW52YXM7CisgICAgYXNzZXJ0X2VxdWFscyhkc3RDYW52
YXMud2lkdGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoZHN0Q2FudmFzLmhlaWdodCwgMik7Cit9
LCAiVGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2lu
YWwgT2Zmc2NyZWVuQ2FudmFzIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNj
cmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICB2YXIgY3R4ID0g
b2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJywge2FscGhhOiBmYWxzZX0pOworICAgIGN0
eC5maWxsU3R5bGUgPSAncmdiYSgwLCAyNTUsIDAsIDAuNSknOworICAgIGN0eC5maWxsUmVjdCgw
LCAwLCAxMCwgMTApOworICAgIF9hc3NlcnRQaXhlbEFwcHJveChvZmZzY3JlZW5DYW52YXMsIDUs
NSwgMCwxMjcsMCwyNTUsICI1LDUiLCAiMCwxMjcsMCwyNTUiLCAyKTsKK30sICJUZXN0IHRoYXQg
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEgZGlzYWJsZWQgbWFr
ZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUiKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
ICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOworICAg
IHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnLCB7YWxwaGE6IHRydWV9
KTsKKyAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMCwgMjU1LCAwLCAwLjUpJzsKKyAgICBjdHgu
ZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgICBfYXNzZXJ0UGl4ZWxBcHByb3gob2Zmc2NyZWVu
Q2FudmFzLCA1LDUsIDAsMjU1LDAsMTI3LCAiNSw1IiwgIjAsMjU1LDAsMTI3IiwgMik7Cit9LCAi
VGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB3aXRoIGFscGhhIGVu
YWJsZWQgcHJlc2VydmVzIHRoZSBhbHBoYSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZh
ciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgdmFy
IGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIGN0eC5maWxsU3R5
bGUgPSAncmdiYSgwLCAyNTUsIDAsIDAuNSknOworICAgIGN0eC5maWxsUmVjdCgwLCAwLCAxMCwg
MTApOworICAgIF9hc3NlcnRQaXhlbEFwcHJveChvZmZzY3JlZW5DYW52YXMsIDUsNSwgMCwyNTUs
MCwxMjcsICI1LDUiLCAiMCwyNTUsMCwxMjciLCAyKTsKK30sICJUZXN0IHRoYXQgJ2FscGhhJyBj
b250ZXh0IGNyZWF0aW9uIGF0dHJpYnV0ZSBpcyB0cnVlIGJ5IGRlZmF1bHQiKTsKKworPC9zY3Jp
cHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndv
cmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIyNGNlNzRlZWE4NzhjZjc2YTEzMzNiY2Fl
MWJhYTEwZmQ0ZjY2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zm
c2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUEFTUyBUZXN0IHRoYXQgZ2V0Q29udGV4dCB3aXRoIHVu
LXN1cHBvcnRlZCBzdHJpbmcgdGhyb3dzIGEgVHlwZUVycm9yLiAKK0ZBSUwgVGVzdCB0aGF0IGdl
dENvbnRleHQgd2l0aCBzdXBwb3J0ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIENh
bid0IGZpbmQgdmFyaWFibGU6IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRAorRkFJ
TCBUZXN0IHRoYXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUg
cmV0dXJucyBudWxsIHRoZSBzZWNvbmQgdGltZSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQg
c3RhdGUuCitQQVNTIFRlc3QgdGhhdCAyZGNvbnRleHQuY2FudmFzIHNob3VsZCByZXR1cm4gdGhl
IG9yaWdpbmFsIE9mZnNjcmVlbkNhbnZhcyAKK1BBU1MgVGVzdCB0aGF0IHdlYmdsY29udGV4dC5j
YW52YXMgc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIAorRkFJTCBU
ZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEgZGlz
YWJsZWQgbWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUgYXNzZXJ0X2FwcHJveF9lcXVh
bHM6IEdyZWVuIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1LCA1KSBleHBlY3RlZCAxMjcgKy8t
IDIgYnV0IGdvdCAyNTUKK1BBU1MgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCB3aXRoIGFscGhhIGVuYWJsZWQgcHJlc2VydmVzIHRoZSBhbHBoYSAKK1BBU1MgVGVz
dCB0aGF0ICdhbHBoYScgY29udGV4dCBjcmVhdGlvbiBhdHRyaWJ1dGUgaXMgdHJ1ZSBieSBkZWZh
dWx0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuZ2V0Y29udGV4dC53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0t
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8g
cnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLmdldGNvbnRleHQud29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5nZXRjb250ZXh0Lndvcmtlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZDVlMTI0M2U5N2ViMWY4NTVhYzM2MDBkYTg1NTBhMDQ5ZTIxOTlmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZh
cy5nZXRjb250ZXh0Lndvcmtlci5qcwpAQCAtMCwwICsxLDc3IEBACisvLyBzcGVjIGxpbms6IGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1vZmZzY3JlZW5jYW52YXMtZ2V0Y29udGV4
dAorCitpbXBvcnRTY3JpcHRzKCIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIik7CitpbXBvcnRT
Y3JpcHRzKCIvaHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyIpOworCit0ZXN0
KGZ1bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2Fu
dmFzKDEsIDEpOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsg
b2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzNkJyk7IH0pOworfSwgIlRlc3QgdGhhdCBnZXRD
b250ZXh0IHdpdGggdW4tc3VwcG9ydGVkIHN0cmluZyB0aHJvd3MgYSBUeXBlRXJyb3IuIik7CisK
K3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhczEgPSBuZXcgT2Zmc2Ny
ZWVuQ2FudmFzKDEsIDEpOworICAgIHZhciBjdHgxID0gb2Zmc2NyZWVuQ2FudmFzMS5nZXRDb250
ZXh0KCcyZCcpOworICAgIGFzc2VydF90cnVlKGN0eDEgaW5zdGFuY2VvZiBPZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQpOworCisgICAgdmFyIG9mZnNjcmVlbkNhbnZhczIgPSBuZXcg
T2Zmc2NyZWVuQ2FudmFzKDEsIDEpOworICAgIHZhciBjdHgyID0gb2Zmc2NyZWVuQ2FudmFzMi5n
ZXRDb250ZXh0KCd3ZWJnbCcpOworICAgIGFzc2VydF90cnVlKGN0eDIgaW5zdGFuY2VvZiBXZWJH
TFJlbmRlcmluZ0NvbnRleHQpOworCisgICAgdmFyIG9mZnNjcmVlbkNhbnZhczMgPSBuZXcgT2Zm
c2NyZWVuQ2FudmFzKDEsIDEpOworICAgIHZhciBjdHgzID0gb2Zmc2NyZWVuQ2FudmFzMy5nZXRD
b250ZXh0KCd3ZWJnbDInKTsKKyAgICBhc3NlcnRfdHJ1ZShjdHgzIGluc3RhbmNlb2YgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dCk7Cit9LCAiVGVzdCB0aGF0IGdldENvbnRleHQgd2l0aCBzdXBwb3J0
ZWQgc3RyaW5nIHJldHVybnMgY29ycmVjdCByZXN1bHRzIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7
CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhczEgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsIDEpOwor
ICAgIHZhciBjdHgxID0gb2Zmc2NyZWVuQ2FudmFzMS5nZXRDb250ZXh0KCcyZCcpOworICAgIHZh
ciBjdHgyID0gb2Zmc2NyZWVuQ2FudmFzMS5nZXRDb250ZXh0KCd3ZWJnbCcpOworICAgIGFzc2Vy
dF9lcXVhbHMoY3R4MiwgbnVsbCk7CisKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzMiA9IG5ldyBP
ZmZzY3JlZW5DYW52YXMoMSwgMSk7CisgICAgdmFyIGN0eDMgPSBvZmZzY3JlZW5DYW52YXMyLmdl
dENvbnRleHQoJ3dlYmdsJyk7CisgICAgdmFyIGN0eDQgPSBvZmZzY3JlZW5DYW52YXMyLmdldENv
bnRleHQoJzJkJyk7CisgICAgYXNzZXJ0X2VxdWFscyhjdHg0LCBudWxsKTsKK30sICJUZXN0IHRo
YXQgZ2V0Q29udGV4dCB0d2ljZSB3aXRoIGRpZmZlcmVudCBjb250ZXh0IHR5cGUgcmV0dXJucyBu
dWxsIHRoZSBzZWNvbmQgdGltZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvZmZz
Y3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEsIDIpOworICAgIHZhciBjdHggPSBv
ZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICB2YXIgZHN0Q2FudmFzID0gY3R4
LmNhbnZhczsKKyAgICBhc3NlcnRfZXF1YWxzKGRzdENhbnZhcy53aWR0aCwgMSk7CisgICAgYXNz
ZXJ0X2VxdWFscyhkc3RDYW52YXMuaGVpZ2h0LCAyKTsKK30sICJUZXN0IHRoYXQgMmRjb250ZXh0
LmNhbnZhcyBzaG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBPZmZzY3JlZW5DYW52YXMiKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVl
bkNhbnZhcygxLCAyKTsKKyAgICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQo
J3dlYmdsJyk7CisgICAgdmFyIGRzdENhbnZhcyA9IGN0eC5jYW52YXM7CisgICAgYXNzZXJ0X2Vx
dWFscyhkc3RDYW52YXMud2lkdGgsIDEpOworICAgIGFzc2VydF9lcXVhbHMoZHN0Q2FudmFzLmhl
aWdodCwgMik7Cit9LCAiVGVzdCB0aGF0IHdlYmdsY29udGV4dC5jYW52YXMgc2hvdWxkIHJldHVy
biB0aGUgb3JpZ2luYWwgT2Zmc2NyZWVuQ2FudmFzIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAg
ICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJywge2FscGhhOiBmYWxz
ZX0pOworICAgIGN0eC5maWxsU3R5bGUgPSAncmdiYSgwLCAyNTUsIDAsIDAuNSknOworICAgIGN0
eC5maWxsUmVjdCgwLCAwLCAxMCwgMTApOworICAgIF9hc3NlcnRQaXhlbEFwcHJveChvZmZzY3Jl
ZW5DYW52YXMsIDUsNSwgMCwxMjcsMCwyNTUsICI1LDUiLCAiMCwxMjcsMCwyNTUiLCAyKTsKK30s
ICJUZXN0IHRoYXQgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHdpdGggYWxwaGEg
ZGlzYWJsZWQgbWFrZXMgdGhlIE9mZnNjcmVlbkNhbnZhcyBvcGFxdWUiKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygx
MCwgMTApOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnLCB7
YWxwaGE6IHRydWV9KTsKKyAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMCwgMjU1LCAwLCAwLjUp
JzsKKyAgICBjdHguZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgICBfYXNzZXJ0UGl4ZWxBcHBy
b3gob2Zmc2NyZWVuQ2FudmFzLCA1LDUsIDAsMjU1LDAsMTI3LCAiNSw1IiwgIjAsMjU1LDAsMTI3
IiwgMik7Cit9LCAiVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB3
aXRoIGFscGhhIGVuYWJsZWQgcHJlc2VydmVzIHRoZSBhbHBoYSIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAx
MCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAg
IGN0eC5maWxsU3R5bGUgPSAncmdiYSgwLCAyNTUsIDAsIDAuNSknOworICAgIGN0eC5maWxsUmVj
dCgwLCAwLCAxMCwgMTApOworICAgIF9hc3NlcnRQaXhlbEFwcHJveChvZmZzY3JlZW5DYW52YXMs
IDUsNSwgMCwyNTUsMCwxMjcsICI1LDUiLCAiMCwyNTUsMCwxMjciLCAyKTsKK30sICJUZXN0IHRo
YXQgJ2FscGhhJyBjb250ZXh0IGNyZWF0aW9uIGF0dHJpYnV0ZSBpcyB0cnVlIGJ5IGRlZmF1bHQi
KTsKKworZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4t
Y2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY0NTUwNzE3MmI3NmJhZjA2YWIwZTQ0ZWQxNWNlMzMwNmFkNDgxOGEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitQ
QVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRl
cyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBubyBjb250ZXh0IGF0
dGFjaGVkLiAKK1BBU1MgVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggYW5kIGhlaWdo
dCBhdHRyaWJ1dGVzIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB3b3JrcyB3aGVuIHRoZXJlIGlzIGEg
MmQgY29udGV4dCBhdHRhY2hlZC4gCitQQVNTIFZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdp
ZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hl
biB0aGVyZSBpcyBhIHdlYmdsIGNvbnRleHQgYXR0YWNoZWQuIAorRkFJTCBWZXJpZnkgdGhhdCB3
cml0aW5nIHRvIHRoZSB3aWR0aCBvciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIg
Y2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVl
bicgaXMgdW5kZWZpbmVkKQorRkFJTCBWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBv
ciBoZWlnaHQgYXR0cmlidXRlIG9mIGEgcGxhY2Vob2xkZXIgY2FudmFzIHRocm93cyBhbiBleGNl
cHRpb24gZXZlbiB3aGVuIG5vdCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4g
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhv
bGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorUEFTUyBWZXJp
ZnkgdGhhdCByZXNpemluZyBhIDJkIGNvbnRleHQgcmVzZXRzIGl0cyBzdGF0ZS4gCitQQVNTIFZl
cmlmeSB0aGF0IHNldHRpbmcgdGhlIHNpemUgb2YgYSAyZCBjb250ZXh0IHRvIHRoZSBzYW1lIHNp
emUgaXQgYWxyZWFkeSBoYWQgcmVzZXRzIGl0cyBzdGF0ZS4gCitGQUlMIFZlcmlmeSB0aGF0IHJl
c2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgMmQgY29udGV4dCBwcm9wYWdhdGVzIHRo
ZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91c2x5LiBwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5jdGlvbi4gKElu
ICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3BsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitGQUlMIFZlcmlmeSB0
aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEgd2ViZ2wgY29udGV4dCBwcm9w
YWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2FudmFzIGFzeW5jaHJvbm91
c2x5LiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywgJ3Bs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitGQUlM
IFZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBzaXplIG9mIHRoZSBmcmFtZSBhcyB0aGUg
aW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcy4gcGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIu
dHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRy
b2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnJlc2l6ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMjU5Zjc5Y2EyODE5OTM2ZTMzYmFmZThkMGJlYjZjZTYxMDMyNWY0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy5yZXNpemUuaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+VGVzdCByZXNpemluZyBhbiBPZmZzY3JlZW5DYW52YXMgd2l0aCBhIDJk
IGNvbnRleHQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9odG1sL2NhbnZhcy9yZXNvdXJjZXMvY2FudmFzLXRl
c3RzLmpzIj48L3NjcmlwdD4KKzxib2R5PjwvYm9keT4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0aW9u
KCkgeworICB2YXIgY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMjApOworICBjYW52
YXMud2lkdGggPSAzMDsKKyAgY2FudmFzLmhlaWdodCA9IDQwOworICBhc3NlcnRfZXF1YWxzKGNh
bnZhcy53aWR0aCwgMzApOworICBhc3NlcnRfZXF1YWxzKGNhbnZhcy5oZWlnaHQsIDQwKTsKK30s
ICJWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMg
b2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgbm8gY29udGV4dCBhdHRh
Y2hlZC4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgdmFyIGNhbnZhcyA9IG5ldyBPZmZzY3Jl
ZW5DYW52YXMoMTAsIDIwKTsKKyAgY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIGNhbnZhcy53
aWR0aCA9IDMwOworICBjYW52YXMuaGVpZ2h0ID0gNDA7CisgIGFzc2VydF9lcXVhbHMoY2FudmFz
LndpZHRoLCAzMCk7CisgIGFzc2VydF9lcXVhbHMoY2FudmFzLmhlaWdodCwgNDApOworICB2YXIg
aW1hZ2UgPSBjYW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CisgIGFzc2VydF9lcXVhbHMo
aW1hZ2Uud2lkdGgsIDMwKTsKKyAgYXNzZXJ0X2VxdWFscyhpbWFnZS5oZWlnaHQsIDQwKTsKK30s
ICJWZXJpZnkgdGhhdCB3cml0aW5nIHRvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMg
b2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHdvcmtzIHdoZW4gdGhlcmUgaXMgYSAyZCBjb250ZXh0IGF0
dGFjaGVkLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgY2FudmFzID0gbmV3IE9mZnNj
cmVlbkNhbnZhcygxMCwgMjApOworICBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKTsKKyAgY2Fu
dmFzLndpZHRoID0gMzA7CisgIGNhbnZhcy5oZWlnaHQgPSA0MDsKKyAgYXNzZXJ0X2VxdWFscyhj
YW52YXMud2lkdGgsIDMwKTsKKyAgYXNzZXJ0X2VxdWFscyhjYW52YXMuaGVpZ2h0LCA0MCk7Cisg
IHZhciBpbWFnZSA9IGNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKKyAgYXNzZXJ0X2Vx
dWFscyhpbWFnZS53aWR0aCwgMzApOworICBhc3NlcnRfZXF1YWxzKGltYWdlLmhlaWdodCwgNDAp
OworfSwgIlZlcmlmeSB0aGF0IHdyaXRpbmcgdG8gdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXR0cmli
dXRlcyBvZiBhbiBPZmZzY3JlZW5DYW52YXMgd29ya3Mgd2hlbiB0aGVyZSBpcyBhIHdlYmdsIGNv
bnRleHQgYXR0YWNoZWQuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBwbGFjZWhvbGRl
ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICBwbGFjZWhvbGRlci53aWR0
aCA9IDI7CisgIHBsYWNlaG9sZGVyLmhlaWdodCA9IDI7CisgIHZhciBvZmZzY3JlZW4gPSBwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOworICBhc3NlcnRfdGhyb3dzX2Rv
bSgiSW52YWxpZFN0YXRlRXJyb3IiLCAoKSA9PiB7IHBsYWNlaG9sZGVyLndpZHRoID0gMTsgfSk7
CisgIGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJvciIsICgpID0+IHsgcGxhY2Vo
b2xkZXIuaGVpZ2h0ID0gMTsgfSk7Cit9LCAiVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lk
dGggb3IgaGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4g
ZXhjZXB0aW9uIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBwbGFjZWhvbGRlciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICBwbGFjZWhvbGRlci53aWR0aCA9IDE7
CisgIHBsYWNlaG9sZGVyLmhlaWdodCA9IDE7CisgIHZhciBvZmZzY3JlZW4gPSBwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOworICBhc3NlcnRfdGhyb3dzX2RvbSgiSW52
YWxpZFN0YXRlRXJyb3IiLCAoKSA9PiB7IHBsYWNlaG9sZGVyLndpZHRoID0gMTsgfSk7CisgIGFz
c2VydF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJvciIsICgpID0+IHsgcGxhY2Vob2xkZXIu
aGVpZ2h0ID0gMTsgfSk7Cit9LCAiVmVyaWZ5IHRoYXQgd3JpdGluZyB0byB0aGUgd2lkdGggb3Ig
aGVpZ2h0IGF0dHJpYnV0ZSBvZiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0
aW9uIGV2ZW4gd2hlbiBub3QgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIik7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBjYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFz
KDEwLCAyMCk7CisgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgY3R4Lmxp
bmVXaWR0aCA9IDU7CisgIGNhbnZhcy53aWR0aCA9IDMwOworICBhc3NlcnRfZXF1YWxzKGN0eC5s
aW5lV2lkdGgsIDEpOworICBjdHgubGluZVdpZHRoID0gNTsKKyAgY2FudmFzLmhlaWdodCA9IDQw
OworICBhc3NlcnRfZXF1YWxzKGN0eC5saW5lV2lkdGgsIDEpOworfSwgIlZlcmlmeSB0aGF0IHJl
c2l6aW5nIGEgMmQgY29udGV4dCByZXNldHMgaXRzIHN0YXRlLiIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICB2YXIgY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMjApOworICB2YXIg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgIGN0eC5saW5lV2lkdGggPSA1OworICBj
YW52YXMud2lkdGggPSBjYW52YXMud2lkdGg7CisgIGFzc2VydF9lcXVhbHMoY3R4LmxpbmVXaWR0
aCwgMSk7CisgIGN0eC5saW5lV2lkdGggPSA1OworICBjYW52YXMuaGVpZ2h0ID0gY2FudmFzLmhl
aWdodDsKKyAgYXNzZXJ0X2VxdWFscyhjdHgubGluZVdpZHRoLCAxKTsKK30sICJWZXJpZnkgdGhh
dCBzZXR0aW5nIHRoZSBzaXplIG9mIGEgMmQgY29udGV4dCB0byB0aGUgc2FtZSBzaXplIGl0IGFs
cmVhZHkgaGFkIHJlc2V0cyBpdHMgc3RhdGUuIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
eworICB2YXIgcGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsK
KyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwbGFjZWhvbGRlcik7IC8vIFNvIHRoYXQgd2Ug
Y2FuIGNoZWNrIGNvbXB1dGVkIHN0eWxlLworICBwbGFjZWhvbGRlci53aWR0aCA9IDEwOworICBw
bGFjZWhvbGRlci5oZWlnaHQgPSAyMDsKKyAgdmFyIG9mZnNjcmVlbiA9IHBsYWNlaG9sZGVyLnRy
YW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7CisgIHZhciBjdHggPSBvZmZzY3JlZW4uZ2V0Q29u
dGV4dCgnMmQnKTsKKyAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgIC8vIFZlcmlmeSB0aGF0IHNl
dHRpbmcgdGhlIHNpemUgb2YgYW4gT2Zmc2NyZWVuQ2FudmFzIHRoYXQgaGFzIGEgcGxhY2Vob2xk
ZXIgd29ya3MuCisgICAgb2Zmc2NyZWVuLndpZHRoID0gMzA7CisgICAgb2Zmc2NyZWVuLmhlaWdo
dCA9IDQwOworICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuLndpZHRoLCAzMCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhvZmZzY3JlZW4uaGVpZ2h0LCA0MCk7CisgICAgdmFyIGltYWdlID0gb2Zmc2Ny
ZWVuLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOworICAgIGFzc2VydF9lcXVhbHMoaW1hZ2Uud2lk
dGgsIDMwKTsKKyAgICBhc3NlcnRfZXF1YWxzKGltYWdlLmhlaWdodCwgNDApOworICB9KTsKKyAg
dC5zdGVwKGZ1bmN0aW9uKCkgeworICAgIC8vIFZlcmlmeSB0aGF0IHNldHRpbmcgdGhlIHNpemUg
b2YgYW4gT2Zmc2NyZWVuQ2FudmFzIGRvZXMgbm90IGRpcmVjdGx5IHVwZGF0ZSB0aGUgc2l6ZSBv
ZiBpdHMgcGxhY2Vob2xkZXIgY2FudmFzLgorICAgIGFzc2VydF9lcXVhbHMocGxhY2Vob2xkZXIu
d2lkdGgsIDEwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBsYWNlaG9sZGVyLmhlaWdodCwgMjApOwor
ICB9KTsKKyAgdmFyIGFzeW5jU3RlcHNDb21wbGV0ZWQgPSAwOworICBjcmVhdGVJbWFnZUJpdG1h
cChwbGFjZWhvbGRlcikudGhlbihpbWFnZSA9PiB7CisgICAgdC5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHBsYWNlaG9sZGVyIHdhcyBub3QgdXBkYXRlZCBzeW5j
aHJvbm91c2x5LgorICAgICAgYXNzZXJ0X2VxdWFscyhpbWFnZS53aWR0aCwgMTApOworICAgICAg
YXNzZXJ0X2VxdWFscyhpbWFnZS5oZWlnaHQsIDIwKTsKKyAgICB9KTsKKyAgICBhc3luY1N0ZXBz
Q29tcGxldGVkID0gYXN5bmNTdGVwc0NvbXBsZXRlZCArIDE7CisgICAgaWYgKGFzeW5jU3RlcHND
b21wbGV0ZWQgPT0gMikgeworICAgICAgdC5kb25lKCk7CisgICAgfQorICB9KTsKKyAgLy8gV2Ug
d2FpdCBmb3IgdXAgdG8gMyBmcmFtZXMgYmVmb3JlIGNoZWNraW5nIHRoZSBpbmZvcm1hdGlvbiBo
YXMgcHJvcGFnYXRlZC4KKyAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgp
ID0+IHsKKyAgICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gVmVyaWZ5IHRoYXQg
dXBkYXRlcyB0aGUgc2l6ZSBvZiBpdHMgcGxhY2Vob2xkZXIgY2FudmFzLgorICAgICAgICBhc3Nl
cnRfZXF1YWxzKHBsYWNlaG9sZGVyLndpZHRoLCAzMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
cGxhY2Vob2xkZXIuaGVpZ2h0LCA0MCk7CisgICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUocGxhY2Vob2xkZXIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnd2lkdGgnKSwgIjMwcHgiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2hlaWdodCcp
LCAiNDBweCIpOworICAgICAgfSk7CisgICAgICBjcmVhdGVJbWFnZUJpdG1hcChwbGFjZWhvbGRl
cikudGhlbihpbWFnZSA9PiB7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAvLyBWZXJpZnkgdGhhdCBhbiBpbWFnZSBncmFiYmVkIGZyb20gdGhlIHBsYWNlaG9sZGVyIGhh
cyB0aGUgY29ycmVjdCBkaW1lbnNpb25zCisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhpbWFnZS53
aWR0aCwgMzApOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoaW1hZ2UuaGVpZ2h0LCA0MCk7Cisg
ICAgICAgIH0pOworICAgICAgICBhc3luY1N0ZXBzQ29tcGxldGVkID0gYXN5bmNTdGVwc0NvbXBs
ZXRlZCArIDE7CisgICAgICAgIGlmIChhc3luY1N0ZXBzQ29tcGxldGVkID09IDIpIHsKKyAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgfSk7CisgICAgfSk7Cisg
IH0pOworfSwgIlZlcmlmeSB0aGF0IHJlc2l6aW5nIGFuIE9mZnNjcmVlbkNhbnZhcyB3aXRoIGEg
MmQgY29udGV4dCBwcm9wYWdhdGVzIHRoZSBuZXcgc2l6ZSB0byBpdHMgcGxhY2Vob2xkZXIgY2Fu
dmFzIGFzeW5jaHJvbm91c2x5LiIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgdmFy
IHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQocGxhY2Vob2xkZXIpOyAvLyBTbyB0aGF0IHdlIGNhbiBjaGVj
ayBjb21wdXRlZCBzdHlsZS8KKyAgcGxhY2Vob2xkZXIud2lkdGggPSAxMDsKKyAgcGxhY2Vob2xk
ZXIuaGVpZ2h0ID0gMjA7CisgIHZhciBvZmZzY3JlZW4gPSBwbGFjZWhvbGRlci50cmFuc2ZlckNv
bnRyb2xUb09mZnNjcmVlbigpOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuLmdldENvbnRleHQoJ3dl
YmdsJyk7CisgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAvLyBWZXJpZnkgdGhhdCBzZXR0aW5n
IHRoZSBzaXplIG9mIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGhhcyBhIHBsYWNlaG9sZGVyIHdv
cmtzLgorICAgIG9mZnNjcmVlbi53aWR0aCA9IDMwOworICAgIG9mZnNjcmVlbi5oZWlnaHQgPSA0
MDsKKyAgICBhc3NlcnRfZXF1YWxzKG9mZnNjcmVlbi53aWR0aCwgMzApOworICAgIGFzc2VydF9l
cXVhbHMob2Zmc2NyZWVuLmhlaWdodCwgNDApOworICAgIHZhciBpbWFnZSA9IG9mZnNjcmVlbi50
cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKKyAgICBhc3NlcnRfZXF1YWxzKGltYWdlLndpZHRoLCAz
MCk7CisgICAgYXNzZXJ0X2VxdWFscyhpbWFnZS5oZWlnaHQsIDQwKTsKKyAgfSk7CisgIHQuc3Rl
cChmdW5jdGlvbigpIHsKKyAgICAvLyBWZXJpZnkgdGhhdCBzZXR0aW5nIHRoZSBzaXplIG9mIGFu
IE9mZnNjcmVlbkNhbnZhcyBkb2VzIG5vdCBkaXJlY3RseSB1cGRhdGUgdGhlIHNpemUgb2YgaXRz
IHBsYWNlaG9sZGVyIGNhbnZhcy4KKyAgICBhc3NlcnRfZXF1YWxzKHBsYWNlaG9sZGVyLndpZHRo
LCAxMCk7CisgICAgYXNzZXJ0X2VxdWFscyhwbGFjZWhvbGRlci5oZWlnaHQsIDIwKTsKKyAgfSk7
CisgIHZhciBhc3luY1N0ZXBzQ29tcGxldGVkID0gMDsKKyAgY3JlYXRlSW1hZ2VCaXRtYXAocGxh
Y2Vob2xkZXIpLnRoZW4oaW1hZ2UgPT4geworICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAg
IC8vIFZlcmlmeSB0aGF0IHRoZSBwbGFjZWhvbGRlciB3YXMgbm90IHVwZGF0ZWQgc3luY2hyb25v
dXNseS4KKyAgICAgIGFzc2VydF9lcXVhbHMoaW1hZ2Uud2lkdGgsIDEwKTsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoaW1hZ2UuaGVpZ2h0LCAyMCk7CisgICAgfSk7CisgICAgYXN5bmNTdGVwc0NvbXBs
ZXRlZCA9IGFzeW5jU3RlcHNDb21wbGV0ZWQgKyAxOworICAgIGlmIChhc3luY1N0ZXBzQ29tcGxl
dGVkID09IDIpIHsKKyAgICAgIHQuZG9uZSgpOworICAgIH0KKyAgfSk7CisgIC8vIFdlIHdhaXQg
Zm9yIHVwIHRvIDMgZnJhbWVzIGJlZm9yZSBjaGVja2luZyB0aGUgaW5mb3JtYXRpb24gaGFzIHBy
b3BhZ2F0ZWQuCisgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7
CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCB1
cGRhdGVzIHRoZSBzaXplIG9mIGl0cyBwbGFjZWhvbGRlciBjYW52YXMuCisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhwbGFjZWhvbGRlci53aWR0aCwgMzApOworICAgICAgICAgIGFzc2VydF9lcXVh
bHMocGxhY2Vob2xkZXIuaGVpZ2h0LCA0MCk7CisgICAgICAgICAgdmFyIGNvbXB1dGVkU3R5bGUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwbGFjZWhvbGRlcik7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRoJyksICIzMHB4Iik7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUo
J2hlaWdodCcpLCAiNDBweCIpOworICAgICAgICB9KTsKKyAgICAgICAgY3JlYXRlSW1hZ2VCaXRt
YXAocGxhY2Vob2xkZXIpLnRoZW4oaW1hZ2UgPT4geworICAgICAgICAgIHQuc3RlcChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IGFuIGltYWdlIGdyYWJiZWQgZnJvbSB0
aGUgcGxhY2Vob2xkZXIgaGFzIHRoZSBjb3JyZWN0IGRpbWVuc2lvbnMKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoaW1hZ2Uud2lkdGgsIDMwKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
aW1hZ2UuaGVpZ2h0LCA0MCk7CisgICAgICAgICAgfSk7CisgICAgICAgICAgYXN5bmNTdGVwc0Nv
bXBsZXRlZCA9IGFzeW5jU3RlcHNDb21wbGV0ZWQgKyAxOworICAgICAgICAgIGlmIChhc3luY1N0
ZXBzQ29tcGxldGVkID09IDIpIHsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgIH0K
KyAgICAgICAgfSk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSk7Cit9LCAiVmVyaWZ5IHRoYXQg
cmVzaXppbmcgYW4gT2Zmc2NyZWVuQ2FudmFzIHdpdGggYSB3ZWJnbCBjb250ZXh0IHByb3BhZ2F0
ZXMgdGhlIG5ldyBzaXplIHRvIGl0cyBwbGFjZWhvbGRlciBjYW52YXMgYXN5bmNocm9ub3VzbHku
Iik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCl7CisgIHZhciBwbGFjZWhvbGRlciA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICBwbGFjZWhvbGRlci53aWR0aCA9IDE7Cisg
IHBsYWNlaG9sZGVyLmhlaWdodCA9IDE7CisgIHZhciBvZmZzY3JlZW4gPSBwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOworICB2YXIgY3R4ID0gb2Zmc2NyZWVuLmdldENv
bnRleHQoJzJkJyk7CisgIG9mZnNjcmVlbi53aWR0aCA9IG9mZnNjcmVlbi5oZWlnaHQgPSAxMDsK
KyAgY3R4LmZpbGxTdHlsZSA9ICcjMGYwJzsKKyAgY3R4LmZpbGxSZWN0KDAsIDAsIDEwLCAxMCk7
CisgIC8vIFdlIHdhaXQgZm9yIHVwIHRvIDMgZnJhbWVzIGJlZm9yZSBjaGVja2luZyB0aGUgaW5m
b3JtYXRpb24gaGFzIHByb3BhZ2F0ZWQuCisgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7
CisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZSgoKSA9PiB7CisgICAgICAgIHZhciB0ZXN0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnY2FudmFzJyk7CisgICAgICAgIHRlc3RDYW52YXMud2lkdGggPSB0ZXN0Q2FudmFz
LmhlaWdodCA9IDIwOworICAgICAgICB0ZXN0Q3R4ID0gdGVzdENhbnZhcy5nZXRDb250ZXh0KCcy
ZCcpOworICAgICAgICB0ZXN0Q3R4LmRyYXdJbWFnZShwbGFjZWhvbGRlciwgMCwgMCk7CisgICAg
ICAgIHZhciBwaXhlbDEgPSB0ZXN0Q3R4LmdldEltYWdlRGF0YSg5LCA5LCAxLCAxKS5kYXRhOwor
ICAgICAgICB2YXIgcGl4ZWwyID0gdGVzdEN0eC5nZXRJbWFnZURhdGEoOSwgMTAsIDEsIDEpLmRh
dGE7CisgICAgICAgIHZhciBwaXhlbDMgPSB0ZXN0Q3R4LmdldEltYWdlRGF0YSgxMCwgOSwgMSwg
MSkuZGF0YTsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGFzc2VydF9l
cXVhbHMocGxhY2Vob2xkZXIud2lkdGgsIDEwKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBs
YWNlaG9sZGVyLmhlaWdodCwgMTApOworICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMocGl4
ZWwxLCBbMCwgMjU1LCAwLCAyNTVdKTsKKyAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBp
eGVsMiwgWzAsIDAsIDAsIDBdKTsKKyAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHBpeGVs
MywgWzAsIDAsIDAsIDBdKTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgICAg
fSk7CisgICAgfSk7CisgIH0pOworfSwgIlZlcmlmeSB0aGF0IGRyYXdJbWFnZSB1c2VzIHRoZSBz
aXplIG9mIHRoZSBmcmFtZSBhcyB0aGUgaW50aW5zaWMgc2l6ZSBvZiBhIHBsYWNlaG9sZGVyIGNh
bnZhcy4iKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2Zlci50by5pbWFnZWJpdG1hcC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NmUxZDdlNjY5YjliMjI3YmEwMTVhMmY3MTU3ZjQwYjU1MmNjY2Q5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50
cmFuc2Zlci50by5pbWFnZWJpdG1hcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BB
U1MgVGVzdCB0aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCByZXR1cm5zIGFuIEltYWdlQml0bWFw
IHdpdGggY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IAorRkFJTCBUZXN0IHRoYXQgdHJhbnNmZXJU
b0ltYWdlQml0bWFwIHJldHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IGNvbG9yIGFz
c2VydF9lcXVhbHM6IEFscGhhIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICg1MCwgMjUpIGV4cGVj
dGVkIDI1NSBidXQgZ290IDAKK1BBU1MgVGVzdCB0aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB3
b24ndCBjaGFuZ2UgY29udGV4dCdzIHByb3BlcnR5IAorRkFJTCBUZXN0IHRoYXQgdHJhbnNmZXJU
b0ltYWdlQml0bWFwIHByZXNlcnZlcyB0cmFuc2Zvcm0gYXNzZXJ0X2VxdWFsczogR3JlZW4gY2hh
bm5lbCBvZiB0aGUgcGl4ZWwgYXQgKDIzLCAyNSkgZXhwZWN0ZWQgMjU1IGJ1dCBnb3QgMAorUEFT
UyBUZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgb24gYSBkZXRhY2hlZCBPZmZz
Y3JlZW5DYW52YXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiAKK1BBU1MgVGVzdCB0aGF0IHRyYW5zZmVy
VG9JbWFnZUJpdG1hcCB3aXRob3V0IGEgY29udGV4dCB0aHJvd3MgYW4gZXhjZXB0aW9uIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVu
Y2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhl
LW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFw
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzlhODM4MDJhNDNmNDNkMTQ0ZmVhODQ3NDUyZTM5YThjZjJkYjc0
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAuaHRtbApAQCAtMCwwICsx
LDExMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9j
YW52YXMtdGVzdHMuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnLyNkb20tb2Zmc2NyZWVuY2FudmFzLXRyYW5zZmVydG9pbWFn
ZWJpdG1hcCI+CisKKzxzY3JpcHQgaWQ9Im15V29ya2VyIiB0eXBlPSJ0ZXh0L3dvcmtlciI+CisK
K3NlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworfTsKKworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CitmdW5jdGlvbiBtYWtlV29ya2VyKHNjcmlwdCkKK3sKKyAgICB2YXIgYmxvYiA9IG5ldyBC
bG9iKFtzY3JpcHRdKTsKKyAgICByZXR1cm4gbmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJM
KGJsb2IpKTsKK30KKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiB0ZXN0U2l6ZShj
b250ZXh0VHlwZSkgeworICAgICAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVl
bkNhbnZhcygxMDAsIDUwKTsKKyAgICAgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRD
b250ZXh0KGNvbnRleHRUeXBlKTsKKyAgICAgICAgdmFyIGltYWdlID0gb2Zmc2NyZWVuQ2FudmFz
LnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGltYWdlLndp
ZHRoLCAxMDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKGltYWdlLmhlaWdodCwgNTApOworICAg
IH0KKworICAgIHRlc3RTaXplKCcyZCcpOworICAgIHRlc3RTaXplKCd3ZWJnbCcpOworfSwgIlRl
c3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcmV0dXJucyBhbiBJbWFnZUJpdG1hcCB3aXRo
IGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGZ1
bmN0aW9uIHRlc3RJbWFnZUJpdG1hcENscihzaG91bGRDYWxsVHdpY2UsIGFscGhhVmFsKSB7Cisg
ICAgICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTAp
OworICAgICAgICB2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJywge2Fs
cGhhOiBhbHBoYVZhbH0pOworICAgICAgICBjdHguZmlsbFN0eWxlID0gIiMwZjAiOworICAgICAg
ICBjdHguZmlsbFJlY3QoMCwgMCwgMTAwLCA1MCk7CisgICAgICAgIHZhciBpbWFnZSA9IG9mZnNj
cmVlbkNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKKworICAgICAgICBpZiAoc2hvdWxk
Q2FsbFR3aWNlKQorICAgICAgICAgICAgaW1hZ2UgPSBvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJU
b0ltYWdlQml0bWFwKCk7CisKKyAgICAgICAgdmFyIGRyYXdDYW52YXMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICAgICAgZHJhd0NhbnZhcy53aWR0aCA9IDEwMDsKKyAg
ICAgICAgZHJhd0NhbnZhcy5oZWlnaHQgPSA1MDsKKyAgICAgICAgdmFyIGRDdHggPSBkcmF3Q2Fu
dmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgICAgIGRDdHguZHJhd0ltYWdlKGltYWdlLCAwLCAw
KTsKKworICAgICAgICBpZiAoc2hvdWxkQ2FsbFR3aWNlKSB7CisgICAgICAgICAgICBpZiAoYWxw
aGFWYWwpCisgICAgICAgICAgICAgICAgX2Fzc2VydFBpeGVsKGRyYXdDYW52YXMsIDUwLDI1LCAw
LDAsMCwwLCAiNTAsMjUiLCAiMCwwLDAsMCIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIF9hc3NlcnRQaXhlbChkcmF3Q2FudmFzLCA1MCwyNSwgMCwwLDAsMjU1LCAiNTAsMjUi
LCAiMCwwLDAsMjU1Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBfYXNzZXJ0UGl4
ZWwoZHJhd0NhbnZhcywgNTAsMjUsIDAsMjU1LDAsMjU1LCAiNTAsMjUiLCAiMCwyNTUsMCwyNTUi
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlc3RJbWFnZUJpdG1hcENscihmYWxzZSwgdHJ1
ZSk7CisgICAgdGVzdEltYWdlQml0bWFwQ2xyKHRydWUsIHRydWUpOworICAgIHRlc3RJbWFnZUJp
dG1hcENscih0cnVlLCBmYWxzZSk7Cit9LCAiVGVzdCB0aGF0IHRyYW5zZmVyVG9JbWFnZUJpdG1h
cCByZXR1cm5zIGFuIEltYWdlQml0bWFwIHdpdGggY29ycmVjdCBjb2xvciIpOworCit0ZXN0KGZ1
bmN0aW9uKCkgeworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFz
KDEwMCwgNTApOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQn
KTsKKyAgICBjdHgubGluZVdpZHRoID0gMTA7CisgICAgdmFyIGltYWdlID0gb2Zmc2NyZWVuQ2Fu
dmFzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOworICAgIGFzc2VydF9lcXVhbHMoY3R4LmxpbmVX
aWR0aCwgMTApOworfSwgIlRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgd29uJ3QgY2hh
bmdlIGNvbnRleHQncyBwcm9wZXJ0eSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBv
ZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwMCwgNTApOworICAgIHZhciBj
dHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICBjdHgucmVjdCgwLCAw
LCAyNSwgNTApOworICAgIGN0eC5jbGlwKCk7CisgICAgY3R4LnRyYW5zbGF0ZSgyMCwgMjApOwor
CisgICAgY3R4LmZpbGxTdHlsZSA9ICcjMGYwJzsKKyAgICB2YXIgaW1hZ2UxID0gb2Zmc2NyZWVu
Q2FudmFzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOworICAgIC8vIHRyYXNuZm9ybSBzaG91bGQg
YmUgcHJlc2VydmVkCisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIDEwLCAxMCk7CisgICAgdmFyIGlt
YWdlMiA9IG9mZnNjcmVlbkNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKKworICAgIHZh
ciBkcmF3Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CisgICAgZHJh
d0NhbnZhcy53aWR0aCA9IDEwMDsKKyAgICBkcmF3Q2FudmFzLmhlaWdodCA9IDUwOworICAgIHZh
ciBkQ3R4ID0gZHJhd0NhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIGRDdHguZHJhd0ltYWdl
KGltYWdlMiwgMCwgMCk7CisgICAgLy8gVmVyaWZ5IHRoYXQgdHJhbnNmb3JtIHdhcyBjYXJyaWVk
IG92ZXIuCisgICAgX2Fzc2VydFBpeGVsKGRyYXdDYW52YXMsIDIzLDI1LCAwLDI1NSwwLDI1NSwg
IjIzLDI1IiwgIjAsMjU1LDAsMjU1Iik7CisgICAgLy8gVmVyaWZ5IHRoYXQgY2xpcCB3YXMgY2Fy
cmllZCBvdmVyLgorICAgIF9hc3NlcnRQaXhlbChkcmF3Q2FudmFzLCAyNywyNSwgMCwwLDAsMCwg
IjI3LDI1IiwgIjAsMCwwLDAiKTsKK30sICJUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFw
IHByZXNlcnZlcyB0cmFuc2Zvcm0iKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAg
dmFyIHdvcmtlciA9IG1ha2VXb3JrZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15V29ya2Vy
IikudGV4dENvbnRlbnQpOworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVu
Q2FudmFzKDEwLCAxMCk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKG9mZnNjcmVlbkNhbnZhcywg
W29mZnNjcmVlbkNhbnZhc10pOworICAgIGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVF
cnJvciIsIGZ1bmN0aW9uKCkgeyBvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJUb0ltYWdlQml0bWFw
KCk7IH0pOworICAgIHQuZG9uZSgpOworfSwgIlRlc3QgdGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFn
ZUJpdG1hcCBvbiBhIGRldGFjaGVkIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9u
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBP
ZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgiSW52YWxpZFN0
YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsgb2Zmc2NyZWVuQ2FudmFzLnRyYW5zZmVyVG9JbWFnZUJp
dG1hcCgpOyB9KTsKK30sICJUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHdpdGhvdXQg
YSBjb250ZXh0IHRocm93cyBhbiBleGNlcHRpb24iKTsKKworPC9zY3JpcHQ+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMu
dHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAudy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0
bWFwLnctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5YzlmNTEyZmU4NjhkZTZhMTM1MGMyYzFh
ZTJjNTc0NmIxOTM3NjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0bWFwLnct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUEFTUyBUZXN0IHRoYXQgdHJhbnNmZXJU
b0ltYWdlQml0bWFwIHJldHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IHdpZHRoIGFu
ZCBoZWlnaHQgaW4gYSB3b3JrZXIgCitQQVNTIFRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRt
YXAgcmV0dXJucyBhbiBJbWFnZUJpdG1hcCB3aXRoIGNvcnJlY3QgY29sb3IgaW4gYSB3b3JrZXIg
CitQQVNTIFRlc3QgdGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB0d2ljZSByZXR1cm5z
IGFuIEltYWdlQml0bWFwIHdpdGggY29ycmVjdCBjb2xvciBpbiBhIHdvcmtlciAKK0ZBSUwgVGVz
dCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHR3aWNlIG9uIGEgYWxwaGEtZGlzYWJs
ZWQgY29udGV4dCByZXR1cm5zIGFuIEltYWdlQml0bWFwIHdpdGggY29ycmVjdCBjb2xvciBpbiBh
IHdvcmtlciBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAzIHRvIGJlIDI1
NSBidXQgZ290IDAgKGV4cGVjdGVkIGFycmF5IFswLCAwLCAwLCAyNTVdIGdvdCBvYmplY3QgIjAs
MCwwLDAiKQorUEFTUyBUZXN0IHRoYXQgdHJhbnNmZXJUb0ltYWdlQml0bWFwIHdvbid0IGNoYW5n
ZSBjb250ZXh0J3MgcHJvcGVydHkgaW4gYSB3b3JrZXIgCitGQUlMIFRlc3QgdGhhdCBjYWxsIHRy
YW5zZmVyVG9JbWFnZUJpdG1hcCBwcmVzZXJ2ZXMgdHJhbnNmb3JtIGluIGEgd29ya2VyIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDEgdG8gYmUgMjU1IGJ1dCBnb3QgMCAo
ZXhwZWN0ZWQgYXJyYXkgWzAsIDI1NSwgMCwgMjU1XSBnb3Qgb2JqZWN0ICIwLDAsMCwwIikKK1BB
U1MgVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIG9uIGEgZGV0YWNoZWQgT2Zm
c2NyZWVuQ2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3b3JrZXIgCitQQVNTIFRlc3Qg
dGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB3aXRob3V0IGEgY29udGV4dCB0aHJvd3Mg
YW4gZXhjZXB0aW9uIGluIGEgd29ya2VyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyLnRvLmltYWdlYml0
bWFwLncuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3Jl
ZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAudy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1MWNl
MGVmYTIyY2Y5MGY2NTQxNWUyNDNjNzQ3ZTFmZTNlYmM4YWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5z
ZmVyLnRvLmltYWdlYml0bWFwLncuaHRtbApAQCAtMCwwICsxLDIwMSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiPjwvc2Ny
aXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
LyNkb20tb2Zmc2NyZWVuY2FudmFzLXRyYW5zZmVydG9pbWFnZWJpdG1hcCI+CisKKzxzY3JpcHQg
aWQ9Im15V29ya2VyIiB0eXBlPSJ0ZXh0L3dvcmtlciI+CisKK2Z1bmN0aW9uIHRlc3RTaXplKGNv
bnRleHRUeXBlKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2Fu
dmFzKDEwMCwgNTApOworICAgIHZhciBjdHggPSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dChj
b250ZXh0VHlwZSk7CisgICAgdmFyIGltYWdlID0gb2Zmc2NyZWVuQ2FudmFzLnRyYW5zZmVyVG9J
bWFnZUJpdG1hcCgpOworICAgIGlmIChpbWFnZS53aWR0aCA9PSAxMDAgJiYgaW1hZ2UuaGVpZ2h0
ID09IDUwKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1
bmN0aW9uIHRlc3RJbWFnZUJpdG1hcENscihzaG91bGRDYWxsVHdpY2UsIGFscGhhVmFsKSB7Cisg
ICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7Cisg
ICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcsIHthbHBoYTogYWxw
aGFWYWx9KTsKKyAgICBjdHguZmlsbFN0eWxlID0gIiMwZjAiOworICAgIGN0eC5maWxsUmVjdCgw
LCAwLCAxMDAsIDUwKTsKKyAgICB2YXIgaW1hZ2UgPSBvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJU
b0ltYWdlQml0bWFwKCk7CisKKyAgICBpZiAoc2hvdWxkQ2FsbFR3aWNlKQorICAgICAgICBpbWFn
ZSA9IG9mZnNjcmVlbkNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTsKKyAgICByZXR1cm4g
aW1hZ2U7Cit9CisKK2Z1bmN0aW9uIGlzSW52YWxpZFN0YXRlRXJyb3IoZnVuY1N0ciwgb2Zmc2Ny
ZWVuQ2FudmFzKQoreworICAgIHRyeSB7CisgICAgICAgIGV2YWwoZnVuY1N0cik7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlLm5h
bWUgPT0gIkludmFsaWRTdGF0ZUVycm9yIikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0SW1hZ2VCaXRtYXBT
aXplKCkKK3sKKyAgICByZXR1cm4gdGVzdFNpemUoJzJkJykgJiYgdGVzdFNpemUoJ3dlYmdsJyk7
Cit9CisKK2Z1bmN0aW9uIHRlc3RMaW5lV2lkdGhOb3RBbHRlcmVkKCkKK3sKKyAgICB2YXIgb2Zm
c2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKKyAgICB2YXIgY3R4
ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgY3R4LmxpbmVXaWR0aCA9
IDEwOworICAgIHZhciBpbWFnZSA9IG9mZnNjcmVlbkNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRt
YXAoKTsKKyAgICByZXR1cm4gY3R4LmxpbmVXaWR0aCA9PSAxMDsKK30KKworZnVuY3Rpb24gdGVz
dFRyYW5zZm9ybVByZXNlcnZlZCgpCit7CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBP
ZmZzY3JlZW5DYW52YXMoMTAwLCA1MCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5n
ZXRDb250ZXh0KCcyZCcpOworICAgIGN0eC5yZWN0KDAsIDAsIDI1LCA1MCk7CisgICAgY3R4LmNs
aXAoKTsKKyAgICBjdHgudHJhbnNsYXRlKDIwLCAyMCk7CisKKyAgICBjdHguZmlsbFN0eWxlID0g
JyMwZjAnOworICAgIHZhciBpbWFnZTEgPSBvZmZzY3JlZW5DYW52YXMudHJhbnNmZXJUb0ltYWdl
Qml0bWFwKCk7CisgICAgLy8gdHJhc25mb3JtIHNob3VsZCBiZSBwcmVzZXJ2ZWQKKyAgICBjdHgu
ZmlsbFJlY3QoMCwgMCwgMTAsIDEwKTsKKyAgICB2YXIgaW1hZ2UyID0gb2Zmc2NyZWVuQ2FudmFz
LnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpOworICAgIHJldHVybiBpbWFnZTI7Cit9CisKK2Z1bmN0
aW9uIHRlc3RFeGNlcHRpb24oKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zm
c2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgcmV0dXJuIGlzSW52YWxpZFN0YXRlRXJyb3IoIm9m
ZnNjcmVlbkNhbnZhcy50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKSIsIG9mZnNjcmVlbkNhbnZhcyk7
Cit9CisKK3NlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgIHN3aXRjaCAoZS5kYXRh
KSB7CisgICAgICAgIGNhc2UgJ3Rlc3QxJzoKKyAgICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2Uo
dGVzdEltYWdlQml0bWFwU2l6ZSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
ICd0ZXN0Mic6CisgICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRlc3RJbWFnZUJpdG1hcENs
cihmYWxzZSwgdHJ1ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3Rlc3Qz
JzoKKyAgICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UodGVzdEltYWdlQml0bWFwQ2xyKHRydWUs
IHRydWUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd0ZXN0NCc6CisgICAg
ICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRlc3RJbWFnZUJpdG1hcENscih0cnVlLCBmYWxzZSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3Rlc3Q1JzoKKyAgICAgICAgICAg
IHNlbGYucG9zdE1lc3NhZ2UodGVzdExpbmVXaWR0aE5vdEFsdGVyZWQoKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDYnOgorICAgICAgICAgICAgc2VsZi5wb3N0TWVz
c2FnZSh0ZXN0VHJhbnNmb3JtUHJlc2VydmVkKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgJ3Rlc3Q3JzoKKyAgICAgICAgICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcg
T2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHtv
ZmZzY3JlZW5DYW52YXM6IG9mZnNjcmVlbkNhbnZhc30sIFtvZmZzY3JlZW5DYW52YXNdKTsKKyAg
ICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoaXNJbnZhbGlkU3RhdGVFcnJvcigib2Zmc2NyZWVu
Q2FudmFzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpIiwgb2Zmc2NyZWVuQ2FudmFzKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDgnOgorICAgICAgICAgICAgc2VsZi5w
b3N0TWVzc2FnZSh0ZXN0RXhjZXB0aW9uKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQor
fTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBtYWtlV29ya2VyKHRlc3QpIHsK
KyAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlXb3Jr
ZXIiKS50ZXh0Q29udGVudF0pOworICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKFVSTC5jcmVh
dGVPYmplY3RVUkwoYmxvYikpOworICAgIHdvcmtlci5vbmVycm9yID0gdGVzdC51bnJlYWNoZWRf
ZnVuYygiZXJyb3IiKTsKKyAgICByZXR1cm4gd29ya2VyOworfQorCitmdW5jdGlvbiBkcmF3SW1h
Z2VCaXRtYXAoaW1hZ2UsIHgsIHkpCit7CisgICAgdmFyIGRyYXdDYW52YXMgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICBkcmF3Q2FudmFzLndpZHRoID0gMTAwOworICAg
IGRyYXdDYW52YXMuaGVpZ2h0ID0gNTA7CisgICAgdmFyIGRDdHggPSBkcmF3Q2FudmFzLmdldENv
bnRleHQoJzJkJyk7CisgICAgZEN0eC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworICAgIHJldHVy
biBkQ3R4LmdldEltYWdlRGF0YSh4LCB5LCAxLCAxKS5kYXRhOworfQorCithc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIu
YWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNn
KSB7CisgICAgICAgIGFzc2VydF90cnVlKG1zZy5kYXRhKTsKKyAgICB9KSk7CisgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKCd0ZXN0MScpOworfSwgIlRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRt
YXAgcmV0dXJucyBhbiBJbWFnZUJpdG1hcCB3aXRoIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCBp
biBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgd29ya2Vy
ID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIHZhciBjbHIgPSBkcmF3
SW1hZ2VCaXRtYXAobXNnLmRhdGEsIDUwLCAyNSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoY2xyLCBbMCwgMjU1LCAwLCAyNTVdKTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNz
YWdlKCd0ZXN0MicpOworfSwgIlRlc3QgdGhhdCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcmV0dXJu
cyBhbiBJbWFnZUJpdG1hcCB3aXRoIGNvcnJlY3QgY29sb3IgaW4gYSB3b3JrZXIiKTsKKworYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7Cisg
ICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKG1zZykgeworICAgICAgICB2YXIgY2xyID0gZHJhd0ltYWdlQml0bWFwKG1zZy5kYXRh
LCA1MCwgMjUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNsciwgWzAsIDAsIDAsIDBd
KTsKKyAgICB9KSk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCd0ZXN0MycpOworfSwgIlRlc3Qg
dGhhdCBjYWxsIHRyYW5zZmVyVG9JbWFnZUJpdG1hcCB0d2ljZSByZXR1cm5zIGFuIEltYWdlQml0
bWFwIHdpdGggY29ycmVjdCBjb2xvciBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7
CisgICAgICAgIHZhciBjbHIgPSBkcmF3SW1hZ2VCaXRtYXAobXNnLmRhdGEsIDUwLCAyNSk7Cisg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2xyLCBbMCwgMCwgMCwgMjU1XSk7CisgICAgfSkp
OworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDQnKTsKK30sICJUZXN0IHRoYXQgY2FsbCB0
cmFuc2ZlclRvSW1hZ2VCaXRtYXAgdHdpY2Ugb24gYSBhbHBoYS1kaXNhYmxlZCBjb250ZXh0IHJl
dHVybnMgYW4gSW1hZ2VCaXRtYXAgd2l0aCBjb3JyZWN0IGNvbG9yIGluIGEgd29ya2VyIik7CisK
K2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtlV29ya2VyKHQp
OworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9u
ZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUobXNnLmRhdGEpOworICAgIH0p
KTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3Q1Jyk7Cit9LCAiVGVzdCB0aGF0IHRyYW5z
ZmVyVG9JbWFnZUJpdG1hcCB3b24ndCBjaGFuZ2UgY29udGV4dCdzIHByb3BlcnR5IGluIGEgd29y
a2VyIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBtYWtl
V29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVw
X2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgdmFyIGNscjEgPSBkcmF3SW1hZ2VC
aXRtYXAobXNnLmRhdGEsIDIzLCAyNSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2xy
MSwgWzAsIDI1NSwgMCwgMjU1XSk7CisgICAgICAgIHZhciBjbHIyID0gZHJhd0ltYWdlQml0bWFw
KG1zZy5kYXRhLCAyNywgMjUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNscjIsIFsw
LCAwLCAwLCAwXSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDYnKTsK
K30sICJUZXN0IHRoYXQgY2FsbCB0cmFuc2ZlclRvSW1hZ2VCaXRtYXAgcHJlc2VydmVzIHRyYW5z
Zm9ybSBpbiBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIg
d29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVz
c2FnZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGlmIChtc2cu
ZGF0YSA9PSB0cnVlIHx8IG1zZy5kYXRhID09IGZhbHNlKQorICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUobXNnLmRhdGEpOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3Q3Jyk7
Cit9LCAiVGVzdCB0aGF0IGNhbGwgdHJhbnNmZXJUb0ltYWdlQml0bWFwIG9uIGEgZGV0YWNoZWQg
T2Zmc2NyZWVuQ2FudmFzIHRocm93cyBhbiBleGNlcHRpb24gaW4gYSB3b3JrZXIiKTsKKworYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7Cisg
ICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKG1zZykgeworICAgICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOwor
ICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDgnKTsKK30sICJUZXN0IHRoYXQgY2FsbCB0cmFu
c2ZlclRvSW1hZ2VCaXRtYXAgd2l0aG91dCBhIGNvbnRleHQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBp
biBhIHdvcmtlciIpOworCis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNvbnRyb2wudG8u
b2Zmc2NyZWVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNh
bnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGY0MmU1MDc0MjgyODBhMmVhMTlmNzYzY2Y4Yzk2MTlhZTViYjMw
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACisKK0ZBSUwgVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBn
ZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRo
IGFuZCBoZWlnaHQgcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4o
KScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVk
KQorRkFJTCBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xkZXIgY2Fu
dmFzIHRoYXQgaGFzIGFscmVhZHkgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdGhyb3dzIGFuIGV4
Y2VwdGlvbiBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpJywg
J3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQpCitG
QUlMIFRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRo
cm93cyBhbiBleGNlcHRpb24gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4g
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZz
Y3JlZW4oKScsICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5k
ZWZpbmVkKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4uaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNm
ZXJjb250cm9sLnRvLm9mZnNjcmVlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlYTM3NWIyYWRhZmI0OWVj
ZDMyODViNzM1ZTY4NzQ3YWI0MWE1MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50
by5vZmZzY3JlZW4uaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvaHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jYW52
YXMtdHJhbnNmZXJjb250cm9sdG9vZmZzY3JlZW4iPgorPHNjcmlwdD4KKwordGVzdChmdW5jdGlv
bigpIHsKKyAgICB2YXIgcGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52
YXMnKTsKKyAgICBwbGFjZWhvbGRlci53aWR0aCA9IDEwMDsKKyAgICBwbGFjZWhvbGRlci5oZWln
aHQgPSA1MDsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gcGxhY2Vob2xkZXIudHJhbnNmZXJD
b250cm9sVG9PZmZzY3JlZW4oKTsKKyAgICBhc3NlcnRfZXF1YWxzKG9mZnNjcmVlbkNhbnZhcy53
aWR0aCwgMTAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKG9mZnNjcmVlbkNhbnZhcy5oZWlnaHQsIDUw
KTsKK30sICJUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdlbmVyYXRlZCBieSB0cmFuc2Zl
ckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGggYW5kIGhlaWdodCIpOworCit0
ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBwbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2NhbnZhcycpOworICAgIHBsYWNlaG9sZGVyLndpZHRoID0gMTAwOworICAgIHBsYWNl
aG9sZGVyLmhlaWdodCA9IDUwOworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBwbGFjZWhvbGRl
ci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOworICAgIGFzc2VydF90aHJvd3NfZG9tKCJJ
bnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeyBwbGFjZWhvbGRlci5nZXRDb250ZXh0KCcy
ZCcpOyB9KTsKK30sICJUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0IG9uIGEgcGxhY2Vob2xk
ZXIgY2FudmFzIHRoYXQgaGFzIGFscmVhZHkgdHJhbnNmZXJyZWQgaXRzIGNvbnRyb2wgdGhyb3dz
IGFuIGV4Y2VwdGlvbiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBwbGFjZWhvbGRl
ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOworICAgIHBsYWNlaG9sZGVyLndp
ZHRoID0gMTAwOworICAgIHBsYWNlaG9sZGVyLmhlaWdodCA9IDUwOworICAgIHZhciBvZmZzY3Jl
ZW5DYW52YXMgPSBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOworICAg
IGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeyBwbGFj
ZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpOyB9KTsKK30sICJUZXN0IHRoYXQg
Y2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0
aW9uIik7CisKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9m
ZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3Jl
ZW4udy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmNkM2RiNGIyNzZkYzFjMTFkMWVjZGIwNDhiM2I3OTA5M2VlZTBkYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKKworRkFJTCBUZXN0IHRoYXQgYW4gT2Zmc2NyZWVuQ2FudmFzIGdl
bmVyYXRlZCBieSB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBnZXRzIGNvcnJlY3Qgd2lkdGgg
YW5kIGhlaWdodCB3aGVuIGl0IGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIHBsYWNlaG9sZGVy
LnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BsYWNl
aG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCknLCAncGxhY2Vob2xkZXIudHJhbnNm
ZXJDb250cm9sVG9PZmZzY3JlZW4nIGlzIHVuZGVmaW5lZCkKK0ZBSUwgVGVzdCB0aGF0IGNhbGxp
bmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9sZGVyIGNhbnZhcyB0aGF0IGlzIHRyYW5zZmVycmVk
IGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3
aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMgdHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIgcGxhY2Vo
b2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4gaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
cGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3JlZW4oKScsICdwbGFjZWhvbGRlci50
cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbicgaXMgdW5kZWZpbmVkKQorRkFJTCBUZXN0IHRoYXQg
Y2FsbGluZyB0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiB0d2ljZSB0aHJvd3MgYW4gZXhjZXB0
aW9uLCB3aGVuIGl0cyBhc3NvY2lhdGVkIE9mZnNjcmVlbkNhbnZhcyBpcyB0cmFuc2ZlcnJlZCB0
byBhIHdvcmtlciBwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiBpcyBub3Qg
YSBmdW5jdGlvbi4gKEluICdwbGFjZWhvbGRlci50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigp
JywgJ3BsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuJyBpcyB1bmRlZmluZWQp
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZz
Y3JlZW5jYW52YXMudHJhbnNmZXJjb250cm9sLnRvLm9mZnNjcmVlbi53Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29u
dHJvbC50by5vZmZzY3JlZW4udy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzNDdlN2I1MGIyMTk3Y2M3YWZj
MDYzOThmMmY2ZTM5YzM3Njk3MzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwv
dGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5v
ZmZzY3JlZW4udy5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9odG1sL2NhbnZhcy9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZG9tLWNhbnZh
cy10cmFuc2ZlcmNvbnRyb2x0b29mZnNjcmVlbiI+CisKKzxzY3JpcHQgaWQ9Im15V29ya2VyIiB0
eXBlPSJ0ZXh0L3dvcmtlciI+CisKK2Z1bmN0aW9uIHRlc3RTaXplKG9mZnNjcmVlbkNhbnZhcykK
K3sKKyAgICBpZiAob2Zmc2NyZWVuQ2FudmFzLndpZHRoID09IDEwMCAmJiBvZmZzY3JlZW5DYW52
YXMuaGVpZ2h0ID09IDUwKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3NlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgIHN3aXRjaCAoZS5kYXRh
Lm1zZykgeworICAgICAgICBjYXNlICd0ZXN0MSc6CisgICAgICAgICAgICBzZWxmLnBvc3RNZXNz
YWdlKHRlc3RTaXplKGUuZGF0YS5kYXRhKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAndGVzdDInOgorICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgiIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAndGVzdDMnOgorICAgICAgICAgICAgc2VsZi5wb3N0
TWVzc2FnZSgiIik7CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9OworCis8L3NjcmlwdD4K
KworPHNjcmlwdD4KK2Z1bmN0aW9uIG1ha2VXb3JrZXIoc2NyaXB0KQoreworICAgIHZhciBibG9i
ID0gbmV3IEJsb2IoW3NjcmlwdF0pOworICAgIHJldHVybiBuZXcgV29ya2VyKFVSTC5jcmVhdGVP
YmplY3RVUkwoYmxvYikpOworfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIg
cGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICBwbGFj
ZWhvbGRlci53aWR0aCA9IDEwMDsKKyAgICBwbGFjZWhvbGRlci5oZWlnaHQgPSA1MDsKKyAgICB2
YXIgb2Zmc2NyZWVuQ2FudmFzID0gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9PZmZzY3Jl
ZW4oKTsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibXlXb3JrZXIiKS50ZXh0Q29udGVudCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKG1zZykgeworICAgICAgICBhc3Nl
cnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7bXNn
OiAndGVzdDEnLCBkYXRhOiBvZmZzY3JlZW5DYW52YXN9LCBbb2Zmc2NyZWVuQ2FudmFzXSk7Cit9
LCAiVGVzdCB0aGF0IGFuIE9mZnNjcmVlbkNhbnZhcyBnZW5lcmF0ZWQgYnkgdHJhbnNmZXJDb250
cm9sVG9PZmZzY3JlZW4gZ2V0cyBjb3JyZWN0IHdpZHRoIGFuZCBoZWlnaHQgd2hlbiBpdCBpcyB0
cmFuc2ZlcnJlZCB0byBhIHdvcmtlciIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICB2YXIgcGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAg
ICBwbGFjZWhvbGRlci53aWR0aCA9IDEwMDsKKyAgICBwbGFjZWhvbGRlci5oZWlnaHQgPSA1MDsK
KyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gcGxhY2Vob2xkZXIudHJhbnNmZXJDb250cm9sVG9P
ZmZzY3JlZW4oKTsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcihkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0Q29udGVudCk7CisgICAgd29ya2VyLmFkZEV2ZW50TGlz
dGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKG1zZykgeworICAgICAg
ICBhc3NlcnRfdGhyb3dzX2RvbSgiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsgcGxh
Y2Vob2xkZXIuZ2V0Q29udGV4dCgnMmQnKTsgfSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0
TWVzc2FnZSh7bXNnOiAndGVzdDInLCBkYXRhOiBvZmZzY3JlZW5DYW52YXN9LCBbb2Zmc2NyZWVu
Q2FudmFzXSk7Cit9LCAiVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCBvbiBhIHBsYWNlaG9s
ZGVyIGNhbnZhcyB0aGF0IGlzIHRyYW5zZmVycmVkIGl0cyBjb250cm9sIHRvIGFuIE9mZnNjcmVl
bkNhbnZhcyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aGVuIHRoZSBPZmZzY3JlZW5DYW52YXMgaXMg
dHJhbnNmZXJyZWQgdG8gYSB3b3JrZXIiKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgdmFyIHBsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Cisg
ICAgcGxhY2Vob2xkZXIud2lkdGggPSAxMDA7CisgICAgcGxhY2Vob2xkZXIuaGVpZ2h0ID0gNTA7
CisgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IHBsYWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRv
T2Zmc2NyZWVuKCk7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm15V29ya2VyIikudGV4dENvbnRlbnQpOworICAgIHdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAg
ICAgYXNzZXJ0X3Rocm93c19kb20oIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IHBs
YWNlaG9sZGVyLnRyYW5zZmVyQ29udHJvbFRvT2Zmc2NyZWVuKCk7IH0pOworICAgIH0pKTsKKyAg
ICB3b3JrZXIucG9zdE1lc3NhZ2Uoe21zZzogJ3Rlc3QzJywgZGF0YTogb2Zmc2NyZWVuQ2FudmFz
fSwgW29mZnNjcmVlbkNhbnZhc10pOworfSwgIlRlc3QgdGhhdCBjYWxsaW5nIHRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuIHR3aWNlIHRocm93cyBhbiBleGNlcHRpb24sIHdoZW4gaXRzIGFzc29j
aWF0ZWQgT2Zmc2NyZWVuQ2FudmFzIGlzIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyIik7CisKKzwv
c2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
bWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTFiZWIwYWI1YjcwZmIxNGE1OTFjMGViZDc5Njk1
ZmNjMjEwMTIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3Jl
ZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDcgQEAKKworUEFTUyBUZXN0IHRoYXQgb2Zmc2NyZWVuQ2FudmFzJ3Mgc2l6ZSBpcyBj
b3JyZWN0IGFmdGVyIGJlaW5nIHRyYW5zZmVycmVkIHRvIGEgd29ya2VyLiAKK1BBU1MgVGVzdCB0
aGF0IHRyYW5zZmVyIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGhhcyBhIGNvbnRleHQgdGhyb3dz
IGV4Y2VwdGlvbi4gCitQQVNTIFRlc3QgdGhhdCB0cmFuc2ZlciBhbiBPZmZzY3JlZW5DYW52YXMg
dHdpY2UgdGhyb3dzIGV4Y2VwdGlvbi4gCitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRl
eHQoJzJkJykgb24gYSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGV4Y2VwdGlvbi4g
CitQQVNTIFRlc3QgdGhhdCBjYWxsaW5nIGdldENvbnRleHQoJ3dlYmdsJykgb24gYSBkZXRhY2hl
ZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGV4Y2VwdGlvbi4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJy
YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVl
bmNhbnZhcy50cmFuc2ZlcnJhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMyMWMzMjRmYTAwMTlmYTU0
Mjg2NGU3ODAzMmMwMGZmMzRkMjQ3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXJyYWJsZS5odG1s
CkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9odG1sL2NhbnZhcy9y
ZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jb2Zmc2NyZWVuY2FudmFzIj4KKworPHNj
cmlwdCBpZD0ibXlXb3JrZXIiIHR5cGU9InRleHQvd29ya2VyIj4KKworZnVuY3Rpb24gdGVzdDEo
b2Zmc2NyZWVuQ2FudmFzKQoreworICAgIHJldHVybiBvZmZzY3JlZW5DYW52YXMud2lkdGggPT0g
MTAgJiYgb2Zmc2NyZWVuQ2FudmFzLmhlaWdodCA9PSAxMDsKK30KKworc2VsZi5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihlKSB7CisgICAgc3dpdGNoKGUuZGF0YS5tc2cpIHsKKyAgICAgICAgY2FzZSAn
dGVzdDEnOgorICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0ZXN0MShlLmRhdGEuZGF0YSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CitmdW5jdGlvbiBtYWtlV29ya2VyKHNjcmlwdCkKK3sKKyAgICB2YXIgYmxvYiA9IG5ldyBCbG9i
KFtzY3JpcHRdKTsKKyAgICByZXR1cm4gbmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKGJs
b2IpKTsKK30KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1h
a2VXb3JrZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15V29ya2VyIikudGV4dENvbnRlbnQp
OworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7
CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHttc2c6ICd0ZXN0MScsIGRhdGE6IG9mZnNjcmVlbkNh
bnZhc30sIFtvZmZzY3JlZW5DYW52YXNdKTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcign
bWVzc2FnZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGFzc2Vy
dF90cnVlKG1zZy5kYXRhKTsKKyAgICB9KSk7CisgICAgYXNzZXJ0X2VxdWFscyhvZmZzY3JlZW5D
YW52YXMud2lkdGgsIDApOworICAgIGFzc2VydF9lcXVhbHMob2Zmc2NyZWVuQ2FudmFzLmhlaWdo
dCwgMCk7Cit9LCAiVGVzdCB0aGF0IG9mZnNjcmVlbkNhbnZhcydzIHNpemUgaXMgY29ycmVjdCBh
ZnRlciBiZWluZyB0cmFuc2ZlcnJlZCB0byBhIHdvcmtlci4iKTsKKwordGVzdChmdW5jdGlvbigp
IHsKKyAgICBmdW5jdGlvbiB0ZXN0RXhjZXB0aW9uKGNvbnRleHRUeXBlKSB7CisgICAgICAgIHZh
ciB3b3JrZXIgPSBtYWtlV29ya2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVdvcmtlciIp
LnRleHRDb250ZW50KTsKKyAgICAgICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3Jl
ZW5DYW52YXMoMTAsIDEwKTsKKyAgICAgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRD
b250ZXh0KGNvbnRleHRUeXBlKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93c19kb20oIkludmFsaWRT
dGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uo
e29mZnNjcmVlbkNhbnZhc30sIFtvZmZzY3JlZW5DYW52YXNdKTsKKyAgICAgICAgfSk7CisgICAg
fQorICAgIHRlc3RFeGNlcHRpb24oJzJkJyk7CisgICAgdGVzdEV4Y2VwdGlvbignd2ViZ2wnKTsK
K30sICJUZXN0IHRoYXQgdHJhbnNmZXIgYW4gT2Zmc2NyZWVuQ2FudmFzIHRoYXQgaGFzIGEgY29u
dGV4dCB0aHJvd3MgZXhjZXB0aW9uLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciB3
b3JrZXIgPSBtYWtlV29ya2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVdvcmtlciIpLnRl
eHRDb250ZW50KTsKKyAgICB2YXIgb2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZh
cygxMCwgMTApOworICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7b2Zmc2NyZWVuQ2FudmFzfSwgW29m
ZnNjcmVlbkNhbnZhc10pOworICAgIGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkU3RhdGVFcnJv
ciIsIGZ1bmN0aW9uKCkgeworICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe29mZnNjcmVlbkNh
bnZhc30sIFtvZmZzY3JlZW5DYW52YXNdKTsKKyAgICB9KTsKK30sICJUZXN0IHRoYXQgdHJhbnNm
ZXIgYW4gT2Zmc2NyZWVuQ2FudmFzIHR3aWNlIHRocm93cyBleGNlcHRpb24uIik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm15V29ya2VyIikudGV4dENvbnRlbnQpOworICAgIHZhciBvZmZzY3JlZW5DYW52
YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgd29ya2VyLnBvc3RNZXNzYWdl
KHtvZmZzY3JlZW5DYW52YXN9LCBbb2Zmc2NyZWVuQ2FudmFzXSk7CisgICAgYXNzZXJ0X3Rocm93
c19kb20oIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIG9mZnNjcmVl
bkNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIH0pOworfSwgIlRlc3QgdGhhdCBjYWxsaW5n
IGdldENvbnRleHQoJzJkJykgb24gYSBkZXRhY2hlZCBPZmZzY3JlZW5DYW52YXMgdGhyb3dzIGV4
Y2VwdGlvbi4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdv
cmtlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlXb3JrZXIiKS50ZXh0Q29udGVudCk7Cisg
ICAgdmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52YXMoMTAsIDEwKTsKKyAg
ICB3b3JrZXIucG9zdE1lc3NhZ2Uoe29mZnNjcmVlbkNhbnZhc30sIFtvZmZzY3JlZW5DYW52YXNd
KTsKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJ3dlYmdsJyk7CisgICAgfSk7
Cit9LCAiVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCgnd2ViZ2wnKSBvbiBhIGRldGFjaGVk
IE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgZXhjZXB0aW9uLiIpOworCis8L3NjcmlwdD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy50cmFuc2ZlcnJhYmxlLnctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLnctZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUyN2Q4NjFmOGNmN2ExNDExYjU4Mjk5NTM3NjAxODk3OGQyMTIxZDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUudy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
IEBACisKK1BBU1MgVGVzdCB0aGF0IE9mZnNjcmVlbkNhbnZhcydzIHNpemUgaXMgY29ycmVjdCBh
ZnRlciBiZWluZyB0cmFuc2ZlcnJlZCBmcm9tIGEgd29ya2VyLiAKK1BBU1MgVGVzdCB0aGF0IHRy
YW5zZmVyIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGhhcyBhIDJkIGNvbnRleHQgdGhyb3dzIGV4
Y2VwdGlvbiBpbiBhIHdvcmtlci4gCitQQVNTIFRlc3QgdGhhdCB0cmFuc2ZlciBhbiBPZmZzY3Jl
ZW5DYW52YXMgdGhhdCBoYXMgYSB3ZWJnbCBjb250ZXh0IHRocm93cyBleGNlcHRpb24gaW4gYSB3
b3JrZXIuIAorUEFTUyBUZXN0IHRoYXQgdHJhbnNmZXIgYW4gT2Zmc2NyZWVuQ2FudmFzIHR3aWNl
IHRocm93cyBleGNlcHRpb24gaW4gYSB3b3JrZXIuIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBn
ZXRDb250ZXh0KCcyZCcpIG9uIGEgZGV0YWNoZWQgT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBleGNl
cHRpb24gaW4gYSB3b3JrZXIuIAorUEFTUyBUZXN0IHRoYXQgY2FsbGluZyBnZXRDb250ZXh0KCd3
ZWJnbCcpIG9uIGEgZGV0YWNoZWQgT2Zmc2NyZWVuQ2FudmFzIHRocm93cyBleGNlcHRpb24gaW4g
YSB3b3JrZXIuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUudy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFu
dWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLncu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zOGY5ODFlOGYwOWFhYjc2ZjBlZDUxMzFjODNlMGVlODg4MmYxNzg4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFz
L29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcnJhYmxlLncuaHRtbApAQCAtMCwwICsxLDE0MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVz
dHMuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnLyNvZmZzY3JlZW5jYW52YXMiPgorCis8c2NyaXB0IGlkPSJteVdvcmtlciIg
dHlwZT0idGV4dC93b3JrZXIiPgorCitmdW5jdGlvbiBpc0ludmFsaWRTdGF0ZUVycm9yKGZ1bmNT
dHIsIG9mZnNjcmVlbkNhbnZhcykKK3sKKyAgICB0cnkgeworICAgICAgICBldmFsKGZ1bmNTdHIp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBET01FeGNlcHRp
b24gJiYgZS5uYW1lID09ICJJbnZhbGlkU3RhdGVFcnJvciIpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworZnVuY3Rpb24gdGVzdEV4
Y2VwdGlvbldpdGgyRENvbnRleHQoKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcg
T2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5n
ZXRDb250ZXh0KCcyZCcpOworICAgIHJldHVybiBpc0ludmFsaWRTdGF0ZUVycm9yKCJzZWxmLnBv
c3RNZXNzYWdlKG9mZnNjcmVlbkNhbnZhcywgW29mZnNjcmVlbkNhbnZhc10pIiwgb2Zmc2NyZWVu
Q2FudmFzKTsKK30KKworZnVuY3Rpb24gdGVzdEV4Y2VwdGlvbldpdGhXZWJHTENvbnRleHQoKQor
eworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7
CisgICAgdmFyIGN0eCA9IG9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCd3ZWJnbCcpOworICAg
IHJldHVybiBpc0ludmFsaWRTdGF0ZUVycm9yKCJzZWxmLnBvc3RNZXNzYWdlKG9mZnNjcmVlbkNh
bnZhcywgW29mZnNjcmVlbkNhbnZhc10pIiwgb2Zmc2NyZWVuQ2FudmFzKTsKK30KKworZnVuY3Rp
b24gdGVzdEV4Y2VwdGlvbldpdGhEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczEoKQoreworICAgIHZh
ciBvZmZzY3JlZW5DYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgc2Vs
Zi5wb3N0TWVzc2FnZShvZmZzY3JlZW5DYW52YXMsIFtvZmZzY3JlZW5DYW52YXNdKTsKKyAgICBy
ZXR1cm4gaXNJbnZhbGlkU3RhdGVFcnJvcigic2VsZi5wb3N0TWVzc2FnZShvZmZzY3JlZW5DYW52
YXMsIFtvZmZzY3JlZW5DYW52YXNdKSIsIG9mZnNjcmVlbkNhbnZhcyk7Cit9CisKK2Z1bmN0aW9u
IHRlc3RFeGNlcHRpb25XaXRoRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMyKCkKK3sKKyAgICB2YXIg
b2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMCwgMTApOworICAgIHNlbGYu
cG9zdE1lc3NhZ2Uob2Zmc2NyZWVuQ2FudmFzLCBbb2Zmc2NyZWVuQ2FudmFzXSk7CisgICAgcmV0
dXJuIGlzSW52YWxpZFN0YXRlRXJyb3IoIm9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCcyZCcp
Iiwgb2Zmc2NyZWVuQ2FudmFzKTsKK30KKworZnVuY3Rpb24gdGVzdEV4Y2VwdGlvbldpdGhEZXRh
Y2hlZE9mZnNjcmVlbkNhbnZhczMoKQoreworICAgIHZhciBvZmZzY3JlZW5DYW52YXMgPSBuZXcg
T2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgc2VsZi5wb3N0TWVzc2FnZShvZmZzY3JlZW5D
YW52YXMsIFtvZmZzY3JlZW5DYW52YXNdKTsKKyAgICByZXR1cm4gaXNJbnZhbGlkU3RhdGVFcnJv
cigib2Zmc2NyZWVuQ2FudmFzLmdldENvbnRleHQoJ3dlYmdsJykiLCBvZmZzY3JlZW5DYW52YXMp
OworfQorCitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICBzd2l0Y2goZS5kYXRh
KSB7CisgICAgICAgIGNhc2UgJ3Rlc3QxJzoKKyAgICAgICAgICAgIHZhciBvZmZzY3JlZW5DYW52
YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKDEwLCAxMCk7CisgICAgICAgICAgICBzZWxmLnBvc3RN
ZXNzYWdlKG9mZnNjcmVlbkNhbnZhcywgW29mZnNjcmVlbkNhbnZhc10pOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgJ3Rlc3QyJzoKKyAgICAgICAgICAgIHNlbGYucG9zdE1lc3Nh
Z2UodGVzdEV4Y2VwdGlvbldpdGgyRENvbnRleHQoKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAndGVzdDMnOgorICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0ZXN0RXhj
ZXB0aW9uV2l0aFdlYkdMQ29udGV4dCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlICd0ZXN0NCc6CisgICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRlc3RFeGNlcHRpb25X
aXRoRGV0YWNoZWRPZmZzY3JlZW5DYW52YXMxKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgJ3Rlc3Q1JzoKKyAgICAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UodGVzdEV4Y2Vw
dGlvbldpdGhEZXRhY2hlZE9mZnNjcmVlbkNhbnZhczIoKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAndGVzdDYnOgorICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh0ZXN0
RXhjZXB0aW9uV2l0aERldGFjaGVkT2Zmc2NyZWVuQ2FudmFzMygpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgIH0KK307CisKKzwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24gbWFrZVdv
cmtlcih0ZXN0KSB7CisgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm15V29ya2VyIikudGV4dENvbnRlbnRdKTsKKyAgICB2YXIgd29ya2VyID0gbmV3IFdv
cmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpKTsKKyAgICB3b3JrZXIub25lcnJvciA9IHRl
c3QudW5yZWFjaGVkX2Z1bmMoImVycm9yIik7CisgICAgcmV0dXJuIHdvcmtlcjsKK30KKworYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7Cisg
ICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1
bmN0aW9uKG1zZykgeworICAgICAgICBhc3NlcnRfZXF1YWxzKG1zZy5kYXRhLndpZHRoLCAxMCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMobXNnLmRhdGEuaGVpZ2h0LCAxMCk7CisgICAgfSkpOwor
ICAgIHdvcmtlci5wb3N0TWVzc2FnZSgndGVzdDEnKTsKK30sICJUZXN0IHRoYXQgT2Zmc2NyZWVu
Q2FudmFzJ3Mgc2l6ZSBpcyBjb3JyZWN0IGFmdGVyIGJlaW5nIHRyYW5zZmVycmVkIGZyb20gYSB3
b3JrZXIuIik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXIgPSBt
YWtlV29ya2VyKHQpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5z
dGVwX2Z1bmNfZG9uZShmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUobXNnLmRh
dGEpOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3QyJyk7Cit9LCAiVGVz
dCB0aGF0IHRyYW5zZmVyIGFuIE9mZnNjcmVlbkNhbnZhcyB0aGF0IGhhcyBhIDJkIGNvbnRleHQg
dGhyb3dzIGV4Y2VwdGlvbiBpbiBhIHdvcmtlci4iKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7CisgICAgdmFyIHdvcmtlciA9IG1ha2VXb3JrZXIodCk7CisgICAgd29ya2VyLmFkZEV2ZW50
TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKG1zZykgeworICAg
ICAgICBhc3NlcnRfdHJ1ZShtc2cuZGF0YSk7CisgICAgfSkpOworICAgIHdvcmtlci5wb3N0TWVz
c2FnZSgndGVzdDMnKTsKK30sICJUZXN0IHRoYXQgdHJhbnNmZXIgYW4gT2Zmc2NyZWVuQ2FudmFz
IHRoYXQgaGFzIGEgd2ViZ2wgY29udGV4dCB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29ya2VyLiIp
OworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtl
cih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5j
X2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGlmIChtc2cuZGF0YSA9PSB0cnVlIHx8IG1z
Zy5kYXRhID09IGZhbHNlKQorICAgICAgICAgICAgYXNzZXJ0X3RydWUobXNnLmRhdGEpOworICAg
IH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3Q0Jyk7Cit9LCAiVGVzdCB0aGF0IHRy
YW5zZmVyIGFuIE9mZnNjcmVlbkNhbnZhcyB0d2ljZSB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29y
a2VyLiIpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFr
ZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3Rl
cF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7CisgICAgICAgIGlmIChtc2cuZGF0YSA9PSB0cnVl
IHx8IG1zZy5kYXRhID09IGZhbHNlKQorICAgICAgICAgICAgYXNzZXJ0X3RydWUobXNnLmRhdGEp
OworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3Rlc3Q1Jyk7Cit9LCAiVGVzdCB0
aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCgnMmQnKSBvbiBhIGRldGFjaGVkIE9mZnNjcmVlbkNhbnZh
cyB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29ya2VyLiIpOworCithc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKKyAgICB2YXIgd29ya2VyID0gbWFrZVdvcmtlcih0KTsKKyAgICB3b3JrZXIuYWRkRXZl
bnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24obXNnKSB7Cisg
ICAgICAgIGlmIChtc2cuZGF0YSA9PSB0cnVlIHx8IG1zZy5kYXRhID09IGZhbHNlKQorICAgICAg
ICAgICAgYXNzZXJ0X3RydWUobXNnLmRhdGEpOworICAgIH0pKTsKKyAgICB3b3JrZXIucG9zdE1l
c3NhZ2UoJ3Rlc3Q2Jyk7Cit9LCAiVGVzdCB0aGF0IGNhbGxpbmcgZ2V0Q29udGV4dCgnd2ViZ2wn
KSBvbiBhIGRldGFjaGVkIE9mZnNjcmVlbkNhbnZhcyB0aHJvd3MgZXhjZXB0aW9uIGluIGEgd29y
a2VyLiIpOworCis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1v
ZmZzY3JlZW4tY2FudmFzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZz
Y3JlZW4tY2FudmFzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiYTYyNjA1ODQwZDI3YjJk
ZGFkN2YzMmM3MzM4Yzg1ODQ4NTAzMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51
YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyOSBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5jb21taXQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9v
ZmZzY3JlZW5jYW52YXMuY29tbWl0LncuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2Ny
ZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3IuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21h
bnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMuY29uc3RydWN0b3Iud29y
a2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNh
bnZhcy5nZXRjb250ZXh0Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52
YXMvb2Zmc2NyZWVuY2FudmFzLmdldGNvbnRleHQud29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFs
L3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy5yZXNpemUuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2Ny
ZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZhcy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIu
dG8uaW1hZ2ViaXRtYXAuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90aGUtb2Zmc2NyZWVuLWNhbnZh
cy9vZmZzY3JlZW5jYW52YXMudHJhbnNmZXIudG8uaW1hZ2ViaXRtYXAudy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50cmFuc2ZlcmNv
bnRyb2wudG8ub2Zmc2NyZWVuLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1j
YW52YXMvb2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVyY29udHJvbC50by5vZmZzY3JlZW4udy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RoZS1vZmZzY3JlZW4tY2FudmFzL29mZnNjcmVlbmNhbnZhcy50
cmFuc2ZlcnJhYmxlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMv
b2Zmc2NyZWVuY2FudmFzLnRyYW5zZmVycmFibGUudy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9tYW51YWwvdHJhbnNmb3JtYXRpb25zLzJkLnRyYW5zZm9ybWF0aW9uLmdldFRyYW5zZm9ybS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdHJhbnNmb3JtYXRpb25zLzJkLnRyYW5zZm9y
bWF0aW9uLmdldFRyYW5zZm9ybS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVkY2YwNjRlZTgy
MTdkYjFkMDc5MDI2NzkxZTEwOWZmNzA4NWFlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVu
L21hbnVhbC90cmFuc2Zvcm1hdGlvbnMvMmQudHJhbnNmb3JtYXRpb24uZ2V0VHJhbnNmb3JtLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUaGlzIHRlc3QgZW5zdXJlcyB0aGF0
IGdldFRyYW5zZm9ybSB3b3JrcyBjb3JyZWN0bHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9t
YW51YWwvdHJhbnNmb3JtYXRpb25zLzJkLnRyYW5zZm9ybWF0aW9uLmdldFRyYW5zZm9ybS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZh
cy9vZmZzY3JlZW4vbWFudWFsL3RyYW5zZm9ybWF0aW9ucy8yZC50cmFuc2Zvcm1hdGlvbi5nZXRU
cmFuc2Zvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2I3MGFjMjA4Njc0YzViZjI0OWM2ZjU4YjQ2NDdi
OThiZTZkNWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vbWFudWFsL3RyYW5zZm9ybWF0
aW9ucy8yZC50cmFuc2Zvcm1hdGlvbi5nZXRUcmFuc2Zvcm0uaHRtbApAQCAtMCwwICsxLDQwIEBA
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CisvLyBFbnN1cmUgdGhhdCBjb250ZXh0MmQuZ2V0VHJhbnNmb3JtIHdvcmtz
Citjb25zdCBlcHNpbG9uID0gMWUtNTsKK2NvbnN0IGNhbnZhcyA9IG5ldyBPZmZzY3JlZW5DYW52
YXMoMzAwLCAxNTApOworY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisKK3Rl
c3QoZnVuY3Rpb24odCkgeworCisgIGFzc2VydF9hcnJheV9lcXVhbHMoY3R4LmdldFRyYW5zZm9y
bSgpLnRvRmxvYXQzMkFycmF5KCksCisgICAgWzEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAs
IDEsIDAsIDAsIDAsIDAsIDFdLAorICAgICJBc3NlcnQgdGhhdCBhbiB1bnRyYW5zZm9ybWVkIG1h
dHJpeCBpcyBpZGVudGl0eSIpOworCisgIGN0eC5zY2FsZSgyLCAzKTsKKyAgdHJhbnNmb3JtID0g
Y3R4LmdldFRyYW5zZm9ybSgpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKGN0eC5nZXRUcmFuc2Zv
cm0oKS50b0Zsb2F0MzJBcnJheSgpLAorICAgIFsyLCAwLCAwLCAwLCAwLCAzLCAwLCAwLCAwLCAw
LCAxLCAwLCAwLCAwLCAwLCAxXSwKKyAgICAiQXNzZXJ0IHRoYXQgY29udGV4dDJkIHNjYWxpbmcg
d29ya3MiKTsKKworICBjdHgucm90YXRlKE1hdGguUEkvMik7CisgIHRyYW5zZm9ybSA9IGN0eC5n
ZXRUcmFuc2Zvcm0oKTsKKyAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoY3R4LmdldFRyYW5z
Zm9ybSgpLnRvRmxvYXQzMkFycmF5KCksCisgICAgWzAsIDMsIDAsIDAsIC0yLCAwLCAwLCAwLCAw
LCAwLCAxLCAwLCAwLCAwLCAwLCAxXSwgZXBzaWxvbiwKKyAgICAiQXNzZXJ0IHRoYXQgY29udGV4
dDJkIHJvdGF0ZSB3b3JrcyIpOworCisgIGN0eC50cmFuc2xhdGUoMSwgLTEpOworICB0cmFuc2Zv
cm0gPSBjdHguZ2V0VHJhbnNmb3JtKCk7CisgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGN0
eC5nZXRUcmFuc2Zvcm0oKS50b0Zsb2F0MzJBcnJheSgpLAorICAgIFswLCAzLCAwLCAwLCAtMiwg
MCwgMCwgMCwgMCwgMCwgMSwgMCwgMiwgMywgMCwgMV0sIGVwc2lsb24sCisgICAgIkFzc2VydCBj
b250ZXh0MmQgdHJhbnNsYXRlIHdvcmtzLiIpOworCisgIGN0eC5yZXNldFRyYW5zZm9ybSgpOwor
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGN0eC5nZXRUcmFuc2Zvcm0oKS50b0Zsb2F0MzJBcnJheSgp
LAorICAgIFsxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxXSwK
KyAgICAiQXNzZXJ0IHRoYXQgYSByZXNldCBtYXRyaXggaXMgaWRlbnRpdHkiKTsKK30sICdUaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IGdldFRyYW5zZm9ybSB3b3JrcyBjb3JyZWN0bHkuJyk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVhbC90cmFuc2Zvcm1hdGlv
bnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdHJhbnNmb3JtYXRpb25zL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzNDQyMTkyYzNmMGUyOWQ3MDI3NWMwMWExYWFmZDE2ZmFk
MTUwYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9tYW51YWwvdHJhbnNmb3JtYXRpb25z
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL21hbnVh
bC90cmFuc2Zvcm1hdGlvbnMvMmQudHJhbnNmb3JtYXRpb24uZ2V0VHJhbnNmb3JtLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5i
YXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50
SW5TdHJva2UuYmFzaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZWYwNWMwMjA4ZjI3MzAz
NTBiM2ZkNDdjNGE0NGQ1NDQ5NmY4OTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9wYXRo
LW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNyBAQAorMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMKKworZGV0ZWN0cyB3aGV0
aGVyIHBvaW50IGlzIGluIHRoZSBhcmVhIGNvbnRhaW5lZCBieSB0aGUgc3Ryb2tlIG9mIHRoZSBw
YXRoCisKKworUEFTUyBkZXRlY3RzIHdoZXRoZXIgcG9pbnQgaXMgaW4gdGhlIGFyZWEgY29udGFp
bmVkIGJ5IHRoZSBzdHJva2Ugb2YgdGhlIHBhdGggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3Bh
dGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5iYXNpYy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4v
cGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjkxYzZmMWJkNjQ4NjMzOGYyYTZmYzk0YTM0NGNhNDI5M2U1Nzg1NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5iYXNp
Yy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBETyBOT1QgRURJ
VCEgVGhpcyB0ZXN0IGhhcyBiZWVuIGdlbmVyYXRlZCBieSAvaHRtbC9jYW52YXMvdG9vbHMvZ2Vu
dGVzdC5weS4gLS0+Cis8dGl0bGU+T2Zmc2NyZWVuQ2FudmFzIHRlc3Q6IDJkLnBhdGguaXNQb2lu
dEluU3Ryb2tlLmJhc2ljPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvaHRtbC9jYW52YXMvcmVzb3VyY2VzL2Nh
bnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+CisKKzxoMT4yZC5wYXRoLmlzUG9pbnRJblN0cm9rZS5i
YXNpYzwvaDE+Cis8cCBjbGFzcz0iZGVzYyI+ZGV0ZWN0cyB3aGV0aGVyIHBvaW50IGlzIGluIHRo
ZSBhcmVhIGNvbnRhaW5lZCBieSB0aGUgc3Ryb2tlIG9mIHRoZSBwYXRoPC9wPgorCisKKzxzY3Jp
cHQ+Cit2YXIgdCA9IGFzeW5jX3Rlc3QoImRldGVjdHMgd2hldGhlciBwb2ludCBpcyBpbiB0aGUg
YXJlYSBjb250YWluZWQgYnkgdGhlIHN0cm9rZSBvZiB0aGUgcGF0aCIpOwordmFyIHRfcGFzcyA9
IHQuZG9uZS5iaW5kKHQpOwordmFyIHRfZmFpbCA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKHJlYXNv
bikgeworICAgIHRocm93IHJlYXNvbjsKK30pOwordC5zdGVwKGZ1bmN0aW9uKCkgeworCit2YXIg
b2Zmc2NyZWVuQ2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxMDAsIDUwKTsKK3ZhciBjdHgg
PSBvZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworY3R4LnN0cm9rZVN0eWxlID0g
JyMwZjAnOworY3R4LmJlZ2luUGF0aCgpOworY3R4LnJlY3QoMCwgMCwgMjAsIDIwKTsKK19hc3Nl
cnRTYW1lKGN0eC5pc1BvaW50SW5TdHJva2UoMCwgMCksIHRydWUsICJjdHguaXNQb2ludEluU3Ry
b2tlKDAsIDApIiwgInRydWUiKTsKK19hc3NlcnRTYW1lKGN0eC5pc1BvaW50SW5TdHJva2UoMzAs
IDEwKSwgZmFsc2UsICJjdHguaXNQb2ludEluU3Ryb2tlKDMwLCAxMCkiLCAiZmFsc2UiKTsKKwor
dmFyIHBhdGggPSBuZXcgUGF0aDJEKCk7CitwYXRoLnJlY3QoMjAsIDIwLCAxMDAsIDEwMCk7Citf
YXNzZXJ0U2FtZShjdHguaXNQb2ludEluU3Ryb2tlKHBhdGgsIDIwLCAyMCksIHRydWUsICJjdHgu
aXNQb2ludEluU3Ryb2tlKHBhdGgsIDIwLCAyMCkiLCAidHJ1ZSIpOworX2Fzc2VydFNhbWUoY3R4
LmlzUG9pbnRJblN0cm9rZShwYXRoLCAxMjAsIDIwKSwgdHJ1ZSwgImN0eC5pc1BvaW50SW5TdHJv
a2UocGF0aCwgMTIwLCAyMCkiLCAidHJ1ZSIpOwordC5kb25lKCk7CisKK30pOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY2FudmFzL29mZnNjcmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJv
a2UuYmFzaWMud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5w
YXRoLmlzUG9pbnRJblN0cm9rZS5iYXNpYy53b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNmZDBjZjJmMzUxODEwZmE5ZjJmOWY5MTE3OWExZTZjMjY0Y2MyMDkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2Fu
dmFzL29mZnNjcmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMu
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBkZXRlY3RzIHdoZXRo
ZXIgcG9pbnQgaXMgaW4gdGhlIGFyZWEgY29udGFpbmVkIGJ5IHRoZSBzdHJva2Ugb2YgdGhlIHBh
dGggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJ
blN0cm9rZS5iYXNpYy53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRo
LmlzUG9pbnRJblN0cm9rZS5iYXNpYy53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4
ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3Jl
ZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ryb2tlLmJhc2ljLndvcmtlci5odG1s
CkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVz
dCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5w
YXRoLmlzUG9pbnRJblN0cm9rZS5iYXNpYy53b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVlbi9wYXRoLW9iamVj
dHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMud29ya2VyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcy
MjhjZTZhMGYxYmI5MjNlNTI0Njk0Y2M5MDQ4MjFlNjcwNDlhM2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMud29y
a2VyLmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8vIERPIE5PVCBFRElUISBUaGlzIHRlc3QgaGFzIGJl
ZW4gZ2VuZXJhdGVkIGJ5IC9odG1sL2NhbnZhcy90b29scy9nZW50ZXN0LnB5LgorLy8gT2Zmc2Ny
ZWVuQ2FudmFzIHRlc3QgaW4gYSB3b3JrZXI6MmQucGF0aC5pc1BvaW50SW5TdHJva2UuYmFzaWMK
Ky8vIERlc2NyaXB0aW9uOmRldGVjdHMgd2hldGhlciBwb2ludCBpcyBpbiB0aGUgYXJlYSBjb250
YWluZWQgYnkgdGhlIHN0cm9rZSBvZiB0aGUgcGF0aAorLy8gTm90ZToKKworaW1wb3J0U2NyaXB0
cygiL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIpOworaW1wb3J0U2NyaXB0cygiL2h0bWwvY2Fu
dmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiKTsKKwordmFyIHQgPSBhc3luY190ZXN0KCJk
ZXRlY3RzIHdoZXRoZXIgcG9pbnQgaXMgaW4gdGhlIGFyZWEgY29udGFpbmVkIGJ5IHRoZSBzdHJv
a2Ugb2YgdGhlIHBhdGgiKTsKK3ZhciB0X3Bhc3MgPSB0LmRvbmUuYmluZCh0KTsKK3ZhciB0X2Zh
aWwgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihyZWFzb24pIHsKKyAgICB0aHJvdyByZWFzb247Cit9
KTsKK3Quc3RlcChmdW5jdGlvbigpIHsKKwordmFyIG9mZnNjcmVlbkNhbnZhcyA9IG5ldyBPZmZz
Y3JlZW5DYW52YXMoMTAwLCA1MCk7Cit2YXIgY3R4ID0gb2Zmc2NyZWVuQ2FudmFzLmdldENvbnRl
eHQoJzJkJyk7CisKK2N0eC5zdHJva2VTdHlsZSA9ICcjMGYwJzsKK2N0eC5iZWdpblBhdGgoKTsK
K2N0eC5yZWN0KDAsIDAsIDIwLCAyMCk7CitfYXNzZXJ0U2FtZShjdHguaXNQb2ludEluU3Ryb2tl
KDAsIDApLCB0cnVlLCAiY3R4LmlzUG9pbnRJblN0cm9rZSgwLCAwKSIsICJ0cnVlIik7CitfYXNz
ZXJ0U2FtZShjdHguaXNQb2ludEluU3Ryb2tlKDMwLCAxMCksIGZhbHNlLCAiY3R4LmlzUG9pbnRJ
blN0cm9rZSgzMCwgMTApIiwgImZhbHNlIik7CisKK3ZhciBwYXRoID0gbmV3IFBhdGgyRCgpOwor
cGF0aC5yZWN0KDIwLCAyMCwgMTAwLCAxMDApOworX2Fzc2VydFNhbWUoY3R4LmlzUG9pbnRJblN0
cm9rZShwYXRoLCAyMCwgMjApLCB0cnVlLCAiY3R4LmlzUG9pbnRJblN0cm9rZShwYXRoLCAyMCwg
MjApIiwgInRydWUiKTsKK19hc3NlcnRTYW1lKGN0eC5pc1BvaW50SW5TdHJva2UocGF0aCwgMTIw
LCAyMCksIHRydWUsICJjdHguaXNQb2ludEluU3Ryb2tlKHBhdGgsIDEyMCwgMjApIiwgInRydWUi
KTsKK3QuZG9uZSgpOworCit9KTsKK2RvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgt
b2JqZWN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy93M2MtaW1wb3J0
LmxvZwppbmRleCA3MDAzYTgwNDRlNWQ4NzVjYTUyZmY0MTE0OWQ0OTdiOGJiZmI0NTJlLi5iOGQx
ZTdmNzcwYWYzZDM3MGE2OTQyZGEwMDdmMjgxMzBhZmU5M2YxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi9wYXRoLW9iamVjdHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3Rz
L3czYy1pbXBvcnQubG9nCkBAIC0xODYsNiArMTg2LDggQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNj
cmVlbi9wYXRoLW9iamVjdHMvMmQucGF0aC5pc1BvaW50SW5QYXRoLnVuY2xvc2VkLndvcmtlci5q
cwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52
YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJblBhdGgud2luZGluZy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluUGF0aC53aW5kaW5n
Lndvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmlzUG9pbnRJblN0cm9r
ZS5iYXNpYy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGguaXNQb2ludEluU3Ry
b2tlLmJhc2ljLndvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmxpbmVU
by5iYXNpYy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vcGF0aC1vYmplY3RzLzJkLnBhdGgubGluZVRvLmJhc2lj
Lndvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvb2Zmc2NyZWVuL3BhdGgtb2JqZWN0cy8yZC5wYXRoLmxpbmVUby5lbnN1cmVz
dWJwYXRoLjEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vdGV4dC8yZC50ZXh0Lm1lYXN1cmUu
d2lkdGguc3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jYW52YXMvb2Zmc2NyZWVuL3RleHQvMmQudGV4dC5tZWFzdXJlLndpZHRoLnNw
YWNlLmh0bWwKaW5kZXggMzZmNGEzM2RlNjAxMzQ4NWU1MTE5NzM2NmU0Mjk2OGU1ZDFiYzkyYy4u
NjgyYjVjMGVmNDY4NDY0OTI1ZjUwOWUwNjliZDM3MTRmZDVkMjNlNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9vZmZz
Y3JlZW4vdGV4dC8yZC50ZXh0Lm1lYXN1cmUud2lkdGguc3BhY2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29mZnNjcmVl
bi90ZXh0LzJkLnRleHQubWVhc3VyZS53aWR0aC5zcGFjZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBA
IGZvbnRzLmFkZChmKTsKIGZvbnRzLnJlYWR5LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgY3R4LmZv
bnQgPSAnNTBweCBDYW52YXNUZXN0JzsKICAgICBfYXNzZXJ0U2FtZShjdHgubWVhc3VyZVRleHQo
J0EgQicpLndpZHRoLCAxNTAsICJjdHgubWVhc3VyZVRleHQoJ0EgQicpLndpZHRoIiwgIjE1MCIp
OwotICAgIF9hc3NlcnRTYW1lKGN0eC5tZWFzdXJlVGV4dCgnQSAgQicpLndpZHRoLCAxNTAsICJj
dHgubWVhc3VyZVRleHQoJ0EgIEInKS53aWR0aCIsICIxNTAiKTsKKyAgICBfYXNzZXJ0U2FtZShj
dHgubWVhc3VyZVRleHQoJ0EgIEInKS53aWR0aCwgMjAwLCAiY3R4Lm1lYXN1cmVUZXh0KCdBICBC
Jykud2lkdGgiLCAiMjAwIik7CiAgICAgX2Fzc2VydFNhbWUoY3R4Lm1lYXN1cmVUZXh0KCdBIFx4
MDlceDBhXHgwY1x4MGQgIFx4MDlceDBhXHgwY1x4MGRCJykud2lkdGgsIDE1MCwgImN0eC5tZWFz
dXJlVGV4dCgnQSBcXHgwOVxceDBhXFx4MGNcXHgwZCAgXFx4MDlcXHgwYVxceDBjXFx4MGRCJyku
d2lkdGgiLCAiMTUwIik7CiAgICAgX2Fzc2VydChjdHgubWVhc3VyZVRleHQoJ0EgXHgwYiBCJyku
d2lkdGggPj0gMjAwLCAiY3R4Lm1lYXN1cmVUZXh0KCdBIFxceDBiIEInKS53aWR0aCA+PSAyMDAi
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vdGV4dC8yZC50ZXh0Lm1lYXN1cmUud2lkdGguc3Bh
Y2Uud29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2NhbnZhcy9vZmZzY3JlZW4vdGV4dC8yZC50ZXh0Lm1lYXN1cmUud2lkdGguc3BhY2Uu
d29ya2VyLmpzCmluZGV4IGM1OTRiNTkwNDhjYTQ5YTVmNjgxOWEzNzdiMTlmMjRjZWJiNzlkZmYu
LjA5N2QwODJlZTk1YjlkODdiZmNiODIwOWJlODRjMmEwYmUyMGU2OWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvb2Zm
c2NyZWVuL3RleHQvMmQudGV4dC5tZWFzdXJlLndpZHRoLnNwYWNlLndvcmtlci5qcworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL29m
ZnNjcmVlbi90ZXh0LzJkLnRleHQubWVhc3VyZS53aWR0aC5zcGFjZS53b3JrZXIuanMKQEAgLTIz
LDcgKzIzLDcgQEAgZm9udHMuYWRkKGYpOwogZm9udHMucmVhZHkudGhlbihmdW5jdGlvbigpIHsK
ICAgICBjdHguZm9udCA9ICc1MHB4IENhbnZhc1Rlc3QnOwogICAgIF9hc3NlcnRTYW1lKGN0eC5t
ZWFzdXJlVGV4dCgnQSBCJykud2lkdGgsIDE1MCwgImN0eC5tZWFzdXJlVGV4dCgnQSBCJykud2lk
dGgiLCAiMTUwIik7Ci0gICAgX2Fzc2VydFNhbWUoY3R4Lm1lYXN1cmVUZXh0KCdBICBCJykud2lk
dGgsIDE1MCwgImN0eC5tZWFzdXJlVGV4dCgnQSAgQicpLndpZHRoIiwgIjE1MCIpOworICAgIF9h
c3NlcnRTYW1lKGN0eC5tZWFzdXJlVGV4dCgnQSAgQicpLndpZHRoLCAyMDAsICJjdHgubWVhc3Vy
ZVRleHQoJ0EgIEInKS53aWR0aCIsICIyMDAiKTsKICAgICBfYXNzZXJ0U2FtZShjdHgubWVhc3Vy
ZVRleHQoJ0EgXHgwOVx4MGFceDBjXHgwZCAgXHgwOVx4MGFceDBjXHgwZEInKS53aWR0aCwgMTUw
LCAiY3R4Lm1lYXN1cmVUZXh0KCdBIFxceDA5XFx4MGFcXHgwY1xceDBkICBcXHgwOVxceDBhXFx4
MGNcXHgwZEInKS53aWR0aCIsICIxNTAiKTsKICAgICBfYXNzZXJ0KGN0eC5tZWFzdXJlVGV4dCgn
QSBceDBiIEInKS53aWR0aCA+PSAyMDAsICJjdHgubWVhc3VyZVRleHQoJ0EgXFx4MGIgQicpLndp
ZHRoID49IDIwMCIpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>