<?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>216886</bug_id>
          
          <creation_ts>2020-09-23 10:08:49 -0700</creation_ts>
          <short_desc>Turn off the legacy prefixed WebAudio API</short_desc>
          <delta_ts>2020-09-25 11:12:57 -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>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=216983</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>216885</dependson>
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1691157</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-23 10:08:49 -0700</bug_when>
    <thetext>Turn off the legacy prefixed WebAudio API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691234</commentid>
    <comment_count>1</comment_count>
      <attachid>409496</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-23 13:04:45 -0700</bug_when>
    <thetext>Created attachment 409496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691236</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-23 13:05:11 -0700</bug_when>
    <thetext>*** Bug 216891 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691251</commentid>
    <comment_count>3</comment_count>
      <attachid>409502</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-23 13:56:03 -0700</bug_when>
    <thetext>Created attachment 409502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691287</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-23 15:48:11 -0700</bug_when>
    <thetext>Committed r267504: &lt;https://trac.webkit.org/changeset/267504&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409502.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691288</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-23 15:49:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/69462804&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409496</attachid>
            <date>2020-09-23 13:04:45 -0700</date>
            <delta_ts>2020-09-23 13:56:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216886-20200923130444.patch</filename>
            <type>text/plain</type>
            <size>138645</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdlYzAzYjIyN2RkYWEx
YWJkZWY3NTdkN2ZkOTdkM2JhZDkxZTQ3Ny4uZGY0NTE1ODY4OGY0MWM4OGIxZThhMWU1YjFhNzE1
OTc1MDM2Mzc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA5LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBvZmYgdGhlIGxlZ2Fj
eSBwcmVmaXhlZCBXZWJBdWRpbyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNjg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFR1cm4gb2ZmIHRoZSBsZWdhY3kgcHJlZml4ZWQgV2ViQXVkaW8gQVBJ
LCBub3cgdGhhdCB0aGUgbW9kZXJuIHVucHJlZml4ZWQgQVBJIGhhcyBiZWVuIGVuYWJsZWQKKyAg
ICAgICAgaW4gcjI2NzQ4OC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaWRsOgorICAgICAgICBNYWtlIHN1cmUgbGVnYWN5IGNvbnN0YW50cyBnZXQgdW5l
eHBvc2VkIGlmIHRoZSBQcmVmaXhlZFdlYkF1ZGlvIHNldHRpbmcgaXMgZGlzYWJsZWQuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdl
bmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2V0UnVudGltZUVuYWJsZWRTdGF0aWNQ
cm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEVuYWJsZWRCeVNldHRp
bmcuaWRsOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgW0VuYWJsZWRCeVNldHRpbmc9
WF0gb24gY29uc3RhbnRzLgorCiAyMDIwLTA5LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2UvYXVkaW9idWZmZXJz
b3VyY2UtcGxheWJhY2tyYXRlLmh0bWwgaXMgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmY2NjYzMzY5
NWRmYmQ2NTc2NDhjNTgxYjQ5ZmVkY2JjMzAyZjkxMS4uNDFjM2FhNDk0YTUxZTNhMWRmOTBjNGU2
M2Q3ZGFkN2ExN2NmNWI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOS0yMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFR1cm4gb2ZmIHRoZSBs
ZWdhY3kgcHJlZml4ZWQgV2ViQXVkaW8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUdXJuIG9mZiB0aGUgbGVnYWN5IHByZWZpeGVkIFdlYkF1ZGlv
IEFQSSwgbm93IHRoYXQgdGhlIG1vZGVybiB1bnByZWZpeGVkIEFQSSBoYXMgYmVlbiBlbmFibGVk
CisgICAgICAgIGluIHIyNjc0ODguCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sOgorCiAyMDIwLTA5LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVHVybiBvbiB0aGUgbW9kZXJuIHVucHJlZml4ZWQgV2ViQXVkaW8gQVBJ
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZDJkNWY4NjAyZTU5ZjIyNTc3YWQwMjI3
OTdlYzgyNjkyZDI5YjFkMi4uMjBiY2VjNzBlZTI5MTE3ZGZlMzgxN2YxOTU2OTA3NDRlZjcxYzVk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5
LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBvZmYg
dGhlIGxlZ2FjeSBwcmVmaXhlZCBXZWJBdWRpbyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1cm4gb2ZmIHRoZSBsZWdhY3kgcHJlZml4ZWQgV2Vi
QXVkaW8gQVBJLCBub3cgdGhhdCB0aGUgbW9kZXJuIHVucHJlZml4ZWQgQVBJIGhhcyBiZWVuIGVu
YWJsZWQKKyAgICAgICAgaW4gcjI2NzQ4OC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDIwLTA5
LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVHVybiBvbiB0
aGUgbW9kZXJuIHVucHJlZml4ZWQgV2ViQXVkaW8gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKaW5kZXgg
Njg5NTc4Nzc0MGZlZmZjNWQwYjNhNTNiMDA1ZWYyZTVjODEyNDhkYS4uMjJiYzA5M2Y5NTEzNmFh
YmI3ZGQ4ZTk0ODBmMjJkNjJhMDBjOTEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbApAQCAtNDMsOCAr
NDMsOCBAQAogCiAgICAgLy8gRklYTUU6IFRob3NlIGNvbnN0YW50cyBhcmUga2VwdCBmb3IgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBwcmVmaXhlZCBBUEkgYW5kIHNob3VsZAogICAg
IC8vIGJlIHJlbW92ZWQgb25jZSB3ZSBzdG9wIHN1cHBvcnRpbmcgaXQuCi0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgVU5TQ0hFRFVMRURfU1RBVEUgPSAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFNDSEVEVUxFRF9TVEFURSA9IDE7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUExBWUlO
R19TVEFURSA9IDI7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklOSVNIRURfU1RBVEUgPSAz
OworICAgIFtFbmFibGVkQnlTZXR0aW5nPVByZWZpeGVkV2ViQXVkaW9dIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFVOU0NIRURVTEVEX1NUQVRFID0gMDsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1QcmVm
aXhlZFdlYkF1ZGlvXSBjb25zdCB1bnNpZ25lZCBzaG9ydCBTQ0hFRFVMRURfU1RBVEUgPSAxOwor
ICAgIFtFbmFibGVkQnlTZXR0aW5nPVByZWZpeGVkV2ViQXVkaW9dIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFBMQVlJTkdfU1RBVEUgPSAyOworICAgIFtFbmFibGVkQnlTZXR0aW5nPVByZWZpeGVkV2Vi
QXVkaW9dIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTklTSEVEX1NUQVRFID0gMzsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmlu
ZGV4IGI5OWEwZmIzOGUxYzA0ZjRiNWUzNTQ0YWExM2U3Y2ExNWExODhkNjkuLmIxMTc0Yjg5YzFi
YjFmNzE5MjM5Y2I1M2ZkYzZkYjYxNTQ0NzVjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MzkwLDYgKzQzOTAsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIG15ICRoYXNoTmFtZSA9ICRjbGFzc05h
bWUgLiAiVGFibGUiOwogICAgIG15IEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnMgPSAoKTsKICAg
ICBteSBAcnVudGltZUVuYWJsZWRBdHRyaWJ1dGVzID0gKCk7CisgICAgbXkgQHJ1bnRpbWVFbmFi
bGVkQ29uc3RhbnRzID0gKCk7CiAKICAgICAjIEdlbmVyYXRlIGhhc2ggdGFibGUgZm9yIHByb3Bl
cnRpZXMgb24gdGhlIGluc3RhbmNlLgogICAgIG15ICRudW1JbnN0YW5jZVByb3BlcnRpZXMgPSBH
ZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUoJG9iamVjdCwgJGludGVyZmFjZSwgMSwgXEBoYXNo
S2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUyLCBcJWNvbmRp
dGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMsIFxAcnVudGltZUVuYWJsZWRPcGVyYXRp
b25zLCBcQHJ1bnRpbWVFbmFibGVkQXR0cmlidXRlcyk7CkBAIC00NDIyLDYgKzQ0MjMsMTAgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbCA9
ICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9OwogICAgICAgICAg
ICAgJGNvbmRpdGlvbmFsc3skbmFtZX0gPSAkY29uZGl0aW9uYWwgaWYgJGNvbmRpdGlvbmFsOwog
CisgICAgICAgICAgICBpZiAoTmVlZHNSdW50aW1lQ2hlY2soJGludGVyZmFjZSwgJGNvbnN0YW50
KSkgeworICAgICAgICAgICAgICAgIHB1c2goQHJ1bnRpbWVFbmFibGVkQ29uc3RhbnRzLCAkY29u
c3RhbnQpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAkaGFzaFNpemUrKzsKICAgICAg
ICAgfQogCkBAIC00NTQ4LDYgKzQ1NTMsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
CiAgICAgICAgIG15IEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMgPSBAcnVudGltZUVuYWJsZWRP
cGVyYXRpb25zOwogICAgICAgICBwdXNoKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMsIEBydW50
aW1lRW5hYmxlZEF0dHJpYnV0ZXMpOworICAgICAgICBwdXNoKEBydW50aW1lRW5hYmxlZFByb3Bl
cnRpZXMsIEBydW50aW1lRW5hYmxlZENvbnN0YW50cyk7CiAKICAgICAgICAgaWYgKEBydW50aW1l
RW5hYmxlZFByb3BlcnRpZXMpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IGZhbHNlO1xuIik7CkBAIC03ODE4
LDYgKzc4MjQsMTIgQEAgc3ViIEdldFJ1bnRpbWVFbmFibGVkU3RhdGljUHJvcGVydGllcwogICAg
ICAgICB9CiAgICAgfQogCisgICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGludGVyZmFjZS0+
Y29uc3RhbnRzfSkgeworICAgICAgICBpZiAoTmVlZHNSdW50aW1lQ2hlY2soJGludGVyZmFjZSwg
JGNvbnN0YW50KSkgeworICAgICAgICAgICAgcHVzaChAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVz
LCAkY29uc3RhbnQpOworICAgICAgICB9CisgICAgfQorCiAgICAgZm9yZWFjaCBteSAkb3BlcmF0
aW9uIChAeyRpbnRlcmZhY2UtPm9wZXJhdGlvbnN9KSB7CiAgICAgICAgIG5leHQgaWYgKCRvcGVy
YXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfSBhbmQgbm90ICRv
cGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1YmxpY0lkZW50aWZpZXJ9KTsKICAgICAg
ICAgbmV4dCBpZiAkb3BlcmF0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJG9wZXJhdGlvbi0+e292
ZXJsb2FkSW5kZXh9ID4gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNw
cAppbmRleCAzYmRlY2QxODcyZjcxMTk4NjZmYjk4ZTA2ZDc5MzY5NzA4OTVlZTk4Li4yNmUyYzM4
OTVmMWE1ZTZmMjQyYmMzMzVjOTRkOTI3MDFkMzkyMGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXMuY3BwCkBAIC0xODUsNiArMTg1LDMwIEBAIHRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0
aWVzKFZNJiB2CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05v
bnRyaXZpYWxTdHJpbmcodm0sICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyJfcyksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJl
cigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzOjppbmZvKCksIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25z
dHJ1Y3RvclRhYmxlVmFsdWVzLCAqdGhpcyk7CisjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjMpCisgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oanNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oJmdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSktPnNldHRpbmdzKCkudGVzdFNldHRpbmcyRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJNSVhJTl9DT05TVEFOVCIpLCBzdHJsZW4oIk1JWElOX0NPTlNUQU5UIikp
OworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3Bl
cnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgJmds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFC
TEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWRvd25jYXN0
PERvY3VtZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmZ2xvYmFsT2JqZWN0KS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0dGluZzJFbmFibGVkKCkp
IHsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIk1JWElOX1JFRkxFQ1RFRF9DT05TVEFO
VCIpLCBzdHJsZW4oIk1JWElOX1JFRkxFQ1RFRF9DT05TVEFOVCIpKTsKKyAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsICZnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMjMpCisgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oanNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmcyRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8g
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJQQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCIpLCBz
dHJsZW4oIlBBUlRJQUxfTUlYSU5fQ09OU1RBTlRfRlJPTV9QQVJUSUFMIikpOworICAgICAgICBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90
OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgJmdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yKSB9OwpAQCAtMzg2LDYgKzQxMCwzMyBAQCB2b2lkIEpTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICAgICAgRGVsZXRlUHJv
cGVydHlTbG90IHNsb3Q7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9CisjZW5kaWYKKyNpZiBF
TkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWRvd25j
YXN0PERvY3VtZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmcyRW5hYmxl
ZCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAg
ICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiTUlYSU5fQ09OU1RBTlQiKSwgc3RybGVuKCJNSVhJ
Tl9DT05TVEFOVCIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAg
ICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNl
bmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorICAg
IGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0
dGluZzJFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9
IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJNSVhJTl9SRUZMRUNURURfQ09O
U1RBTlQiKSwgc3RybGVuKCJNSVhJTl9SRUZMRUNURURfQ09OU1RBTlQiKSk7CisgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7
CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pihq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmcyRW5hYmxlZCgpKSB7CisgICAgICAg
IGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3Bl
cnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BBUlRJQUwiKSwgc3RybGVu
KCJQQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCIpKTsKKyAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KICNlbmRpZgogICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRp
bWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgZmxh
dHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcu
Y3BwCmluZGV4IGVlNDcyNjQ1MjEyZGQyZjc2NmNmZTAwOWZkNDAyOGZiMjRhNDQyZmIuLjI1NTk0
MWNjYmZiZWQ0NGU1OTc3MmVlZjVhOGZkMDFlYTYwMTRhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZy5jcHAKQEAgLTEwNiw2ICsxMDYsMTUgQEAgU1RBVElDX0FTU0VSVF9JU09f
U1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZSwgSlNUZXN0
RW5hYmwKIAogdXNpbmcgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yID0gSlNET01D
b25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz47CiAKKy8q
IEhhc2ggdGFibGUgZm9yIGNvbnN0cnVjdG9yICovCisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KK3sK
KyAgICB7ICJlbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxv
bmcpKDApIH0gfSwKK307CisKK3N0YXRpY19hc3NlcnQoVGVzdEVuYWJsZWRCeVNldHRpbmc6OmVu
YWJsZWRCeVNldHRpbmdDb25zdGFudCA9PSAwLCAiZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50IGlu
IFRlc3RFbmFibGVkQnlTZXR0aW5nIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CisK
IHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3I6OnBy
b3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTE3LDYgKzEyNiwx
MyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yOjpp
bml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmc6OnByb3RvdHlwZSh2bSwg
Z2xvYmFsT2JqZWN0KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250
cml2aWFsU3RyaW5nKHZtLCAiVGVzdEVuYWJsZWRCeVNldHRpbmciX3MpLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
ICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCks
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pOworICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZzo6aW5mbygpLCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JUYWJs
ZVZhbHVlcywgKnRoaXMpOworICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KCZnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
LT5zZXR0aW5ncygpLnRlc3RTZXR0aW5nRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJlbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQiKSwgc3RybGVuKCJlbmFibGVkQnlT
ZXR0aW5nQ29uc3RhbnQiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBz
Y29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAg
ICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0NvbnN0cnVjdG9yKSB9OwpAQCAtMTQyLDYgKzE1OCw3IEBAIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYK
KyAgICB7ICJlbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxv
bmcpKDApIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFbmFibGVkQnlTZXR0aW5n
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ1Byb3RvdHlwZSkgfTsKQEAgLTE4NSw2ICsyMDIsMTMgQEAgdm9pZCBKU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgICAgIERl
bGV0ZVByb3BlcnR5U2xvdCBzbG90OwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgfQorICAgIGlm
ICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0dGlu
Z0VuYWJsZWQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1
ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdDb25zdGFu
dCIpLCBzdHJsZW4oImVuYWJsZWRCeVNldHRpbmdDb25zdGFudCIpKTsKKyAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KICAgICBpZiAoaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVy
dGllcyAmJiBzdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgIGZsYXR0ZW5EaWN0
aW9uYXJ5T2JqZWN0KHZtKTsKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJ
T04oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0RW5hYmxlZEJ5U2V0dGluZy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdEVuYWJsZWRCeVNldHRpbmcuaWRsCmluZGV4IGQ1MmZlMDBkMzhiYmIxY2EwY2Y2
OWY0NzI3YTVjYjlhMGI2NjgxNjMuLjNiMjQ0ZTdkYWMzOGM4NjRhMGQ0MjNmMjNkNWNmZjkyZDU0
MWU1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0RW5hYmxlZEJ5U2V0dGluZy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RFbmFibGVkQnlTZXR0aW5nLmlkbApAQCAtMzEsNCArMzEsNiBAQCBpbnRl
cmZhY2UgVGVzdEVuYWJsZWRCeVNldHRpbmcgewogICAgIFtDb25kaXRpb25hbD1URVNUX0ZFQVRV
UkUsIEVuYWJsZWRCeVNldHRpbmc9VGVzdFNldHRpbmddIHVuZGVmaW5lZCBlbmFibGVkQnlTZXR0
aW5nT3BlcmF0aW9uKERPTVN0cmluZyB0ZXN0UGFyYW0pOwogCiAgICAgW0NvbmRpdGlvbmFsPVRF
U1RfRkVBVFVSRSwgRW5hYmxlZEJ5U2V0dGluZz1UZXN0U2V0dGluZyZPdGhlclRlc3RTZXR0aW5n
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlOworCisg
ICAgW0VuYWJsZWRCeVNldHRpbmc9VGVzdFNldHRpbmddIGNvbnN0IHVuc2lnbmVkIHNob3J0IGVu
YWJsZWRCeVNldHRpbmdDb25zdGFudCA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCmluZGV4IDMwNGIzZjc3MDQ3ZTQyZjhlNTY5
NGViNTY0ZmFiOGU2YzQzY2Q1YmUuLmRhNDQ4Y2QzZTAzOGQwNTFlYjJhYzllNzBlZTc5YmE2Mzg5
ODk3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzSW50
ZXJuYWwueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsLnlhbWwKQEAgLTI4LDcgKzI4LDcgQEAKIAogUHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKLSAgZGVmYXVsdFZhbHVlOiB0cnVlCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UK
ICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX0FVRElPKQogICBodW1hblJlYWRhYmxlTmFtZTogIlBy
ZWZpeGVkIFdlYkF1ZGlvIEFQSSIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiUHJlZml4
ZWQgV2ViQXVkaW8gQVBJIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IDZjOGQxODBhOGY0MzlkODA0YzAxNGQ2NzNkMzIyN2YyYzU5MGM0ZmEuLmVlNGNj
Njc0NDg2YTE5MjYwY2VhZjc5ODQ5YWIyMmJkMDg3YzRkNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTMyOTUsNyArMzI5NSw3IEBAIC0gKHZvaWQp
X3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKICAgICBzZXR0aW5ncy5zZXRXZWJBdWRpb0VuYWJsZWQoW3ByZWZl
cmVuY2VzIHdlYkF1ZGlvRW5hYmxlZF0pOwotICAgIHNldHRpbmdzLnNldFByZWZpeGVkV2ViQXVk
aW9FbmFibGVkKFtwcmVmZXJlbmNlcyB3ZWJBdWRpb0VuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5z
ZXRQcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChmYWxzZSk7CiAgICAgc2V0dGluZ3Muc2V0TW9kZXJu
VW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChbcHJlZmVyZW5jZXMgbW9kZXJuVW5wcmVmaXhlZFdl
YkF1ZGlvRW5hYmxlZF0pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZmExZDY4YmQ0OGU1MjQ1M2RiNDdk
YmZhNGJmZTdmYzNlZWJmZDQ5Li4zNTlkNTcyYzIwZjA2NTdlMDE3YjczZWI3NjY3NTliZjU0Yzg2
Y2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM1IEBACisyMDIwLTA5LTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBvZmYgdGhlIGxlZ2FjeSBwcmVmaXhlZCBX
ZWJBdWRpbyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNjg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBvcnQgZXhpc3RpbmcgbGF5b3V0IHRlc3RzIGZyb20gdGhlIHByZWZpeGVkIFdlYkF1ZGlv
IEFQSSB0byB0aGUgbmV3CisgICAgICAgIHVucHJlZml4ZWQgdmVyc2lvbi4KKworICAgICAgICAq
IGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3BlbmRlZC1hdWRpb2NvbnRleHQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS13ZWJhdWRpby5o
dG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtZGV2aWNlcy1lbnVtZXJhdGUt
ZGV2aWNlcy5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFj
ay1hdWRpby1jbG9uZS5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbW9jay1tZWRp
YS1zb3VyY2Utd2ViYXVkaW8uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dl
YmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1i
bG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyLW9ucmVtb3ZldHJhY2suaHRtbDoKKyAgICAgICAgKiBodHRwL3dw
dC93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9jb250ZXh0LXN0b3BwZWQtaWZyYW1lLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemlu
Zy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
OgorICAgICAgICAqIHdlYmF1ZGlvL2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAq
IHdlYmF1ZGlvL2F1ZGlvYnVmZmVyLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJh
dWRpby9hdWRpb2J1ZmZlci1jcmFzaC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVm
ZmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlci1uZXV0ZXIu
aHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlci5odG1sOgorICAgICAgICAqIHdl
YmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sOgorICAgICAgICAqIHdl
YmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWVuZGVkLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2UtbXVsdGktY2hhbm5lbHMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xhdGVkLWxv
b3AuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1w
bGF5YmFja3JhdGUtaW50ZXJwb2xhdGVkLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWxvb3AuaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1ub3QtZ2NlZC11bnRpbC1lbmRlZC5o
dG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291
cmNlLXBsYXliYWNrU3RhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9hdWRp
b2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRp
b2J1ZmZlcnNvdXJjZS1zdGFydC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVy
c291cmNlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Vub2RlLWxl
Z2FjeS1hcGktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291
cmNlbm9kZS1sZWdhY3ktYXBpLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jaGFubmVs
bWVyZ2VyLWJhc2ljLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2Vy
LXN0ZXJlby5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2UtdGhyb3dpbmctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvY29udGV4dC1wcm9taXNlLXRocm93
aW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2UuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24tYXVkaW9idWZmZXJz
b3VyY2Vub2RlLXN0YXJ0Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXJl
c3RyaWN0aW9uLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWlu
dGVycnVwdGVkLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9hdWRpb25vZGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRp
b3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRlc2lnbmFsLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8v
YXVkaW9wYXJhbS1zdW1taW5nanVuY3Rpb24uaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRp
b3Byb2Nlc3NpbmdldmVudC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1dG9tYXRpYy1wdWxs
LW5vZGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9jb252b2x2ZXItY2hhbm5lbHMuaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9jb252b2x2ZXItc2V0QnVmZmVyLWRpZmZlcmVudC1zYW1wbGVyYXRlLmh0bWw6
CisgICAgICAgICogd2ViYXVkaW8vY29udm9sdmVyLXNldEJ1ZmZlci1udWxsLmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UtbnVsbC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViYXVkaW8vY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UtbnVsbC5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLWJhc2ljLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS1iYXNpYy5odG1sOgorICAgICAg
ICAqIHdlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sOgorICAgICAgICAq
IHdlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sOgorICAgICAgICAqIHdl
YmF1ZGlvL2RlbGF5bm9kZS1tYXgtbm9uZGVmYXVsdC1kZWxheS5odG1sOgorICAgICAgICAqIHdl
YmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2RlbGF5
bm9kZS1tYXhkZWxheWxpbWl0Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGVsYXlub2RlLXNj
aGVkdWxpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUuaHRtbDoKKyAgICAg
ICAgKiB3ZWJhdWRpby9kaXN0YW5jZS1leHBvbmVudGlhbC5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kaXN0YW5jZS1s
aW5lYXIuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9keW5hbWljc2NvbXByZXNzb3ItYmFzaWMu
aHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9maW5pc2hlZC1hdWRpby1idWZmZXItc291cmNlLW5v
ZGVzLXNob3VsZC1iZS1jb2xsZWN0YWJsZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2dhaW4t
YmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9nYWluLmh0bWw6CisgICAgICAgICogd2Vi
YXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUuaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby9taXhpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250
ZXh0LWdjLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vb2ZmbGluZWF1ZGlvY29udGV4dC1yZXN0
cmljdGlvbi5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL29zY2lsbGF0b3Jub2RlLWxlZ2FjeS1h
cGktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL29zY2lsbGF0b3Jub2RlLWxlZ2Fj
eS1hcGkuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9wYWdlLWNhbnN0YXJ0bWVkaWEuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbDoKKyAgICAg
ICAgKiB3ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1sOgorICAgICAgICAqIHdlYmF1ZGlv
L3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHdlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiB3ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0LmpzOgorICAgICAg
ICAocnVuRGVjb2RpbmdUZXN0KToKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9i
dWZmZXJzb3VyY2UtZW5kZWQtZGV0YWNoZWQtZnJhbWUtaWZyYW1lLmh0bWw6CisgICAgICAgICog
d2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy1sZWdhY3kuanM6CisgICAgICAg
IChjcmVhdGVBdWRpb0dyYXBoQW5kVGVzdCk6CisgICAgICAgICogd2ViYXVkaW8vcmVzb3VyY2Vz
L2NvbXBhdGliaWxpdHkuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViYXVkaW8vcmVzb3VyY2Vz
L2phdmFzY3JpcHRhdWRpb25vZGUtdGVzdGluZy5qczoKKyAgICAgICAgKHJ1bkpTTm9kZVRlc3Qp
OgorICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9vc2NpbGxhdG9yLXRlc3RpbmctbGVnYWN5
LmpzOgorICAgICAgICAoZ2VuZXJhdGVFeHBvbmVudGlhbE9zY2lsbGF0b3JTd2VlcCk6CisgICAg
ICAgICogd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9zaWxlbmNlLWFmdGVyLXBsYXliYWNrLmh0bWw6CisgICAgICAgICogd2ViYXVk
aW8vc2lsZW50LWF1ZGlvLWludGVycnVwdGVkLWluLWJhY2tncm91bmQuaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL3Rlc3QtYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby91cC1taXhpbmctbW9uby01
MS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3VwLW1peGluZy1tb25vLXN0ZXJlby5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL3VwLW1peGluZy1zdGVyZW8tNTEuaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby93YXZlc2hhcGVyLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vd2ViLWF1ZGlvLWlz
LXBsYXlpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby93ZWJhdWRpby1nYy5odG1sOgorICAg
ICAgICAqIHdlYmF1ZGlvL3dlYmtpdG9mZmxpbmVhdWRpb2NvbnRleHQtc3RhcnRSZW5kZXJpbmct
Y3Jhc2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL3dlYmtpdG9mZmxpbmVhdWRp
b2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2guaHRtbDoKKyAgICAgICAgKiB3ZWJydGMvYXVk
aW8tcGVlci1jb25uZWN0aW9uLWc3MjIuaHRtbDoKKyAgICAgICAgKiB3ZWJydGMvYXVkaW8tcGVl
ci1jb25uZWN0aW9uLXdlYmF1ZGlvLmh0bWw6CisgICAgICAgICogd2VicnRjL2Nsb25lLWF1ZGlv
LXRyYWNrLmh0bWw6CisgICAgICAgICogd2VicnRjL2dldFVzZXJNZWRpYS13ZWJhdWRpby1hdXRv
cGxheS5odG1sOgorICAgICAgICAqIHdlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tbXV0ZS5o
dG1sOgorICAgICAgICAqIHdlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tbXV0ZTIuaHRtbDoK
KyAgICAgICAgKiB3ZWJydGMvcGVlci1jb25uZWN0aW9uLWNyZWF0ZU1lZGlhU3RyZWFtRGVzdGlu
YXRpb24uaHRtbDoKKyAgICAgICAgKiB3ZWJydGMvcGVlci1jb25uZWN0aW9uLXJlbW90ZS1hdWRp
by1tdXRlLmh0bWw6CisgICAgICAgICogd2VicnRjL3BlZXItY29ubmVjdGlvbi1yZW1vdGUtYXVk
aW8tbXV0ZTIuaHRtbDoKKyAgICAgICAgKiB3ZWJydGMvcm91dGluZXMuanM6CisKIDIwMjAtMDkt
MjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJhdWRpby9B
dWRpb0J1ZmZlclNvdXJjZS9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbCBpcyBj
cmFzaGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOGQyYzM5OTAyMzRmMWM5
ODQwNzQ2OTk4NjAwMzhiYzY3YWRhN2U1YS4uMmVlZDQ3ODg1ZmJhNDgyMTExMTc2OGE2M2VmZjg2
OTg3Y2RiOTU2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjAtMDktMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBUdXJuIG9mZiB0aGUgbGVnYWN5IHByZWZpeGVkIFdlYkF1ZGlvIEFQSQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2ODg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUgdGVz
dCB0aGF0IGlzIG5vdyBwYXNzaW5nLgorCiAyMDIwLTA5LTIzICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVu
dC5zZXRTaW5rSWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbAppbmRleCBhYWFlNTEwZDU3MTJmMWNk
YzgzZDUwMzgyMGNkOGFlMjk0ZWZjZDdmLi45MDUxNTZkYjY0M2M5OWY4MjBmZjA1NDhlMWFhNTk1
ZGFkNDNhMTNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5odG1sCkBAIC0yOSw3ICsyOSw3IEBAIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiB9LCBm
YWxzZSk7CiAKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7Ci0g
ICAgYXVkaW9Db250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxl
UmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgYXVkaW9Db250ZXh0ID0g
bmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywg
c2FtcGxlUmF0ZSk7CiAgICAgYnVmZmVyTG9hZGVyID0gbmV3IEJ1ZmZlckxvYWRlcigKICAgICAg
ICAgYXVkaW9Db250ZXh0LAogICAgICAgICBbICIuLi8uLi93ZWJhdWRpby9yZXNvdXJjZXMvaHlw
ZXItcmVhbGl0eS9ici1qYW0tbG9vcC53YXYiLCBdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0Lmh0bWwK
aW5kZXggODRhYjgwMjFhNjJiNGUzY2RlNDFhYjU2ZTdhZjUwYjUxMjhjYWE4NC4uN2ZmMjA5NTIx
YjgzZWEwNTc4YTYyNWZmMDZkYzQwNDUyZGMwMWU5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5o
dG1sCkBAIC0yNSw3ICsyNSw3IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIs
IGZ1bmN0aW9uKGV2ZW50KSB7CiB9LCBmYWxzZSk7CiAKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgZnVuY3Rpb24oKSB7Ci0gICAgYXVkaW9Db250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlv
Q29udGV4dCgpOworICAgIGF1ZGlvQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKIAogICAg
IG9zY2lsbGF0b3IgPSBhdWRpb0NvbnRleHQuY3JlYXRlT3NjaWxsYXRvcigpOwogICAgIG9zY2ls
bGF0b3IuZnJlcXVlbmN5LnZhbHVlID0gMzAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVuZGVkLWF1ZGlvY29udGV4dC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVuZGVkLWF1ZGlvY29udGV4dC5odG1s
CmluZGV4IDE3ZWNjMGE0OTY0NzY3YTBlZGMxZjA0NWEyNGNjNDQ2Yzk4OTJhMjMuLmQ5YjgzZTVk
YTA5ZGRiOWJlM2ZjMGZkYzRhYjcxMjZjMjcxM2RiNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3BlbmRlZC1hdWRpb2NvbnRleHQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5kZWQtYXVkaW9jb250
ZXh0Lmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2Vo
aWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKIAogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBmdW5jdGlvbigpIHsKICAgICAvLyBUaGUgbmV3bHkgY29uc3RydWN0ZWQgQXVkaW9Db250ZXh0
IGlzIGluaXRpYWxseSBpbiBzdXNwZW5kZWQgc3RhdGUuCi0gICAgYXVkaW9Db250ZXh0ID0gbmV3
IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIGF1ZGlvQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRl
eHQoKTsKIAogICAgIC8vIE5lZWRzIHRvIGhhcHBlbiBvdXRzaWRlIHRoZSBvbmxvYWQgaGFuZGxl
ciBzbyB0aGF0IGEgaGlzdG9yeSBpdGVtIGlzIGNyZWF0ZWQuCiAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLXdlYmF1ZGlvLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVz
ZXJNZWRpYS13ZWJhdWRpby5odG1sCmluZGV4IDQwMDE0OWUwZGQ5MjBiZmY2MzE2MjIwZmRjZDk1
NmMyNDBiMzVlZjkuLmM1NzZjZjdkNTkxMTE1ZTJlNWFjM2JjOWVhMWQ5OGVmZWYxMTU3MGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXdlYmF1
ZGlvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
d2ViYXVkaW8uaHRtbApAQCAtMTgsNyArMTgsNyBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsK
ICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAg
ICAgICAgIGZpbmlzaFRlc3QgPSByZXNvbHZlOwogICAgICAgICAgICAgZXJyb3JUZXN0ID0gcmVq
ZWN0OwotICAgICAgICAgICAgdmFyIGF1ZGlvQ29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQoKTsKKyAgICAgICAgICAgIHZhciBhdWRpb0NvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7
CiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gYXVkaW9Db250ZXh0LmNyZWF0ZVNjcmlwdFByb2Nl
c3NvcigyMDQ4LCAxLCAxKTsKICAgICAgICAgICAgIHNjcmlwdC5vbmF1ZGlvcHJvY2VzcyA9IChl
dmVudCkgPT4gewogICAgICAgICAgICAgICAgIHZhciBzcXVhcmVkU3VtID0gMC4wOwpAQCAtNTIs
NyArNTIsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBzdHJl
YW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB7
ZGV2aWNlSWQ6IHRydWV9fSk7CiAgICAgaW50ZXJuYWxzLnNldE1vY2tBdWRpb1RyYWNrQ2hhbm5l
bE51bWJlcihzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgMSk7CiAKLSAgICB2YXIgYXVkaW9D
b250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIHZhciBhdWRpb0NvbnRleHQg
PSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgdmFyIHNjcmlwdCA9IGF1ZGlvQ29udGV4dC5jcmVh
dGVTY3JpcHRQcm9jZXNzb3IoMjA0OCwgMSwgMSk7CiAgICAgbGV0IHNvdXJjZSA9IGF1ZGlvQ29u
dGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShzdHJlYW0pOwogICAgIHNvdXJjZS5jb25uZWN0
KHNjcmlwdCk7CkBAIC03Myw3ICs3Myw3IEBAIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4g
ewogICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHsgYXVkaW86IHRydWUsIHZpZGVvOiBmYWxzZSB9KTsKICAgICBpbnRlcm5hbHMudXNl
TW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpOwogCi0gICAgdmFyIGF1ZGlvQ29udGV4dCA9IG5l
dyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgYXVkaW9Db250ZXh0ID0gbmV3IEF1ZGlv
Q29udGV4dCgpOwogICAgIHZhciBhbmFseXplciA9IGF1ZGlvQ29udGV4dC5jcmVhdGVBbmFseXNl
cigpOwogICAgIGFuYWx5emVyLmZmdFNpemUgPSAyNTY7CiAgICAgbGV0IHNvdXJjZSA9IGF1ZGlv
Q29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShzdHJlYW0pOwpAQCAtMTAxLDcgKzEwMSw3
IEBAIGFzeW5jIGZ1bmN0aW9uIGNoZWNrRm9yTm9pc2Uoc3RyZWFtLCBjb3VudGVyKQogfQogCiBw
cm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1p
c3Npb24odHJ1ZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
bWVkaWEtZGV2aWNlcy1lbnVtZXJhdGUtZGV2aWNlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYS1kZXZpY2VzLWVudW1lcmF0ZS1kZXZpY2VzLmh0bWwKaW5kZXggNmE5
OWRiYTU5NDJlOGFhZmU0MjA0ZGExYmFjOGMyODUwZGI1ZTMxNy4uYjgzZWMxNDhjYjE1ODlmMDcz
OGFjN2FiNjhmOGEyNTg2NDU1MzdmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9tZWRpYS1kZXZpY2VzLWVudW1lcmF0ZS1kZXZpY2VzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1kZXZpY2VzLWVudW1lcmF0ZS1kZXZpY2VzLmh0
bWwKQEAgLTI3LDcgKzI3LDcgQEAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7
CiAKLSAgICAgICAgICAgIG5ldyB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KCkuY3JlYXRlTWVk
aWFTdHJlYW1EZXN0aW5hdGlvbigpOworICAgICAgICAgICAgbmV3IHdpbmRvdy5BdWRpb0NvbnRl
eHQoKS5jcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uKCk7CiAgICAgICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCkKICAgICAgICAgICAgICAg
ICAudGhlbigoZGV2aWNlcykgPT4gewogICAgICAgICAgICAgICAgICAgICBkZXZpY2VDb3VudCA9
IGRldmljZXMubGVuZ3RoOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9tZWRpYXN0cmVhbXRyYWNrLWF1ZGlvLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stYXVkaW8tY2xvbmUuaHRtbAppbmRleCA1YmE0YWIz
YWQyZGNhMDdkZDRmNzBmMjM0ZmJjYjNlZjViYjhlYTZlLi4yMjY3MDRjNmVhYzVhMWM2ZWRjNWI3
YzMxNDI1OGFmODdmOTg0MGVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL21lZGlhc3RyZWFtdHJhY2stYXVkaW8tY2xvbmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stYXVkaW8tY2xvbmUuaHRtbApAQCAtMTAs
NyArMTAsNyBAQAogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0PgotICAgIHZhciBjb250ZXh0ID0g
bmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIHZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29u
dGV4dCgpOwogICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICAgICAgICBjb25zdCBz
dHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlv
IDogdHJ1ZSB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9t
b2NrLW1lZGlhLXNvdXJjZS13ZWJhdWRpby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9tb2NrLW1lZGlhLXNvdXJjZS13ZWJhdWRpby5odG1sCmluZGV4IGNlOGFiZWZkMjc4M2Ri
ZmIzNjBjNjg5YzU3ZThkYzM2ODc3NmVjNGYuLmFiZTM0M2VjNzE4ODQ0NjEzNjYyZjdhYzY4ZTMz
NWU5YTU4MzIzYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbW9j
ay1tZWRpYS1zb3VyY2Utd2ViYXVkaW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21vY2stbWVkaWEtc291cmNlLXdlYmF1ZGlvLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAK
IAogICAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgoKSA9PiB7CiAgICAgICAgIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pLnRoZW4oKHN0cmVhbSkgPT4g
ewotICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7Cisg
ICAgICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgICAg
IHZhciBzb3VyY2VOb2RlID0gY29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShzdHJlYW0p
OwogICAgICAgICAgICAgdmFyIGFuYWx5c2VyID0gY29udGV4dC5jcmVhdGVBbmFseXNlcigpOwog
ICAgICAgICAgICAgdmFyIGdhaW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1h
dWRpby1hbGxvd2VkLWNyb3Nzb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi5o
dG1sCmluZGV4IGQwNWU3ZjY5MzViODYyMzZlYTYyYjYyOGVjNjIzZTNlNGU1ZjdhZTMuLjA1YWEx
NTU3YWMzNGI2NTRjMGY4ZWE1MGExMWQ4MGEyMDBlYjRmMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxv
d2VkLWNyb3Nzb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS93ZWJhdWRpby1yZW5kZXItcmVtb3RlLWF1ZGlvLWFsbG93ZWQtY3Jvc3NvcmlnaW4uaHRtbApA
QCAtMTcsNyArMTcsNyBAQAogICAgICAgICBsZXQgdHlwZSA9IG1pbWVUeXBlRm9yRXh0ZW5zaW9u
KG1lZGlhRmlsZS5zcGxpdCgnLicpLnBvcCgpKTsKICAgICAgICAgYXVkaW8uc3JjID0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFs
bG93LnBocD9uYW1lPSIgKyBtZWRpYUZpbGUgKyAiJnR5cGU9IiArIHR5cGU7CiAKLSAgICAgICAg
Y29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICAgICAgY29udGV4dCA9IG5l
dyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgbGV0IG1lZGlhU291cmNlID0gY29udGV4dC5jcmVh
dGVNZWRpYUVsZW1lbnRTb3VyY2UoYXVkaW8pOwogICAgICAgICBsZXQgYW5hbHlzZXIgPSBjb250
ZXh0LmNyZWF0ZUFuYWx5c2VyKCk7CiAgICAgICAgIGFuYWx5c2VyLmZmdFNpemUgPSAzMjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVy
LXJlbW90ZS1hdWRpby1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxvY2tlZC1u
by1jcm9zc29yaWdpbi5odG1sCmluZGV4IDBlOGMxMGM2ZDc1MWZiNWU2MTMyNGNlNTI2Y2JiY2Ez
NWJlMjI3OTUuLmFhZTM4ZGNiOTNiMTU5Y2NmOWYwYmU0YmRlNTRhM2UzN2E2NTMzNWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJl
bW90ZS1hdWRpby1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS93ZWJhdWRpby1yZW5kZXItcmVtb3RlLWF1ZGlvLWJsb2NrZWQt
bm8tY3Jvc3NvcmlnaW4uaHRtbApAQCAtMTYsNyArMTYsNyBAQAogICAgICAgICBsZXQgdHlwZSA9
IG1pbWVUeXBlRm9yRXh0ZW5zaW9uKG1lZGlhRmlsZS5zcGxpdCgnLicpLnBvcCgpKTsKICAgICAg
ICAgYXVkaW8uc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMv
dmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocD9uYW1lPSIgKyBtZWRpYUZpbGUgKyAiJnR5cGU9
IiArIHR5cGU7CiAKLSAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsK
KyAgICAgICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgbGV0IG1lZGlh
U291cmNlID0gY29udGV4dC5jcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UoYXVkaW8pOwogICAgICAg
ICBsZXQgYW5hbHlzZXIgPSBjb250ZXh0LmNyZWF0ZUFuYWx5c2VyKCk7CiAgICAgICAgIGFuYWx5
c2VyLmZmdFNpemUgPSAzMjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci1vbnJlbW92ZXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItb25yZW1vdmV0cmFjay5odG1sCmlu
ZGV4IGI4MDhiNjlhMzI4ZDRhODc4YmY5MDIwNWEyMTYxZjdkYmZiMjRhZmEuLjYxMTQwY2YyNzBj
NjhkY2YzYWQ5ZjMyYTYxYmMzYjBmYTMzYTJkMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1vbnJlbW92ZXRyYWNrLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW9ucmVt
b3ZldHJhY2suaHRtbApAQCAtMTIsNyArMTIsNyBAQAogPC9jYW52YXM+CiA8c2NyaXB0Pgogc2V0
dXAoeyBzaW5nbGVfdGVzdDogdHJ1ZSB9KTsKLWNvbnN0IGFjID0gbmV3IHdlYmtpdEF1ZGlvQ29u
dGV4dCgpOworY29uc3QgYWMgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiBjb25zdCBvc2MgPSBhYy5j
cmVhdGVPc2NpbGxhdG9yKCk7CiBjb25zdCBkZXN0ID0gYWMuY3JlYXRlTWVkaWFTdHJlYW1EZXN0
aW5hdGlvbigpOwogY29uc3QgYXVkaW8gPSBkZXN0LnN0cmVhbTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb2NvbnRleHQtc3RvcHBlZC1p
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRp
b2NvbnRleHQtc3RvcHBlZC1pZnJhbWUuaHRtbAppbmRleCA4YjFkY2EwYTYzMWFlZjk1OGI3NGFk
MTEzMDFkYmVjNmFiNGRlNmJjLi42ODY5MGIwOTk2MDIzN2UwZmQ5ZGFkMDFlOTliMWQ5MzQ0MTU4
Yzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdWRpby9yZXNvdXJjZXMv
YXVkaW9jb250ZXh0LXN0b3BwZWQtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvY29udGV4dC1zdG9wcGVkLWlmcmFtZS5odG1sCkBA
IC0xLDMgKzEsMyBAQAogPHNjcmlwdD4KLXdpbmRvdy5hdWRpb0NvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KCk7Cit3aW5kb3cuYXVkaW9Db250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgp
OwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9oaXN0b3JpY2FsLWV4
cGVjdGVkLnR4dAppbmRleCBiZTk0YmIyYmY2OWU0MzUzZGU2MjBlMzkxMmEzMWI3NGNjMjU3Zjdk
Li43YmZkODU2MWE1YTFhZjk1MTZiOGMxMjVjZDY3MGE4YTlhMzk1YWZkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2hpc3Rv
cmljYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViYXVkaW8vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3
IEBACiAKLUZBSUwgd2Via2l0QXVkaW9Db250ZXh0IGludGVyZmFjZSBzaG91bGQgbm90IGV4aXN0
IGFzc2VydF9mYWxzZTogZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgd2Via2l0QXVkaW9Q
YW5uZXJOb2RlIGludGVyZmFjZSBzaG91bGQgbm90IGV4aXN0IGFzc2VydF9mYWxzZTogZXhwZWN0
ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCBpbnRlcmZh
Y2Ugc2hvdWxkIG5vdCBleGlzdCBhc3NlcnRfZmFsc2U6IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitQQVNTIHdlYmtpdEF1ZGlvQ29udGV4dCBpbnRlcmZhY2Ugc2hvdWxkIG5vdCBleGlzdCAKK1BB
U1Mgd2Via2l0QXVkaW9QYW5uZXJOb2RlIGludGVyZmFjZSBzaG91bGQgbm90IGV4aXN0IAorUEFT
UyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0IGludGVyZmFjZSBzaG91bGQgbm90IGV4aXN0IAog
UEFTUyBkb3BwbGVyRmFjdG9yIG1lbWJlciBzaG91bGQgbm90IGV4aXN0IG9uIHRoZSBBdWRpb0xp
c3RlbmVyLiAKIFBBU1Mgc3BlZWRPZlNvdW5kIG1lbWJlciBzaG91bGQgbm90IGV4aXN0IG9uIHRo
ZSBBdWRpb0xpc3RlbmVyLiAKIFBBU1Mgc2V0VmVsb2NpdHkgbWVtYmVyIHNob3VsZCBub3QgZXhp
c3Qgb24gdGhlIEF1ZGlvTGlzdGVuZXIuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQt
c2l6aW5nLWV4cGVjdGVkLnR4dAppbmRleCAzZjQwZmY5OTk4YzNlMDc0NWNkNWI3YTNlM2JjOGI0
OWJiZmZhODNlLi5kYTBiMWVlMTE5NzgzNGQzZmQ3Zjg3ODhhNjFlYjljNDg5N2Y4OTg1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNl
ci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
d2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dApAQCAtMzks
NyArMzksNyBAQCBQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSA2NTUz
Ni4KIFBBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDY1NTM3LgogUEFT
UyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTMxMDcyLgogUEFTUyBFeGNl
cHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTMxMDczLgotUEFTUyB3ZWJraXRBdWRp
b0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJyYXkgcmVzaXppbmdzLgor
UEFTUyBBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJyYXkgcmVz
aXppbmdzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMg
Yi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKaW5kZXggNWE2MWFm
YTc1MTJhY2ZkMzYwZWIxMDkzMmZiM2ZiYWZjMGE2OGUwZi4uY2Y5MTY1YTMyMDc0MTYyMDQ4NzIy
YTg2NTdkYzBjZTMxZDVhYWZmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcwpAQCAtMjMsMTMgKzIzLDYgQEAgaWYgKHNlbGYudGVzdFJ1bm5lcikgewogICAg
ICAgICBzZXRUaW1lb3V0KHRpbWVvdXQsIHRlc3RSdW5uZXIudGltZW91dCAqIDAuOSk7CiAKICAg
ICBpZiAobG9jYXRpb24ucG9ydCA9PSA4ODAwIHx8IGxvY2F0aW9uLnBvcnQgPT0gOTQ0Mykgewot
ICAgICAgICAvLyBNYWtlIFdlYkF1ZGlvIG1hcCB0byB3ZWJraXRXZWJBdWRpbyBmb3IgV1BUIHRl
c3RzCi0gICAgICAgIGlmICh3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0ICYmICF3aW5kb3cuQXVk
aW9Db250ZXh0KQotICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNlbGYsICJBdWRp
b0NvbnRleHQiLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsICJ3ZWJraXRB
dWRpb0NvbnRleHQiKSk7Ci0gICAgICAgIGlmICh3aW5kb3cud2Via2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dCAmJiAhd2luZG93Lk9mZmxpbmVBdWRpb0NvbnRleHQpCi0gICAgICAgICAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoc2VsZiwgIk9mZmxpbmVBdWRpb0NvbnRleHQiLCBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsICJ3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0IikpOwot
ICAgICAgICBpZiAod2luZG93LndlYmtpdEF1ZGlvUGFubmVyTm9kZSAmJiAhd2luZG93LlBhbm5l
ck5vZGUpCi0gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2VsZiwgIlBhbm5lck5v
ZGUiLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsICJ3ZWJraXRBdWRpb1Bh
bm5lck5vZGUiKSk7CiAgICAgICAgIGlmIChzZWxmLmludGVybmFscykgewogICAgICAgICAgICAg
Ly8gVXNlIDQ0MTAwIHNhbXBsZSByYXRlIGJ5IGRlZmF1bHQgaW5zdGVhZCBvZiB0aGUgaGFyZHdh
cmUgc2FtcGxlIHJhdGUgc28gdGhhdCB3ZSBnZXQgY29uc2lzdGVudCByZXN1bHRzIGFjcm9zcyBt
YWNoaW5lcy4KICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXREZWZhdWx0QXVkaW9D
b250ZXh0U2FtcGxlUmF0ZSg0NDEwMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hbmFseXNlci1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2FuYWx5c2Vy
LWV4Y2VwdGlvbi5odG1sCmluZGV4IGM4OTIxMjUzOTJiZTc4YmIzZWUyYmUwYzZlNjYwNTU0Mjc2
MDhjYWEuLjFmZmY5YzQ1MTg2NDIzODEzNDM4NWU2MTNiMDhlM2FhZWYxZWM5ZGMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sCkBAIC0yMiw3ICsyMiw3
IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAgICB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7
CiAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gMzI7Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7Cisg
ICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1l
cywgc2FtcGxlUmF0ZSk7CiAgICAgYW5hbHlzZXIgPSBjb250ZXh0LmNyZWF0ZUFuYWx5c2VyKCk7
CiAgICAgYW5hbHlzZXIuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItY3Jhc2gtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4
IGNhYzM5ZmI0M2E0OThjMjdmODg5MjNmZjM4YzllMmU1MTY5Yjc1YjcuLmI5NTc3ZDlmZTEwZDYz
MjMxY2EzN2JjMWY4ZjEwMThkZTM1ZTFjMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9hdWRpb2J1ZmZlci1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIEF0dGVt
cHRpbmcgdG8gY3JlYXRlIGEgbGFyZ2UgQXVkaW9CdWZmZXIgc2hvdWxkIG5vdCBjcmFzaC4KIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGNvbnRleHQgPSBuZXcgd2Via2l0QXVk
aW9Db250ZXh0KCkuY3JlYXRlQnVmZmVyKDEsIC0xLCA0NDEwMCkgdGhyZXcgZXhjZXB0aW9uIE5v
dFN1cHBvcnRlZEVycm9yOiBDaGFubmVsIHdhcyBub3QgYWJsZSB0byBiZSBjcmVhdGVkLi4KK1BB
U1MgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKS5jcmVhdGVCdWZmZXIoMSwgLTEsIDQ0MTAw
KSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IENoYW5uZWwgd2FzIG5vdCBhYmxl
IHRvIGJlIGNyZWF0ZWQuLgogUEFTUyBUZXN0IHBhc3NlZCBiZWNhdXNlIGlmIGl0IGRpZG4ndCBj
cmFzaC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvYnVmZmVyLWNyYXNoLmh0bWwKaW5kZXggZTEwNGZiNThmMzc1NGQ1NWE0NTE5
ZTlmYTVhZjE1OWEwMzcxMGYyOC4uZjg5MWI5NjlkZWVlNjRiNWQ3MjYyZDg0NWJlMWIwNWE0MTE1
YThkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItY3Jhc2gu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1jcmFzaC5odG1sCkBA
IC02LDcgKzYsNyBAQAogICAgIDxib2R5PgogICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAg
ZGVzY3JpcHRpb24oIkF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgbGFyZ2UgQXVkaW9CdWZmZXIgc2hv
dWxkIG5vdCBjcmFzaC4iKTsKLSAgICAgICAgICAgIHNob3VsZFRocm93KCJjb250ZXh0ID0gbmV3
IHdlYmtpdEF1ZGlvQ29udGV4dCgpLmNyZWF0ZUJ1ZmZlcigxLCAtMSwgNDQxMDApIik7CisgICAg
ICAgICAgICBzaG91bGRUaHJvdygiY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKS5jcmVhdGVC
dWZmZXIoMSwgLTEsIDQ0MTAwKSIpOwogICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGVzdCBwYXNz
ZWQgYmVjYXVzZSBpZiBpdCBkaWRuJ3QgY3Jhc2guIik7CiAgICAgICAgIDwvc2NyaXB0PgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1leHBlY3RlZC50eHQKaW5kZXggZTkx
YjQ3OTRlOGI5ODY3NTFhYzcwNDgwZmRlNGQxMDQ1ZDYzYjQwZS4uOWIyODBkZTk3NDY0MTU0YjMx
Y2Y1M2NkNzI2ZjAwMmQ0MDVjNWQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9idWZmZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
YnVmZmVyLWV4cGVjdGVkLnR4dApAQCAtMTQsNyArMTQsNiBAQCBQQVNTIGdldENoYW5uZWxEYXRh
KDMpIHJldHVybnMgYSBGbG9hdDMyQXJyYXkgb2JqZWN0LgogUEFTUyBFeGNlcHRpb24gaGFzIGJl
ZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIGluZGV4IGlzIG5vdCBsZXNzIHRoYW4gbnVtYmVyT2ZD
aGFubmVscy4KIFBBU1MgYnVmZmVyLmdhaW4gaXMgdW5kZWZpbmVkLgogUEFTUyBBdWRpb0J1ZmZl
ci5wcm90b3R5cGUuZ2FpbiBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQuY3JlYXRlQnVmZmVy
KG51bGwsIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnYnVm
ZmVyJykgdG8gd2Via2l0QXVkaW9Db250ZXh0LmNyZWF0ZUJ1ZmZlciBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIEFycmF5QnVmZmVyLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZl
ci1uZXV0ZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci5o
dG1sCmluZGV4IDU3ZTQ0YWRmNzg4NWM2NTk1MTExMjZmNTViYzU0ZWNjM2MwNDc4MjkuLjg3YmMw
NzViNzJkNmU1MGNlMWNhNGZlMzhmNWU3ODFiMTAzMzRjZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci5odG1sCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgICAgdmFyIG51bWJlck9mRnJh
bWVzID0gc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kczsKLSAgICAgICAgICAgIGNvbnRleHQg
PSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywgc2FtcGxl
UmF0ZSk7CisgICAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwg
bnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOwogICAgICAgICAgICAgc291cmNlQnVmZmVyID0g
Y3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgbnVtYmVyT2ZGcmFtZXMsIDAuNSk7CiAgICAg
ICAgICAgICB2YXIgZGF0YSA9IHNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKS5idWZmZXI7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci5odG1sCmluZGV4IDVmNjZlNmQyOWUzYzgw
MDgwYWRiNDU4Mjk5YWM0ZDU1NDdmYjdhMTguLmFlNzZkNDIyNjk4NjU2YWVjMjNmMjA0ZmY3YWJj
NzRlOTJhMjc2MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVy
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXIuaHRtbApAQCAtMTIs
NyArMTIsNyBAQCB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjAKIHZhciBsZW5ndGhJblNlY29uZHMg
PSAyOwogdmFyIG51bWJlck9mQ2hhbm5lbHMgPSA0OwogCi12YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoKTsKK3ZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogdmFy
IGJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKG51bWJlck9mQ2hhbm5lbHMsIHNhbXBsZVJh
dGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiBpZiAoYnVmZmVyLnNhbXBsZVJh
dGUgPT09IHNhbXBsZVJhdGUpCkBAIC01Miw4ICs1Miw2IEBAIHRyeSB7CiBzaG91bGRCZVVuZGVm
aW5lZCgiYnVmZmVyLmdhaW4iKTsKIHNob3VsZEJlVW5kZWZpbmVkKCJBdWRpb0J1ZmZlci5wcm90
b3R5cGUuZ2FpbiIpOwogCi1zaG91bGRUaHJvd0Vycm9yTmFtZSgiY29udGV4dC5jcmVhdGVCdWZm
ZXIobnVsbCwgZmFsc2UpIiwgIlR5cGVFcnJvciIpOwotCiA8L3NjcmlwdD4KIAogPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDI3M2QxY2VkZTMzMTU4NWNlNDBkOWVmMjgzMTU5ZGFlMTY4Y2NmNTAu
LjhjZGUwZWJmMjQ5Y2JiNTYzN2YyZDIxY2MxODU1Nzg1NGJiOGY4MDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy1l
eHBlY3RlZC50eHQKQEAgLTMsMTYgKzMsMTYgQEAgVGVzdHMgdGhhdCBBdWRpb0J1ZmZlclNvdXJj
ZU5vZGUgdmFsaWRhdGVzIEF1ZGlvQnVmZmVyIGluIC5idWZmZXIgYXR0cmlidXRlIHNldHQKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogUEFTUyBzb3VyY2UuYnVmZmVyIGlzIG51bGwKLVBB
U1Mgc291cmNlLmJ1ZmZlciA9IDU3IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRoZSBXZWJL
aXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuYnVmZmVyIGF0dHJpYnV0ZSBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIEF1ZGlvQnVmZmVyLgorUEFTUyBzb3VyY2UuYnVmZmVyID0gNTcgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVGhlIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5idWZmZXIgYXR0cmlidXRl
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgQXVkaW9CdWZmZXIuCiBQQVNTIE1vbm8gYnVmZmVyIGNh
biBiZSBzZXQuCi1QQVNTIFN0ZXJlbyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgMyBjaGFubmVs
cyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgNCBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4K
LVBBU1MgNSBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgNiBjaGFubmVscyBidWZm
ZXIgY2FuIGJlIHNldC4KLVBBU1MgNyBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1Mg
OCBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgOSBjaGFubmVscyBidWZmZXIgY2Fu
IGJlIHNldC4KK1BBU1MgU3RlcmVvIGJ1ZmZlciBjYW4gbm90IGJlIHNldC4KK1BBU1MgMyBjaGFu
bmVscyBidWZmZXIgY2FuIG5vdCBiZSBzZXQuCitQQVNTIDQgY2hhbm5lbHMgYnVmZmVyIGNhbiBu
b3QgYmUgc2V0LgorUEFTUyA1IGNoYW5uZWxzIGJ1ZmZlciBjYW4gbm90IGJlIHNldC4KK1BBU1Mg
NiBjaGFubmVscyBidWZmZXIgY2FuIG5vdCBiZSBzZXQuCitQQVNTIDcgY2hhbm5lbHMgYnVmZmVy
IGNhbiBub3QgYmUgc2V0LgorUEFTUyA4IGNoYW5uZWxzIGJ1ZmZlciBjYW4gbm90IGJlIHNldC4K
K1BBU1MgOSBjaGFubmVscyBidWZmZXIgY2FuIG5vdCBiZSBzZXQuCiBQQVNTIGNvbnRleHQuY3Jl
YXRlQnVmZmVyKDY0LCAxMDI0LCBjb250ZXh0LnNhbXBsZVJhdGUpIHRocmV3IGV4Y2VwdGlvbiBO
b3RTdXBwb3J0ZWRFcnJvcjogTnVtYmVyIG9mIGNoYW5uZWxzIGNhbm5vdCBiZSBtb3JlIHRoYW4g
bWF4IHN1cHBvcnRlZC4uCiBQQVNTIHNvdXJjZS5idWZmZXIgaXMgbm90IG51bGwKIFBBU1Mgc291
cmNlLmJ1ZmZlciA9IG51bGwgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMuaHRtbAppbmRleCBm
MGY4N2MxODE0N2FkZTVjYWYwYjY5MWIzYmRhMjFmZDdhN2M5ZWU3Li40M2I5Y2Q2ZTk2OTU0NDNj
NzI0MjAwNmJmNTBjZTQ4NWE0NDY0Y2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLmh0bWwKQEAgLTE5LDcgKzE5LDcgQEAgdmFy
IHNvdXJjZTsKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwogICAgIAotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7Cisg
ICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICBzb3VyY2UgPSBjb250ZXh0LmNy
ZWF0ZUJ1ZmZlclNvdXJjZSgpOwogCiAgICAgc2hvdWxkQmVOdWxsKCJzb3VyY2UuYnVmZmVyIik7
CkBAIC00MCw5ICs0MCw5IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdHJ5IHsKICAgICAg
ICAgdmFyIHN0ZXJlb0J1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKDIsIDEwMjQsIGNvbnRl
eHQuc2FtcGxlUmF0ZSk7CiAgICAgICAgIHNvdXJjZS5idWZmZXIgPSBzdGVyZW9CdWZmZXI7Ci0g
ICAgICAgIHRlc3RQYXNzZWQoIlN0ZXJlbyBidWZmZXIgY2FuIGJlIHNldC4iKTsKKyAgICAgICAg
dGVzdEZhaWxlZCgiU3RlcmVvIGJ1ZmZlciBjYW4gYmUgc2V0LiIpOwogICAgIH0gY2F0Y2goZSkg
ewotICAgICAgICB0ZXN0RmFpbGVkKCJTdGVyZW8gYnVmZmVyIGNhbiBub3QgYmUgc2V0LiIpOwor
ICAgICAgICB0ZXN0UGFzc2VkKCJTdGVyZW8gYnVmZmVyIGNhbiBub3QgYmUgc2V0LiIpOwogICAg
IH0KICAgICAKICAgICAvLyBDaGVjayBidWZmZXJzIHdpdGggbW9yZSB0aGFuIHR3byBjaGFubmVs
cy4KQEAgLTUxLDEwICs1MSwxMCBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgICAgICAgICAg
dmFyIGJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKGksIDEwMjQsIGNvbnRleHQuc2FtcGxl
UmF0ZSk7CiAgICAgICAgICAgICBzb3VyY2UuYnVmZmVyID0gYnVmZmVyOwogICAgICAgICAgICAg
dmFyIG1lc3NhZ2UgPSBpICsgIiBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4iOwotICAgICAg
ICAgICAgdGVzdFBhc3NlZChtZXNzYWdlKTsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQobWVzc2Fn
ZSk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBpICsg
IiBjaGFubmVscyBidWZmZXIgY2FuIG5vdCBiZSBzZXQuIjsKLSAgICAgICAgICAgIHRlc3RGYWls
ZWQobWVzc2FnZSk7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKG1lc3NhZ2UpOwogICAgICAgICB9
CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNv
dXJjZS1lbmRlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Ut
ZW5kZWQuaHRtbAppbmRleCBkM2VhNDg1ZDRiZmEwZGE5MDNkOWRjY2IzZTQ4YTVlNmJkZGQyYmI5
Li42NzI4MzYwYjE2ZTBmN2ViZmU3MWVlZDdmZmVkYWNmMDZkZWRmZjJiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1lbmRlZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWVuZGVkLmh0bWwKQEAgLTEzLDcg
KzEzLDcgQEAKIAogICAgICAgICAgICAgdmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwogICAgICAg
ICAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gMzI7Ci0gICAgICAgICAgICBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUp
OworICAgICAgICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIG51bWJl
ck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRleHQuY3Jl
YXRlQnVmZmVyU291cmNlKCk7CiAgICAgICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3JlYXRlVGVz
dEJ1ZmZlcihjb250ZXh0LCBudW1iZXJPZkZyYW1lcyk7CiAgICAgICAgICAgICBzb3VyY2UuY29u
bmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1tdWx0aS1jaGFubmVscy5odG1sCmluZGV4IDRiNjZj
ZmY3NGVjZTE4ZDZlMGI2ZGFiZjI1Zjc0NGIzMDhiOTA1Y2EuLjlkNmE0NTRjNjRhYjQ2ZWIwMzI2
Y2ZjMGY5ZmZjNDhmZDY3MjVlZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbXVsdGktY2hhbm5lbHMuaHRtbApAQCAtMjMsNyArMjMs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dAogICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAuMDsKLSAgICB2YXIgY29udGV4dCA9
IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3Ro
U2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlv
Q29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwog
ICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCA0NDAsIHRvbmVM
ZW5ndGhTZWNvbmRzLCA2KTsgCiAKICAgICB2YXIgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZm
ZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVy
c291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0ZS1pbnRlcnBvbGF0ZWQtbG9vcC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRl
LWludGVycG9sYXRlZC1sb29wLmh0bWwKaW5kZXggZWU0MmRkMDY5YjE4ZGVkMWZmZWY5YjY4OWY2
YzI4ZTE5MzZkNjIwYS4uOWM4MzdjNDAzMGZkYzJiYmJkOWRiNTc1MzUzZWZjYzlkYjNkMmY2MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRp
dmUtcGxheWJhY2tyYXRlLWludGVycG9sYXRlZC1sb29wLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWludGVycG9s
YXRlZC1sb29wLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAKICAgICBmdW5jdGlvbiBnbygpIHsKICAg
ICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAg
ICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJGcmFtZXMsIHNh
bXBsZVJhdGUpOwogCiAgICAgICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1
ZmZlclNvdXJjZSgpOwogICAgICAgICBidWZmZXJTb3VyY2UuYnVmZmVyID0gY3JlYXRlUmFtcChj
b250ZXh0LCAwLCAxMjcsIHNvdXJjZUZyYW1lcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xh
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2
ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xhdGVkLmh0bWwKaW5kZXggMGY5MTUyNDQzZmZjODM0YzI2
ZWRmNjRiNjZiOWQyNDQ3ZDZkYzkxYy4uNzgxNmRkNjlmMjRhM2Y0YTRkODJkZDdmYzJkMTE1Zjg1
MjBjN2E5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWludGVycG9sYXRlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0ZS1pbnRl
cnBvbGF0ZWQuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICAgIGZ1bmN0aW9uIGdvKCkgewogICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICAg
ICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckZyYW1lcywgc2Ft
cGxlUmF0ZSk7CiAKICAgICAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVm
ZmVyU291cmNlKCk7CiAgICAgICAgIGJ1ZmZlclNvdXJjZS5idWZmZXIgPSBjcmVhdGVSYW1wKGNv
bnRleHQsIDAsIDEyNywgc291cmNlRnJhbWVzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0ZS1sb29wLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFj
a3JhdGUtbG9vcC5odG1sCmluZGV4IGJlZWMzYWIyNDk2ODU0MzliOGJlZWRkMzJkYzVkMmZhMWQw
OWMwNmUuLmQyN2Q4MTc3ZDE4OGU5ZmJmYjE5MmZhYjQzZDY0OTI0ZTJlMjExZTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXli
YWNrcmF0ZS1sb29wLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJz
b3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWxvb3AuaHRtbApAQCAtMjYsNyArMjYsNyBAQAog
ICAgIGZ1bmN0aW9uIGdvKCkgewogICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAg
ICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJh
bWVzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgdmFyIGJ1ZmZlclNv
dXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CiAgICAgICAgIGJ1ZmZlclNvdXJj
ZS5idWZmZXIgPSBjcmVhdGVSYW1wKGNvbnRleHQsIDAsIDEyNywgc291cmNlRnJhbWVzKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZl
LXBsYXliYWNrcmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLmh0bWwKaW5kZXggZWFkNjUxYWFmNDJiMTNlNGZhMTJm
YWQ4OTIyZDM0MDRkODgwZmE2OS4uNjc2OGM3NDM3NTUwZmYxNzNlNjAwOGZjNGE3ODYzZDMyM2Nh
MmUyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Ut
bmVnYXRpdmUtcGxheWJhY2tyYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLmh0bWwKQEAgLTIzLDcgKzIzLDcg
QEAKICAgICBmdW5jdGlvbiBnbygpIHsKICAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAK
LSAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRl
ckZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlv
Q29udGV4dCgxLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgIHZhciBidWZm
ZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAgICAgICBidWZmZXJT
b3VyY2UuYnVmZmVyID0gY3JlYXRlUmFtcChjb250ZXh0LCAwLCAxMjcsIHNvdXJjZUZyYW1lcyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1ub3Qt
Z2NlZC11bnRpbC1lbmRlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJz
b3VyY2Utbm90LWdjZWQtdW50aWwtZW5kZWQuaHRtbAppbmRleCAwYWQwNjg0YWQzMzVlNWFlZWY1
NmY1OGQxNzkzOTAyMjQ5ZDRhM2UxLi42MDMzMmUxYjI3MWEwMjQ3MGQ0ODcxYTJiYjM5OWY0MDZj
NjkzZjgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJj
ZS1ub3QtZ2NlZC11bnRpbC1lbmRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvYnVmZmVyc291cmNlLW5vdC1nY2VkLXVudGlsLWVuZGVkLmh0bWwKQEAgLTEyLDcgKzEyLDcg
QEAKIAogICAgICAgICAgICAgdmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwogICAgICAgICAgICAg
dmFyIG51bWJlck9mRnJhbWVzID0gMzI7Ci0gICAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOworICAg
ICAgICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIG51bWJlck9mRnJh
bWVzLCBzYW1wbGVSYXRlKTsKICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBjb250ZXh0LmNyZWF0
ZUJ1ZmZlclNvdXJjZSgpOwogICAgICAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZVRlc3RC
dWZmZXIoY29udGV4dCwgbnVtYmVyT2ZGcmFtZXMpOwogICAgICAgICAgICAgc291cmNlLmNvbm5l
Y3QoY29udGV4dC5kZXN0aW5hdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja1N0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWM5NjRjNTNiMWZiNzBhY2M3MjBmMGEy
NTYxMWEzZjE1NWYxYjBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3Rh
dGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGVzdCBBdWRp
b0NvbnRleHQgYWN0aXZlU291cmNlQ291bnQgYW5kIEF1ZGlvQnVmZmVyU291cmNlTm9kZSBwbGF5
YmFja1N0YXRlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLVBBU1MgUmVuZGVyaW5n
IHRpbWUgaXMgMiBzZWNvbmRzLgotUEFTUyBVTlNDSEVEVUxFRF9TVEFURSBTb3VyY2UgaGFzIGJl
ZW4gY3JlYXRlZAotUEFTUyBTQ0hFRFVMRURfU1RBVEUgICAzIHNlY29uZCBzb3VyY2Ugc2NoZWR1
bGVkIHRvIHN0YXJ0IGF0IHRpbWUgMwotUEFTUyBQTEFZSU5HX1NUQVRFICAgICAyIHNlY29uZCBz
b3VyY2Ugc3RhcnRpbmcgYXQgdGltZSAxCi1QQVNTIEZJTklTSEVEX1NUQVRFICAgIDEuMjUgc2Vj
b25kIHNvdXJjZSBzdGFydGluZyBhdCB0aW1lIDAKLVBBU1MgU0NIRURVTEVEX1NUQVRFICAgYSBs
b29waW5nIDAuNSBzZWNvbmQgc291cmNlIHNjaGVkdWxlZCBhdCB0aW1lIDMKLVBBU1MgUExBWUlO
R19TVEFURSAgICAgYSBsb29waW5nIDAuNSBzZWNvbmQgc291cmNlIHN0YXJ0aW5nIGF0IHRpbWUg
MS4yNQotUEFTUyAyIGFyZSBjdXJyZW50bHkgcGxheWluZyBhcyBleHBlY3RlZC4KLVBBU1MgYWN0
aXZlU291cmNlQ291bnQgYW5kIHBsYXliYWNrU3RhdGUgdGVzdHMgc3VjY2VlZGVkLgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBkZjJjZTAzODYyNzBiNWFjM2E5
NGIxZjFlOWJiZGJjMGUxZmI5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFj
a1N0YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBBdWRpb0NvbnRl
eHQgYWN0aXZlU291cmNlQ291bnQgYW5kIEF1ZGlvQnVmZmVyU291cmNlTm9kZSBwbGF5YmFja1N0
YXRlLiIpOwotCi0vLyBDcmVhdGUgYSBmZXcgc291cmNlcyB0aGF0IHN0YXJ0IGFuZCBlbmQgcGxh
eWluZyBhdCB2YXJpb3VzIHRpbWVzLiAgQWZ0ZXIgcmVuZGVyaW5nLCBjaGVjayB0aGF0Ci0vLyBl
YWNoIHNvdXJjZSBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSBhbmQgdGhhdCB0aGUgbnVtYmVyIG9m
IGFjdGl2ZSBzb3VyY2VzIGlzIGNvcnJlY3QuCi0KLXZhciBzYW1wbGVSYXRlID0gNDQxMDA7Ci0K
LS8vIFJlbmRlciBmb3IgdGhpcyBsb25nLgotdmFyIHJlbmRlclRpbWUgPSAyOwotdmFyIHJlbmRl
ckxlbmd0aCA9IHRpbWVUb1NhbXBsZUZyYW1lKHJlbmRlclRpbWUsIHNhbXBsZVJhdGUpOwotCi12
YXIgY29udGV4dDsKLQotLy8gTGlzdCBvZiBBdWRpb0J1ZmZlclNvdXJjZU5vZGVzIHNvdXJjZXMu
Ci12YXIgc291cmNlcyA9IFtdOwotCi0vLyBMaXN0IG9mIG1lc3NhZ2VzIHRoYXQgd2lsbCBiZSBw
cmludGVkIG91dCBvbiBzdWNjZXNzIChvciBmYWlsdXJlKS4gIE1lc3NhZ2VzIGFyZSBpbiB0aGUg
c2FtZQotLy8gb3JkZXIgYXMgdGhlIHNvdXJjZXMgbGlzdCBhYm92ZS4KLXZhciBzb3VyY2VNZXNz
YWdlcyA9IFtdOwotCi0vLyBMaXN0IG9mIHRoZSBleHBlY3RlZCBwbGF5YmFjayBzdGF0ZSBmb3Ig
ZWFjaCBzb3VyY2UuICBJbiB0aGUgc2FtZSBvcmRlciBhIHNvdXJjZXMgbGlzdCBhYm92ZS4KLXZh
ciBzb3VyY2VFeHBlY3RlZFN0YXRlcyA9IFtdOwotCi0vLyBBcnJheSBtYXBwaW5nIHRoZSBwbGF5
YmFjayBzdGF0ZSB0byBhIHN0cmluZy4KLXZhciBwbGF5YmFja1N0YXRlTmFtZSA9IFsiVU5TQ0hF
RFVMRURfU1RBVEUgIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiU0NIRURVTEVEX1NUQVRF
ICAgIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiUExBWUlOR19TVEFURSAgICAgIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAiRklOSVNIRURfU1RBVEUgICAgIl07Ci0KLWZ1bmN0aW9u
IGNoZWNrUmVzdWx0KGV2ZW50KQotewotICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKLQotICAgIC8v
IEZvciBlYWNoIHNvdXJjZSwgdmVyaWZ5IHRoYXQgdGhlIHBsYXliYWNrIHN0YXRlIG1hdGNoZXMg
b3VyIGV4cGVjdGVkIHBsYXliYWNrIHN0YXRlLgotICAgIGZvciAodmFyIGsgPSAwOyBrIDwgc291
cmNlcy5sZW5ndGg7ICsraykgewotICAgICAgICB2YXIgcHJlZml4ID0gcGxheWJhY2tTdGF0ZU5h
bWVbc291cmNlRXhwZWN0ZWRTdGF0ZXNba11dICsgc291cmNlTWVzc2FnZXNba107Ci0gICAgICAg
IGlmIChzb3VyY2VzW2tdLnBsYXliYWNrU3RhdGUgPT0gc291cmNlRXhwZWN0ZWRTdGF0ZXNba10p
IHsKLSAgICAgICAgICAgIHRlc3RQYXNzZWQocHJlZml4KTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIHRlc3RGYWlsZWQocHJlZml4ICsgIjogQWN0dWFsID0gIiArIHBsYXliYWNrU3Rh
dGVOYW1lW3NvdXJjZXNba10ucGxheWJhY2tTdGF0ZV0pOwotICAgICAgICAgICAgc3VjY2VzcyA9
IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gRmlndXJlIG91dCBob3cgbWFueSBh
Y3RpdmUgc291cmNlcyB0aGVyZSBzaG91bGQgYmUgZnJvbSB0aGUgZXhwZWN0ZWQgc3RhdGVzLgot
ICAgIHZhciBwbGF5aW5nU3RhdGUgPSBzb3VyY2VzWzBdLlBMQVlJTkdfU1RBVEUKLQotICAgIHZh
ciBleHBlY3RlZEFjdGl2ZUNvdW50ID0gMDsKLSAgICBmb3IgKGsgPSAwOyBrIDwgc291cmNlRXhw
ZWN0ZWRTdGF0ZXMubGVuZ3RoOyArK2spIHsKLSAgICAgICAgaWYgKHNvdXJjZUV4cGVjdGVkU3Rh
dGVzW2tdID09IHBsYXlpbmdTdGF0ZSkgewotICAgICAgICAgICAgKytleHBlY3RlZEFjdGl2ZUNv
dW50OwotICAgICAgICB9Ci0gICAgfQotICAgICAgCi0gICAgaWYgKGNvbnRleHQuYWN0aXZlU291
cmNlQ291bnQgPT0gZXhwZWN0ZWRBY3RpdmVDb3VudCkgewotICAgICAgICB0ZXN0UGFzc2VkKGNv
bnRleHQuYWN0aXZlU291cmNlQ291bnQgKyAiIGFyZSBjdXJyZW50bHkgcGxheWluZyBhcyBleHBl
Y3RlZC4iKTsKLSAgICB9IGVsc2UgewotICAgICAgICB0ZXN0RmFpbGVkKGNvbnRleHQuYWN0aXZl
U291cmNlQ291bnQgKyAiIGFyZSBjdXJyZW50bHkgcGxheWluZywgYnV0IGV4cGVjdGVkICIgKyBl
eHBlY3RlZEFjdGl2ZUNvdW50ICsgIi4iKTsKLSAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAg
IH0KLQotICAgIGlmIChzdWNjZXNzKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoImFjdGl2ZVNvdXJj
ZUNvdW50IGFuZCBwbGF5YmFja1N0YXRlIHRlc3RzIHN1Y2NlZWRlZC4iKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICB0ZXN0RmFpbGVkKCJhY3RpdmVTb3VyY2VDb3VudCBhbmQgcGxheWJhY2tTdGF0
ZSB0ZXN0cyBkaWQgbm90IHN1Y2NlZWQuIik7Ci0gICAgfQotCi0gICAgZmluaXNoSlNUZXN0KCk7
Ci19Ci0KLS8vIHNvdXJjZUxlbmd0aCAtIGxlbmd0aCBvZiBzb3VyY2UgaW4gc2Vjb25kcwotLy8g
bm90ZUZ1bmN0aW9uIC0gZnVuY3Rpb24gdG8gdHVybiBvbiBzb3VyY2UgYXBwcm9wcmlhdGVseQot
Ly8gZXhwZWN0ZWRTdGF0ZSAtIGV4cGVjdGVkIHN0YXRlIG9mIHRoZSBzb3VyY2UgYXQgdGhlIGVu
ZCBvZiByZW5kZXJpbmcKLS8vIG1lc3NhZ2UgLSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBpZiB0
ZXN0IHBhc3NlcwotZnVuY3Rpb24gY3JlYXRlVGVzdChzb3VyY2VMZW5ndGgsIG5vdGVGdW5jdGlv
biwgZXhwZWN0ZWRTdGF0ZSwgbWVzc2FnZSkKLXsKLSAgICB2YXIgcyA9IGNvbnRleHQuY3JlYXRl
QnVmZmVyU291cmNlKCk7Ci0gICAgcy5idWZmZXIgPSBjcmVhdGVJbXB1bHNlQnVmZmVyKGNvbnRl
eHQsIHRpbWVUb1NhbXBsZUZyYW1lKHNvdXJjZUxlbmd0aCwgc2FtcGxlUmF0ZSkpOwotICAgIHMu
Y29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKLSAgICBub3RlRnVuY3Rpb24ocyk7Ci0gICAg
c291cmNlcy5wdXNoKHMpOwotICAgIHNvdXJjZU1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7Ci0gICAg
c291cmNlRXhwZWN0ZWRTdGF0ZXMucHVzaChleHBlY3RlZFN0YXRlKTsKLX0KLQotZnVuY3Rpb24g
cnVuVGVzdCgpCi17Ci0gICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi0gICAgLy8g
Q3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dCwgcmVuZGVyaW5nIGZvciByZW5kZXJUaW1lIHNl
Y29uZHMuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHRp
bWVUb1NhbXBsZUZyYW1lKHJlbmRlclRpbWUsIHNhbXBsZVJhdGUpLCBzYW1wbGVSYXRlKTsKLQot
ICAgIC8vIFRoaXMgaXMgb25seSB1c2VkIHNvIHdlIGNhbiBhY2Nlc3MgdGhlIHBsYXliYWNrIHN0
YXRlIGNvbnN0YW50cy4KLSAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZm
ZXJTb3VyY2UoKTsKLQotICAgIC8vIER1bW15IG1lc3NhZ2Ugc28gd2Uga25vdyBob3cgbG9uZyB3
ZSdyZSByZW5kZXJpbmcgc28gd2UgY2FuIGludGVycHJldCB0aGUgcGFzcy9mYWlsIG1lc3NhZ2Vz
Ci0gICAgLy8gY29ycmVjdGx5LgotICAgIHRlc3RQYXNzZWQoIlJlbmRlcmluZyB0aW1lIGlzICIg
KyByZW5kZXJUaW1lICsgIiBzZWNvbmRzLiIpOwotCi0gICAgLy8gVGVzdCB1bnNjaGVkdWxlZCBz
dGF0ZS4gQ3JlYXRlIDMgc2Vjb25kIHNvdXJjZSwgYnV0IGRvbid0IHNjaGVkdWxlIGl0LgotCi0g
ICAgY3JlYXRlVGVzdCgzLAotICAgICAgICAgICAgICAgZnVuY3Rpb24ocykgeyB9LAotICAgICAg
ICAgICAgICAgYnVmZmVyU291cmNlLlVOU0NIRURVTEVEX1NUQVRFLAotICAgICAgICAgICAgICAg
IlNvdXJjZSBoYXMgYmVlbiBjcmVhdGVkIik7Ci0KLSAgICAvLyBUZXN0IHN0YXJ0LgotCi0gICAg
Y3JlYXRlVGVzdCgzLAotICAgICAgICAgICAgICAgZnVuY3Rpb24ocykgeyBzLnN0YXJ0KHJlbmRl
clRpbWUgKyAxKTsgfSwKLSAgICAgICAgICAgICAgIGJ1ZmZlclNvdXJjZS5TQ0hFRFVMRURfU1RB
VEUsCi0gICAgICAgICAgICAgICAiMyBzZWNvbmQgc291cmNlIHNjaGVkdWxlZCB0byBzdGFydCBh
dCB0aW1lICIgKyAocmVuZGVyVGltZSArIDEpKTsKLQotICAgIGNyZWF0ZVRlc3QoMiwKLSAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKHMpIHsgcy5zdGFydCgxKTsgfSwKLSAgICAgICAgICAgICAgIGJ1
ZmZlclNvdXJjZS5QTEFZSU5HX1NUQVRFLAotICAgICAgICAgICAgICAgIjIgc2Vjb25kIHNvdXJj
ZSBzdGFydGluZyBhdCB0aW1lIDEiKTsKLSAgICAgIAotICAgIGNyZWF0ZVRlc3QoMS4yNSwKLSAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKHMpIHsgcy5zdGFydCgwKTsgfSwKLSAgICAgICAgICAgICAg
IGJ1ZmZlclNvdXJjZS5GSU5JU0hFRF9TVEFURSwKLSAgICAgICAgICAgICAgICIxLjI1IHNlY29u
ZCBzb3VyY2Ugc3RhcnRpbmcgYXQgdGltZSAwIik7Ci0KLSAgICAvLyBUZXN0IGxvb3Bpbmcgc291
cmNlCi0KLSAgICBjcmVhdGVUZXN0KDAuNSwKLSAgICAgICAgICAgICAgIGZ1bmN0aW9uKHMpIHsg
cy5sb29wID0gdHJ1ZTsgcy5zdGFydChyZW5kZXJUaW1lICsgMSk7IH0sCi0gICAgICAgICAgICAg
ICBidWZmZXJTb3VyY2UuU0NIRURVTEVEX1NUQVRFLAotICAgICAgICAgICAgICAgImEgbG9vcGlu
ZyAwLjUgc2Vjb25kIHNvdXJjZSBzY2hlZHVsZWQgYXQgdGltZSAiICsgKHJlbmRlclRpbWUgKyAx
KSk7Ci0KLSAgICBjcmVhdGVUZXN0KDAuNSwKLSAgICAgICAgICAgICAgIGZ1bmN0aW9uKHMpIHsg
cy5sb29wID0gdHJ1ZTsgcy5zdGFydCgxLjI1KTsgfSwKLSAgICAgICAgICAgICAgIGJ1ZmZlclNv
dXJjZS5QTEFZSU5HX1NUQVRFLAotICAgICAgICAgICAgICAgImEgbG9vcGluZyAwLjUgc2Vjb25k
IHNvdXJjZSBzdGFydGluZyBhdCB0aW1lIDEuMjUiKTsKLQotICAgIGNvbnRleHQub25jb21wbGV0
ZSA9IGNoZWNrUmVzdWx0OwotICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKLX0KLSAgICAg
IAotcnVuVGVzdCgpOwotICAKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUu
aHRtbAppbmRleCBlOWJiOTBkYzllZDQ3YTk1NjQxODlhYjM0MjE3ODBmYTdhMTQyNGIxLi5jY2Nm
YzgzMDA3YzdkZjAzMDUzYzNjMWFhM2M4M2Y1ZWZhY2Q2YjYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbApA
QCAtNzEsNyArNzEsNyBAQCBmdW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47CiAKICAg
ICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBz
YW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2Ft
cGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUg
YSBzaW5nbGUgY3ljbGUgb2YgYSBzaW5lIHdhdmUuCiAgICAgLy8gV2UnbGwgbG9vcCB0aGlzIHRv
IHBsYXkgbm90ZXMgb2YgYSBnaXZlbiBkdXJhdGlvbiwgYXQgYSBnaXZlbiBwbGF5YmFjayByYXRl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3Rh
cnQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXN0YXJ0Lmh0
bWwKaW5kZXggYzliYjAzMmUwZWMyYjU4NDkxZGI4NGViNDAzZGYzNWQ2YzQ0ZjJiOC4uMTQ4ZTAy
NjgzYjhmOTdhM2YyYTYzNTFlNDQ3NTc1OTAxMWI5MDQyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3RhcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1zdGFydC5odG1sCkBAIC03NCw3ICs3NCw3IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9
IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHRvdGFsUmVuZGVyTGVuZ3RoRnJhbWVz
LCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0
KDEsIHRvdGFsUmVuZGVyTGVuZ3RoRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICBidWZmZXIgPSBj
cmVhdGVUZXN0QnVmZmVyKGNvbnRleHQsIGJ1ZmZlckZyYW1lTGVuZ3RoKTsKIAogICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2UuaHRtbAppbmRleCBkYmUxMDU0OGZiNGI4ZjRjMGM4MTBlZTE4ZjY0
Njc2MzIwOGZiNjdhLi5hNmNlNDMyNWMyZDBiZTcyYTViYmQwYzVkMTRlMGRhZmQwYjhmYmQ0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLmh0bWwKQEAgLTI0LDcg
KzI0LDcgQEAgZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAg
ICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBz
YW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2Ft
cGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgCiAgICAgYnVmZmVy
TG9hZGVyID0gbmV3IEJ1ZmZlckxvYWRlcigKICAgICAgICAgY29udGV4dCwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlbm9kZS1sZWdhY3ktYXBpLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlbm9kZS1s
ZWdhY3ktYXBpLWV4cGVjdGVkLnR4dAppbmRleCA1NWZjNzVjNzI4ZDg2YjE4NmJhM2YwMjRjNmVi
ODViMjkxNzFmZTViLi5jZWE3NThiODQzM2M1NjdlMjliYTZlMGI1MTRmYjU1ZDI5YTAwYTBhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtbGVn
YWN5LWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZm
ZXJzb3VyY2Vub2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0CkBAIC01LDE2ICs1LDI2IEBAIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIFBBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnByb3Rv
dHlwZS5wbGF5YmFja1N0YXRlIGlzIHVuZGVmaW5lZC4KIFBBU1MgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLnByb3RvdHlwZS5nYWluIGlzIHVuZGVmaW5lZC4KLVBBU1MgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLlVOU0NIRURVTEVEX1NUQVRFIGlzIDAKLVBBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlND
SEVEVUxFRF9TVEFURSBpcyAxCi1QQVNTIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5QTEFZSU5HX1NU
QVRFIGlzIDIKLVBBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLkZJTklTSEVEX1NUQVRFIGlzIDMK
LVBBU1MgbGVnYWN5QnVmZmVyU291cmNlLnBsYXliYWNrU3RhdGUgaXMgZGVmaW5lZC4KLVBBU1Mg
bGVnYWN5QnVmZmVyU291cmNlLmdhaW4gaXMgZGVmaW5lZC4KLVBBU1MgbGVnYWN5QnVmZmVyU291
cmNlLlVOU0NIRURVTEVEX1NUQVRFIGlzIDAKLVBBU1MgbGVnYWN5QnVmZmVyU291cmNlLlNDSEVE
VUxFRF9TVEFURSBpcyAxCi1QQVNTIGxlZ2FjeUJ1ZmZlclNvdXJjZS5QTEFZSU5HX1NUQVRFIGlz
IDIKLVBBU1MgbGVnYWN5QnVmZmVyU291cmNlLkZJTklTSEVEX1NUQVRFIGlzIDMKK1BBU1MgQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLlVOU0NIRURVTEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLlNDSEVEVUxFRF9TVEFURSBpcyB1bmRlZmluZWQuCitQQVNT
IEF1ZGlvQnVmZmVyU291cmNlTm9kZS5QTEFZSU5HX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLkZJTklTSEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLnByb3RvdHlwZS5VTlNDSEVEVUxFRF9TVEFURSBpcyB1bmRl
ZmluZWQuCitQQVNTIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5wcm90b3R5cGUuU0NIRURVTEVEX1NU
QVRFIGlzIHVuZGVmaW5lZC4KK1BBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnByb3RvdHlwZS5Q
TEFZSU5HX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnBy
b3RvdHlwZS5GSU5JU0hFRF9TVEFURSBpcyB1bmRlZmluZWQuCitQQVNTIGJ1ZmZlclNvdXJjZS5w
bGF5YmFja1N0YXRlIGlzIHVuZGVmaW5lZC4KK1BBU1MgYnVmZmVyU291cmNlLmdhaW4gaXMgdW5k
ZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuVU5TQ0hFRFVMRURfU1RBVEUgaXMgdW5kZWZpbmVk
LgorUEFTUyBidWZmZXJTb3VyY2UuU0NIRURVTEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
YnVmZmVyU291cmNlLlBMQVlJTkdfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3Vy
Y2UuRklOSVNIRURfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuX19wcm90
b19fLnBsYXliYWNrU3RhdGUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuX19wcm90
b19fLmdhaW4gaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuX19wcm90b19fLlVOU0NI
RURVTEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1MgYnVmZmVyU291cmNlLl9fcHJvdG9fXy5T
Q0hFRFVMRURfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuX19wcm90b19f
LlBMQVlJTkdfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuX19wcm90b19f
LkZJTklTSEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2Vub2RlLWxlZ2FjeS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlbm9kZS1sZWdhY3ktYXBpLmh0bWwKaW5kZXggODBhY2Q4ZWY2
NWQ1ZjVmY2M1NTc0M2U0M2M4NjYwYzg0OWZhMjAzMy4uYTI2YzhmMDI0NzM1ZDgwMGI1MDMzZmIx
YTA3YjMyZWJmOTM4MDllZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2Vub2RlLWxlZ2FjeS1hcGkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtbGVnYWN5LWFwaS5odG1sCkBAIC0xMCwyMCArMTAsMjkg
QEAKICAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5wcm90
b3R5cGUucGxheWJhY2tTdGF0ZSIpOwogICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLnByb3RvdHlwZS5nYWluIik7CiAKLSAgICAgICAgLy8gVGVzdHMgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgcHJlZml4ZWQgQVBJLgotICAgICAgICBzaG91bGRCZSgi
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLlVOU0NIRURVTEVEX1NUQVRFIiwgIjAiKTsKLSAgICAgICAg
c2hvdWxkQmUoIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5TQ0hFRFVMRURfU1RBVEUiLCAiMSIpOwot
ICAgICAgICBzaG91bGRCZSgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlBMQVlJTkdfU1RBVEUiLCAi
MiIpOwotICAgICAgICBzaG91bGRCZSgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLkZJTklTSEVEX1NU
QVRFIiwgIjMiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIkF1ZGlvQnVmZmVyU291cmNl
Tm9kZS5VTlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVu
ZGVmaW5lZCgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlBMQVlJTkdfU1RBVEUiKTsKKyAgICAgICAg
c2hvdWxkQmVVbmRlZmluZWQoIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5GSU5JU0hFRF9TVEFURSIp
OworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnByb3Rv
dHlwZS5VTlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLnByb3RvdHlwZS5TQ0hFRFVMRURfU1RBVEUiKTsKKyAgICAgICAg
c2hvdWxkQmVVbmRlZmluZWQoIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5wcm90b3R5cGUuUExBWUlO
R19TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLnByb3RvdHlwZS5GSU5JU0hFRF9TVEFURSIpOwogCi0gICAgICAgIGxldCBsZWdhY3lDb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dDsKLSAgICAgICAgbGV0IGxlZ2FjeUJ1ZmZlclNv
dXJjZSA9IGxlZ2FjeUNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7Ci0gICAgICAgIHNob3Vs
ZEJlRGVmaW5lZCgibGVnYWN5QnVmZmVyU291cmNlLnBsYXliYWNrU3RhdGUiKTsKLSAgICAgICAg
c2hvdWxkQmVEZWZpbmVkKCJsZWdhY3lCdWZmZXJTb3VyY2UuZ2FpbiIpOwotICAgICAgICBzaG91
bGRCZSgibGVnYWN5QnVmZmVyU291cmNlLlVOU0NIRURVTEVEX1NUQVRFIiwgIjAiKTsKLSAgICAg
ICAgc2hvdWxkQmUoImxlZ2FjeUJ1ZmZlclNvdXJjZS5TQ0hFRFVMRURfU1RBVEUiLCAiMSIpOwot
ICAgICAgICBzaG91bGRCZSgibGVnYWN5QnVmZmVyU291cmNlLlBMQVlJTkdfU1RBVEUiLCAiMiIp
OwotICAgICAgICBzaG91bGRCZSgibGVnYWN5QnVmZmVyU291cmNlLkZJTklTSEVEX1NUQVRFIiwg
IjMiKTsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0OworICAgICAgICBs
ZXQgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAg
c2hvdWxkQmVVbmRlZmluZWQoImJ1ZmZlclNvdXJjZS5wbGF5YmFja1N0YXRlIik7CisgICAgICAg
IHNob3VsZEJlVW5kZWZpbmVkKCJidWZmZXJTb3VyY2UuZ2FpbiIpOworICAgICAgICBzaG91bGRC
ZVVuZGVmaW5lZCgiYnVmZmVyU291cmNlLlVOU0NIRURVTEVEX1NUQVRFIik7CisgICAgICAgIHNo
b3VsZEJlVW5kZWZpbmVkKCJidWZmZXJTb3VyY2UuU0NIRURVTEVEX1NUQVRFIik7CisgICAgICAg
IHNob3VsZEJlVW5kZWZpbmVkKCJidWZmZXJTb3VyY2UuUExBWUlOR19TVEFURSIpOworICAgICAg
ICBzaG91bGRCZVVuZGVmaW5lZCgiYnVmZmVyU291cmNlLkZJTklTSEVEX1NUQVRFIik7CisgICAg
ICAgIHNob3VsZEJlVW5kZWZpbmVkKCJidWZmZXJTb3VyY2UuX19wcm90b19fLnBsYXliYWNrU3Rh
dGUiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoImJ1ZmZlclNvdXJjZS5fX3Byb3RvX18u
Z2FpbiIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiYnVmZmVyU291cmNlLl9fcHJvdG9f
Xy5VTlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiYnVmZmVy
U291cmNlLl9fcHJvdG9fXy5TQ0hFRFVMRURfU1RBVEUiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRl
ZmluZWQoImJ1ZmZlclNvdXJjZS5fX3Byb3RvX18uUExBWUlOR19TVEFURSIpOworICAgICAgICBz
aG91bGRCZVVuZGVmaW5lZCgiYnVmZmVyU291cmNlLl9fcHJvdG9fXy5GSU5JU0hFRF9TVEFURSIp
OwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItYmFzaWMuaHRtbAppbmRleCBiMWM3YjI2NzJlZmZm
Y2IxYmI1NzFhMzVhOGUxZDlhMGJjNDc5OGNiLi43YjYxMjA3ZDhkZjc0MmU1M2JmMTZkNmQxZTc2
MGY3YjY3MzZiNGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5u
ZWxtZXJnZXItYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5u
ZWxtZXJnZXItYmFzaWMuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBkZXNjcmlwdGlvbigiQmFzaWMg
dGVzdHMgZm9yIEF1ZGlvQ2hhbm5lbE1lcmdlci4iKTsKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgdmFyIGNvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0
KCk7CiAKICAgICB0cnkgewogICAgICAgICB2YXIgbWVyZ2Vybm9kZSA9IGNvbnRleHQuY3JlYXRl
Q2hhbm5lbE1lcmdlcigwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
Y2hhbm5lbG1lcmdlci1zdGVyZW8uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hh
bm5lbG1lcmdlci1zdGVyZW8uaHRtbAppbmRleCA1NTRjMWZlZjVjOTk5YmFmODRhYWVlYmM5YmI0
MDBmYmE5MWZjMThhLi5mNTIzMjg4NGFhYmMyZGEwMmMwYmM4ZGUwZGRmY2FiYWIwZGRkMTExIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItc3RlcmVv
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLXN0ZXJl
by5odG1sCkBAIC03Myw3ICs3Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgc3RlcmVvIG9m
ZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgbGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRl
eHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBsZW5ndGhJblNhbXBsZUZyYW1lcywgc2Ft
cGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgdHdvIG1vbm8gYnVmZmVycywgb25lIGhhdmluZyBh
bGwgLTEgdmFsdWVzLCB0aGUgb3RoZXIgYWxsICsxLgogICAgIGJ1ZmZlcjEgPSBjcmVhdGVCdWZm
ZXJXaXRoRENPZmZzZXQobGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUsIC0xKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sCmluZGV4IDRl
OWM3ZTkyYjEzNzQ0ZmY1ZjhkNGMyYzdhOGJmMTJmOTExMzZkZjIuLjM1MDcwZmY2MzRmOTA3YWM1
OTA2NjI3ZTA3MTc1YmFlOTdhMjI4MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9jaGFubmVsc3BsaXR0ZXIuaHRtbApAQCAtNzYsNyArNzYsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBz
dGVyZW8gb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCBsZW5ndGhJblNhbXBsZUZyYW1lcywgc2FtcGxlUmF0ZSk7Cisg
ICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIGxlbmd0aEluU2FtcGxlRnJh
bWVzLCBzYW1wbGVSYXRlKTsKIAogICAgIHRyeSB7CiAgICAgICAgIHZhciBzcGxpdHRlcm5vZGUg
PSBjb250ZXh0LmNyZWF0ZUNoYW5uZWxTcGxpdHRlcigwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1wcm9taXNlLXRocm93aW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1wcm9taXNlLXRocm93aW5nLWV4cGVj
dGVkLnR4dAppbmRleCBhNjM2ZGZlNzllMDkxYWRlMzhmZTA3ZDliZTc2ZGI2MzM2NmU5MDZmLi4x
YmNiMWQ0NjhjNDAyMGYzZGViMTZmYTcyY2QxMGQ1MDQ1ZTI0OGExIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcHJvbWlzZS10aHJvd2luZy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2UtdGhyb3dp
bmctZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDkgQEAKLVRlc3RzIHRoYXQgQXVkaW9Db250ZXh0
IHJlc3VtZS9zdXNwZW5kL2Nsb3NlIG1ldGhvZHMgcmVqZWN0IHByb21pc2VzIHdoZW4gY2FsbGVk
IG9uIGFuIE9mZmxpbmVBdWRpb0NvbnRleHQuCitUZXN0cyB0aGF0IEF1ZGlvQ29udGV4dCByZXN1
bWUvc3VzcGVuZCBtZXRob2RzIHJlamVjdCBwcm9taXNlcyB3aGVuIGNhbGxlZCBvbiBhbiBPZmZs
aW5lQXVkaW9Db250ZXh0LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIFBBU1MgY29u
dGV4dC5yZXN1bWUoKSBwcm9taXNlIHJlamVjdGVkIHdpdGggSW52YWxpZFN0YXRlRXJyb3IgdmFs
dWUKLVBBU1MgY29udGV4dC5zdXNwZW5kKCkgcHJvbWlzZSByZWplY3RlZCB3aXRoIEludmFsaWRT
dGF0ZUVycm9yIHZhbHVlCi1QQVNTIGNvbnRleHQuY2xvc2UoKSBwcm9taXNlIHJlamVjdGVkIHdp
dGggSW52YWxpZFN0YXRlRXJyb3IgdmFsdWUKK1BBU1MgY29udGV4dC5zdXNwZW5kKCkgcHJvbWlz
ZSByZWplY3RlZCB3aXRoIFR5cGVFcnJvcgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2NvbnRleHQtcHJvbWlzZS10aHJvd2luZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9jb250ZXh0LXByb21pc2UtdGhyb3dpbmcuaHRtbAppbmRleCAyMThhYjYxZjZlY2UyODcyZjcz
NWY0ZTM2ZTQ2YWYyMWRiYzE5ODcyLi4yMWUzNWI3NDYyNzY4N2FhNTlmZDBlNWZhNGM4Y2Q2NzY0
ZTQzYWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcHJv
bWlzZS10aHJvd2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4
dC1wcm9taXNlLXRocm93aW5nLmh0bWwKQEAgLTEzLDEyICsxMywxMiBAQAogPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBBdWRpb0Nv
bnRleHQgcmVzdW1lL3N1c3BlbmQvY2xvc2UgbWV0aG9kcyByZWplY3QgcHJvbWlzZXMgd2hlbiBj
YWxsZWQgb24gYW4gT2ZmbGluZUF1ZGlvQ29udGV4dC4iKTsKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IEF1ZGlvQ29udGV4dCByZXN1bWUvc3VzcGVuZCBtZXRob2RzIHJlamVjdCBwcm9taXNlcyB3
aGVuIGNhbGxlZCBvbiBhbiBPZmZsaW5lQXVkaW9Db250ZXh0LiIpOwogCiBmdW5jdGlvbiBydW5U
ZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCi0gICAg
dmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRl
ICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyBP
ZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBz
YW1wbGVSYXRlKTsKIAogICAgIGNvbnRleHQucmVzdW1lKCkudGhlbihmdW5jdGlvbigpIHsKICAg
ICAgICAgdGVzdEZhaWxlZCgnY29udGV4dC5yZXN1bWUoKSBwcm9taXNlIHJlc29sdmVkIChzaG91
bGQgaGF2ZSByZWplY3RlZCknKTsKQEAgLTM0LDIwICszNCwxMCBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgICAgICB0ZXN0RmFpbGVkKCdjb250ZXh0LnN1c3BlbmQoKSBwcm9taXNlIHJlc29s
dmVkIChzaG91bGQgaGF2ZSByZWplY3RlZCknKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAg
ICAgfSwgZnVuY3Rpb24oZSkgewotICAgICAgIGlmIChlLm5hbWUgPT0gJ0ludmFsaWRTdGF0ZUVy
cm9yJykgCi0gICAgICAgICAgIHRlc3RQYXNzZWQoJ2NvbnRleHQuc3VzcGVuZCgpIHByb21pc2Ug
cmVqZWN0ZWQgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciB2YWx1ZScpOwotICAgICAgIGVsc2UKLSAg
ICAgICAgICAgdGVzdEZhaWxlZCgnY29udGV4dC5zdXNwZW5kKCkgcHJvbWlzZSByZWplY3RlZCwg
YnV0IHdpdGhvdXQgSW52YWxpZFN0YXRlRXJyb3IgdmFsdWUnKTsKLSAgICB9KTsKLQotICAgIGNv
bnRleHQuY2xvc2UoKS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0RmFpbGVkKCdjb250
ZXh0LmNsb3NlKCkgcHJvbWlzZSByZXNvbHZlZCAoc2hvdWxkIGhhdmUgcmVqZWN0ZWQpJyk7Ci0g
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICBpZiAo
ZS5uYW1lID09ICdJbnZhbGlkU3RhdGVFcnJvcicpCi0gICAgICAgICAgIHRlc3RQYXNzZWQoJ2Nv
bnRleHQuY2xvc2UoKSBwcm9taXNlIHJlamVjdGVkIHdpdGggSW52YWxpZFN0YXRlRXJyb3IgdmFs
dWUnKTsKKyAgICAgICBpZiAoZS5uYW1lID09ICdUeXBlRXJyb3InKSAKKyAgICAgICAgICAgdGVz
dFBhc3NlZCgnY29udGV4dC5zdXNwZW5kKCkgcHJvbWlzZSByZWplY3RlZCB3aXRoIFR5cGVFcnJv
cicpOwogICAgICAgIGVsc2UKLSAgICAgICAgICAgdGVzdEZhaWxlZCgnY29udGV4dC5jbG9zZSgp
IHByb21pc2UgcmVqZWN0ZWQsIGJ1dCB3aXRob3V0IEludmFsaWRTdGF0ZUVycm9yIHZhbHVlJyk7
CisgICAgICAgICAgIHRlc3RGYWlsZWQoJ2NvbnRleHQuc3VzcGVuZCgpIHByb21pc2UgcmVqZWN0
ZWQgd2l0aCAnICsgZS5uYW1lICsgIiBpbnN0ZWFkIG9mIFR5cGVFcnJvciIpOwogICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9jb250ZXh0LXByb21pc2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
Y29udGV4dC1wcm9taXNlLmh0bWwKaW5kZXggZmJlZTdkYTYzY2I4YjQzY2RkNDYwOWIxNmNmMDVj
ZDM3NzBiYWNmMy4uOGUwMWJkOTIxMGMwNWYwNjgyMTE2MTdiMDE0MTk0NDdlOTRmY2RhOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2UuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcHJvbWlzZS5odG1sCkBAIC0x
Niw3ICsxNiw3IEBAIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IEF1ZGlvQ29udGV4dCBzdXNwZW5k
IG1ldGhvZCByZXNvbHZlIHByb21pc2VzIGltbWVkaWF0ZWx5CiBmdW5jdGlvbiBydW5UZXN0KCkg
ewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgIGNvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsK
IAogICAgIHZhciBpc1N1c3BlbmRlZCA9IGZhbHNlOwogICAgIGNvbnRleHQuc3VzcGVuZCgpLnRo
ZW4oZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2Nv
bnRleHQtcmVzdHJpY3Rpb24tYXVkaW9idWZmZXJzb3VyY2Vub2RlLXN0YXJ0Lmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24tYXVkaW9idWZmZXJzb3Vy
Y2Vub2RlLXN0YXJ0Lmh0bWwKaW5kZXggZWM1NDkxMzZmMzZmZjUxNmRlYThmYmU2NWQ2Y2VhOGIy
OTFkOTBmNy4uNGE1NTBlZTFiY2U0M2ZjYTNiMTFhYzYyODAzMmE5NDA3ZWUwYjhkNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXJlc3RyaWN0aW9uLWF1ZGlv
YnVmZmVyc291cmNlbm9kZS1zdGFydC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvY29udGV4dC1yZXN0cmljdGlvbi1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtc3RhcnQuaHRtbApA
QCAtMjAsNyArMjAsNyBAQCB2YXIgY2FsbGVkUmVzdW1lV2l0aFVzZXJHZXN0dXJlID0gZmFsc2U7
CiBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgY29udGV4dCA9
IG5ldyBBdWRpb0NvbnRleHQoKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAg
ICBpbnRlcm5hbHMuc2V0QXVkaW9Db250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1aXJl
VXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9hdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvY29udGV4dC1yZXN0cmljdGlvbi5odG1sCmluZGV4IDIxNmYwOWFjNDEzNjk0OWUwNjA0
ZWU4Yjg5MTI4OTc1MjQ0ZTFmNzEuLjQ1YzUzMWE3NTA2ZDAyZTJmZjVlMmQxOWY1MDZlY2JiMDlj
NTI3NTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1yZXN0
cmljdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1yZXN0
cmljdGlvbi5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIHZhciBjYWxsZWRSZXN1bWVXaXRoVXNlckdl
c3R1cmUgPSBmYWxzZTsKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsK
KyAgICBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogCiAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCiAgICAgICAgIGludGVybmFscy5zZXRBdWRpb0NvbnRleHRSZXN0cmljdGlvbnMoY29u
dGV4dCwgJ1JlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvU3RhcnQnKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1zdGF0ZS1pbnRlcnJ1cHRlZC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWludGVycnVwdGVkLmh0bWwK
aW5kZXggYzg3NTAzMzJiYmQxOWMzN2VhMGYyM2EwNWVhMzJmOTZlY2VlNGQ0NC4uZjc3YzdkODlj
YjIwZmIxYzBhMjBlNjAzYzdmYzY4NzdiMzkwZWQ5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWludGVycnVwdGVkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWludGVycnVwdGVkLmh0bWwKQEAgLTE5
LDcgKzE5LDcgQEAgdmFyIG5vZGUgPSBudWxsOwogZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAKICAgICBz
aG91bGRCZSgnY29udGV4dC5zdGF0ZScsICcic3VzcGVuZGVkIicpOwogICAgIGNvbnRleHQub25z
dGF0ZWNoYW5nZSA9IGJlZ2FuUnVubmluZzsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvY29udGV4dC1zdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9j
b250ZXh0LXN0YXRlLmh0bWwKaW5kZXggYTJkNDVlNmUxNTI2NzMyZDllZGYwMDM4YmI0YTg2NjEw
OTMwYjg0Ny4uOGIyYWMzOTNkODc3NTJhNWY5Njk0ODg1YWE0NDkyMTFhNWQ2NmYzOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLmh0bWwKQEAgLTE5LDcgKzE5
LDcgQEAgdmFyIG5vZGUgPSBudWxsOwogZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29u
dGV4dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAKICAgICBzaG91bGRC
ZSgnY29udGV4dC5zdGF0ZScsICcic3VzcGVuZGVkIicpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtY29ubmVjdC1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbAppbmRleCA2MGNjZTczZDk5YThm
ZTY4NTY2YTVjN2Q3OTVjMWQwODdhOTRjNmY3Li45OTkyODZhNmU2MDA4NTBjZWIyMjU4OTIzMTU4
YjY0MjNhMzRiNjgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUt
Y29ubmVjdC1vcmRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS1j
b25uZWN0LW9yZGVyLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2Ft
cGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBz
YW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRv
bmVCdWZmZXIgPSBjcmVhdGVTaW5XYXZlQnVmZmVyKGNvbnRleHQsIHJlbmRlckxlbmd0aFNlY29u
ZHMsIDg4MCk7CiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVm
ZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS5odG1sCmluZGV4IDNiYTI0ODY2
MTJkZjU2MmI0ZTc3NGMxOWMzOTFmZGEzN2Y0YTY0OTcuLjlhNGQ3MTk1ZWQ3Njg4MWNkZDdkOTkw
M2UxMzc0YzA0OTNhNTEwZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
bm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS5odG1sCkBAIC0x
Nyw3ICsxNyw3IEBAIHZhciBjb250ZXh0ID0gMDsKIHZhciBjb250ZXh0MiA9IDA7CiAKIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsK
KyAgICBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogICAgIHdpbmRvdy5hdWRpb05vZGUg
PSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogCiAgICAgLy8gQ2hlY2sgaW5wdXQgYW5k
IG91dHB1dCBudW1iZXJzIG9mIEF1ZGlvU291cmNlTm9kZS4KQEAgLTcxLDcgKzcxLDcgQEAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKICAgICAKICAgICAvLyBDcmVhdGUgYSBuZXcgY29udGV4dCBhbmQg
dHJ5IHRvIGNvbm5lY3QgdGhlIG90aGVyIGNvbnRleHQncyBub2RlIHRvIHRoaXMgb25lLgogICAg
IHRyeSB7Ci0gICAgICAgIGNvbnRleHQyID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAg
ICAgICBjb250ZXh0MiA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgd2luZG93LmF1ZGlv
Tm9kZS5jb25uZWN0KGNvbnRleHQyLmRlc3RpbmF0aW9uKTsKICAgICAgICAgdGVzdEZhaWxlZCgi
ZXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hlbiBjb25uZWN0aW5nIHRvIG90aGVyIGNvbnRl
eHQncyBub2RlLiIpOwogICAgIH0gY2F0Y2goZSkgewpAQCAtODAsNyArODAsNyBAQCBmdW5jdGlv
biBydW5UZXN0KCkgewogCiAgICAgLy8gQ3JlYXRlIGEgbmV3IGNvbnRleHQgd2l0aCB0b28gbWFu
eSBhcmd1bWVudHMKICAgICB0cnkgewotICAgICAgICBjb250ZXh0MiA9IG5ldyB3ZWJraXRBdWRp
b0NvbnRleHQoMCwgMCk7CisgICAgICAgIGNvbnRleHQyID0gbmV3IEF1ZGlvQ29udGV4dCh7IH0s
IDApOwogICAgICAgICB0ZXN0UGFzc2VkKCJleGNlcHRpb24gc2hvdWxkIG5vdCBiZSB0aHJvd24g
d2hlbiBjcmVhdGluZyBhdWRpbyBjb250ZXh0IHdpdGggdG9vIG1hbnkgYXJndW1lbnRzLiIpOwog
ICAgIH0gY2F0Y2goZSkgewogICAgICAgICB0ZXN0RmFpbGVkKCJleGNlcHRpb24gdGhyb3duIHdo
ZW4gY3JlYXRpbmcgYXVkaW8gY29udGV4dCB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cy4iKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1hdWRpb3Jh
dGVzaWduYWwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1h
dWRpb3JhdGVzaWduYWwuaHRtbAppbmRleCA2Zjk4ZDJkODI5MTNlMWM1OTMxZDliYzE2MTJmYmE1
MGYyOTA0YTg4Li45MjYxODllNDU0NmIyYTczNzkxNjNjNjhkYWE2OTQ4OGZjYjg1YWRhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRl
c2lnbmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jb25uZWN0
LWF1ZGlvcmF0ZXNpZ25hbC5odG1sCkBAIC02Myw3ICs2Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgdmFyIHNhbXBsZUZyYW1lTGVuZ3RoID0gc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vj
b25kczsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4
dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZUZyYW1lTGVuZ3RoLCBz
YW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2Ft
cGxlRnJhbWVMZW5ndGgsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gQ3JlYXRlIGJ1ZmZlciB1c2Vk
IGJ5IHRoZSBzb3VyY2Ugd2hpY2ggd2lsbCBoYXZlIGl0cyBnYWluIGNvbnRyb2xsZWQuCiAgICAg
Y29uc3RhbnRPbmVCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBzYW1wbGVG
cmFtZUxlbmd0aCwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3Bh
cmFtLXN1bW1pbmdqdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJh
bS1zdW1taW5nanVuY3Rpb24uaHRtbAppbmRleCAzMTgyOTZmZTcwYjY1NjA4NWZhNTNlMmE3MDBi
OTQwYTAxZTNjYjA2Li41ZDY0MTE0NjRjNmM3NjQ2OTk4OTI3ZjY2YmQ2NjQxMTc3ZTNhNzk4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXN1bW1pbmdqdW5jdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0
aW9uLmh0bWwKQEAgLTc2LDcgKzc2LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB2YXIg
c2FtcGxlRnJhbWVMZW5ndGggPSBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzOwogCiAgICAg
Ly8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlRnJhbWVMZW5ndGgsIHNhbXBsZVJhdGUpOwor
ICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVGcmFtZUxlbmd0
aCwgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgYnVmZmVyIHVzZWQgYnkgdGhlIHNvdXJj
ZSB3aGljaCB3aWxsIGhhdmUgaXRzIGdhaW4gY29udHJvbGxlZC4KICAgICB2YXIgY29uc3RhbnRP
bmVCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBzYW1wbGVGcmFtZUxlbmd0
aCwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3Byb2Nlc3Npbmdl
dmVudC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wcm9jZXNzaW5nZXZlbnQuaHRt
bAppbmRleCAyNTFjNmExMWYxNWJkNjA3YzA0ZDk4YWZiN2FjODIzNzNhMjg3OGRkLi44Y2ZiYWNk
YWU2ZjA4MTU5NTg2Y2I2MWVkZGYxMmE0MmY3YjNiNDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb3Byb2Nlc3NpbmdldmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvcHJvY2Vzc2luZ2V2ZW50Lmh0bWwKQEAgLTQyLDcgKzQyLDcgQEAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAv
LyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0
T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7
CisgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aElu
RnJhbWVzLCBzYW1wbGVSYXRlKTsKIAogICAgIHZhciBvc2NpbGxhdG9yID0gY29udGV4dC5jcmVh
dGVPc2NpbGxhdG9yKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1dG9t
YXRpYy1wdWxsLW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1dG9tYXRpYy1wdWxs
LW5vZGUuaHRtbAppbmRleCA5YmQ0OGJjYWQ3NzRmYTMzZjUzM2I5ZGNkNTVmZGFhNTM0OWMxZTNm
Li40M2IzNjI5ZDBiZWQwZTYyODhmZmVmZjczOTVhNjRmNmIzMGYwYmY1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdXRvbWF0aWMtcHVsbC1ub2RlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sCkBAIC0zMCw3ICszMCw3IEBA
IHZhciBhbmFseXNlcjsKIAogZnVuY3Rpb24gY29uc3RydWN0Q29tbW9uR3JhcGgoKSB7CiAgICAg
Ly8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUp
OworICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJMZW5ndGhJ
bkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgY29uc3RhbnRCdWZmZXIgPSBjcmVhdGVDb25zdGFu
dEJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhJbkZyYW1lcywgMSk7CiAKICAgICBidWZmZXJT
b3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vY29udm9sdXRpb24tbW9uby1tb25vLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRtbAppbmRleCAxMjk1ZGY0ZGEzZTBlZjdh
M2QyYTk2NWJhMjdhZDc4NmU4NDhkNjkzLi5iYjI2NDgwMDNjODMwMmFkZDBiNzJiMzIyY2Y3ZDhi
YjMwY2E4MGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1dGlvbi1t
b25vLW1vbm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1dGlvbi1tb25v
LW1vbm8uaHRtbApAQCAtMjksNyArMjksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxp
bmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVk
aW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRl
KTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJh
dGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIHZhciBzcXVhcmVQ
dWxzZSA9IGNyZWF0ZVNxdWFyZVB1bHNlQnVmZmVyKGNvbnRleHQsIHB1bHNlTGVuZ3RoRnJhbWVz
KTsKICAgICB2YXIgdHJpYW5nbGVQdWxzZSA9IGNyZWF0ZVRyaWFuZ2xlUHVsc2VCdWZmZXIoY29u
dGV4dCwgMiAqIHB1bHNlTGVuZ3RoRnJhbWVzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2NvbnZvbHZlci1jaGFubmVscy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY29u
dm9sdmVyLWNoYW5uZWxzLmh0bWwKaW5kZXggZGE0YWQzYmI1ZDI5ZTg3NDZlOWRhOWUxN2IwZjk0
ZDc1MDI0MTI4Ni4uM2Y3YTAxYmUyMWY2M2NiNmYyYTg0YTY5YmQ5OWZhMzQwMTIyYmViMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY29udm9sdmVyLWNoYW5uZWxzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY29udm9sdmVyLWNoYW5uZWxzLmh0bWwKQEAgLTIsNyAr
Miw2IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tcGF0aWJpbGl0eS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2Ny
aXB0PgogPHRpdGxlPlRlc3QgU3VwcG9ydGVkIE51bWJlciBvZiBDaGFubmVscyBmb3IgQ29udm9s
dmVyTm9kZTwvdGl0bGU+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9jb252b2x2ZXItc2V0QnVmZmVyLWRpZmZlcmVudC1zYW1wbGVyYXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9jb252b2x2ZXItc2V0QnVmZmVyLWRpZmZlcmVudC1zYW1wbGVyYXRlLmh0
bWwKaW5kZXggMzBkYjUyMjJmOWQ3MGM1YTI2YzM3ODljOTEzMGExNGE2N2I4ZGFlZC4uZDc4ZGU0
NTlkZThhMzlkNTgzNjFhNjQzNzg1ZjRkZjA3ZDYyNTlmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vY29udm9sdmVyLXNldEJ1ZmZlci1kaWZmZXJlbnQtc2FtcGxlcmF0ZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NvbnZvbHZlci1zZXRCdWZmZXItZGlmZmVyZW50
LXNhbXBsZXJhdGUuaHRtbApAQCAtOSw3ICs5LDcgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCBDb252b2x2ZXJOb2RlIGJ1ZmZlciByYXRlIG11c3QgbWF0Y2ggY29udGV4dCBy
YXRlLiIpOwogCi12YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEs
IDI1NiwgNDQxMDApOwordmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAy
NTYsIDQ0MTAwKTsKIHZhciBjb252b2x2ZXIgPSBjb250ZXh0LmNyZWF0ZUNvbnZvbHZlcigpOwog
CiBzaG91bGRUaHJvd0Vycm9yTmFtZSgiY29udm9sdmVyLmJ1ZmZlciA9IGNvbnRleHQuY3JlYXRl
QnVmZmVyKDEsIDI1NiwgMjIwNTApIiwgIk5vdFN1cHBvcnRlZEVycm9yIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x2ZXItc2V0QnVmZmVyLW51bGwuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2NvbnZvbHZlci1zZXRCdWZmZXItbnVsbC5odG1sCmluZGV4IGI2
MWQ2OWY0MDg5MzBjOGI3MjQyNjEwNWI3ODRlODUyYjRjOGRiNTUuLmU2YzI0MTNmMGY4ZDAwMTEz
Y2NjM2RjMDZhYWVkZDY0MWM2NmQzOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2NvbnZvbHZlci1zZXRCdWZmZXItbnVsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2NvbnZvbHZlci1zZXRCdWZmZXItbnVsbC5odG1sCkBAIC04LDcgKzgsNyBAQAogPHNjcmlwdD4K
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IENvbnZvbHZlck5vZGUgaW1wdWxzZSByZXNwb25zZSBi
dWZmZXIgY2FuIGJlIHNldCB0byBudWxsLiIpOwogCi12YXIgY29udGV4dCA9IG5ldyB3ZWJraXRB
dWRpb0NvbnRleHQoKTsKK3ZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogdmFyIGNv
bnYgPSBjb250ZXh0LmNyZWF0ZUNvbnZvbHZlcigpOwogCiBzaG91bGROb3RUaHJvdygiY29udi5i
dWZmZXIgPSBudWxsIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jcmVhdGVN
ZWRpYVN0cmVhbVNvdXJjZS1udWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2NyZWF0ZU1lZGlhU3RyZWFtU291cmNlLW51bGwtZXhwZWN0ZWQudHh0CmluZGV4IDg2OWNiMjRm
YTI3MmYwOGU2ODc3NTFjMTQ1YWZiZTJlYWU1NDRmMjYuLjIzZjcwNDI0OTE0OWUyMzE3YjBlODcw
ZGZiZWZiMmNjMGU1NmQ4NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NyZWF0
ZU1lZGlhU3RyZWFtU291cmNlLW51bGwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2NyZWF0ZU1lZGlhU3RyZWFtU291cmNlLW51bGwtZXhwZWN0ZWQudHh0CkBAIC0zLDcg
KzMsNyBAQCBUZXN0cyB0aGF0IHBhc3NpbmcgbnVsbCB0byBjb250ZXh0LmNyZWF0ZU1lZGlhU3Ry
ZWFtU291cmNlKCkgdGhyb3dzIGEgVHlwZUVycm9yLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCiAKLVBBU1MgY29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShudWxsKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWVkaWFTdHJlYW0nKSB0byB3ZWJraXRB
dWRpb0NvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBv
ZiBNZWRpYVN0cmVhbS4KK1BBU1MgY29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShudWxs
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWVkaWFTdHJlYW0nKSB0
byBBdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UgbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBNZWRpYVN0cmVhbS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY3JlYXRlTWVkaWFT
dHJlYW1Tb3VyY2UtbnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY3JlYXRlTWVkaWFT
dHJlYW1Tb3VyY2UtbnVsbC5odG1sCmluZGV4IDFjOTRhYWZkYjFmOTU4ZjU4ZGZmNmY3NWNhNjhk
OGY1YjI1NDdkZjkuLjdkMjg2MDE4ZmE3MWRkMDI2MTBjMDJlOGJhN2M4ZGEzNmU2NTEyYTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NyZWF0ZU1lZGlhU3RyZWFtU291cmNlLW51
bGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jcmVhdGVNZWRpYVN0cmVhbVNvdXJj
ZS1udWxsLmh0bWwKQEAgLTgsOCArOCw4IEBACiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgcGFzc2luZyBudWxsIHRvIGNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UoKSB0
aHJvd3MgYSBUeXBlRXJyb3IuIik7CiAKLXZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29u
dGV4dCgpOwotc2hvdWxkVGhyb3coImNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UobnVs
bCkiLCAiJ1R5cGVFcnJvcjogQXJndW1lbnQgMSAoXFwnbWVkaWFTdHJlYW1cXCcpIHRvIHdlYmtp
dEF1ZGlvQ29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZSBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIE1lZGlhU3RyZWFtJyIpOwordmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7Citz
aG91bGRUaHJvdygiY29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShudWxsKSIsICInVHlw
ZUVycm9yOiBBcmd1bWVudCAxIChcXCdtZWRpYVN0cmVhbVxcJykgdG8gQXVkaW9Db250ZXh0LmNy
ZWF0ZU1lZGlhU3RyZWFtU291cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgTWVkaWFTdHJlYW0n
Iik7CiAKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVjb2RlLWF1
ZGlvLWRhdGEtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVjb2Rl
LWF1ZGlvLWRhdGEtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IDU3MTU0ZmMxY2QyYjFkMjM4M2Y2
ZTAwYjJjZDI0ODM1MTUyNjZmYTYuLjk5YWE4YzA3ZDJmYzk5YmVlNjNkZTkwNWViZGM1M2M5Zjhm
NTBkMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRh
LWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWNvZGUtYXVk
aW8tZGF0YS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIEJhc2ljIHRlc3RzIGZv
ciBkZWNvZGVBdWRpb0RhdGEgZnVuY3Rpb24uCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAotUEFTUyBjb250ZXh0LmRlY29kZUF1ZGlvRGF0YShudWxsLCBmdW5jdGlvbigpe30sIGZ1bmN0
aW9uKCl7fSk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdhdWRpb0Rh
dGEnKSB0byB3ZWJraXRBdWRpb0NvbnRleHQuZGVjb2RlQXVkaW9EYXRhIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgQXJyYXlCdWZmZXIuCitQQVNTIFBhc3NpbmcgYSBudWxsIGFycmF5IHRvIEF1ZGlv
Q29udGV4dC5kZWNvZGVBdWRpb0RhdGEoKSB0aHJldyBhIFR5cGVFcnJvcgogUEFTUyBUaGUgcmVz
b3VyY2VzL21lZGlhLzI0Yml0LTQ0a2h6LndhdiB0ZXN0OiBzdWNjZXNzQ2FsbGJhY2sgaGFzIGJl
ZW4gY2FsbGVkIGNvcnJlY3RseS4KIFBBU1MgVGhlIHJlc291cmNlcy9tZWRpYS9pbnZhbGlkLWF1
ZGlvLWZpbGUudHh0IHRlc3Q6IGVycm9yQ2FsbGJhY2sgaGFzIGJlZW4gY2FsbGVkIGNvcnJlY3Rs
eS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS1iYXNpYy5odG1sCmluZGV4IDJlZGNlZjhmNTI0NGYz
MTJjZThlYzhmNTU0YzQzNmZjNDQ1ZGFmNDAuLmEzMzNiNjVhYWVmOWRiNjRlZDUzZmNiMDU2MzFj
ZmMxNTE0MDUwZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRp
by1kYXRhLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVjb2RlLWF1ZGlv
LWRhdGEtYmFzaWMuaHRtbApAQCAtMTAsMTAgKzEwLDE3IEBAIGRlc2NyaXB0aW9uKCJCYXNpYyB0
ZXN0cyBmb3IgZGVjb2RlQXVkaW9EYXRhIGZ1bmN0aW9uLiIpOwogICAgIAogd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCi12YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQo
KTsKK3ZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogCi0vLyBkZWNvZGVBdWRpb0Rh
dGEgc2hvdWxkIHJhaXNlIGV4Y2VwdGlvbiB3aGVuIGFycmF5YnVmZmVyIHBhcmFtZXRlciBpcyBu
dWxsLgotc2hvdWxkVGhyb3coImNvbnRleHQuZGVjb2RlQXVkaW9EYXRhKG51bGwsIGZ1bmN0aW9u
KCl7fSwgZnVuY3Rpb24oKXt9KTsiLCAiJ1R5cGVFcnJvcjogQXJndW1lbnQgMSAoXFwnYXVkaW9E
YXRhXFwnKSB0byB3ZWJraXRBdWRpb0NvbnRleHQuZGVjb2RlQXVkaW9EYXRhIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgQXJyYXlCdWZmZXInIik7CisvLyBkZWNvZGVBdWRpb0RhdGEgc2hvdWxkIHJl
amVjdCB0aGUgcHJvbWlzZSB3aGVuIGFycmF5YnVmZmVyIHBhcmFtZXRlciBpcyBudWxsLgorY29u
dGV4dC5kZWNvZGVBdWRpb0RhdGEobnVsbCwgZnVuY3Rpb24oKXt9LCBmdW5jdGlvbigpe30pLnRo
ZW4oKCkgPT4geworICAgIHRlc3RGYWlsZWQoIlBhc3NpbmcgYSBudWxsIGFycmF5IHRvIEF1ZGlv
Q29udGV4dC5kZWNvZGVBdWRpb0RhdGEoKSBkaWQgbm90IHRocm93Iik7Cit9LCAoZSkgPT4gewor
ICAgIGlmIChlLm5hbWUgPT0gIlR5cGVFcnJvciIpCisgICAgICAgIHRlc3RQYXNzZWQoIlBhc3Np
bmcgYSBudWxsIGFycmF5IHRvIEF1ZGlvQ29udGV4dC5kZWNvZGVBdWRpb0RhdGEoKSB0aHJldyBh
IFR5cGVFcnJvciIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFzc2luZyBhIG51
bGwgYXJyYXkgdG8gQXVkaW9Db250ZXh0LmRlY29kZUF1ZGlvRGF0YSgpIHRocmV3IGEgIiArIGUu
bmFtZSArICIgaW5zdGVhZCBvZiBhIFR5cGVFcnJvciIpOworfSk7CiAKIHZhciBkZWNvZGVDYXNl
QXJyYXkgPSBbe3VybDogInJlc291cmNlcy9tZWRpYS8yNGJpdC00NGtoei53YXYiLCByZXN1bHQ6
IHRydWV9LAogICAgICAgICAgICAgICAgICAgICAgICB7dXJsOiAicmVzb3VyY2VzL21lZGlhL2lu
dmFsaWQtYXVkaW8tZmlsZS50eHQiLCByZXN1bHQ6IGZhbHNlfV07CkBAIC01Miw3ICs1OSw5IEBA
IGZ1bmN0aW9uIHJ1bkRlY29kZVRlc3QoaW5kZXgpIHsKICAgICByZXF1ZXN0LnNlbmQoKTsKIH0K
IAotcnVuRGVjb2RlVGVzdCgwKTsKK3NldFRpbWVvdXQoKCkgPT4geworICAgIHJ1bkRlY29kZVRl
c3QoMCk7Cit9LCAwKTsKIAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS10b28tc2hvcnQuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sCmluZGV4IGZiMTll
ZmQ3YjUwY2ViOGI2OWU4ODdlNTRiOTQ2NDliY2QxMGFlNDMuLmRiOWQ4YjdlMzliODY4MWI1MWE1
NDU3OTQ0NDdiYzQxZTEzMjJlYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rl
Y29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sCkBAIC0xMCw3ICsxMCw3IEBAIGRlc2Ny
aXB0aW9uKCJUZXN0IHRoYXQgZGVjb2RpbmcgYW4gYXVkaW8gZmlsZSB3aGljaCBpcyB0b28gc2hv
cnQgZG9lcyBub3QgY2F1c2UKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi12YXIg
Y29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKK3ZhciBjb250ZXh0ID0gbmV3IEF1
ZGlvQ29udGV4dCgpOwogdmFyIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKIHJlcXVl
c3Qub3BlbigiR0VUIiwgJ3Jlc291cmNlcy9tZWRpYS90b28tc2hvcnQubTRhJywgdHJ1ZSk7CiBy
ZXF1ZXN0LnJlc3BvbnNlVHlwZSA9ICJhcnJheWJ1ZmZlciI7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRlZmF1bHQtZGVsYXkuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sCmluZGV4IGE0Yzcx
MmY0ZGU4MDY0YWNlNmM1Y2YzOGZmNWRiNGI2ZWE5OTk0YzMuLjYwOWQ5NjEzZTY4NGU4NzlkMDdk
Mzk3ZTJiMjQ3NjdjYzY3Y2FkZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rl
bGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sCkBAIC0xOSw3ICsxOSw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAg
ICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0
ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxl
bmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IE9mZmxpbmVB
dWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCAyMCwg
MjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9uZQogICAgIAog
ICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZhdWx0LWRl
bGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQt
ZGVsYXkuaHRtbAppbmRleCA3NjNkZjIyMzY0ZWE4YTUwMjI0MDQxNDRjOTdjNGY5ODQ4NDgzMWJj
Li4yZTJhM2I5MGUwMDU2YWU5Y2Y1NWIzMzhlZjFjYWM0MjExOTliNDg2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXku
aHRtbApAQCAtMTksNyArMTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVk
aW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAg
ICB2YXIgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBy
ZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9IGNy
ZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBs
ZVJhdGUpOyAvLyAyMEh6IHRvbmUKICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4
dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2RlbGF5bm9kZS1tYXhkZWxheS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2Rl
LW1heGRlbGF5Lmh0bWwKaW5kZXggNTJjMjMzYThjMTY1ODQyOWUyZDRkNDEzMzVhMDY2OWFlMGQ0
OTlkNC4uYWY4NGE3ODliMzBjZDUyNmYwZTU4YzYzNmVmZWU0MTc2OWMzMjM2MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWwKQEAgLTE5LDcgKzE5LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICog
cmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcg
T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywg
c2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRl
eHQsIDIwLCAyMCAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25l
CiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNl
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXls
aW1pdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5bGltaXQu
aHRtbAppbmRleCAzOWFhOGJlZThlYWViNGZlN2UzYjYyY2U3NmQ3NDFkZDBmZjU1MDczLi5jYWEy
YThlNTkzMTE5Mzk2MmMwN2Y4ZmY5YzQ5ODVmYzYwNjIwMzNmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1pdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheWxpbWl0Lmh0bWwKQEAgLTE5LDcgKzE5LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICog
cmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcg
T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywg
c2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRl
eHQsIDIwLCAyMCAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25l
CiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNl
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtc2NoZWR1bGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLXNjaGVkdWxpbmcuaHRtbApp
bmRleCBhMDgxNThkODI4NzIwNDA0MGFmYTU2MTQ3MzY2Y2YyYzllZTQyZTRjLi5hN2MwNDI0YjIz
OGU5OGQzZmMxMzBiODBjYjZiZTM5YjczNTEzZDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWwKQEAgLTE5LDcgKzE5LDcgQEAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAog
ICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBu
ZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3Ro
U2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlv
Q29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7
CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDIwLCAyMCAq
IHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25lCiAgICAgCiAgICAg
dmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2RlbGF5bm9kZS5odG1sCmluZGV4IGQ2YTQ3M2MxZGVkZDIxMGUxYmQ4NmFlMGE2YWVh
NTY4NGU4MDUyOGUuLjAxMWNkOTkzZmJlZTkyZTlhZWYzMWExZGEyNDM0YTEzODc5ZGI0YjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sCkBAIC0xOSw3ICsxOSw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAK
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0g
bmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0
aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRp
b0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCAyMCwgMjAg
KiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9uZQogICAgIAogICAg
IHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFsLmh0bWwKaW5kZXggODhkZDQz
YWViZTQ3MWM0MmUzMzU2NDU1ZDM5OWE1Yzc4YjI3Nzk5YS4uZTY0ZGJiNmM3MWFhOTZmNDUwZmNi
ZmY2NDg5ZTBjMjU3MWY1MTg2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlz
dGFuY2UtZXhwb25lbnRpYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5j
ZS1leHBvbmVudGlhbC5odG1sCkBAIC0xNyw3ICsxNyw3IEBACiAgICAgICAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAg
ICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICog
cmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICAvLyBUZW1wIHBh
bm5lciBub2RlIHNvIHdlIGNhbiBnZXQgdGhlIGV4cG9uZW50aWFsIHZhbHVlLgogICAgICAgICAg
IHZhciB0ZW1wUGFubmVyID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbAppbmRleCA3ZWJiNmEyNTFmOTk0YjdkNjY0NjE0
ZmM0MWU2MGZkYzFkNzg1ZjBjLi5mYmE2YmZjZTY2ZDY2N2Q0MTY2MTY5N2Q5MzJkMmMwMDAwY2Vk
NWNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtaW52ZXJzZS5odG1sCkBAIC0x
Nyw3ICsxNyw3IEBACiAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAg
ICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICAgICAgICBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNvbnRleHQgPSBuZXcgT2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2Ft
cGxlUmF0ZSk7CiAKICAgICAgICAgICAvLyBUZW1wIHBhbm5lciBub2RlIHNvIHdlIGNhbiBnZXQg
dGhlIGludmVyc2UgdmFsdWUuCiAgICAgICAgICAgdmFyIHRlbXBQYW5uZXIgPSBjb250ZXh0LmNy
ZWF0ZVBhbm5lcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2Ut
bGluZWFyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIuaHRtbApp
bmRleCA0YTg0OTNjMjBkYzFiNzg4NzM5ODE4MDQ0OWE5N2FiMzBmMTA5MWJmLi42NzQ3MWUwYWI1
MzJlNTdjOTVkZGQxNGU2ZjJiZWRiYzE1YmRiZTA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9k
aXN0YW5jZS1saW5lYXIuaHRtbApAQCAtMTcsNyArMTcsNyBAQAogICAgICAgICAgIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250
ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAg
ICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAq
IHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgICAgLy8gQ3JlYXRl
IHRlbXAgcGFubmVyIHRvIGdldCBsaW5lYXIgdmFsdWUgZm9yIHRlc3RpbmcuCiAgICAgICAgICAg
dmFyIHBhbm5lck1vZGVsID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2R5bmFtaWNzY29tcHJlc3Nvci1iYXNpYy5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vZHluYW1pY3Njb21wcmVzc29yLWJhc2ljLmh0bWwKaW5kZXggMjNjM2Y5
N2M3NTkzYTkwM2VlOWM2ZWRkYjQyMmJjYmM4NWZlNTZjOC4uZjA3YTAwMzI3ODU0NzNmNDRkNmY2
ZTBlNWUxYzg1YmY1YjY0YmVhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZHlu
YW1pY3Njb21wcmVzc29yLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZHlu
YW1pY3Njb21wcmVzc29yLWJhc2ljLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgdmFyIGNvbnRleHQ7
CiB2YXIgY29tcHJlc3NvcjsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBjb250ZXh0ID0g
bmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0
KCk7CiAgICAgY29tcHJlc3NvciA9IGNvbnRleHQuY3JlYXRlRHluYW1pY3NDb21wcmVzc29yKCk7
CiAKICAgICB0cnkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZmluaXNoZWQt
YXVkaW8tYnVmZmVyLXNvdXJjZS1ub2Rlcy1zaG91bGQtYmUtY29sbGVjdGFibGUuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2ZpbmlzaGVkLWF1ZGlvLWJ1ZmZlci1zb3VyY2Utbm9kZXMtc2hv
dWxkLWJlLWNvbGxlY3RhYmxlLmh0bWwKaW5kZXggZWJmZGY3YmM4ZGJjODA5ZGQ1ZTdlYjU1ODEz
NzA2MmU2MTdiZDQxZC4uZWJhZmQ3Y2Q5MGIyNTdjYjgyNzE5MjIyNmExY2VhZDAyZDIxOGNhZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZmluaXNoZWQtYXVkaW8tYnVmZmVyLXNv
dXJjZS1ub2Rlcy1zaG91bGQtYmUtY29sbGVjdGFibGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9maW5pc2hlZC1hdWRpby1idWZmZXItc291cmNlLW5vZGVzLXNob3VsZC1iZS1jb2xs
ZWN0YWJsZS5odG1sCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAKICAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIAogICAgICAgICB7Ci0gICAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9m
ZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgICAg
ICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIG51bWJlck9mRnJhbWVz
LCBzYW1wbGVSYXRlKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzaW5nIG1vcmUgdGhhbiA2
IHNlZW1zIHRvIGZhaWwuIDYgaXMgdGhlIGRlZmF1bHQgdmFsdWUgc28gSSdtIGd1ZXNzaW5nIHRo
ZXJlJ3MgYSBidWcgdGhlcmUuLi4KICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gNjsKICAgICAg
ICAgICAgIGxldCBtZXJnZXIgPSBjb250ZXh0LmNyZWF0ZUNoYW5uZWxNZXJnZXIoY291bnQpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi1iYXNpYy5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vZ2Fpbi1iYXNpYy5odG1sCmluZGV4IDhhNGQ2OGIwNmNkMGI5ZmYwOGQ1
MmMwMmEyMjhhYTlhZjVlOTg3MTguLjdhZDllZmEwYmRhNDc5MjY2ZDg1ZTJjZmExOTUxYTlkY2Vi
MDM4OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2dhaW4tYmFzaWMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9nYWluLWJhc2ljLmh0bWwKQEAgLTIxLDcgKzIxLDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9CiAKICAgICAvLyBDcmVhdGUgYXVkaW8gY29u
dGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2
YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKIAogICAgIC8vIENyZWF0ZSBnYWluIG5v
ZGUuCiAgICAgdmFyIGdhaW5Ob2RlID0gY29udGV4dC5jcmVhdGVHYWluKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9nYWluLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9n
YWluLmh0bWwKaW5kZXggMmZhMjRkYjM3NWQwOGIxMDZmNzc1NjQxMGZmMmMzZDcwYzhkOTZiMC4u
MzczZDE4YzFkNWJjNjZlMjgwNjQ5YTNmOTU2ZmM3ZTIwMjY3NjYwYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2dh
aW4uaHRtbApAQCAtNTksNyArNTksNyBAQCBmdW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQg
PSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5T
ZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRl
eHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAv
LyBDcmVhdGUgYSBidWZmZXIgZm9yIGEgc2hvcnQgIm5vdGUiLgogICAgIHNpbldhdmVCdWZmZXIg
PSBjcmVhdGVTaW5XYXZlQnVmZmVyKGJ1ZmZlckR1cmF0aW9uU2Vjb25kcywgODgwLjApOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2Rl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1ZGlvc291
cmNlbm9kZS1leHBlY3RlZC50eHQKaW5kZXggNjRkNTM2ZDhhOGFmY2RiYWZiMTRmNWQ5OGE2NDE5
ZGNkOGI1MjcxZS4uY2I4NjEzZDc5YTRmZWE2NTc1NDE5Yjg1MjAxY2I0MzI3ZTIyOTZmMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2Rl
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRp
b3NvdXJjZW5vZGUtZXhwZWN0ZWQudHh0CkBAIC05LDcgKzksNyBAQCBQQVNTIGNvbm5lY3QoKSBl
eGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIG91dHB1dCBpbmRleC4KIFBBU1MgY29ubmVjdCgp
IGV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgaW5wdXQgaW5kZXguCiBQQVNTIGF1ZGlvTm9k
ZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pIHN1Y2NlZWRlZC4KIFBBU1MgY3JlYXRlTWVk
aWFFbGVtZW50U291cmNlKCkgdGhyZXcgZXJyb3Igd2hlbiBjYWxsZWQgdHdpY2Ugb24gc2FtZSBI
VE1MTWVkaWFFbGVtZW50LgotUEFTUyBjb250ZXh0LmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZShu
dWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWVkaWFFbGVtZW50
JykgdG8gd2Via2l0QXVkaW9Db250ZXh0LmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSBtdXN0IGJl
IGFuIGluc3RhbmNlIG9mIEhUTUxNZWRpYUVsZW1lbnQuCitQQVNTIGNvbnRleHQuY3JlYXRlTWVk
aWFFbGVtZW50U291cmNlKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50
IDEgKCdtZWRpYUVsZW1lbnQnKSB0byBBdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291
cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTE1lZGlhRWxlbWVudC4KIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbAppbmRl
eCAwYWI0YTM2YTNmMTllOTNmZDMxNmIzZWJjOWM4ZDMzMjViMjBhNjk5Li44NTI4OTRjZjc2MGY3
ZjMyMDI3ODRjMTFhYzk4NWMwOTBlOTM2NGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbApAQCAtMTksNyAr
MTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIH0KIAogICAgIGF1ZGlvRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIik7Ci0gICAgY29udGV4dCA9IG5ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsKKyAgICBjb250ZXh0ID0gbmV3
IEF1ZGlvQ29udGV4dCh7IHNhbXBsZVJhdGU6IDQ0MTAwIH0pOwogICAgIHNvdXJjZSA9IGNvbnRl
eHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKGF1ZGlvRWxlbWVudCk7CiAgICAgYXVkaW9FbGVt
ZW50ID0gbnVsbDsKICAgICBjb250ZXh0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwKaW5kZXggYzIyZjJjMTcw
MjlmMTUyYjU3MzBlNjQwMTg3YzBmMzY2OTY4Nzg5Yi4uM2U0ZmI2MTE3NDgzNDliOTFiMDlkMzA5
N2VhMzM1NDVlNWU1NmMxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFl
bGVtZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVk
aWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgdmFyIGNvbnRl
eHQgPSAwOwogZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CiAKLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIGNv
bnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAKICAgICBhdWRpb0VsZW1lbnQgPSBuZXcgQXVk
aW8oKTsKICAgICBtZWRpYVNvdXJjZSA9IGNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNl
KGF1ZGlvRWxlbWVudCk7CkBAIC03NCw3ICs3NCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAg
ICAgICAgIHRlc3RQYXNzZWQoImNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSgpIHRocmV3IGVycm9y
IHdoZW4gY2FsbGVkIHR3aWNlIG9uIHNhbWUgSFRNTE1lZGlhRWxlbWVudC4iKTsKICAgICB9CiAK
LSAgICBzaG91bGRUaHJvdygiY29udGV4dC5jcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UobnVsbCki
LCAiJ1R5cGVFcnJvcjogQXJndW1lbnQgMSAoXFwnbWVkaWFFbGVtZW50XFwnKSB0byB3ZWJraXRB
dWRpb0NvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ug
b2YgSFRNTE1lZGlhRWxlbWVudCciKTsKKyAgICBzaG91bGRUaHJvdygiY29udGV4dC5jcmVhdGVN
ZWRpYUVsZW1lbnRTb3VyY2UobnVsbCkiLCAiJ1R5cGVFcnJvcjogQXJndW1lbnQgMSAoXFwnbWVk
aWFFbGVtZW50XFwnKSB0byBBdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlIG11
c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTE1lZGlhRWxlbWVudCciKTsKIAogICAgIGZpbmlzaEpT
VGVzdCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWl4aW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcuaHRtbAppbmRleCA5NGJkNGJjZDk3NTUwNWE2
OTRiNGQxYjEyMjFmYjYyYTI2MTM3ZjdjLi5kMzU5NmViZDFiZTBiYTQwN2IwZDcxYTYyMGM4MDgz
NGRiMjcyMzU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcuaHRtbApAQCAtMjgsNyArMjgsNyBAQCBm
dW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5l
QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUp
OworICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICog
bGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICAgICAgCiAgICAgYnVmZmVyTG9hZGVy
ID0gbmV3IEJ1ZmZlckxvYWRlcigKICAgICAgICAgY29udGV4dCwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtZ2MuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtZ2MuaHRtbAppbmRleCBkMDA5YTA1NGUxODg1
OGUzNzMzYjcxODIxNzExYzBmZWMyZTZiMTUzLi5hNmYzNmYwMzczMWQ0YmJmNTVmMWRkOTRlOTRk
NDQwYTY3MjIwZGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVk
aW9jb250ZXh0LWdjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vb2ZmbGluZWF1ZGlv
Y29udGV4dC1nYy5odG1sCkBAIC02LDEzICs2LDEzIEBACiA8c2NyaXB0PgogCiBmdW5jdGlvbiBj
cmVhdGVDb250ZXh0KCkgewotICAgIGxldCBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgMTAwMCwgNDQxMDApOworICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVB
dWRpb0NvbnRleHQoMiwgMTAwMCwgNDQxMDApOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICByZXR1cm4gaW50ZXJuYWxzLm9ic2VydmVHQyhjb250ZXh0KTsKIH0KIAogZnVuY3Rp
b24gY3JlYXRlUmVuZGVyaW5nQ29udGV4dChjb21wbGV0ZUNhbGxiYWNrKSB7Ci0gICAgbGV0IGNv
bnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCAxMDAwLCA0NDEwMCk7Cisg
ICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCAxMDAwLCA0NDEwMCk7
CiAgICAgbGV0IG5vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAgIG5vZGUu
Y29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKICAgICBub2RlLnN0YXJ0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0LXJlc3RyaWN0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0LXJlc3RyaWN0
aW9uLmh0bWwKaW5kZXggZjlkNmE2Zjk4YWMyYWE2ODg4OTNhYWUwN2RkMzUwM2YzNGYxNWEyNS4u
M2VjMTQ2NWU3YmE5NGZmMDI1NDU4YWJlMGY4ODE4MjU3NzhkOGM1NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vb2ZmbGluZWF1ZGlvY29udGV4dC1yZXN0cmljdGlvbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24u
aHRtbApAQCAtMjAsNyArMjAsNyBAQCB2YXIgY2FsbGVkUmVzdW1lV2l0aFVzZXJHZXN0dXJlID0g
ZmFsc2U7CiBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCAx
MDAwLCA0NDEwMCk7CisgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIDEw
MDAsIDQ0MTAwKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICBpbnRlcm5h
bHMuc2V0QXVkaW9Db250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1aXJlVXNlckdlc3R1
cmVGb3JBdWRpb1N0YXJ0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2Np
bGxhdG9ybm9kZS1sZWdhY3ktYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L29zY2lsbGF0b3Jub2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDBmMmVhMWI2MGY1
NWFlOTM5Zjc3ZDIyOTVjZTNiY2EyYjdkMzkwMzEuLjM3YzBmMDM5YWIxOTU5ZDcxODNiNjJlZGVl
NzJkMDQ1ZGZjZGQ5ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0
b3Jub2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L29zY2lsbGF0b3Jub2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0CkBAIC00LDE1ICs0LDI0IEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyBPc2NpbGxhdG9yTm9kZS5wcm90b3R5
cGUucGxheWJhY2tTdGF0ZSBpcyB1bmRlZmluZWQuCi1QQVNTIE9zY2lsbGF0b3JOb2RlLlVOU0NI
RURVTEVEX1NUQVRFIGlzIDAKLVBBU1MgT3NjaWxsYXRvck5vZGUuU0NIRURVTEVEX1NUQVRFIGlz
IDEKLVBBU1MgT3NjaWxsYXRvck5vZGUuUExBWUlOR19TVEFURSBpcyAyCi1QQVNTIE9zY2lsbGF0
b3JOb2RlLkZJTklTSEVEX1NUQVRFIGlzIDMKLVBBU1MgbGVnYWN5T3NjaWxsYXRvci5wbGF5YmFj
a1N0YXRlIGlzIGRlZmluZWQuCi1QQVNTIGxlZ2FjeU9zY2lsbGF0b3IuVU5TQ0hFRFVMRURfU1RB
VEUgaXMgMAotUEFTUyBsZWdhY3lPc2NpbGxhdG9yLlNDSEVEVUxFRF9TVEFURSBpcyAxCi1QQVNT
IGxlZ2FjeU9zY2lsbGF0b3IuUExBWUlOR19TVEFURSBpcyAyCi1QQVNTIGxlZ2FjeU9zY2lsbGF0
b3IuRklOSVNIRURfU1RBVEUgaXMgMworUEFTUyBPc2NpbGxhdG9yTm9kZS5VTlNDSEVEVUxFRF9T
VEFURSBpcyB1bmRlZmluZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLlNDSEVEVUxFRF9TVEFURSBp
cyB1bmRlZmluZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLlBMQVlJTkdfU1RBVEUgaXMgdW5kZWZp
bmVkLgorUEFTUyBPc2NpbGxhdG9yTm9kZS5GSU5JU0hFRF9TVEFURSBpcyB1bmRlZmluZWQuCitQ
QVNTIE9zY2lsbGF0b3JOb2RlLnByb3RvdHlwZS5VTlNDSEVEVUxFRF9TVEFURSBpcyB1bmRlZmlu
ZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLnByb3RvdHlwZS5TQ0hFRFVMRURfU1RBVEUgaXMgdW5k
ZWZpbmVkLgorUEFTUyBPc2NpbGxhdG9yTm9kZS5wcm90b3R5cGUuUExBWUlOR19TVEFURSBpcyB1
bmRlZmluZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLnByb3RvdHlwZS5GSU5JU0hFRF9TVEFURSBp
cyB1bmRlZmluZWQuCitQQVNTIG9zY2lsbGF0b3IucGxheWJhY2tTdGF0ZSBpcyB1bmRlZmluZWQu
CitQQVNTIG9zY2lsbGF0b3IuVU5TQ0hFRFVMRURfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBv
c2NpbGxhdG9yLlNDSEVEVUxFRF9TVEFURSBpcyB1bmRlZmluZWQuCitQQVNTIG9zY2lsbGF0b3Iu
UExBWUlOR19TVEFURSBpcyB1bmRlZmluZWQuCitQQVNTIG9zY2lsbGF0b3IuRklOSVNIRURfU1RB
VEUgaXMgdW5kZWZpbmVkLgorUEFTUyBvc2NpbGxhdG9yLl9fcHJvdG9fXy5wbGF5YmFja1N0YXRl
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgb3NjaWxsYXRvci5fX3Byb3RvX18uVU5TQ0hFRFVMRURfU1RB
VEUgaXMgdW5kZWZpbmVkLgorUEFTUyBvc2NpbGxhdG9yLl9fcHJvdG9fXy5TQ0hFRFVMRURfU1RB
VEUgaXMgdW5kZWZpbmVkLgorUEFTUyBvc2NpbGxhdG9yLl9fcHJvdG9fXy5QTEFZSU5HX1NUQVRF
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgb3NjaWxsYXRvci5fX3Byb3RvX18uRklOSVNIRURfU1RBVEUg
aXMgdW5kZWZpbmVkLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9ybm9kZS1s
ZWdhY3ktYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9ybm9kZS1sZWdh
Y3ktYXBpLmh0bWwKaW5kZXggNTViNDZjYzVlNDY3NjZkNzk4YzBhNjE1YThkYjA3YzczMTJlNWUw
Ny4uYWUzNWQ2NTY5Nzk5OGM0NzdmNjZjNDQxMDYyNjgxOTE2YWQwMmMwZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vb3NjaWxsYXRvcm5vZGUtbGVnYWN5LWFwaS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3Jub2RlLWxlZ2FjeS1hcGkuaHRtbApAQCAt
OSwxOSArOSwyNyBAQAogCiAgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJPc2NpbGxhdG9yTm9k
ZS5wcm90b3R5cGUucGxheWJhY2tTdGF0ZSIpOwogCi0gICAgICAgIC8vIFRlc3RzIGJhY2t3YXJk
IGNvbXBhdGliaWxpdHkgZm9yIHByZWZpeGVkIEFQSS4KLSAgICAgICAgc2hvdWxkQmUoIk9zY2ls
bGF0b3JOb2RlLlVOU0NIRURVTEVEX1NUQVRFIiwgIjAiKTsKLSAgICAgICAgc2hvdWxkQmUoIk9z
Y2lsbGF0b3JOb2RlLlNDSEVEVUxFRF9TVEFURSIsICIxIik7Ci0gICAgICAgIHNob3VsZEJlKCJP
c2NpbGxhdG9yTm9kZS5QTEFZSU5HX1NUQVRFIiwgIjIiKTsKLSAgICAgICAgc2hvdWxkQmUoIk9z
Y2lsbGF0b3JOb2RlLkZJTklTSEVEX1NUQVRFIiwgIjMiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRl
ZmluZWQoIk9zY2lsbGF0b3JOb2RlLlVOU0NIRURVTEVEX1NUQVRFIik7CisgICAgICAgIHNob3Vs
ZEJlVW5kZWZpbmVkKCJPc2NpbGxhdG9yTm9kZS5TQ0hFRFVMRURfU1RBVEUiKTsKKyAgICAgICAg
c2hvdWxkQmVVbmRlZmluZWQoIk9zY2lsbGF0b3JOb2RlLlBMQVlJTkdfU1RBVEUiKTsKKyAgICAg
ICAgc2hvdWxkQmVVbmRlZmluZWQoIk9zY2lsbGF0b3JOb2RlLkZJTklTSEVEX1NUQVRFIik7Cisg
ICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJPc2NpbGxhdG9yTm9kZS5wcm90b3R5cGUuVU5TQ0hF
RFVMRURfU1RBVEUiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIk9zY2lsbGF0b3JOb2Rl
LnByb3RvdHlwZS5TQ0hFRFVMRURfU1RBVEUiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQo
Ik9zY2lsbGF0b3JOb2RlLnByb3RvdHlwZS5QTEFZSU5HX1NUQVRFIik7CisgICAgICAgIHNob3Vs
ZEJlVW5kZWZpbmVkKCJPc2NpbGxhdG9yTm9kZS5wcm90b3R5cGUuRklOSVNIRURfU1RBVEUiKTsK
IAotICAgICAgICBsZXQgbGVnYWN5Q29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQ7Ci0g
ICAgICAgIGxldCBsZWdhY3lPc2NpbGxhdG9yID0gbGVnYWN5Q29udGV4dC5jcmVhdGVPc2NpbGxh
dG9yKCk7Ci0gICAgICAgIHNob3VsZEJlRGVmaW5lZCgibGVnYWN5T3NjaWxsYXRvci5wbGF5YmFj
a1N0YXRlIik7Ci0gICAgICAgIHNob3VsZEJlKCJsZWdhY3lPc2NpbGxhdG9yLlVOU0NIRURVTEVE
X1NUQVRFIiwgIjAiKTsKLSAgICAgICAgc2hvdWxkQmUoImxlZ2FjeU9zY2lsbGF0b3IuU0NIRURV
TEVEX1NUQVRFIiwgIjEiKTsKLSAgICAgICAgc2hvdWxkQmUoImxlZ2FjeU9zY2lsbGF0b3IuUExB
WUlOR19TVEFURSIsICIyIik7Ci0gICAgICAgIHNob3VsZEJlKCJsZWdhY3lPc2NpbGxhdG9yLkZJ
TklTSEVEX1NUQVRFIiwgIjMiKTsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgQXVkaW9Db250
ZXh0OworICAgICAgICBsZXQgb3NjaWxsYXRvciA9IGNvbnRleHQuY3JlYXRlT3NjaWxsYXRvcigp
OworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgib3NjaWxsYXRvci5wbGF5YmFja1N0YXRlIik7
CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLlVOU0NIRURVTEVEX1NUQVRF
Iik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLlNDSEVEVUxFRF9TVEFU
RSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgib3NjaWxsYXRvci5QTEFZSU5HX1NUQVRF
Iik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLkZJTklTSEVEX1NUQVRF
Iik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLl9fcHJvdG9fXy5wbGF5
YmFja1N0YXRlIik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLl9fcHJv
dG9fXy5VTlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgib3Nj
aWxsYXRvci5fX3Byb3RvX18uU0NIRURVTEVEX1NUQVRFIik7CisgICAgICAgIHNob3VsZEJlVW5k
ZWZpbmVkKCJvc2NpbGxhdG9yLl9fcHJvdG9fXy5QTEFZSU5HX1NUQVRFIik7CisgICAgICAgIHNo
b3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLl9fcHJvdG9fXy5GSU5JU0hFRF9TVEFURSIpOwog
ICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vcGFnZS1jYW5zdGFydG1lZGlhLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9w
YWdlLWNhbnN0YXJ0bWVkaWEuaHRtbAppbmRleCBkOThlYWUzMjIzMmUyZDdkYWQxNDhhOGRkMWM1
OTQ5NmUwZDlkNDk5Li41Njg5Y2Y4YjNhZGNkYTM5YTI5M2NhNmJmNDA0MzNlYzdjMjRkYmFmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYWdlLWNhbnN0YXJ0bWVkaWEuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYWdlLWNhbnN0YXJ0bWVkaWEuaHRtbApAQCAtMTks
NyArMTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAg
ICBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogCiAgICAgY29udGV4dC5yZXN1bWUoKS50
aGVuKHJlc3VtZVByb21pc2VSZXNvbHZlZCkuY2F0Y2gocmVzdW1lUHJvbWlzZVJlamVjdGVkKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXItc3Rl
cmVvLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8u
aHRtbAppbmRleCA4MDkyZDcyZDhiMzNmMjkxMDdhM2NlYzFhOGU5NjZiMDQ3NmMyY2NhLi40MGE1
MWY5M2I1YzJhZTFlNWI5MWIyMDU5YmIzNTc2OTQ0MGVjODIxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbApAQCAtMjMsNyArMjMs
NyBAQAogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAg
IC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5l
dyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhT
ZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OwogCiAgICAgICAgICAgY3JlYXRlVGVzdEFuZFJ1bihjb250ZXh0LCBub2Rlc1RvQ3JlYXRlLCAy
KTsKICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVh
bHBvd2VyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1s
CmluZGV4IDgyZmIyMjBmNjZlNmJlNjAwODJlOTFiN2RmYmJkMzJkMjFjZmIyMWEuLmZhYjc5MGY1
ZTMwOGVjOGQxYjkyNGJkNGViMTRiYTU3NTFiMTRmMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICAgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5l
IGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVk
aW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRl
KTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxl
UmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgICAgY3Jl
YXRlVGVzdEFuZFJ1bihjb250ZXh0LCBub2Rlc1RvQ3JlYXRlLCAxKTsKICAgICAgIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVybm9kZS1iYXNp
Yy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZDhiYWU1Yjc0
ZDJmYWRhNzAwYTIyZmI2MDRmMzBjYWJjOTI3ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVy
bm9kZS1iYXNpYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1C
YXNpYyB0ZXN0cyBmb3IgV2ViS2l0IFByZWZpeGVkIFBhbm5lck5vZGUuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotUEFTUyBQYW5uZXJOb2RlIGhhcyBvbmUgaW5wdXQuCi1QQVNTIFBh
bm5lck5vZGUgaGFzIG9uZSBvdXRwdXQuCi1QQVNTIHJlZkRpc3RhbmNlIGRlZmF1bHQgdmFsdWUg
aXMgMS4KLVBBU1MgcmVmRGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDI3MC41Mi4KLVBBU1MgbWF4
RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMC4KLVBBU1MgbWF4RGlzdGFuY2UgdmFsdWUg
aXMgc2V0IHRvIDEwMC41NS4KLVBBU1Mgcm9sbG9mZkZhY3RvciBkZWZhdWx0IHZhbHVlIGlzIDEu
Ci1QQVNTIHJvbGxvZmZGYWN0b3IgdmFsdWUgaXMgc2V0IHRvIDAuODMuCi1QQVNTIGNvbmVJbm5l
ckFuZ2xlIGRlZmF1bHQgdmFsdWUgaXMgMzYwLgotUEFTUyBjb25lSW5uZXJBbmdsZSB2YWx1ZSBp
cyBzZXQgdG8gMjQwLjQ1LgotUEFTUyBjb25lT3V0ZXJBbmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2
MC4KLVBBU1MgY29uZU91dGVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDE2Ni42Ni4KLVBBU1MgY29u
ZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIGlzIDAuCi1QQVNTIGNvbmVPdXRlckdhaW4gdmFsdWUg
aXMgc2V0IHRvIDAuMzUuCi1QQVNTIFBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ0hSVEYnIHBhbm5p
bmdNb2RlbC4KLVBBU1MgUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnaW52ZXJzZScgZGlzdGFuY2VN
b2RlbC4KLVBBU1MgcGFubmluZ01vZGVsOiAnZXF1YWxwb3dlcicgaXMgc2V0dGFibGUuCi1QQVNT
IHBhbm5pbmdNb2RlbDogJ0hSVEYnIGlzIHNldHRhYmxlLgotUEFTUyBkaXN0YW5jZU1vZGVsOiAn
bGluZWFyJyBpcyBzZXR0YWJsZS4KLVBBU1MgZGlzdGFuY2VNb2RlbDogJ2ludmVyc2UnIGlzIHNl
dHRhYmxlLgotUEFTUyBkaXN0YW5jZU1vZGVsOiAnZXhwb25lbnRpYWwnIGlzIHNldHRhYmxlLgot
UEFTUyBTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgc3RyaW5nIHZhbHVlIGRpZCBu
b3QgdGhyb3cgYW4gZXhjZXB0aW9uLgotUEFTUyBTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGls
bGVnYWwgdHlwZSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE0YzNjOTJiNTY4MDkyNDEzNmRlZTBjMWMzMzNjNjU3ZjQzNmVmZDcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vcHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTYyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08
c2NyaXB0PgotZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RzIGZvciBXZWJLaXQgUHJlZml4ZWQgUGFu
bmVyTm9kZS4iKTsKLQotdmFyIGNvbnRleHQgPSAwOwotCi1mdW5jdGlvbiBydW5UZXN0KCkgewot
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0QXVkaW9Db250ZXh0KCk7Ci0gICAgdmFyIHBhbm5lciA9IGNvbnRleHQuY3JlYXRlUGFubmVy
KCk7Ci0gICAKLSAgICBpZiAocGFubmVyLm51bWJlck9mSW5wdXRzID09PSAxKSAKLSAgICAgICAg
dGVzdFBhc3NlZCgiUGFubmVyTm9kZSBoYXMgb25lIGlucHV0LiIpOwotICAgIGVsc2UKLSAgICAg
ICAgdGVzdEZhaWxlZCgiUGFubmVyTm9kZSBzaG91bGQgaGF2ZSBvbmUgaW5wdXQuIik7Ci0gICAg
Ci0gICAgaWYgKHBhbm5lci5udW1iZXJPZk91dHB1dHMgPT09IDEpIAotICAgICAgICB0ZXN0UGFz
c2VkKCJQYW5uZXJOb2RlIGhhcyBvbmUgb3V0cHV0LiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVz
dEZhaWxlZCgiUGFubmVyTm9kZSBzaG91bGQgaGF2ZSBvbmUgb3V0cHV0LiIpOwotCi0gICAgaWYg
KHBhbm5lci5yZWZEaXN0YW5jZSA9PT0gMSkKLSAgICAgICAgdGVzdFBhc3NlZCgicmVmRGlzdGFu
Y2UgZGVmYXVsdCB2YWx1ZSBpcyAxLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCgi
cmVmRGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMS4iKTsKLSAgICAKLSAgICBwYW5u
ZXIucmVmRGlzdGFuY2UgPSAyNzAuNTIKLSAgICBpZiAocGFubmVyLnJlZkRpc3RhbmNlID09PSAy
NzAuNTIpCi0gICAgICAgIHRlc3RQYXNzZWQoInJlZkRpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAy
NzAuNTIuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJyZWZEaXN0YW5jZSB2YWx1
ZSBzaG91bGQgYmUgc2V0IHRvIDI3MC41Mi4iKTsKLSAgICAKLSAgICBpZiAocGFubmVyLm1heERp
c3RhbmNlID09PSAxMDAwMCkKLSAgICAgICAgdGVzdFBhc3NlZCgibWF4RGlzdGFuY2UgZGVmYXVs
dCB2YWx1ZSBpcyAxMDAwMC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoIm1heERp
c3RhbmNlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDEwMDAwLiIpOwotICAgIAotICAgIHBhbm5l
ci5tYXhEaXN0YW5jZSA9IDEwMC41NQotICAgIGlmIChwYW5uZXIubWF4RGlzdGFuY2UgPT09IDEw
MC41NSkKLSAgICAgICAgdGVzdFBhc3NlZCgibWF4RGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDEw
MC41NS4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoIm1heERpc3RhbmNlIHZhbHVl
IHNob3VsZCBiZSBzZXQgdG8gMTAwLjU1LiIpOwotICAgIAotICAgIGlmIChwYW5uZXIucm9sbG9m
ZkZhY3RvciA9PT0gMSkKLSAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciBkZWZhdWx0
IHZhbHVlIGlzIDEuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJyb2xsb2ZmRmFj
dG9yIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDEuIik7Ci0gICAgCi0gICAgcGFubmVyLnJvbGxv
ZmZGYWN0b3IgPSAwLjgzCi0gICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwLjgzKQot
ICAgICAgICB0ZXN0UGFzc2VkKCJyb2xsb2ZmRmFjdG9yIHZhbHVlIGlzIHNldCB0byAwLjgzLiIp
OwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCgicm9sbG9mZkZhY3RvciB2YWx1ZSBzaG91
bGQgYmUgc2V0IHRvIDAuODMuIik7Ci0gICAgCi0gICAgaWYgKHBhbm5lci5jb25lSW5uZXJBbmds
ZSA9PT0gMzYwKQotICAgICAgICB0ZXN0UGFzc2VkKCJjb25lSW5uZXJBbmdsZSBkZWZhdWx0IHZh
bHVlIGlzIDM2MC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoImNvbmVJbm5lckFu
Z2xlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDM2MC4iKTsKLSAgICAKLSAgICBwYW5uZXIuY29u
ZUlubmVyQW5nbGUgPSAyNDAuNDUKLSAgICBpZiAocGFubmVyLmNvbmVJbm5lckFuZ2xlID09PSAy
NDAuNDUpCi0gICAgICAgIHRlc3RQYXNzZWQoImNvbmVJbm5lckFuZ2xlIHZhbHVlIGlzIHNldCB0
byAyNDAuNDUuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJjb25lSW5uZXJBbmds
ZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDI0MC40NS4iKTsKLSAgICAKLSAgICBpZiAocGFubmVy
LmNvbmVPdXRlckFuZ2xlID09PSAzNjApCi0gICAgICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckFu
Z2xlIGRlZmF1bHQgdmFsdWUgaXMgMzYwLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxl
ZCgiY29uZU91dGVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMzYwLiIpOwotICAgIAot
ICAgIHBhbm5lci5jb25lT3V0ZXJBbmdsZSA9IDE2Ni42NgotICAgIGlmIChwYW5uZXIuY29uZU91
dGVyQW5nbGUgPT09IDE2Ni42NikKLSAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVyQW5nbGUg
dmFsdWUgaXMgc2V0IHRvIDE2Ni42Ni4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQo
ImNvbmVPdXRlckFuZ2xlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMTY2LjY2LiIpOwotICAgIAot
ICAgIGlmIChwYW5uZXIuY29uZU91dGVyR2FpbiA9PT0gMCkKLSAgICAgICAgdGVzdFBhc3NlZCgi
Y29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIGlzIDAuIik7Ci0gICAgZWxzZQotICAgICAgICB0
ZXN0RmFpbGVkKCJjb25lT3V0ZXJHYWluIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDAuIik7Ci0K
LSAgICBwYW5uZXIuY29uZU91dGVyR2FpbiA9IDAuMzUKLSAgICBpZiAocGFubmVyLmNvbmVPdXRl
ckdhaW4gPT09IDAuMzUpCi0gICAgICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckdhaW4gdmFsdWUg
aXMgc2V0IHRvIDAuMzUuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0
ZXJHYWluIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMC4zNS4iKTsKLQotICAgIGlmIChwYW5uZXIu
cGFubmluZ01vZGVsID09PSAiSFJURiIpCi0gICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lck5vZGUg
ZGVmYXVsdHMgdG8gJ0hSVEYnIHBhbm5pbmdNb2RlbC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRl
c3RGYWlsZWQoIlBhbm5lck5vZGUgc2hvdWxkIGRlZmF1bHQgdG8gJ0hSVEYnIHBhbm5pbmdNb2Rl
bC4iKTsKLSAgICAKLSAgICBpZiAocGFubmVyLmRpc3RhbmNlTW9kZWwgPT09ICJpbnZlcnNlIikK
LSAgICAgICAgdGVzdFBhc3NlZCgiUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnaW52ZXJzZScgZGlz
dGFuY2VNb2RlbC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoIlBhbm5lck5vZGUg
c2hvdWxkIGRlZmF1bHQgdG8gJ2ludmVyc2UnIGRpc3RhbmNlTW9kZWwuIik7Ci0KLSAgICAvLyBD
aGVjayB0aGF0IHRoZSAucGFubmluZ01vZGVsIGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHRvIGFsbCBs
ZWdhbCB2YWx1ZXMuCi0gICAgdmFyIHBhbm5pbmdNb2RlbHMgPSBbe3ZhbHVlOiAiZXF1YWxwb3dl
ciJ9LAotICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZTogIkhSVEYifSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIF07Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhbm5pbmdNb2Rl
bHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHBhbm5lci5wYW5u
aW5nTW9kZWwgPSBwYW5uaW5nTW9kZWxzW2ldLnZhbHVlOwotICAgICAgICAgICAgaWYgKHBhbm5l
ci5wYW5uaW5nTW9kZWwgPT09IHBhbm5pbmdNb2RlbHNbaV0udmFsdWUpIHsKLSAgICAgICAgICAg
ICAgICB2YXIgbWVzc2FnZSA9ICJwYW5uaW5nTW9kZWw6ICciICsgcGFubmluZ01vZGVsc1tpXS52
YWx1ZSArICInIGlzIHNldHRhYmxlLiI7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3NlZChtZXNz
YWdlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSAicGFubmluZ01vZGVsOiAnIiArIHBhbm5pbmdNb2RlbHNbaV0udmFsdWUgKyAiJyB3YXMgbm90
IGNvcnJlY3RseSBzZXQuIjsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgIHZhciBtZXNz
YWdlID0gIlNldHRpbmcgcGFubmluZ01vZGVsIHRvICciICsgcGFubmluZ01vZGVsc1tpXS52YWx1
ZSArICInIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiI7Ci0gICAgICAgICAgICB0ZXN0RmFp
bGVkKG1lc3NhZ2UpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sgdGhhdCB0aGUg
LmRpc3RhbmNlTW9kZWwgYXR0cmlidXRlIGNhbiBiZSBzZXQgdG8gYWxsIGxlZ2FsIHZhbHVlcy4K
LSAgICB2YXIgZGlzdGFuY2VNb2RlbHMgPSBbe3ZhbHVlOiAibGluZWFyIn0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHt2YWx1ZTogImludmVyc2UifSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAge3ZhbHVlOiAiZXhwb25lbnRpYWwifV07Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGRpc3RhbmNlTW9kZWxzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAg
ICBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9IGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVlOwotICAgICAg
ICAgICAgaWYgKHBhbm5lci5kaXN0YW5jZU1vZGVsID09PSBkaXN0YW5jZU1vZGVsc1tpXS52YWx1
ZSkgewotICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gImRpc3RhbmNlTW9kZWw6ICciICsg
ZGlzdGFuY2VNb2RlbHNbaV0udmFsdWUgKyAiJyBpcyBzZXR0YWJsZS4iOwotICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQobWVzc2FnZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIHZhciBtZXNzYWdlID0gImRpc3RhbmNlTW9kZWw6ICciICsgZGlzdGFuY2VNb2RlbHNb
aV0udmFsdWUgKyAiJyB3YXMgbm90IGNvcnJlY3RseSBzZXQuIjsKLSAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKG1lc3NhZ2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGNhdGNoKGUpIHsK
LSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gIlNldHRpbmcgZGlzdGFuY2VNb2RlbCB0byAnIiAr
IGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVlICsgIicgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24u
IjsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQobWVzc2FnZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICAvLyBDaGVjayB0aGF0IHdlIGRvbid0IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgaWxsZWdh
bCAuZGlzdGFuY2VNb2RlbCB2YWx1ZXMgYXMgcGVyIFdlYklETC4KLSAgICBzaG91bGROb3RUaHJv
d0V4Y2VwdGlvbihmdW5jdGlvbigpIHsgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSAieHl6MTIzNDlq
ZmtzZCI7IH0sICJTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgc3RyaW5nIHZhbHVl
Iik7Ci0gICAgc2hvdWxkTm90VGhyb3dFeGNlcHRpb24oZnVuY3Rpb24oKSB7IHBhbm5lci5kaXN0
YW5jZU1vZGVsID0gbmV3IEZsb2F0MzJBcnJheSgxKTsgfSwgIlNldHRpbmcgLmRpc3RhbmNlTW9k
ZWwgdG8gaWxsZWdhbCB0eXBlIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotcnVuVGVz
dCgpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQu
dHh0CmluZGV4IGIxZWVjZjNmODgxMzQxZWI5ZTE3NDBhYTY1ZDZiMDQwNWEwZGM5MWMuLmI4YjY5
ODk1YmIyNjM1YzAxMWViNDZlMjBkMzNjZjU5ZTFiNmRmYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVj
dGVkLnR4dApAQCAtMzksNyArMzksNyBAQCBQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVn
YWwgZmZ0U2l6ZSA2NTUzNi4KIFBBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRT
aXplIDY1NTM3LgogUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTMx
MDcyLgogUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTMxMDczLgot
UEFTUyB3ZWJraXRBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJy
YXkgcmVzaXppbmdzLgorUEFTUyBBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxp
ZCBGRlQgYXJyYXkgcmVzaXppbmdzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGlt
ZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1l
YW5hbHlzZXItZmZ0LXNpemluZy5odG1sCmluZGV4IDc2N2NiMTdjNGZmMjNmYjZjNmI1NDk4YTYw
ZDA2ODNjZTJjMGM5MjkuLjFlZTczMTlhMjY1YTdmM2IzYTZkM2Y0N2M0Y2FiMjIxNDJlMGM3ZWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNp
emluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0
LXNpemluZy5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgcmUt
c2l6aW5nIHRoZSBGRlQgYXJyYXlzIGRvZXMgbm90IGZhaWwuIik7CiBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAogdmFyIGRvVGVzdCA9IGZ1bmN0aW9uKGZmdFNpemUsIGlsbGVnYWwpIHsKLSAgICB2
YXIgYyA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsKKyAg
ICB2YXIgYyA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsKICAgICB2
YXIgYSA9IGMuY3JlYXRlQW5hbHlzZXIoKTsKICAgICB0cnkgewogICAgICAgICBhLmZmdFNpemUg
PSBmZnRTaXplOwpAQCAtNDMsNyArNDMsNyBAQCBmb3IgKHZhciBpID0gMjsgaSA8PSAweDIwMDAw
OyBpICo9IDIpIHsKICAgICBkb1Rlc3QoaSArIDEsIHRydWUpOwogfQogCi10ZXN0UGFzc2VkKCJ3
ZWJraXRBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJyYXkgcmVz
aXppbmdzLiIpOwordGVzdFBhc3NlZCgiQXVkaW9Db250ZXh0IHN1cnZpdmVkIG11bHRpcGxlIGlu
dmFsaWQgRkZUIGFycmF5IHJlc2l6aW5ncy4iKTsKIGZpbmlzaEpTVGVzdCgpOwogPC9zY3JpcHQ+
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVk
aW8tY29kZWMtdGVzdC5qcyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1j
b2RlYy10ZXN0LmpzCmluZGV4IDVjZmRlMDNhODIxZDYzMDQ0ZTgxMGQ3OGRmNDk1MTRjMGZiYTA5
MzIuLmQwNGVlMTA5ZDQ0M2MyZDQ0NDI4ZTY0ZWQ4YmM1OWI1NTE0NjY4MzEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0LmpzCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0LmpzCkBAIC0x
NCw3ICsxNCw3IEBAIGZ1bmN0aW9uIHJ1bkRlY29kaW5nVGVzdCh1cmwsIG9wdGlvbmFsU2FtcGxl
UmF0ZSkKICAgICB2YXIgc2FtcGxlUmF0ZSA9ICh0eXBlb2Ygb3B0aW9uYWxTYW1wbGVSYXRlID09
PSAidW5kZWZpbmVkIikgPyBkZWZhdWx0U2FtcGxlUmF0ZSA6IG9wdGlvbmFsU2FtcGxlUmF0ZTsK
IAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5l
dyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29u
ZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgx
LCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICAKICAgICBi
dWZmZXJMb2FkZXIgPSBuZXcgQnVmZmVyTG9hZGVyKAogICAgICAgICBjb250ZXh0LApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291cmNlLWVu
ZGVkLWRldGFjaGVkLWZyYW1lLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVz
b3VyY2VzL2F1ZGlvYnVmZmVyc291cmNlLWVuZGVkLWRldGFjaGVkLWZyYW1lLWlmcmFtZS5odG1s
CmluZGV4IDZlOTNhOTkxOTg5NTk1NTRjN2JmOWEzOTU1ZThlYzZkZDA4OTZiZGYuLjNjMGYxMjkw
ZjgyNzgwY2RmNmFlODYzOWVlODRjYzBiN2QyYzQ4NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb2J1ZmZlcnNvdXJjZS1lbmRlZC1kZXRhY2hlZC1mcmFt
ZS1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9i
dWZmZXJzb3VyY2UtZW5kZWQtZGV0YWNoZWQtZnJhbWUtaWZyYW1lLmh0bWwKQEAgLTExLDcgKzEx
LDcgQEAKICAgICB7CiAgICAgICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAuMDsKICAgICAgICAg
dmFyIG51bWJlck9mRnJhbWVzID0gMzI7Ci0gICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAg
IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywgc2Ft
cGxlUmF0ZSk7CiAgICAgICAgIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7
CiAgICAgICAgIHNvdXJjZS5idWZmZXIgPSBjcmVhdGVUZXN0QnVmZmVyKGNvbnRleHQsIG51bWJl
ck9mRnJhbWVzKTsKICAgICAgICAgc291cmNlLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10
ZXN0aW5nLWxlZ2FjeS5qcyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3Bh
cmFtLXRlc3RpbmctbGVnYWN5LmpzCmluZGV4IDY4MDdhMWU3ZTVmNzMzZTdlODY4ZTZmMjNhM2M4
ZTBiYmJmNThiNGYuLjNkZjMwODNkMWE1OGFiOWI2MzU0MjQwNDZmZGE3MDQxZjA2NGM3MTIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3Rp
bmctbGVnYWN5LmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3Bh
cmFtLXRlc3RpbmctbGVnYWN5LmpzCkBAIC00MDUsNyArNDA1LDcgQEAgZnVuY3Rpb24gY3JlYXRl
QXVkaW9HcmFwaEFuZFRlc3QobnVtYmVyT2ZUZXN0cywgaW5pdGlhbFZhbHVlLCBzZXRWYWx1ZUZ1
bmN0aW9uLAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5l
QXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKSwgc2FtcGxlUmF0ZSk7
CisgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aChu
dW1iZXJPZlRlc3RzKSwgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIGNvbnN0YW50QnVmZmVyID0gY3Jl
YXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgcmVuZGVyTGVuZ3RoKG51bWJlck9mVGVzdHMp
KTsKIAogICAgIC8vIFdlIHVzZSBhbiBBdWRpb0dhaW5Ob2RlIGhlcmUgc2ltcGx5IGFzIGEgY29u
dmVuaWVudCB3YXkgdG8gdGVzdCB0aGUgQXVkaW9QYXJhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL2NvbXBhdGliaWxpdHkuanMgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9yZXNvdXJjZXMvY29tcGF0aWJpbGl0eS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjAwMmIxNmM3MDRmMzk5N2U1NzE1YmVhMjVmM2I2MjM3NTAwOThmNi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9yZXNvdXJjZXMvY29tcGF0aWJpbGl0eS5qcworKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBA
QAotLy8gVGhpcyB3aWxsIHByZXZlbnQgd29yayB0byB1cGRhdGUgdGVzdHMgdG8gdXNlIHVucHJl
Zml4ZWQgb2JqZWN0cyBpbgotLy8gdGhlIGZ1dHVyZS4gIEl0IHdsbCBhbHNvIG1ha2UgaXQgcG9z
c2libGUgdG8gYmlzZWN0IGJ1aWxkcyB1c2luZwotLy8gYSBXZWJLaXQgdGhhdCBvbmx5IHN1cHBv
cnRzIHByZWZpeGVkIG9iamVjdHMuCi0KLWlmICh3aW5kb3cuaGFzT3duUHJvcGVydHkoJ3dlYmtp
dEF1ZGlvQ29udGV4dCcpICYmICF3aW5kb3cuaGFzT3duUHJvcGVydHkoJ0F1ZGlvQ29udGV4dCcp
KSB7Ci0gICAgd2luZG93LkF1ZGlvQ29udGV4dCA9IHdlYmtpdEF1ZGlvQ29udGV4dDsKLSAgICB3
aW5kb3cuT2ZmbGluZUF1ZGlvQ29udGV4dCA9IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQ7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNjcmlwdGF1
ZGlvbm9kZS10ZXN0aW5nLmpzIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2phdmFz
Y3JpcHRhdWRpb25vZGUtdGVzdGluZy5qcwppbmRleCA3ODdlMGQxMTQ1OTliODhkMTMwYmYxZjc5
NjUwOWM3MzE2NDc5ZWM4Li5jMDAyZmU3MjI1NDU4ZmVjY2MyNTRhOTIwNzhhMDk2YjlmMmYwYTdh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNjcmlwdGF1
ZGlvbm9kZS10ZXN0aW5nLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9q
YXZhc2NyaXB0YXVkaW9ub2RlLXRlc3RpbmcuanMKQEAgLTY1LDcgKzY1LDcgQEAgZnVuY3Rpb24g
Y2hlY2tTdGVyZW9Pbmx5RGF0YShidWZmZXIsIG51bWJlck9mQ2hhbm5lbHMsIGxlbmd0aCkgewog
ZnVuY3Rpb24gcnVuSlNOb2RlVGVzdCgpCiB7CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwg
cmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgT2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAK
ICAgICB2YXIgc291cmNlQnVmZmVyID0gY3JlYXRlQnVmZmVyKGNvbnRleHQsIHNvdXJjZUNoYW5u
ZWxzLCByZW5kZXJMZW5ndGhJbkZyYW1lcyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3Jlc291cmNlcy9vc2NpbGxhdG9yLXRlc3RpbmctbGVnYWN5LmpzIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL29zY2lsbGF0b3ItdGVzdGluZy1sZWdhY3kuanMKaW5kZXgg
YzI3ZmRhMTFmNDZkZTExZjg3OTFiYzFjMTk3MGU5YjE3Y2UzY2NmMS4uYjI3OTUzZDA4ODYyZWNh
MGEwMDMwNTFjNGU1ZDhkYjIwMzE5ZTVlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vcmVzb3VyY2VzL29zY2lsbGF0b3ItdGVzdGluZy1sZWdhY3kuanMKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL29zY2lsbGF0b3ItdGVzdGluZy1sZWdhY3kuanMKQEAgLTE5
LDcgKzE5LDcgQEAgdmFyIGNvbnRleHQgPSAwOwogCiBmdW5jdGlvbiBnZW5lcmF0ZUV4cG9uZW50
aWFsT3NjaWxsYXRvclN3ZWVwKG9zY2lsbGF0b3JUeXBlKSB7CiAgICAgLy8gQ3JlYXRlIG9mZmxp
bmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0Nv
bnRleHQoMSwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAg
Y29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBsZW5ndGhJ
blNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgdmFyIG9zYyA9IGNvbnRleHQuY3JlYXRlT3Nj
aWxsYXRvcigpOwogICAgIGlmIChvc2NpbGxhdG9yVHlwZSA9PSAiY3VzdG9tIikgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3NhbXBsZS1hY2N1cmF0ZS1zY2hlZHVsaW5nLmh0bWwK
aW5kZXggMTZmNWVjMjllZWNiNDc3ZTBiZTAwMTk3N2Q4OWY1OWQ4YWVjOGE2OC4uYzJhOWIwMWI4
NzFkMjhkZDFhYTZkZDEwMzU3YTUyNDQzY2NjNGM4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUtc2NoZWR1bGluZy5odG1sCkBAIC0xMDgsNyArMTA4
LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAg
Y29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBs
ZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1
ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsK
ICAgICBjcmVhdGVJbXB1bHNlKCk7ICAgIAogCiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1w
bGVPZmZzZXRzLmxlbmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9zaWxlbmNlLWFmdGVyLXBsYXliYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zaWxl
bmNlLWFmdGVyLXBsYXliYWNrLmh0bWwKaW5kZXggYWRhZjMxNjMwMmRjYzJmZWExOTA4ZmE0Mzk0
NzQ0YzIxNjNkYjdkZS4uN2IyMTlkZGM2Y2JiNjdkNTQxMzY2Mjc1ZGViYmFhYzNiNjcwMGQ4NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2lsZW5jZS1hZnRlci1wbGF5YmFjay5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3NpbGVuY2UtYWZ0ZXItcGxheWJhY2suaHRt
bApAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgfQogCiAgICAgICAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICAg
ICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAq
IGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICAgICBhdWRpb0VsZW1l
bnQgPSBuZXcgQXVkaW8oKTsKICAgICAgICAgICAgICBhdWRpb0VsZW1lbnQuc3JjID0gInJlc291
cmNlcy9tZWRpYS8xMjhrYnBzLTQ0a2h6Lm1wMyI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vc2lsZW50LWF1ZGlvLWludGVycnVwdGVkLWluLWJhY2tncm91bmQu
aHRtbAppbmRleCBjNWM1ZDVkZTQyMzc0YzljNmVjYjk5YmJkMGU2NzVhZGI1M2Y2OTJmLi5iODI5
NzY2ODJmNWExMGRmNGY1ODhkMDJmOTk2ZGRkOTkwYTQ3MTU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3NpbGVudC1hdWRpby1pbnRlcnJ1cHRlZC1pbi1i
YWNrZ3JvdW5kLmh0bWwKQEAgLTI5LDcgKzI5LDcgQEAgZnVuY3Rpb24gaGlkZVBhZ2UoKQogfQog
CiBvbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICBjb250ZXh0ID0gbmV3ICh3aW5kb3cuQXVkaW9D
b250ZXh0IHx8IHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQpKCk7CisgICAgY29udGV4dCA9IG5l
dyBBdWRpb0NvbnRleHQoKTsKIAogICAgIGF1ZGlvRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImF1ZGlvIik7CiAgICAgYXVkaW9FbGVtZW50Lmxvb3AgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKaW5kZXggYzEy
NGU3YzMwMjM3YjA3YTYxMzQzYmY2ZGQ2OTYyZjBkM2NhMGJiZC4uM2MwZTQ5ODg3NmU1NTJjOTBh
YTcwY2RlZDVlMjAzOTg1OGJjNzA4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
c3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9z
dGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sCkBAIC00NSw3ICs0NSw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8gQ3Jl
YXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dCwgdGhlIGRlc3RpbmF0aW9uIGlzIG1vbm8uCi0gICAg
Y29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBy
ZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxp
bmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBs
ZVJhdGUpOwogICAgIC8vIENyZWF0ZSBhIHN0ZXJlbyBBdWRpb0J1ZmZlci4KICAgICB0b25lQnVm
ZmVyID0gY3JlYXRlRGF0YUJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhTZWNvbmRzKTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1sCmluZGV4IDcxNDJiZGE2NzVkOTc2MDVmMTU0
MzM2ZDQ5MmI5YTk5NWY3ZDEzMWUuLjJhN2RkYjJiNTFiYmUxMzNlZjUxMGVmYTUwYTMwOWQ3ZGNk
ZGMyMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Rlc3QtYmFzaWMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby90ZXN0LWJhc2ljLmh0bWwKQEAgLTM5LDcgKzM5LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAg
ICAgICByZXR1cm47CiAgICAgCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250
ZXh0KCk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgdmFyIGF1
ZGlvQnVmZmVyID0gY29udGV4dC5jcmVhdGVCdWZmZXIoMiwgbGVuZ3RoSW5TZWNvbmRzICogc2Ft
cGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CiAgICAgCiAgICAgZ2VuZXJhdGVTaW5XYXZlKGF1ZGlvQnVm
ZmVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUx
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctbW9uby01MS5odG1sCmluZGV4
IDI1NDEwMmM2NWU0NzY1NTljMTQ5MzliYzFmZmIzMzMyZDZlZTNhMTMuLmMzMTdkMDU0MDViOGUz
OGQ3ZWVlMTc2MTZiYzgxNzI2ZjdjNjVmMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAt
bWl4aW5nLW1vbm8tNTEuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkg
ewogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBzYW1wbGVS
YXRlID0gNDQxMDAuMDsKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9D
b250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7Cisg
ICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICog
dG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3Jl
YXRlVG9uZUJ1ZmZlcihjb250ZXh0LCA0NDAsIHRvbmVMZW5ndGhTZWNvbmRzLCAxKTsgCiAKICAg
ICB2YXIgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLXN0ZXJlby5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tc3RlcmVvLmh0bWwKaW5kZXggMTc3MDMwZjQz
MDI4NTkzNDMzMGI5ZDgzMTA0OTBiNDk5ZGViZjk4OC4uZThlYTM3MWNjNTU0NjFmOTRmMjZhNTU1
Y2QyODI1MTY2N2FhYWVhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4
aW5nLW1vbm8tc3RlcmVvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5n
LW1vbm8tc3RlcmVvLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
IAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQKICAgICB2YXIgc2FtcGxlUmF0
ZSA9IDQ0MTAwLjA7Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dCgyLCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAg
IHZhciBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHRv
bmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9IGNyZWF0
ZVRvbmVCdWZmZXIoY29udGV4dCwgNDQwLCB0b25lTGVuZ3RoU2Vjb25kcywgMSk7IAogCiAgICAg
dmFyIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwKaW5kZXggNDE1YWVhMWEwZGU5ZDJh
NzZmZTY5Nzg1NDg1NDlmMjQxMjQyODY0NS4uNDMzOWNjZTBjNDkzNmZiNTI4NDc5YmIwYjZlODEz
ZGRmZGI3ZmJhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLXN0
ZXJlby01MS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1zdGVyZW8t
NTEuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgLy8g
Q3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAu
MDsKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDYsIHNh
bXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRl
eHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNl
Y29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZl
cihjb250ZXh0LCA0NDAsIHRvbmVMZW5ndGhTZWNvbmRzLCAyKTsgCiAKICAgICB2YXIgc291cmNl
ID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dhdmVzaGFw
ZXIuaHRtbAppbmRleCBiYzU0MDBkMDgzZGI0ZTlkZDMzZDUxNzdiNmFmNGVhMDY1NGQ5NTQ2Li4y
MzBjZWY0Yjg1ZWQzZWFhYWE2ZDEwZmUxODRlMjkxNDNmNzZlZWZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby93YXZlc2hhcGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vd2F2ZXNoYXBlci5odG1sCkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENy
ZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZs
aW5lQXVkaW9Db250ZXh0KDEsIG51bWJlck9mUmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAg
ICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZSZW5kZXJGcmFt
ZXMsIHNhbXBsZVJhdGUpOwogICAgIAogICAgIC8vIHNvdXJjZSAtPiB3YXZlc2hhcGVyIC0+IGRl
c3RpbmF0aW9uCiAgICAgdmFyIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93ZWItYXVkaW8taXMtcGxheWluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2ViLWF1ZGlvLWlzLXBsYXlpbmcuaHRtbAppbmRl
eCA1MzY0NTg3YjU5ZDg3OGJmNDFhMDFkZTJiZDhkNzMxN2I1YzQ4YTQ2Li5hZWQ3ZTJlYWQwNTU0
YzA3MmZiZWE3MmJkY2JlZjI1ZTRkNmQwMDc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby93ZWItYXVkaW8taXMtcGxheWluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L3dlYi1hdWRpby1pcy1wbGF5aW5nLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ3aW5kb3cuaW50
ZXJuYWxzLnBhZ2VNZWRpYVN0YXRlKCkuaW5jbHVkZXMoJ0lzUGxheWluZ0F1ZGlvJykiKTsKIAot
ICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICAgICAg
dmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgICAgIHZhciBmcmVxdWVuY3kg
PSAzMDA7CiAgICAgICAgIHZhciBvc2NpbGxhdG9yID0gY29udGV4dC5jcmVhdGVPc2NpbGxhdG9y
KCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dlYmF1ZGlvLWdjLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby93ZWJhdWRpby1nYy5odG1sCmluZGV4IDA5ZjQ3ZjFiM2Q5
ZGVjZGFmODAxNmI4OThhM2QwODliY2FjMzI1NmMuLjcxNjdlY2Y1MTFjNWEwNGI5ODBiMTgxNGJh
M2Q2OGExZTYwYTE4OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dlYmF1ZGlv
LWdjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2ViYXVkaW8tZ2MuaHRtbApAQCAt
MTYsNyArMTYsNyBAQCBmdW5jdGlvbiBjaGVja0V2ZW50KCkgewogfQogCiBmdW5jdGlvbiBpbml0
KCkgewotICAgIGxldCBjdHggPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgbGV0IGN0
eCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKIAogICAgIGxldCBzb3VyY2UgPSBjdHguY3JlYXRlT3Nj
aWxsYXRvcigpOwogICAgIHNvdXJjZS5mcmVxdWVuY3kudmFsdWUgPSAzMDA7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby93ZWJraXRvZmZsaW5lYXVkaW9jb250ZXh0LXN0YXJ0UmVu
ZGVyaW5nLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dlYmtpdG9m
ZmxpbmVhdWRpb2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4
IDA5Njk2NmRjMjVmZDhhMzI0YjRmMDMwMjdiMWQ2NWRlNDA4MWM2ZmUuLjcxMWRiMDY0MzQyZWU2
MDE5OTZhOGFiMzJkZDk3YTRmZGRmNGJjZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3dlYmtpdG9mZmxpbmVhdWRpb2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2gtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dlYmtpdG9mZmxpbmVhdWRpb2NvbnRl
eHQtc3RhcnRSZW5kZXJpbmctY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ2hl
Y2tzIHRoYXQgc3RhcnRpbmcgcmVuZGVyaW5nIG9uIGEgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4
dCB0aGF0IGhhcyBubyBub2RlcyBkb2VzIG5vdCBjcmFzaC4KK0NoZWNrcyB0aGF0IHN0YXJ0aW5n
IHJlbmRlcmluZyBvbiBhIE9mZmxpbmVBdWRpb0NvbnRleHQgdGhhdCBoYXMgbm8gbm9kZXMgZG9l
cyBub3QgY3Jhc2guCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vd2Via2l0b2ZmbGluZWF1ZGlvY29udGV4dC1zdGFydFJlbmRl
cmluZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2Via2l0b2ZmbGluZWF1ZGlv
Y29udGV4dC1zdGFydFJlbmRlcmluZy1jcmFzaC5odG1sCmluZGV4IDI5NThkNWQ1OWY0Yjg0NmQ5
NDEwOGFiNDAyZDdjNGQ1ZWUwYzA2ZjcuLjUzMGUyMDVlNGUzZWZkMWZjNTczYjQyYmYwNDY1MGZi
ZmY1ZmM1NzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dlYmtpdG9mZmxpbmVh
dWRpb2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby93ZWJraXRvZmZsaW5lYXVkaW9jb250ZXh0LXN0YXJ0UmVuZGVyaW5nLWNyYXNoLmh0
bWwKQEAgLTMsMTAgKzMsMTAgQEAKIDxib2R5PgogPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiQ2hlY2tzIHRoYXQg
c3RhcnRpbmcgcmVuZGVyaW5nIG9uIGEgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCB0aGF0IGhh
cyBubyBub2RlcyBkb2VzIG5vdCBjcmFzaC4iKTsKK2Rlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBz
dGFydGluZyByZW5kZXJpbmcgb24gYSBPZmZsaW5lQXVkaW9Db250ZXh0IHRoYXQgaGFzIG5vIG5v
ZGVzIGRvZXMgbm90IGNyYXNoLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWxldCBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMTI4LCA0NDEwMCk7CitsZXQg
Y29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEyOCwgNDQxMDApOwogY29udGV4
dC5vbmNvbXBsZXRlID0gKCkgPT4gewogICAgIHRlc3RQYXNzZWQoIkZpbmlzaGVkIHJlbmRlcmlu
ZyIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRj
L2F1ZGlvLXBlZXItY29ubmVjdGlvbi1nNzIyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvYXVk
aW8tcGVlci1jb25uZWN0aW9uLWc3MjIuaHRtbAppbmRleCA0YjU0OWJlZjkwNGVmZjIxZjA0MDgx
MDZkNGExYmNmOWIzNjRjMjg2Li41YjZlMmEyMTEzZGViMDM1NGJiNzMxZmI3Nzk2YjU2NmI5NWM2
OGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tcGVlci1jb25uZWN0aW9u
LWc3MjIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tcGVlci1jb25uZWN0aW9u
LWc3MjIuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYyA9InJvdXRp
bmVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KCk7Cit2YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKIHZhciBy
ZW1vdGVTdHJlYW07CiAKIGFzeW5jIGZ1bmN0aW9uIGNoZWNrRm9ySHVtQmlwQm9wKHN0cmVhbSwg
cHJldmlvdXNSZXN1bHRzLCBjb3VudGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRj
L2F1ZGlvLXBlZXItY29ubmVjdGlvbi13ZWJhdWRpby5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRj
L2F1ZGlvLXBlZXItY29ubmVjdGlvbi13ZWJhdWRpby5odG1sCmluZGV4IDBkYWY2NjEwNTYxYTMz
NWNmOWVhYmM4OWU0NzBmODMzYTcyZmFlZDkuLjk0MzMxN2U4OWRmY2IwNWRlODA4ZThlOWMyNDUz
NGI3OTYzNTgwNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9hdWRpby1wZWVyLWNv
bm5lY3Rpb24td2ViYXVkaW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tcGVl
ci1jb25uZWN0aW9uLXdlYmF1ZGlvLmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICB2YXIg
Y29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29udGV4dCA9IG5l
dyBBdWRpb0NvbnRleHQoKTsKICAgICB2YXIgcmVtb3RlU3RyZWFtOwogCiAgICAgYXN5bmMgZnVu
Y3Rpb24gY2hlY2tGb3JIdW1CaXBCb3Aoc3RyZWFtLCBwcmV2aW91c1Jlc3VsdHMsIGNvdW50ZXIp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvY2xvbmUtYXVkaW8tdHJhY2suaHRtbCBi
L0xheW91dFRlc3RzL3dlYnJ0Yy9jbG9uZS1hdWRpby10cmFjay5odG1sCmluZGV4IDBmOTM3NDg0
OTA4M2Y0YWRlMDI3NjY1NzRhMTUzYjU4MmQ5MWJiZGIuLjQyNDM3ZTcxOTQ1MGRlNTk4MjEyNTRm
NzQ2ZThjN2UzZWY2OTI3NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9jbG9uZS1h
dWRpby10cmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9jbG9uZS1hdWRpby10cmFj
ay5odG1sCkBAIC05LDcgKzksNyBAQAogPGJvZHk+CiAgICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5l
cy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsK
ICAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2dldFVzZXJNZWRpYS13ZWJhdWRpby1h
dXRvcGxheS5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL2dldFVzZXJNZWRpYS13ZWJhdWRpby1h
dXRvcGxheS5odG1sCmluZGV4IDcyM2U3YTkzOWMzMzQyMzk0ZTBjNmZiODA1M2I5ODZlNjAxYWU1
MjEuLjliZTYyODY5MmYwODdmNmMzMDJjMGQ4NTVmODc0NTU0MTVkZjAzNWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYnJ0Yy9nZXRVc2VyTWVkaWEtd2ViYXVkaW8tYXV0b3BsYXkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJydGMvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLWF1dG9wbGF5Lmh0
bWwKQEAgLTExLDcgKzExLDcgQEAKIHRlc3QoKCkgPT4gewogICAgIGFzc2VydF90cnVlKCEhd2lu
ZG93LmludGVybmFscywgIlRlc3QgcmVxdWlyZXMgaW50ZXJuYWxzIEFQSSIpOwogCi0gICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgdmFyIGNvbnRleHQgPSBu
ZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgaW50ZXJuYWxzLnNldEF1ZGlvQ29udGV4dFJlc3RyaWN0
aW9ucyhjb250ZXh0LCAnUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9TdGFydCcpOwogCiAgICAg
dmFyIG5vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpAQCAtMjMsNyArMjMsNyBA
QCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCiAg
ICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgiVGVzdCByZXF1aXJlcyBpbnRlcm5hbHMgQVBJ
Iik7CiAKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2
YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICBpbnRlcm5hbHMuc2V0QXVkaW9D
b250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0
YXJ0Jyk7CiAKICAgICB2YXIgbm9kZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CkBA
IC00Nyw3ICs0Nyw3IEBAIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgIGlmICghd2luZG93
LmludGVybmFscykKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJUZXN0IHJlcXVpcmVz
IGludGVybmFscyBBUEkiKTsKICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSkudGhlbigoc3RyZWFtKSA9PiB7Ci0gICAgICAgIHZhciBj
b250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgICAgICB2YXIgY29udGV4dCA9
IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgaW50ZXJuYWxzLnNldEF1ZGlvQ29udGV4dFJl
c3RyaWN0aW9ucyhjb250ZXh0LCAnUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9TdGFydCcpOwog
CiAgICAgICAgIHZhciBub2RlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKQEAgLTYw
LDcgKzYwLDcgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKQogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIlRlc3QgcmVxdWlyZXMgaW50
ZXJuYWxzIEFQSSIpOwogICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7YXVkaW86IHRydWV9KS50aGVuKChzdHJlYW0pID0+IHsKLSAgICAgICAgdmFyIGNvbnRl
eHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgIHZhciBjb250ZXh0ID0gbmV3
IEF1ZGlvQ29udGV4dCgpOwogICAgICAgICBpbnRlcm5hbHMuc2V0QXVkaW9Db250ZXh0UmVzdHJp
Y3Rpb25zKGNvbnRleHQsICdSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0Jyk7CiAKICAg
ICAgICAgdmFyIG5vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1hdWRpby1tdXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlvLW11dGUuaHRtbAppbmRleCA0
YWQ2MTY3ZTYyMzI2MTllM2Y5NWMyNGJlYmMxNjViMjk2YjgyODkxLi5lOTk5YjYxMzNkMGMyNjNj
NmUyMzU2MWU3NTJiMTNiM2JkNWUxMTVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMv
cGVlci1jb25uZWN0aW9uLWF1ZGlvLW11dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMv
cGVlci1jb25uZWN0aW9uLWF1ZGlvLW11dGUuaHRtbApAQCAtOSw3ICs5LDcgQEAKIDxib2R5Pgog
ICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0g
ICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgdmFyIGNvbnRl
eHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0
Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tbXV0ZTIuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9w
ZWVyLWNvbm5lY3Rpb24tYXVkaW8tbXV0ZTIuaHRtbAppbmRleCBjYWE3NTdmODU2MTRmNDExMmVm
N2UwZWVlNzZmYzZjZGUyOGUyMzVkLi5iMGExODE5ODdlNTY0NjM3NTAyYjI2MTc4ODczOTc0ZDc5
Y2MwYjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1
ZGlvLW11dGUyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1h
dWRpby1tdXRlMi5odG1sCkBAIC05LDcgKzksNyBAQAogPGJvZHk+CiAgICAgPHNjcmlwdCBzcmMg
PSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICB2YXIgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBBdWRpb0Nv
bnRleHQoKTsKICAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgdmFyIGxvY2Fs
VHJhY2s7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7YXVkaW86IHRydWV9KS50aGVuKChsb2NhbFN0cmVhbSkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1jcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWNyZWF0ZU1lZGlh
U3RyZWFtRGVzdGluYXRpb24uaHRtbAppbmRleCAyNjRiZjg3YzI4OWFmNDQwMjFhNmJmZmRlZTQw
YzQzY2Q4MDQ0MmQ5Li41N2UyZjZlNWJmZjUwY2ZjM2RlMmU5ZGY3NmQ5ZjI2NTJkNjdkMDY5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWNyZWF0ZU1lZGlh
U3RyZWFtRGVzdGluYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25u
ZWN0aW9uLWNyZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24uaHRtbApAQCAtNyw3ICs3LDcgQEAK
ICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0PgotICAgIGNvbnN0IG5vaXNlQ29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsK
KyAgICBjb25zdCBub2lzZUNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgY29uc3Qg
b3NjaWxsYXRvciA9IG5vaXNlQ29udGV4dC5jcmVhdGVPc2NpbGxhdG9yKCk7CiAgICAgY29uc3Qg
YXVkaW9TdHJlYW1EZXN0aW5hdGlvbiA9IG5vaXNlQ29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbURl
c3RpbmF0aW9uKCk7CiAgICAgY29uc3QgYXVkaW9TdHJlYW0gPSBhdWRpb1N0cmVhbURlc3RpbmF0
aW9uLnN0cmVhbTsKQEAgLTE1LDcgKzE1LDcgQEAKICAgICBvc2NpbGxhdG9yLnN0YXJ0KCk7CiAg
ICAgY29uc3QgYXVkaW9UcmFjayA9IGF1ZGlvU3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CiAK
LSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29u
dGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICB2YXIgcmVtb3RlU3RyZWFtOwogCiAgICAg
YXN5bmMgZnVuY3Rpb24gY2hlY2tGb3JIdW1CaXBCb3Aoc3RyZWFtLCBwcmV2aW91c1Jlc3VsdHMs
IGNvdW50ZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9u
LXJlbW90ZS1hdWRpby1tdXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0
aW9uLXJlbW90ZS1hdWRpby1tdXRlLmh0bWwKaW5kZXggNjAyNGM0ZDgyOGE1MDlhODRlZDZiZmFi
ZGNmZTlkMzRmNjU5Y2U0NC4uN2I5YjJhNWIyN2Q3NjBmOWU0OWEyN2E5MDE4NDMzZGYwMzliYWE0
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1yZW1vdGUt
YXVkaW8tbXV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24t
cmVtb3RlLWF1ZGlvLW11dGUuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgIDxzY3JpcHQgc3Jj
ID0icm91dGluZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAKLSAgICB2YXIgY29udGV4
dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBBdWRp
b0NvbnRleHQoKTsKICAgICB2YXIgcmVtb3RlU3RyZWFtOwogICAgIGFzeW5jIGZ1bmN0aW9uIGNo
ZWNrRm9yU291bmQoZXhwZWN0ZWQsIG1lc3NhZ2UsIGNvdW50KQogICAgIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tcmVtb3RlLWF1ZGlvLW11dGUyLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLXJlbW90ZS1hdWRpby1tdXRl
Mi5odG1sCmluZGV4IGNjZDJlYjI5ZDRmNTRjOWFiNjA0NTg2YjlkYTMyMTk5MzE2OTAxZjAuLjZi
MzJkMmIzZmNlMWZhY2Q3MGExOWY4NjY0NTlhZTZiZjllNWUyNDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tcmVtb3RlLWF1ZGlvLW11dGUyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1yZW1vdGUtYXVkaW8tbXV0ZTIu
aHRtbApAQCAtOSw3ICs5LDcgQEAKIDxib2R5PgogICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KCk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAg
ICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KS50aGVuKChsb2NhbFN0cmVhbSkg
PT4gewogICAgICAgICAgICAgdmFyIHJlbW90ZVRyYWNrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2VicnRjL3JvdXRpbmVzLmpzIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCmlu
ZGV4IGJlNDU5MTZkMmI0MGYxNDRlODJkNDJmNzJhZDM2NDY1ZWY1N2MwNGQuLmQ4ZGI3MmY2NWQx
NzY5NjFlYTc5N2M5ZGM0ODJiZDBiNTFlZjkzYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YnJ0Yy9yb3V0aW5lcy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKQEAg
LTE2Nyw3ICsxNjcsNyBAQCBmdW5jdGlvbiB3YWl0Rm9yVmlkZW9TaXplKHZpZGVvLCB3aWR0aCwg
aGVpZ2h0LCBjb3VudCkKIAogYXN5bmMgZnVuY3Rpb24gZG9IdW1BbmFseXNpcyhzdHJlYW0sIGV4
cGVjdGVkKQogewotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOwor
ICAgIHZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogICAgIGZvciAodmFyIGNwdHIg
PSAwOyBjcHRyIDwgMjA7IGNwdHIrKykgewogICAgICAgICB2YXIgcmVzdWx0cyA9IGF3YWl0IGFu
YWx5c2VBdWRpbyhzdHJlYW0sIDIwMCwgY29udGV4dCk7CiAgICAgICAgIGlmIChyZXN1bHRzLmhl
YXJkSHVtID09PSBleHBlY3RlZCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409502</attachid>
            <date>2020-09-23 13:56:03 -0700</date>
            <delta_ts>2020-09-23 15:48:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216886-20200923135602.patch</filename>
            <type>text/plain</type>
            <size>143268</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdlYzAzYjIyN2RkYWEx
YWJkZWY3NTdkN2ZkOTdkM2JhZDkxZTQ3Ny4uZGY0NTE1ODY4OGY0MWM4OGIxZThhMWU1YjFhNzE1
OTc1MDM2Mzc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA5LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBvZmYgdGhlIGxlZ2Fj
eSBwcmVmaXhlZCBXZWJBdWRpbyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNjg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFR1cm4gb2ZmIHRoZSBsZWdhY3kgcHJlZml4ZWQgV2ViQXVkaW8gQVBJ
LCBub3cgdGhhdCB0aGUgbW9kZXJuIHVucHJlZml4ZWQgQVBJIGhhcyBiZWVuIGVuYWJsZWQKKyAg
ICAgICAgaW4gcjI2NzQ4OC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaWRsOgorICAgICAgICBNYWtlIHN1cmUgbGVnYWN5IGNvbnN0YW50cyBnZXQgdW5l
eHBvc2VkIGlmIHRoZSBQcmVmaXhlZFdlYkF1ZGlvIHNldHRpbmcgaXMgZGlzYWJsZWQuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdl
bmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2V0UnVudGltZUVuYWJsZWRTdGF0aWNQ
cm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEVuYWJsZWRCeVNldHRp
bmcuaWRsOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgW0VuYWJsZWRCeVNldHRpbmc9
WF0gb24gY29uc3RhbnRzLgorCiAyMDIwLTA5LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2UvYXVkaW9idWZmZXJz
b3VyY2UtcGxheWJhY2tyYXRlLmh0bWwgaXMgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmY2NjYzMzY5
NWRmYmQ2NTc2NDhjNTgxYjQ5ZmVkY2JjMzAyZjkxMS4uNDFjM2FhNDk0YTUxZTNhMWRmOTBjNGU2
M2Q3ZGFkN2ExN2NmNWI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOS0yMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFR1cm4gb2ZmIHRoZSBs
ZWdhY3kgcHJlZml4ZWQgV2ViQXVkaW8gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUdXJuIG9mZiB0aGUgbGVnYWN5IHByZWZpeGVkIFdlYkF1ZGlv
IEFQSSwgbm93IHRoYXQgdGhlIG1vZGVybiB1bnByZWZpeGVkIEFQSSBoYXMgYmVlbiBlbmFibGVk
CisgICAgICAgIGluIHIyNjc0ODguCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sOgorCiAyMDIwLTA5LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVHVybiBvbiB0aGUgbW9kZXJuIHVucHJlZml4ZWQgV2ViQXVkaW8gQVBJ
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZDJkNWY4NjAyZTU5ZjIyNTc3YWQwMjI3
OTdlYzgyNjkyZDI5YjFkMi4uMjBiY2VjNzBlZTI5MTE3ZGZlMzgxN2YxOTU2OTA3NDRlZjcxYzVk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5
LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBvZmYg
dGhlIGxlZ2FjeSBwcmVmaXhlZCBXZWJBdWRpbyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1cm4gb2ZmIHRoZSBsZWdhY3kgcHJlZml4ZWQgV2Vi
QXVkaW8gQVBJLCBub3cgdGhhdCB0aGUgbW9kZXJuIHVucHJlZml4ZWQgQVBJIGhhcyBiZWVuIGVu
YWJsZWQKKyAgICAgICAgaW4gcjI2NzQ4OC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDIwLTA5
LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVHVybiBvbiB0
aGUgbW9kZXJuIHVucHJlZml4ZWQgV2ViQXVkaW8gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKaW5kZXgg
Njg5NTc4Nzc0MGZlZmZjNWQwYjNhNTNiMDA1ZWYyZTVjODEyNDhkYS4uMjJiYzA5M2Y5NTEzNmFh
YmI3ZGQ4ZTk0ODBmMjJkNjJhMDBjOTEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbApAQCAtNDMsOCAr
NDMsOCBAQAogCiAgICAgLy8gRklYTUU6IFRob3NlIGNvbnN0YW50cyBhcmUga2VwdCBmb3IgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBwcmVmaXhlZCBBUEkgYW5kIHNob3VsZAogICAg
IC8vIGJlIHJlbW92ZWQgb25jZSB3ZSBzdG9wIHN1cHBvcnRpbmcgaXQuCi0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgVU5TQ0hFRFVMRURfU1RBVEUgPSAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFNDSEVEVUxFRF9TVEFURSA9IDE7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUExBWUlO
R19TVEFURSA9IDI7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRklOSVNIRURfU1RBVEUgPSAz
OworICAgIFtFbmFibGVkQnlTZXR0aW5nPVByZWZpeGVkV2ViQXVkaW9dIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFVOU0NIRURVTEVEX1NUQVRFID0gMDsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1QcmVm
aXhlZFdlYkF1ZGlvXSBjb25zdCB1bnNpZ25lZCBzaG9ydCBTQ0hFRFVMRURfU1RBVEUgPSAxOwor
ICAgIFtFbmFibGVkQnlTZXR0aW5nPVByZWZpeGVkV2ViQXVkaW9dIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFBMQVlJTkdfU1RBVEUgPSAyOworICAgIFtFbmFibGVkQnlTZXR0aW5nPVByZWZpeGVkV2Vi
QXVkaW9dIGNvbnN0IHVuc2lnbmVkIHNob3J0IEZJTklTSEVEX1NUQVRFID0gMzsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmlu
ZGV4IGI5OWEwZmIzOGUxYzA0ZjRiNWUzNTQ0YWExM2U3Y2ExNWExODhkNjkuLmIxMTc0Yjg5YzFi
YjFmNzE5MjM5Y2I1M2ZkYzZkYjYxNTQ0NzVjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MzkwLDYgKzQzOTAsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIG15ICRoYXNoTmFtZSA9ICRjbGFzc05h
bWUgLiAiVGFibGUiOwogICAgIG15IEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnMgPSAoKTsKICAg
ICBteSBAcnVudGltZUVuYWJsZWRBdHRyaWJ1dGVzID0gKCk7CisgICAgbXkgQHJ1bnRpbWVFbmFi
bGVkQ29uc3RhbnRzID0gKCk7CiAKICAgICAjIEdlbmVyYXRlIGhhc2ggdGFibGUgZm9yIHByb3Bl
cnRpZXMgb24gdGhlIGluc3RhbmNlLgogICAgIG15ICRudW1JbnN0YW5jZVByb3BlcnRpZXMgPSBH
ZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUoJG9iamVjdCwgJGludGVyZmFjZSwgMSwgXEBoYXNo
S2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUyLCBcJWNvbmRp
dGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRpb25hbHMsIFxAcnVudGltZUVuYWJsZWRPcGVyYXRp
b25zLCBcQHJ1bnRpbWVFbmFibGVkQXR0cmlidXRlcyk7CkBAIC00NDIyLDYgKzQ0MjMsMTAgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbCA9
ICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9OwogICAgICAgICAg
ICAgJGNvbmRpdGlvbmFsc3skbmFtZX0gPSAkY29uZGl0aW9uYWwgaWYgJGNvbmRpdGlvbmFsOwog
CisgICAgICAgICAgICBpZiAoTmVlZHNSdW50aW1lQ2hlY2soJGludGVyZmFjZSwgJGNvbnN0YW50
KSkgeworICAgICAgICAgICAgICAgIHB1c2goQHJ1bnRpbWVFbmFibGVkQ29uc3RhbnRzLCAkY29u
c3RhbnQpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAkaGFzaFNpemUrKzsKICAgICAg
ICAgfQogCkBAIC00NTQ4LDYgKzQ1NTMsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
CiAgICAgICAgIG15IEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMgPSBAcnVudGltZUVuYWJsZWRP
cGVyYXRpb25zOwogICAgICAgICBwdXNoKEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMsIEBydW50
aW1lRW5hYmxlZEF0dHJpYnV0ZXMpOworICAgICAgICBwdXNoKEBydW50aW1lRW5hYmxlZFByb3Bl
cnRpZXMsIEBydW50aW1lRW5hYmxlZENvbnN0YW50cyk7CiAKICAgICAgICAgaWYgKEBydW50aW1l
RW5hYmxlZFByb3BlcnRpZXMpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGJvb2wgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IGZhbHNlO1xuIik7CkBAIC03ODE4
LDYgKzc4MjQsMTIgQEAgc3ViIEdldFJ1bnRpbWVFbmFibGVkU3RhdGljUHJvcGVydGllcwogICAg
ICAgICB9CiAgICAgfQogCisgICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGludGVyZmFjZS0+
Y29uc3RhbnRzfSkgeworICAgICAgICBpZiAoTmVlZHNSdW50aW1lQ2hlY2soJGludGVyZmFjZSwg
JGNvbnN0YW50KSkgeworICAgICAgICAgICAgcHVzaChAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVz
LCAkY29uc3RhbnQpOworICAgICAgICB9CisgICAgfQorCiAgICAgZm9yZWFjaCBteSAkb3BlcmF0
aW9uIChAeyRpbnRlcmZhY2UtPm9wZXJhdGlvbnN9KSB7CiAgICAgICAgIG5leHQgaWYgKCRvcGVy
YXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfSBhbmQgbm90ICRv
cGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1YmxpY0lkZW50aWZpZXJ9KTsKICAgICAg
ICAgbmV4dCBpZiAkb3BlcmF0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJG9wZXJhdGlvbi0+e292
ZXJsb2FkSW5kZXh9ID4gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNw
cAppbmRleCAzYmRlY2QxODcyZjcxMTk4NjZmYjk4ZTA2ZDc5MzY5NzA4OTVlZTk4Li4yNmUyYzM4
OTVmMWE1ZTZmMjQyYmMzMzVjOTRkOTI3MDFkMzkyMGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXMuY3BwCkBAIC0xODUsNiArMTg1LDMwIEBAIHRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0
aWVzKFZNJiB2CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05v
bnRyaXZpYWxTdHJpbmcodm0sICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyJfcyksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJl
cigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzOjppbmZvKCksIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25z
dHJ1Y3RvclRhYmxlVmFsdWVzLCAqdGhpcyk7CisjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjMpCisgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oanNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oJmdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSktPnNldHRpbmdzKCkudGVzdFNldHRpbmcyRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJNSVhJTl9DT05TVEFOVCIpLCBzdHJsZW4oIk1JWElOX0NPTlNUQU5UIikp
OworICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3Bl
cnR5U2xvdCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgJmds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFC
TEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWRvd25jYXN0
PERvY3VtZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmZ2xvYmFsT2JqZWN0KS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0dGluZzJFbmFibGVkKCkp
IHsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIk1JWElOX1JFRkxFQ1RFRF9DT05TVEFO
VCIpLCBzdHJsZW4oIk1JWElOX1JFRkxFQ1RFRF9DT05TVEFOVCIpKTsKKyAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsICZnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMjMpCisgICAgaWYgKCFkb3duY2FzdDxEb2N1bWVudD4oanNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmcyRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8g
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJQQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCIpLCBz
dHJsZW4oIlBBUlRJQUxfTUlYSU5fQ09OU1RBTlRfRlJPTV9QQVJUSUFMIikpOworICAgICAgICBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90
OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgJmdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKIH0KIAogdGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yKSB9OwpAQCAtMzg2LDYgKzQxMCwzMyBAQCB2b2lkIEpTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICAgICAgRGVsZXRlUHJv
cGVydHlTbG90IHNsb3Q7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9CisjZW5kaWYKKyNpZiBF
TkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWRvd25j
YXN0PERvY3VtZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmcyRW5hYmxl
ZCgpKSB7CisgICAgICAgIGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAg
ICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiTUlYSU5fQ09OU1RBTlQiKSwgc3RybGVuKCJNSVhJ
Tl9DT05TVEFOVCIpKTsKKyAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAg
ICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNl
bmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorICAg
IGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0
dGluZzJFbmFibGVkKCkpIHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9
IHRydWU7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJNSVhJTl9SRUZMRUNURURfQ09O
U1RBTlQiKSwgc3RybGVuKCJNSVhJTl9SRUZMRUNURURfQ09OU1RBTlQiKSk7CisgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7
CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pihq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSktPnNldHRpbmdzKCkudGVzdFNldHRpbmcyRW5hYmxlZCgpKSB7CisgICAgICAg
IGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgPSB0cnVlOworICAgICAgICBhdXRvIHByb3Bl
cnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BBUlRJQUwiKSwgc3RybGVu
KCJQQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZST01fUEFSVElBTCIpKTsKKyAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KICNlbmRpZgogICAgIGlmIChoYXNEaXNhYmxlZFJ1bnRp
bWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgZmxh
dHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcu
Y3BwCmluZGV4IGVlNDcyNjQ1MjEyZGQyZjc2NmNmZTAwOWZkNDAyOGZiMjRhNDQyZmIuLjI1NTk0
MWNjYmZiZWQ0NGU1OTc3MmVlZjVhOGZkMDFlYTYwMTRhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZy5jcHAKQEAgLTEwNiw2ICsxMDYsMTUgQEAgU1RBVElDX0FTU0VSVF9JU09f
U1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZSwgSlNUZXN0
RW5hYmwKIAogdXNpbmcgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yID0gSlNET01D
b25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz47CiAKKy8q
IEhhc2ggdGFibGUgZm9yIGNvbnN0cnVjdG9yICovCisKK3N0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KK3sK
KyAgICB7ICJlbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxv
bmcpKDApIH0gfSwKK307CisKK3N0YXRpY19hc3NlcnQoVGVzdEVuYWJsZWRCeVNldHRpbmc6OmVu
YWJsZWRCeVNldHRpbmdDb25zdGFudCA9PSAwLCAiZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50IGlu
IFRlc3RFbmFibGVkQnlTZXR0aW5nIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CisK
IHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3I6OnBy
b3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTE3LDYgKzEyNiwx
MyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yOjpp
bml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmc6OnByb3RvdHlwZSh2bSwg
Z2xvYmFsT2JqZWN0KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250
cml2aWFsU3RyaW5nKHZtLCAiVGVzdEVuYWJsZWRCeVNldHRpbmciX3MpLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
ICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCks
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pOworICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZzo6aW5mbygpLCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JUYWJs
ZVZhbHVlcywgKnRoaXMpOworICAgIGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KCZnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
LT5zZXR0aW5ncygpLnRlc3RTZXR0aW5nRW5hYmxlZCgpKSB7CisgICAgICAgIGF1dG8gcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJlbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQiKSwgc3RybGVuKCJlbmFibGVkQnlT
ZXR0aW5nQ29uc3RhbnQiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBz
Y29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAg
ICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eSh0aGlzLCAmZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0K
IH0KIAogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0NvbnN0cnVjdG9yKSB9OwpAQCAtMTQyLDYgKzE1OCw3IEBAIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYK
KyAgICB7ICJlbmFibGVkQnlTZXR0aW5nQ29uc3RhbnQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxv
bmcpKDApIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFbmFibGVkQnlTZXR0aW5n
UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ1Byb3RvdHlwZSkgfTsKQEAgLTE4NSw2ICsyMDIsMTMgQEAgdm9pZCBKU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgICAgIERl
bGV0ZVByb3BlcnR5U2xvdCBzbG90OwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHko
dGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgfQorICAgIGlm
ICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0dGlu
Z0VuYWJsZWQoKSkgeworICAgICAgICBoYXNEaXNhYmxlZFJ1bnRpbWVQcm9wZXJ0aWVzID0gdHJ1
ZTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdDb25zdGFu
dCIpLCBzdHJsZW4oImVuYWJsZWRCeVNldHRpbmdDb25zdGFudCIpKTsKKyAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qgc2xvdDsKKyAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KICAgICBpZiAoaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVy
dGllcyAmJiBzdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkpCiAgICAgICAgIGZsYXR0ZW5EaWN0
aW9uYXJ5T2JqZWN0KHZtKTsKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJ
T04oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0RW5hYmxlZEJ5U2V0dGluZy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdEVuYWJsZWRCeVNldHRpbmcuaWRsCmluZGV4IGQ1MmZlMDBkMzhiYmIxY2EwY2Y2
OWY0NzI3YTVjYjlhMGI2NjgxNjMuLjNiMjQ0ZTdkYWMzOGM4NjRhMGQ0MjNmMjNkNWNmZjkyZDU0
MWU1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0RW5hYmxlZEJ5U2V0dGluZy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RFbmFibGVkQnlTZXR0aW5nLmlkbApAQCAtMzEsNCArMzEsNiBAQCBpbnRl
cmZhY2UgVGVzdEVuYWJsZWRCeVNldHRpbmcgewogICAgIFtDb25kaXRpb25hbD1URVNUX0ZFQVRV
UkUsIEVuYWJsZWRCeVNldHRpbmc9VGVzdFNldHRpbmddIHVuZGVmaW5lZCBlbmFibGVkQnlTZXR0
aW5nT3BlcmF0aW9uKERPTVN0cmluZyB0ZXN0UGFyYW0pOwogCiAgICAgW0NvbmRpdGlvbmFsPVRF
U1RfRkVBVFVSRSwgRW5hYmxlZEJ5U2V0dGluZz1UZXN0U2V0dGluZyZPdGhlclRlc3RTZXR0aW5n
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlOworCisg
ICAgW0VuYWJsZWRCeVNldHRpbmc9VGVzdFNldHRpbmddIGNvbnN0IHVuc2lnbmVkIHNob3J0IGVu
YWJsZWRCeVNldHRpbmdDb25zdGFudCA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCmluZGV4IDMwNGIzZjc3MDQ3ZTQyZjhlNTY5
NGViNTY0ZmFiOGU2YzQzY2Q1YmUuLmRhNDQ4Y2QzZTAzOGQwNTFlYjJhYzllNzBlZTc5YmE2Mzg5
ODk3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzSW50
ZXJuYWwueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsLnlhbWwKQEAgLTI4LDcgKzI4LDcgQEAKIAogUHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKLSAgZGVmYXVsdFZhbHVlOiB0cnVlCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UK
ICAgY29uZGl0aW9uOiBFTkFCTEUoV0VCX0FVRElPKQogICBodW1hblJlYWRhYmxlTmFtZTogIlBy
ZWZpeGVkIFdlYkF1ZGlvIEFQSSIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiUHJlZml4
ZWQgV2ViQXVkaW8gQVBJIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IDZjOGQxODBhOGY0MzlkODA0YzAxNGQ2NzNkMzIyN2YyYzU5MGM0ZmEuLmVlNGNj
Njc0NDg2YTE5MjYwY2VhZjc5ODQ5YWIyMmJkMDg3YzRkNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTMyOTUsNyArMzI5NSw3IEBAIC0gKHZvaWQp
X3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogCiAjaWYg
RU5BQkxFKFdFQl9BVURJTykKICAgICBzZXR0aW5ncy5zZXRXZWJBdWRpb0VuYWJsZWQoW3ByZWZl
cmVuY2VzIHdlYkF1ZGlvRW5hYmxlZF0pOwotICAgIHNldHRpbmdzLnNldFByZWZpeGVkV2ViQXVk
aW9FbmFibGVkKFtwcmVmZXJlbmNlcyB3ZWJBdWRpb0VuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5z
ZXRQcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChmYWxzZSk7CiAgICAgc2V0dGluZ3Muc2V0TW9kZXJu
VW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChbcHJlZmVyZW5jZXMgbW9kZXJuVW5wcmVmaXhlZFdl
YkF1ZGlvRW5hYmxlZF0pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L2dldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwKaW5kZXggMTM0
Mjk4Njc0NWJlZmMyMWZmOGU4Y2Q2YmUwYzA2MzA5MTQ2ZmUxZC4uMjNkYTY4ODk0MGNjYjgxODMw
ZWNmZGIwOTY5ZTg0ODhhYmZkODQwYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwKQEAgLTgsNyAr
OCw3IEBAIGFzeW5jIGZ1bmN0aW9uIGNhcHR1cmUoKQogICAgICAgICBjb25zdCBzdHJlYW0gPSBh
d2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlLCB2
aWRlbzogZmFsc2UgfSk7CiAgICAgICAgIGludGVybmFscy5zZXRNb2NrQXVkaW9UcmFja0NoYW5u
ZWxOdW1iZXIoc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIDIpOwogCi0gICAgICAgIHZhciBh
dWRpb0NvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgIHZhciBhdWRp
b0NvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgICAgIHZhciBhbmFseXplciA9IGF1
ZGlvQ29udGV4dC5jcmVhdGVBbmFseXNlcigpOwogICAgICAgICBhbmFseXplci5mZnRTaXplID0g
MjU2OwogICAgICAgICBsZXQgc291cmNlID0gYXVkaW9Db250ZXh0LmNyZWF0ZU1lZGlhU3RyZWFt
U291cmNlKHN0cmVhbSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1ByZWZlcmVuY2VzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9QcmVmZXJlbmNlcy5tbQppbmRleCAzYTRiY2ZiYjQxOWQ0MDgwYzEyOTBmZGRkMDg5
YzZmMmU5OGZhYWU4Li4wOWVmMDYxZWRhMWZkNTQyMDQ2MmQwN2U0MGJmMzA1NWU0Njk5MjQ0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVu
Y2VzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVy
ZW5jZXMubW0KQEAgLTc1LDcgKzc1LDcgQEAgVEVTVChXZWJLaXQsIFdlYkF1ZGlvUHJlZmVyZW5j
ZSkKICAgICAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICAgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKICAgICAgICAg
X19ibG9jayBSZXRhaW5QdHI8TlNTdHJpbmc+IHJlc3VsdDsKLSAgICAgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAibmV3IEJvb2xlYW4od2luZG93LndlYmtpdEF1ZGlvQ29udGV4dCku
dG9TdHJpbmcoKSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHRGcm9tSlMsIE5TRXJyb3Ig
KmVycm9yKSB7CisgICAgICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5ldyBCb29s
ZWFuKHdpbmRvdy5BdWRpb0NvbnRleHQpLnRvU3RyaW5nKCkiIGNvbXBsZXRpb25IYW5kbGVyOl4o
aWQgcmVzdWx0RnJvbUpTLCBOU0Vycm9yICplcnJvcikgewogICAgICAgICAgICAgcmVzdWx0ID0g
cmVzdWx0RnJvbUpTOwogICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgICAgIH1dOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9hdWRpby13aXRo
LXdlYi1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9h
dWRpby13aXRoLXdlYi1hdWRpby5odG1sCmluZGV4IGEzMjY2MWYyZTllMWU5ZTRhMDZiZWI4ZDUw
ZTYzZGM5MTFiNjU0N2YuLmNhMzg1ZjJiMTFlYmYwMjNhZmU1MWRjNWE3YWNkOWFkODM0MTc2MTAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvYXVkaW8t
d2l0aC13ZWItYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL2F1ZGlvLXdpdGgtd2ViLWF1ZGlvLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4K
ICAgICA8c2NyaXB0PgogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFz
eW5jIGV2ZW50ID0+IHsKLSAgICAgICAgICAgIGxldCBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlv
Q29udGV4dCgpOworICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7
CiAgICAgICAgICAgICBsZXQgbm9kZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CiAg
ICAgICAgICAgICBub2RlLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvdmlkZW8td2l0aC1hdWRp
by1hbmQtd2ViLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL3ZpZGVvLXdpdGgtYXVkaW8tYW5kLXdlYi1hdWRpby5odG1sCmluZGV4IDMzNDg1ZDlhMmIz
MDRmYjkyZGE3MDA4YmM4ZDE1ZjRmMTI2NTViNWMuLjFiNDNiNzM3MzNhNWM3MjEyNGZlOGY5NGE5
MzA2NjkwY2E4NGI4NmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvdmlkZW8td2l0aC1hdWRpby1hbmQtd2ViLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS92aWRlby13aXRoLWF1ZGlvLWFuZC13ZWIt
YXVkaW8uaHRtbApAQCAtNCw3ICs0LDcgQEAKIDxoZWFkPgogICAgIDxzY3JpcHQ+CiAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZXZlbnQgPT4gewotICAgICAgICAgICAg
bGV0IGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgICAgICBsZXQg
Y29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgICAgIGxldCBub2RlID0gY29u
dGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKICAgICAgICAgICAgIG5vZGUuY29ubmVjdChjb250
ZXh0LmRlc3RpbmF0aW9uKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS93ZWItYXVkaW8tb25seS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS93ZWItYXVkaW8tb25seS5odG1sCmluZGV4IDIxNjdjOWRjMjRmYmVk
Yjg4NjBiNWJjOWU2MmFkZTQ0NDJkZGY1NzguLjljYTU3M2FmMjQ1M2QyYmZkNDdkNTZjMDY4NjU2
N2NmMjg4YzE2YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2Evd2ViLWF1ZGlvLW9ubHkuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL3dlYi1hdWRpby1vbmx5Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4K
ICAgICA8c2NyaXB0PgogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMg
ZXZlbnQgPT4gewotICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQo
KTsKKyAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgICAgIGNv
bnRleHQuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCBzdGF0ZWNoYW5nZSk7CiAgICAg
ICAgIG5vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAgICAgICBub2RlLmNv
bm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdExlZ2FjeS9pb3MvdmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2Vi
YXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L2lvcy92
aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpby5odG1sCmluZGV4IGY0ODE1YWQyZGNm
ODI5ZGE3NTg0YzFjOTk2NTFhZjFjZjViNWFlZDkuLjA1ZDdjYWYyOTAzN2U4OTk1MDM2MjIyMGQ1
YTZlMGFkOGUwMTA2ODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0TGVnYWN5L2lvcy92aWRlby13aXRoLW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpby5odG1sCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L2lvcy92aWRlby13aXRo
LW11dGVkLWF1ZGlvLWFuZC13ZWJhdWRpby5odG1sCkBAIC0zLDcgKzMsNyBAQAogICAgIDxoZWFk
PgogICAgICAgICA8c2NyaXB0PgogICAgICAgICBmdW5jdGlvbiBnbygpIHsKLSAgICAgICAgICAg
IHZhciBhdWRpb0NvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgICAg
ICB2YXIgYXVkaW9Db250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogICAgICAgICAgICAgYXVk
aW9Db250ZXh0LnJlc3VtZSgpOwogCiAgICAgICAgICAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZmExZDY4YmQ0OGU1MjQ1
M2RiNDdkYmZhNGJmZTdmYzNlZWJmZDQ5Li4zNTlkNTcyYzIwZjA2NTdlMDE3YjczZWI3NjY3NTli
ZjU0Yzg2Y2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM1IEBACisyMDIwLTA5LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBvZmYgdGhlIGxlZ2FjeSBwcmVm
aXhlZCBXZWJBdWRpbyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBvcnQgZXhpc3RpbmcgbGF5b3V0IHRlc3RzIGZyb20gdGhlIHByZWZpeGVkIFdl
YkF1ZGlvIEFQSSB0byB0aGUgbmV3CisgICAgICAgIHVucHJlZml4ZWQgdmVyc2lvbi4KKworICAg
ICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5o
dG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3BlbmRlZC1hdWRpb2Nv
bnRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS13ZWJh
dWRpby5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtZGV2aWNlcy1lbnVt
ZXJhdGUtZGV2aWNlcy5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJl
YW10cmFjay1hdWRpby1jbG9uZS5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbW9j
ay1tZWRpYS1zb3VyY2Utd2ViYXVkaW8uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1h
dWRpby1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLW9ucmVtb3ZldHJhY2suaHRtbDoKKyAgICAgICAgKiBo
dHRwL3dwdC93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9jb250ZXh0LXN0b3BwZWQtaWZyYW1lLmh0
bWw6CisgICAgICAgICogcGxhdGZvcm0vaW9zL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0
LXNpemluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzOgorICAgICAgICAqIHdlYmF1ZGlvL2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sOgorICAg
ICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWJhdWRpby9hdWRpb2J1ZmZlci1jcmFzaC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1
ZGlvYnVmZmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlci1u
ZXV0ZXIuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlci5odG1sOgorICAgICAg
ICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sOgorICAgICAg
ICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWVuZGVkLmh0bWw6CisgICAgICAgICogd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbXVsdGktY2hhbm5lbHMuaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xh
dGVkLWxvb3AuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdh
dGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xhdGVkLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWxvb3AuaHRtbDoKKyAgICAg
ICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUuaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1ub3QtZ2NlZC11bnRpbC1l
bmRlZC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNr
U3RhdGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVm
ZmVyc291cmNlLXBsYXliYWNrU3RhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1zdGFydC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Vu
b2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVm
ZmVyc291cmNlbm9kZS1sZWdhY3ktYXBpLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9j
aGFubmVsbWVyZ2VyLWJhc2ljLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jaGFubmVs
bWVyZ2VyLXN0ZXJlby5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0
dGVyLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2UtdGhyb3dp
bmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvY29udGV4dC1wcm9taXNl
LXRocm93aW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2Uu
aHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24tYXVkaW9i
dWZmZXJzb3VyY2Vub2RlLXN0YXJ0Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250
ZXh0LXJlc3RyaWN0aW9uLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0
YXRlLWludGVycnVwdGVkLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0
YXRlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb25vZGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRlc2lnbmFsLmh0bWw6CisgICAgICAgICogd2Vi
YXVkaW8vYXVkaW9wYXJhbS1zdW1taW5nanVuY3Rpb24uaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb3Byb2Nlc3NpbmdldmVudC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1dG9tYXRp
Yy1wdWxsLW5vZGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1v
bm8uaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9jb252b2x2ZXItY2hhbm5lbHMuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9jb252b2x2ZXItc2V0QnVmZmVyLWRpZmZlcmVudC1zYW1wbGVyYXRl
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vY29udm9sdmVyLXNldEJ1ZmZlci1udWxsLmh0bWw6
CisgICAgICAgICogd2ViYXVkaW8vY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UtbnVsbC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UtbnVsbC5o
dG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLWJhc2ljLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS1iYXNpYy5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sOgorICAg
ICAgICAqIHdlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sOgorICAgICAg
ICAqIHdlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtbm9uZGVmYXVsdC1kZWxheS5odG1sOgorICAgICAg
ICAqIHdlYmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlv
L2RlbGF5bm9kZS1tYXhkZWxheWxpbWl0Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGVsYXlu
b2RlLXNjaGVkdWxpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9kaXN0YW5jZS1leHBvbmVudGlhbC5odG1sOgorICAgICAgICAq
IHdlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kaXN0
YW5jZS1saW5lYXIuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9keW5hbWljc2NvbXByZXNzb3It
YmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9maW5pc2hlZC1hdWRpby1idWZmZXItc291
cmNlLW5vZGVzLXNob3VsZC1iZS1jb2xsZWN0YWJsZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlv
L2dhaW4tYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9nYWluLmh0bWw6CisgICAgICAg
ICogd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUuaHRtbDoKKyAgICAg
ICAgKiB3ZWJhdWRpby9taXhpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9vZmZsaW5lYXVk
aW9jb250ZXh0LWdjLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vb2ZmbGluZWF1ZGlvY29udGV4
dC1yZXN0cmljdGlvbi5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL29zY2lsbGF0b3Jub2RlLWxl
Z2FjeS1hcGktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL29zY2lsbGF0b3Jub2Rl
LWxlZ2FjeS1hcGkuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9wYWdlLWNhbnN0YXJ0bWVkaWEu
aHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1sOgorICAgICAgICAqIHdl
YmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIHdlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5o
dG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0LmpzOgor
ICAgICAgICAocnVuRGVjb2RpbmdUZXN0KToKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMv
YXVkaW9idWZmZXJzb3VyY2UtZW5kZWQtZGV0YWNoZWQtZnJhbWUtaWZyYW1lLmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy1sZWdhY3kuanM6Cisg
ICAgICAgIChjcmVhdGVBdWRpb0dyYXBoQW5kVGVzdCk6CisgICAgICAgICogd2ViYXVkaW8vcmVz
b3VyY2VzL2NvbXBhdGliaWxpdHkuanM6IFJlbW92ZWQuCisgICAgICAgICogd2ViYXVkaW8vcmVz
b3VyY2VzL2phdmFzY3JpcHRhdWRpb25vZGUtdGVzdGluZy5qczoKKyAgICAgICAgKHJ1bkpTTm9k
ZVRlc3QpOgorICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9vc2NpbGxhdG9yLXRlc3Rpbmct
bGVnYWN5LmpzOgorICAgICAgICAoZ2VuZXJhdGVFeHBvbmVudGlhbE9zY2lsbGF0b3JTd2VlcCk6
CisgICAgICAgICogd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9zaWxlbmNlLWFmdGVyLXBsYXliYWNrLmh0bWw6CisgICAgICAgICog
d2ViYXVkaW8vc2lsZW50LWF1ZGlvLWludGVycnVwdGVkLWluLWJhY2tncm91bmQuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sOgorICAgICAgICAq
IHdlYmF1ZGlvL3Rlc3QtYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby91cC1taXhpbmct
bW9uby01MS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3VwLW1peGluZy1tb25vLXN0ZXJlby5o
dG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3VwLW1peGluZy1zdGVyZW8tNTEuaHRtbDoKKyAgICAg
ICAgKiB3ZWJhdWRpby93YXZlc2hhcGVyLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vd2ViLWF1
ZGlvLWlzLXBsYXlpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby93ZWJhdWRpby1nYy5odG1s
OgorICAgICAgICAqIHdlYmF1ZGlvL3dlYmtpdG9mZmxpbmVhdWRpb2NvbnRleHQtc3RhcnRSZW5k
ZXJpbmctY3Jhc2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL3dlYmtpdG9mZmxp
bmVhdWRpb2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2guaHRtbDoKKyAgICAgICAgKiB3ZWJy
dGMvYXVkaW8tcGVlci1jb25uZWN0aW9uLWc3MjIuaHRtbDoKKyAgICAgICAgKiB3ZWJydGMvYXVk
aW8tcGVlci1jb25uZWN0aW9uLXdlYmF1ZGlvLmh0bWw6CisgICAgICAgICogd2VicnRjL2Nsb25l
LWF1ZGlvLXRyYWNrLmh0bWw6CisgICAgICAgICogd2VicnRjL2dldFVzZXJNZWRpYS13ZWJhdWRp
by1hdXRvcGxheS5odG1sOgorICAgICAgICAqIHdlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8t
bXV0ZS5odG1sOgorICAgICAgICAqIHdlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tbXV0ZTIu
aHRtbDoKKyAgICAgICAgKiB3ZWJydGMvcGVlci1jb25uZWN0aW9uLWNyZWF0ZU1lZGlhU3RyZWFt
RGVzdGluYXRpb24uaHRtbDoKKyAgICAgICAgKiB3ZWJydGMvcGVlci1jb25uZWN0aW9uLXJlbW90
ZS1hdWRpby1tdXRlLmh0bWw6CisgICAgICAgICogd2VicnRjL3BlZXItY29ubmVjdGlvbi1yZW1v
dGUtYXVkaW8tbXV0ZTIuaHRtbDoKKyAgICAgICAgKiB3ZWJydGMvcm91dGluZXMuanM6CisKIDIw
MjAtMDktMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZS9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRt
bCBpcyBjcmFzaGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOGQyYzM5OTAy
MzRmMWM5ODQwNzQ2OTk4NjAwMzhiYzY3YWRhN2U1YS4uMmVlZDQ3ODg1ZmJhNDgyMTExMTc2OGE2
M2VmZjg2OTg3Y2RiOTU2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjAtMDktMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBUdXJuIG9mZiB0aGUgbGVnYWN5IHByZWZpeGVkIFdlYkF1ZGlvIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2ODg2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxp
bmUgdGVzdCB0aGF0IGlzIG5vdyBwYXNzaW5nLgorCiAyMDIwLTA5LTIzICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlh
RWxlbWVudC5zZXRTaW5rSWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbAppbmRleCBhYWFlNTEwZDU3
MTJmMWNkYzgzZDUwMzgyMGNkOGFlMjk0ZWZjZDdmLi45MDUxNTZkYjY0M2M5OWY4MjBmZjA1NDhl
MWFhNTk1ZGFkNDNhMTNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5odG1sCkBAIC0yOSw3ICsyOSw3
IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7
CiB9LCBmYWxzZSk7CiAKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24o
KSB7Ci0gICAgYXVkaW9Db250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwg
c2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgYXVkaW9Db250
ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CiAgICAgYnVmZmVyTG9hZGVyID0gbmV3IEJ1ZmZlckxvYWRlcigK
ICAgICAgICAgYXVkaW9Db250ZXh0LAogICAgICAgICBbICIuLi8uLi93ZWJhdWRpby9yZXNvdXJj
ZXMvaHlwZXItcmVhbGl0eS9ici1qYW0tbG9vcC53YXYiLCBdLApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0
Lmh0bWwKaW5kZXggODRhYjgwMjFhNjJiNGUzY2RlNDFhYjU2ZTdhZjUwYjUxMjhjYWE4NC4uN2Zm
MjA5NTIxYjgzZWEwNTc4YTYyNWZmMDZkYzQwNDUyZGMwMWU5YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29u
dGV4dC5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdl
aGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiB9LCBmYWxzZSk7CiAKIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7Ci0gICAgYXVkaW9Db250ZXh0ID0gbmV3IHdlYmtp
dEF1ZGlvQ29udGV4dCgpOworICAgIGF1ZGlvQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsK
IAogICAgIG9zY2lsbGF0b3IgPSBhdWRpb0NvbnRleHQuY3JlYXRlT3NjaWxsYXRvcigpOwogICAg
IG9zY2lsbGF0b3IuZnJlcXVlbmN5LnZhbHVlID0gMzAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVuZGVkLWF1ZGlvY29udGV4dC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVuZGVkLWF1ZGlvY29udGV4
dC5odG1sCmluZGV4IDE3ZWNjMGE0OTY0NzY3YTBlZGMxZjA0NWEyNGNjNDQ2Yzk4OTJhMjMuLmQ5
YjgzZTVkYTA5ZGRiOWJlM2ZjMGZkYzRhYjcxMjZjMjcxM2RiNzEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3BlbmRlZC1hdWRpb2NvbnRleHQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5kZWQtYXVk
aW9jb250ZXh0Lmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
InBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKIAogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBmdW5jdGlvbigpIHsKICAgICAvLyBUaGUgbmV3bHkgY29uc3RydWN0ZWQgQXVkaW9D
b250ZXh0IGlzIGluaXRpYWxseSBpbiBzdXNwZW5kZWQgc3RhdGUuCi0gICAgYXVkaW9Db250ZXh0
ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIGF1ZGlvQ29udGV4dCA9IG5ldyBBdWRp
b0NvbnRleHQoKTsKIAogICAgIC8vIE5lZWRzIHRvIGhhcHBlbiBvdXRzaWRlIHRoZSBvbmxvYWQg
aGFuZGxlciBzbyB0aGF0IGEgaGlzdG9yeSBpdGVtIGlzIGNyZWF0ZWQuCiAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
Z2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2dldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sCmluZGV4IDQwMDE0OWUwZGQ5MjBiZmY2MzE2MjIw
ZmRjZDk1NmMyNDBiMzVlZjkuLmM1NzZjZjdkNTkxMTE1ZTJlNWFjM2JjOWVhMWQ5OGVmZWYxMTU3
MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXdlYmF1ZGlvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtd2ViYXVkaW8uaHRtbApAQCAtMTgsNyArMTgsNyBAQCBwcm9taXNlX3Rlc3QoKHRlc3Qp
ID0+IHsKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
ICAgICAgICAgICAgIGZpbmlzaFRlc3QgPSByZXNvbHZlOwogICAgICAgICAgICAgZXJyb3JUZXN0
ID0gcmVqZWN0OwotICAgICAgICAgICAgdmFyIGF1ZGlvQ29udGV4dCA9IG5ldyB3ZWJraXRBdWRp
b0NvbnRleHQoKTsKKyAgICAgICAgICAgIHZhciBhdWRpb0NvbnRleHQgPSBuZXcgQXVkaW9Db250
ZXh0KCk7CiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gYXVkaW9Db250ZXh0LmNyZWF0ZVNjcmlw
dFByb2Nlc3NvcigyMDQ4LCAxLCAxKTsKICAgICAgICAgICAgIHNjcmlwdC5vbmF1ZGlvcHJvY2Vz
cyA9IChldmVudCkgPT4gewogICAgICAgICAgICAgICAgIHZhciBzcXVhcmVkU3VtID0gMC4wOwpA
QCAtNTIsNyArNTIsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25z
dCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1
ZGlvOiB7ZGV2aWNlSWQ6IHRydWV9fSk7CiAgICAgaW50ZXJuYWxzLnNldE1vY2tBdWRpb1RyYWNr
Q2hhbm5lbE51bWJlcihzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgMSk7CiAKLSAgICB2YXIg
YXVkaW9Db250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIHZhciBhdWRpb0Nv
bnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgdmFyIHNjcmlwdCA9IGF1ZGlvQ29udGV4
dC5jcmVhdGVTY3JpcHRQcm9jZXNzb3IoMjA0OCwgMSwgMSk7CiAgICAgbGV0IHNvdXJjZSA9IGF1
ZGlvQ29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShzdHJlYW0pOwogICAgIHNvdXJjZS5j
b25uZWN0KHNjcmlwdCk7CkBAIC03Myw3ICs3Myw3IEBAIHByb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4gewogICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUsIHZpZGVvOiBmYWxzZSB9KTsKICAgICBpbnRlcm5h
bHMudXNlTW9ja0F1ZGlvRGVzdGluYXRpb25Db2NvYSgpOwogCi0gICAgdmFyIGF1ZGlvQ29udGV4
dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgYXVkaW9Db250ZXh0ID0gbmV3
IEF1ZGlvQ29udGV4dCgpOwogICAgIHZhciBhbmFseXplciA9IGF1ZGlvQ29udGV4dC5jcmVhdGVB
bmFseXNlcigpOwogICAgIGFuYWx5emVyLmZmdFNpemUgPSAyNTY7CiAgICAgbGV0IHNvdXJjZSA9
IGF1ZGlvQ29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShzdHJlYW0pOwpAQCAtMTAxLDcg
KzEwMSw3IEBAIGFzeW5jIGZ1bmN0aW9uIGNoZWNrRm9yTm9pc2Uoc3RyZWFtLCBjb3VudGVyKQog
fQogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKLSAgICBjb250ZXh0ID0gbmV3IHdl
YmtpdEF1ZGlvQ29udGV4dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRp
YVBlcm1pc3Npb24odHJ1ZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vbWVkaWEtZGV2aWNlcy1lbnVtZXJhdGUtZGV2aWNlcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1kZXZpY2VzLWVudW1lcmF0ZS1kZXZpY2VzLmh0bWwKaW5k
ZXggNmE5OWRiYTU5NDJlOGFhZmU0MjA0ZGExYmFjOGMyODUwZGI1ZTMxNy4uYjgzZWMxNDhjYjE1
ODlmMDczOGFjN2FiNjhmOGEyNTg2NDU1MzdmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9tZWRpYS1kZXZpY2VzLWVudW1lcmF0ZS1kZXZpY2VzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1kZXZpY2VzLWVudW1lcmF0ZS1kZXZp
Y2VzLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24o
dHJ1ZSk7CiAKLSAgICAgICAgICAgIG5ldyB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KCkuY3Jl
YXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlvbigpOworICAgICAgICAgICAgbmV3IHdpbmRvdy5BdWRp
b0NvbnRleHQoKS5jcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCkKICAgICAgICAg
ICAgICAgICAudGhlbigoZGV2aWNlcykgPT4gewogICAgICAgICAgICAgICAgICAgICBkZXZpY2VD
b3VudCA9IGRldmljZXMubGVuZ3RoOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLWF1ZGlvLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stYXVkaW8tY2xvbmUuaHRtbAppbmRleCA1
YmE0YWIzYWQyZGNhMDdkZDRmNzBmMjM0ZmJjYjNlZjViYjhlYTZlLi4yMjY3MDRjNmVhYzVhMWM2
ZWRjNWI3YzMxNDI1OGFmODdmOTg0MGVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stYXVkaW8tY2xvbmUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stYXVkaW8tY2xvbmUuaHRtbApA
QCAtMTAsNyArMTAsNyBAQAogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0PgotICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIHZhciBjb250ZXh0ID0gbmV3IEF1
ZGlvQ29udGV4dCgpOwogICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICAgICAgICBj
b25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
IGF1ZGlvIDogdHJ1ZSB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9tb2NrLW1lZGlhLXNvdXJjZS13ZWJhdWRpby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9tb2NrLW1lZGlhLXNvdXJjZS13ZWJhdWRpby5odG1sCmluZGV4IGNlOGFiZWZk
Mjc4M2RiZmIzNjBjNjg5YzU3ZThkYzM2ODc3NmVjNGYuLmFiZTM0M2VjNzE4ODQ0NjEzNjYyZjdh
YzY4ZTMzNWU5YTU4MzIzYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vbW9jay1tZWRpYS1zb3VyY2Utd2ViYXVkaW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL21vY2stbWVkaWEtc291cmNlLXdlYmF1ZGlvLmh0bWwKQEAgLTE3LDcgKzE3
LDcgQEAKIAogICAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgoKSA9PiB7CiAgICAgICAgIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pLnRoZW4oKHN0cmVh
bSkgPT4gewotICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KCk7CisgICAgICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAg
ICAgICAgIHZhciBzb3VyY2VOb2RlID0gY29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShz
dHJlYW0pOwogICAgICAgICAgICAgdmFyIGFuYWx5c2VyID0gY29udGV4dC5jcmVhdGVBbmFseXNl
cigpOwogICAgICAgICAgICAgdmFyIGdhaW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJl
bW90ZS1hdWRpby1hbGxvd2VkLWNyb3Nzb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29y
aWdpbi5odG1sCmluZGV4IGQwNWU3ZjY5MzViODYyMzZlYTYyYjYyOGVjNjIzZTNlNGU1ZjdhZTMu
LjA1YWExNTU3YWMzNGI2NTRjMGY4ZWE1MGExMWQ4MGEyMDBlYjRmMDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRp
by1hbGxvd2VkLWNyb3Nzb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS93ZWJhdWRpby1yZW5kZXItcmVtb3RlLWF1ZGlvLWFsbG93ZWQtY3Jvc3NvcmlnaW4u
aHRtbApAQCAtMTcsNyArMTcsNyBAQAogICAgICAgICBsZXQgdHlwZSA9IG1pbWVUeXBlRm9yRXh0
ZW5zaW9uKG1lZGlhRmlsZS5zcGxpdCgnLicpLnBvcCgpKTsKICAgICAgICAgYXVkaW8uc3JjID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvdmlkZW8tY3Jvc3Mtb3Jp
Z2luLWFsbG93LnBocD9uYW1lPSIgKyBtZWRpYUZpbGUgKyAiJnR5cGU9IiArIHR5cGU7CiAKLSAg
ICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICAgICAgY29udGV4
dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgbGV0IG1lZGlhU291cmNlID0gY29udGV4
dC5jcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UoYXVkaW8pOwogICAgICAgICBsZXQgYW5hbHlzZXIg
PSBjb250ZXh0LmNyZWF0ZUFuYWx5c2VyKCk7CiAgICAgICAgIGFuYWx5c2VyLmZmdFNpemUgPSAz
MjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8t
cmVuZGVyLXJlbW90ZS1hdWRpby1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYmxv
Y2tlZC1uby1jcm9zc29yaWdpbi5odG1sCmluZGV4IDBlOGMxMGM2ZDc1MWZiNWU2MTMyNGNlNTI2
Y2JiY2EzNWJlMjI3OTUuLmFhZTM4ZGNiOTNiMTU5Y2NmOWYwYmU0YmRlNTRhM2UzN2E2NTMzNWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVu
ZGVyLXJlbW90ZS1hdWRpby1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS93ZWJhdWRpby1yZW5kZXItcmVtb3RlLWF1ZGlvLWJs
b2NrZWQtbm8tY3Jvc3NvcmlnaW4uaHRtbApAQCAtMTYsNyArMTYsNyBAQAogICAgICAgICBsZXQg
dHlwZSA9IG1pbWVUeXBlRm9yRXh0ZW5zaW9uKG1lZGlhRmlsZS5zcGxpdCgnLicpLnBvcCgpKTsK
ICAgICAgICAgYXVkaW8uc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zZWN1cml0eS9yZXNv
dXJjZXMvdmlkZW8tY3Jvc3Mtb3JpZ2luLWFsbG93LnBocD9uYW1lPSIgKyBtZWRpYUZpbGUgKyAi
JnR5cGU9IiArIHR5cGU7CiAKLSAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQoKTsKKyAgICAgICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgbGV0
IG1lZGlhU291cmNlID0gY29udGV4dC5jcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UoYXVkaW8pOwog
ICAgICAgICBsZXQgYW5hbHlzZXIgPSBjb250ZXh0LmNyZWF0ZUFuYWx5c2VyKCk7CiAgICAgICAg
IGFuYWx5c2VyLmZmdFNpemUgPSAzMjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1vbnJlbW92ZXRyYWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItb25yZW1vdmV0cmFjay5o
dG1sCmluZGV4IGI4MDhiNjlhMzI4ZDRhODc4YmY5MDIwNWEyMTYxZjdkYmZiMjRhZmEuLjYxMTQw
Y2YyNzBjNjhkY2YzYWQ5ZjMyYTYxYmMzYjBmYTMzYTJkMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1vbnJlbW92ZXRyYWNrLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LW9ucmVtb3ZldHJhY2suaHRtbApAQCAtMTIsNyArMTIsNyBAQAogPC9jYW52YXM+CiA8c2NyaXB0
Pgogc2V0dXAoeyBzaW5nbGVfdGVzdDogdHJ1ZSB9KTsKLWNvbnN0IGFjID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCgpOworY29uc3QgYWMgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiBjb25zdCBvc2Mg
PSBhYy5jcmVhdGVPc2NpbGxhdG9yKCk7CiBjb25zdCBkZXN0ID0gYWMuY3JlYXRlTWVkaWFTdHJl
YW1EZXN0aW5hdGlvbigpOwogY29uc3QgYXVkaW8gPSBkZXN0LnN0cmVhbTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb2NvbnRleHQtc3Rv
cHBlZC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1ZGlvL3Jlc291cmNl
cy9hdWRpb2NvbnRleHQtc3RvcHBlZC1pZnJhbWUuaHRtbAppbmRleCA4YjFkY2EwYTYzMWFlZjk1
OGI3NGFkMTEzMDFkYmVjNmFiNGRlNmJjLi42ODY5MGIwOTk2MDIzN2UwZmQ5ZGFkMDFlOTliMWQ5
MzQ0MTU4Yzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdWRpby9yZXNv
dXJjZXMvYXVkaW9jb250ZXh0LXN0b3BwZWQtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvY29udGV4dC1zdG9wcGVkLWlmcmFtZS5o
dG1sCkBAIC0xLDMgKzEsMyBAQAogPHNjcmlwdD4KLXdpbmRvdy5hdWRpb0NvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KCk7Cit3aW5kb3cuYXVkaW9Db250ZXh0ID0gbmV3IEF1ZGlvQ29u
dGV4dCgpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby9oaXN0b3Jp
Y2FsLWV4cGVjdGVkLnR4dAppbmRleCBiZTk0YmIyYmY2OWU0MzUzZGU2MjBlMzkxMmEzMWI3NGNj
MjU3ZjdkLi43YmZkODU2MWE1YTFhZjk1MTZiOGMxMjVjZDY3MGE4YTlhMzk1YWZkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlv
L2hpc3RvcmljYWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vaGlzdG9yaWNhbC1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw3IEBACiAKLUZBSUwgd2Via2l0QXVkaW9Db250ZXh0IGludGVyZmFjZSBzaG91bGQgbm90
IGV4aXN0IGFzc2VydF9mYWxzZTogZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgd2Via2l0
QXVkaW9QYW5uZXJOb2RlIGludGVyZmFjZSBzaG91bGQgbm90IGV4aXN0IGFzc2VydF9mYWxzZTog
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCBp
bnRlcmZhY2Ugc2hvdWxkIG5vdCBleGlzdCBhc3NlcnRfZmFsc2U6IGV4cGVjdGVkIGZhbHNlIGdv
dCB0cnVlCitQQVNTIHdlYmtpdEF1ZGlvQ29udGV4dCBpbnRlcmZhY2Ugc2hvdWxkIG5vdCBleGlz
dCAKK1BBU1Mgd2Via2l0QXVkaW9QYW5uZXJOb2RlIGludGVyZmFjZSBzaG91bGQgbm90IGV4aXN0
IAorUEFTUyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0IGludGVyZmFjZSBzaG91bGQgbm90IGV4
aXN0IAogUEFTUyBkb3BwbGVyRmFjdG9yIG1lbWJlciBzaG91bGQgbm90IGV4aXN0IG9uIHRoZSBB
dWRpb0xpc3RlbmVyLiAKIFBBU1Mgc3BlZWRPZlNvdW5kIG1lbWJlciBzaG91bGQgbm90IGV4aXN0
IG9uIHRoZSBBdWRpb0xpc3RlbmVyLiAKIFBBU1Mgc2V0VmVsb2NpdHkgbWVtYmVyIHNob3VsZCBu
b3QgZXhpc3Qgb24gdGhlIEF1ZGlvTGlzdGVuZXIuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNl
ci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dAppbmRleCAzZjQwZmY5OTk4YzNlMDc0NWNkNWI3YTNl
M2JjOGI0OWJiZmZhODNlLi5kYTBiMWVlMTE5NzgzNGQzZmQ3Zjg3ODhhNjFlYjljNDg5N2Y4OTg1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mvd2ViYXVkaW8vcmVhbHRpbWVh
bmFseXNlci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dApA
QCAtMzksNyArMzksNyBAQCBQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6
ZSA2NTUzNi4KIFBBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDY1NTM3
LgogUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTMxMDcyLgogUEFT
UyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTMxMDczLgotUEFTUyB3ZWJr
aXRBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJyYXkgcmVzaXpp
bmdzLgorUEFTUyBBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJy
YXkgcmVzaXppbmdzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKaW5kZXgg
NWE2MWFmYTc1MTJhY2ZkMzYwZWIxMDkzMmZiM2ZiYWZjMGE2OGUwZi4uY2Y5MTY1YTMyMDc0MTYy
MDQ4NzIyYTg2NTdkYzBjZTMxZDVhYWZmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcwpAQCAtMjMsMTMgKzIzLDYgQEAgaWYgKHNlbGYudGVzdFJ1bm5lcikg
ewogICAgICAgICBzZXRUaW1lb3V0KHRpbWVvdXQsIHRlc3RSdW5uZXIudGltZW91dCAqIDAuOSk7
CiAKICAgICBpZiAobG9jYXRpb24ucG9ydCA9PSA4ODAwIHx8IGxvY2F0aW9uLnBvcnQgPT0gOTQ0
MykgewotICAgICAgICAvLyBNYWtlIFdlYkF1ZGlvIG1hcCB0byB3ZWJraXRXZWJBdWRpbyBmb3Ig
V1BUIHRlc3RzCi0gICAgICAgIGlmICh3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0ICYmICF3aW5k
b3cuQXVkaW9Db250ZXh0KQotICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNlbGYs
ICJBdWRpb0NvbnRleHQiLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsICJ3
ZWJraXRBdWRpb0NvbnRleHQiKSk7Ci0gICAgICAgIGlmICh3aW5kb3cud2Via2l0T2ZmbGluZUF1
ZGlvQ29udGV4dCAmJiAhd2luZG93Lk9mZmxpbmVBdWRpb0NvbnRleHQpCi0gICAgICAgICAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoc2VsZiwgIk9mZmxpbmVBdWRpb0NvbnRleHQiLCBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsICJ3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
IikpOwotICAgICAgICBpZiAod2luZG93LndlYmtpdEF1ZGlvUGFubmVyTm9kZSAmJiAhd2luZG93
LlBhbm5lck5vZGUpCi0gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2VsZiwgIlBh
bm5lck5vZGUiLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGYsICJ3ZWJraXRB
dWRpb1Bhbm5lck5vZGUiKSk7CiAgICAgICAgIGlmIChzZWxmLmludGVybmFscykgewogICAgICAg
ICAgICAgLy8gVXNlIDQ0MTAwIHNhbXBsZSByYXRlIGJ5IGRlZmF1bHQgaW5zdGVhZCBvZiB0aGUg
aGFyZHdhcmUgc2FtcGxlIHJhdGUgc28gdGhhdCB3ZSBnZXQgY29uc2lzdGVudCByZXN1bHRzIGFj
cm9zcyBtYWNoaW5lcy4KICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXREZWZhdWx0
QXVkaW9Db250ZXh0U2FtcGxlUmF0ZSg0NDEwMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hbmFseXNlci1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Fu
YWx5c2VyLWV4Y2VwdGlvbi5odG1sCmluZGV4IGM4OTIxMjUzOTJiZTc4YmIzZWUyYmUwYzZlNjYw
NTU0Mjc2MDhjYWEuLjFmZmY5YzQ1MTg2NDIzODEzNDM4NWU2MTNiMDhlM2FhZWYxZWM5ZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sCkBAIC0yMiw3
ICsyMiw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAgICB2YXIgc2FtcGxlUmF0ZSA9IDQ0
MTAwLjA7CiAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gMzI7Ci0gICAgdmFyIGNvbnRleHQgPSBu
ZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0
ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJP
ZkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgYW5hbHlzZXIgPSBjb250ZXh0LmNyZWF0ZUFuYWx5
c2VyKCk7CiAgICAgYW5hbHlzZXIuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItY3Jhc2gtZXhwZWN0ZWQudHh0
CmluZGV4IGNhYzM5ZmI0M2E0OThjMjdmODg5MjNmZjM4YzllMmU1MTY5Yjc1YjcuLmI5NTc3ZDlm
ZTEwZDYzMjMxY2EzN2JjMWY4ZjEwMThkZTM1ZTFjMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBA
IEF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgbGFyZ2UgQXVkaW9CdWZmZXIgc2hvdWxkIG5vdCBjcmFz
aC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGNvbnRleHQgPSBuZXcgd2Vi
a2l0QXVkaW9Db250ZXh0KCkuY3JlYXRlQnVmZmVyKDEsIC0xLCA0NDEwMCkgdGhyZXcgZXhjZXB0
aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBDaGFubmVsIHdhcyBub3QgYWJsZSB0byBiZSBjcmVhdGVk
Li4KK1BBU1MgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKS5jcmVhdGVCdWZmZXIoMSwgLTEs
IDQ0MTAwKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IENoYW5uZWwgd2FzIG5v
dCBhYmxlIHRvIGJlIGNyZWF0ZWQuLgogUEFTUyBUZXN0IHBhc3NlZCBiZWNhdXNlIGlmIGl0IGRp
ZG4ndCBjcmFzaC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItY3Jhc2guaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLWNyYXNoLmh0bWwKaW5kZXggZTEwNGZiNThmMzc1NGQ1
NWE0NTE5ZTlmYTVhZjE1OWEwMzcxMGYyOC4uZjg5MWI5NjlkZWVlNjRiNWQ3MjYyZDg0NWJlMWIw
NWE0MTE1YThkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXIt
Y3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1jcmFzaC5o
dG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxib2R5PgogICAgICAgICA8c2NyaXB0PgogICAgICAg
ICAgICAgZGVzY3JpcHRpb24oIkF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgbGFyZ2UgQXVkaW9CdWZm
ZXIgc2hvdWxkIG5vdCBjcmFzaC4iKTsKLSAgICAgICAgICAgIHNob3VsZFRocm93KCJjb250ZXh0
ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpLmNyZWF0ZUJ1ZmZlcigxLCAtMSwgNDQxMDApIik7
CisgICAgICAgICAgICBzaG91bGRUaHJvdygiY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKS5j
cmVhdGVCdWZmZXIoMSwgLTEsIDQ0MTAwKSIpOwogICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGVz
dCBwYXNzZWQgYmVjYXVzZSBpZiBpdCBkaWRuJ3QgY3Jhc2guIik7CiAgICAgICAgIDwvc2NyaXB0
PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1leHBlY3RlZC50eHQKaW5k
ZXggZTkxYjQ3OTRlOGI5ODY3NTFhYzcwNDgwZmRlNGQxMDQ1ZDYzYjQwZS4uOWIyODBkZTk3NDY0
MTU0YjMxY2Y1M2NkNzI2ZjAwMmQ0MDVjNWQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvYnVmZmVyLWV4cGVjdGVkLnR4dApAQCAtMTQsNyArMTQsNiBAQCBQQVNTIGdldENoYW5u
ZWxEYXRhKDMpIHJldHVybnMgYSBGbG9hdDMyQXJyYXkgb2JqZWN0LgogUEFTUyBFeGNlcHRpb24g
aGFzIGJlZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIGluZGV4IGlzIG5vdCBsZXNzIHRoYW4gbnVt
YmVyT2ZDaGFubmVscy4KIFBBU1MgYnVmZmVyLmdhaW4gaXMgdW5kZWZpbmVkLgogUEFTUyBBdWRp
b0J1ZmZlci5wcm90b3R5cGUuZ2FpbiBpcyB1bmRlZmluZWQuCi1QQVNTIGNvbnRleHQuY3JlYXRl
QnVmZmVyKG51bGwsIGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAx
ICgnYnVmZmVyJykgdG8gd2Via2l0QXVkaW9Db250ZXh0LmNyZWF0ZUJ1ZmZlciBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIEFycmF5QnVmZmVyLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2J1ZmZlci1uZXV0ZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5l
dXRlci5odG1sCmluZGV4IDU3ZTQ0YWRmNzg4NWM2NTk1MTExMjZmNTViYzU0ZWNjM2MwNDc4Mjku
Ljg3YmMwNzViNzJkNmU1MGNlMWNhNGZlMzhmNWU3ODFiMTAzMzRjZGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci5odG1sCkBAIC0xNSw3ICsxNSw3IEBACiAg
ICAgICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgICAgdmFyIG51bWJl
ck9mRnJhbWVzID0gc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kczsKLSAgICAgICAgICAgIGNv
bnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywg
c2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRl
eHQoMSwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOwogICAgICAgICAgICAgc291cmNlQnVm
ZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgbnVtYmVyT2ZGcmFtZXMsIDAuNSk7
CiAgICAgICAgICAgICB2YXIgZGF0YSA9IHNvdXJjZUJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKS5i
dWZmZXI7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci5odG1sCmluZGV4IDVmNjZlNmQy
OWUzYzgwMDgwYWRiNDU4Mjk5YWM0ZDU1NDdmYjdhMTguLmFlNzZkNDIyNjk4NjU2YWVjMjNmMjA0
ZmY3YWJjNzRlOTJhMjc2MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
YnVmZmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXIuaHRtbApA
QCAtMTIsNyArMTIsNyBAQCB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjAKIHZhciBsZW5ndGhJblNl
Y29uZHMgPSAyOwogdmFyIG51bWJlck9mQ2hhbm5lbHMgPSA0OwogCi12YXIgY29udGV4dCA9IG5l
dyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKK3ZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgp
OwogdmFyIGJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKG51bWJlck9mQ2hhbm5lbHMsIHNh
bXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiBpZiAoYnVmZmVyLnNh
bXBsZVJhdGUgPT09IHNhbXBsZVJhdGUpCkBAIC01Miw4ICs1Miw2IEBAIHRyeSB7CiBzaG91bGRC
ZVVuZGVmaW5lZCgiYnVmZmVyLmdhaW4iKTsKIHNob3VsZEJlVW5kZWZpbmVkKCJBdWRpb0J1ZmZl
ci5wcm90b3R5cGUuZ2FpbiIpOwogCi1zaG91bGRUaHJvd0Vycm9yTmFtZSgiY29udGV4dC5jcmVh
dGVCdWZmZXIobnVsbCwgZmFsc2UpIiwgIlR5cGVFcnJvciIpOwotCiA8L3NjcmlwdD4KIAogPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5l
bHMtZXhwZWN0ZWQudHh0CmluZGV4IDI3M2QxY2VkZTMzMTU4NWNlNDBkOWVmMjgzMTU5ZGFlMTY4
Y2NmNTAuLjhjZGUwZWJmMjQ5Y2JiNTYzN2YyZDIxY2MxODU1Nzg1NGJiOGY4MDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFu
bmVscy1leHBlY3RlZC50eHQKQEAgLTMsMTYgKzMsMTYgQEAgVGVzdHMgdGhhdCBBdWRpb0J1ZmZl
clNvdXJjZU5vZGUgdmFsaWRhdGVzIEF1ZGlvQnVmZmVyIGluIC5idWZmZXIgYXR0cmlidXRlIHNl
dHQKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogUEFTUyBzb3VyY2UuYnVmZmVyIGlzIG51
bGwKLVBBU1Mgc291cmNlLmJ1ZmZlciA9IDU3IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRo
ZSBXZWJLaXRBdWRpb0J1ZmZlclNvdXJjZU5vZGUuYnVmZmVyIGF0dHJpYnV0ZSBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIEF1ZGlvQnVmZmVyLgorUEFTUyBzb3VyY2UuYnVmZmVyID0gNTcgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVGhlIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5idWZmZXIgYXR0
cmlidXRlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgQXVkaW9CdWZmZXIuCiBQQVNTIE1vbm8gYnVm
ZmVyIGNhbiBiZSBzZXQuCi1QQVNTIFN0ZXJlbyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgMyBj
aGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgNCBjaGFubmVscyBidWZmZXIgY2FuIGJl
IHNldC4KLVBBU1MgNSBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgNiBjaGFubmVs
cyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgNyBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4K
LVBBU1MgOCBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4KLVBBU1MgOSBjaGFubmVscyBidWZm
ZXIgY2FuIGJlIHNldC4KK1BBU1MgU3RlcmVvIGJ1ZmZlciBjYW4gbm90IGJlIHNldC4KK1BBU1Mg
MyBjaGFubmVscyBidWZmZXIgY2FuIG5vdCBiZSBzZXQuCitQQVNTIDQgY2hhbm5lbHMgYnVmZmVy
IGNhbiBub3QgYmUgc2V0LgorUEFTUyA1IGNoYW5uZWxzIGJ1ZmZlciBjYW4gbm90IGJlIHNldC4K
K1BBU1MgNiBjaGFubmVscyBidWZmZXIgY2FuIG5vdCBiZSBzZXQuCitQQVNTIDcgY2hhbm5lbHMg
YnVmZmVyIGNhbiBub3QgYmUgc2V0LgorUEFTUyA4IGNoYW5uZWxzIGJ1ZmZlciBjYW4gbm90IGJl
IHNldC4KK1BBU1MgOSBjaGFubmVscyBidWZmZXIgY2FuIG5vdCBiZSBzZXQuCiBQQVNTIGNvbnRl
eHQuY3JlYXRlQnVmZmVyKDY0LCAxMDI0LCBjb250ZXh0LnNhbXBsZVJhdGUpIHRocmV3IGV4Y2Vw
dGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogTnVtYmVyIG9mIGNoYW5uZWxzIGNhbm5vdCBiZSBtb3Jl
IHRoYW4gbWF4IHN1cHBvcnRlZC4uCiBQQVNTIHNvdXJjZS5idWZmZXIgaXMgbm90IG51bGwKIFBB
U1Mgc291cmNlLmJ1ZmZlciA9IG51bGwgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMuaHRtbApp
bmRleCBmMGY4N2MxODE0N2FkZTVjYWYwYjY5MWIzYmRhMjFmZDdhN2M5ZWU3Li40M2I5Y2Q2ZTk2
OTU0NDNjNzI0MjAwNmJmNTBjZTQ4NWE0NDY0Y2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWNoYW5uZWxzLmh0bWwKQEAgLTE5LDcgKzE5LDcg
QEAgdmFyIHNvdXJjZTsKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwogICAgIAotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KCk7CisgICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICBzb3VyY2UgPSBjb250
ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogCiAgICAgc2hvdWxkQmVOdWxsKCJzb3VyY2UuYnVm
ZmVyIik7CkBAIC00MCw5ICs0MCw5IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdHJ5IHsK
ICAgICAgICAgdmFyIHN0ZXJlb0J1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKDIsIDEwMjQs
IGNvbnRleHQuc2FtcGxlUmF0ZSk7CiAgICAgICAgIHNvdXJjZS5idWZmZXIgPSBzdGVyZW9CdWZm
ZXI7Ci0gICAgICAgIHRlc3RQYXNzZWQoIlN0ZXJlbyBidWZmZXIgY2FuIGJlIHNldC4iKTsKKyAg
ICAgICAgdGVzdEZhaWxlZCgiU3RlcmVvIGJ1ZmZlciBjYW4gYmUgc2V0LiIpOwogICAgIH0gY2F0
Y2goZSkgewotICAgICAgICB0ZXN0RmFpbGVkKCJTdGVyZW8gYnVmZmVyIGNhbiBub3QgYmUgc2V0
LiIpOworICAgICAgICB0ZXN0UGFzc2VkKCJTdGVyZW8gYnVmZmVyIGNhbiBub3QgYmUgc2V0LiIp
OwogICAgIH0KICAgICAKICAgICAvLyBDaGVjayBidWZmZXJzIHdpdGggbW9yZSB0aGFuIHR3byBj
aGFubmVscy4KQEAgLTUxLDEwICs1MSwxMCBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgICAg
ICAgICAgdmFyIGJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKGksIDEwMjQsIGNvbnRleHQu
c2FtcGxlUmF0ZSk7CiAgICAgICAgICAgICBzb3VyY2UuYnVmZmVyID0gYnVmZmVyOwogICAgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSBpICsgIiBjaGFubmVscyBidWZmZXIgY2FuIGJlIHNldC4iOwot
ICAgICAgICAgICAgdGVzdFBhc3NlZChtZXNzYWdlKTsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
bWVzc2FnZSk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBpICsgIiBjaGFubmVscyBidWZmZXIgY2FuIG5vdCBiZSBzZXQuIjsKLSAgICAgICAgICAgIHRl
c3RGYWlsZWQobWVzc2FnZSk7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKG1lc3NhZ2UpOwogICAg
ICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1
ZmZlcnNvdXJjZS1lbmRlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJz
b3VyY2UtZW5kZWQuaHRtbAppbmRleCBkM2VhNDg1ZDRiZmEwZGE5MDNkOWRjY2IzZTQ4YTVlNmJk
ZGQyYmI5Li42NzI4MzYwYjE2ZTBmN2ViZmU3MWVlZDdmZmVkYWNmMDZkZWRmZjJiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1lbmRlZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWVuZGVkLmh0bWwKQEAg
LTEzLDcgKzEzLDcgQEAKIAogICAgICAgICAgICAgdmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwog
ICAgICAgICAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gMzI7Ci0gICAgICAgICAgICBjb250ZXh0
ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBs
ZVJhdGUpOworICAgICAgICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEs
IG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRl
eHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CiAgICAgICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3Jl
YXRlVGVzdEJ1ZmZlcihjb250ZXh0LCBudW1iZXJPZkZyYW1lcyk7CiAgICAgICAgICAgICBzb3Vy
Y2UuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1tdWx0aS1jaGFubmVscy5odG1sCmluZGV4
IDRiNjZjZmY3NGVjZTE4ZDZlMGI2ZGFiZjI1Zjc0NGIzMDhiOTA1Y2EuLjlkNmE0NTRjNjRhYjQ2
ZWIwMzI2Y2ZjMGY5ZmZjNDhmZDY3MjVlZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbXVsdGktY2hhbm5lbHMuaHRtbApAQCAtMjMs
NyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUg
YXVkaW8gY29udGV4dAogICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAuMDsKLSAgICB2YXIgY29u
dGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25l
TGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCA0NDAs
IHRvbmVMZW5ndGhTZWNvbmRzLCA2KTsgCiAKICAgICB2YXIgc291cmNlID0gY29udGV4dC5jcmVh
dGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0ZS1pbnRlcnBvbGF0ZWQtbG9vcC5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJh
Y2tyYXRlLWludGVycG9sYXRlZC1sb29wLmh0bWwKaW5kZXggZWU0MmRkMDY5YjE4ZGVkMWZmZWY5
YjY4OWY2YzI4ZTE5MzZkNjIwYS4uOWM4MzdjNDAzMGZkYzJiYmJkOWRiNTc1MzUzZWZjYzlkYjNk
MmY2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Ut
bmVnYXRpdmUtcGxheWJhY2tyYXRlLWludGVycG9sYXRlZC1sb29wLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWlu
dGVycG9sYXRlZC1sb29wLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAKICAgICBmdW5jdGlvbiBnbygp
IHsKICAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICAgICAgY29udGV4dCA9IG5l
dyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7
CisgICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJGcmFt
ZXMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNy
ZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAgICAgICBidWZmZXJTb3VyY2UuYnVmZmVyID0gY3JlYXRl
UmFtcChjb250ZXh0LCAwLCAxMjcsIHNvdXJjZUZyYW1lcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUtaW50
ZXJwb2xhdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1u
ZWdhdGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xhdGVkLmh0bWwKaW5kZXggMGY5MTUyNDQzZmZj
ODM0YzI2ZWRmNjRiNjZiOWQyNDQ3ZDZkYzkxYy4uNzgxNmRkNjlmMjRhM2Y0YTRkODJkZDdmYzJk
MTE1Zjg1MjBjN2E5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZm
ZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWludGVycG9sYXRlZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0
ZS1pbnRlcnBvbGF0ZWQuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICAgIGZ1bmN0aW9uIGdvKCkg
ewogICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgICAgICBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsK
KyAgICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckZyYW1l
cywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3Jl
YXRlQnVmZmVyU291cmNlKCk7CiAgICAgICAgIGJ1ZmZlclNvdXJjZS5idWZmZXIgPSBjcmVhdGVS
YW1wKGNvbnRleHQsIDAsIDEyNywgc291cmNlRnJhbWVzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0ZS1sb29w
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1w
bGF5YmFja3JhdGUtbG9vcC5odG1sCmluZGV4IGJlZWMzYWIyNDk2ODU0MzliOGJlZWRkMzJkYzVk
MmZhMWQwOWMwNmUuLmQyN2Q4MTc3ZDE4OGU5ZmJmYjE5MmZhYjQzZDY0OTI0ZTJlMjExZTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZl
LXBsYXliYWNrcmF0ZS1sb29wLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWxvb3AuaHRtbApAQCAtMjYsNyArMjYs
NyBAQAogICAgIGZ1bmN0aW9uIGdvKCkgewogICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAotICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVu
ZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVk
aW9Db250ZXh0KDEsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgdmFyIGJ1
ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CiAgICAgICAgIGJ1ZmZl
clNvdXJjZS5idWZmZXIgPSBjcmVhdGVSYW1wKGNvbnRleHQsIDAsIDEyNywgc291cmNlRnJhbWVz
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5l
Z2F0aXZlLXBsYXliYWNrcmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZm
ZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLmh0bWwKaW5kZXggZWFkNjUxYWFmNDJiMTNl
NGZhMTJmYWQ4OTIyZDM0MDRkODgwZmE2OS4uNjc2OGM3NDM3NTUwZmYxNzNlNjAwOGZjNGE3ODYz
ZDMyM2NhMmUyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJz
b3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLmh0bWwKQEAgLTIzLDcg
KzIzLDcgQEAKICAgICBmdW5jdGlvbiBnbygpIHsKICAgICAgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CiAKLSAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEs
IHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgIHZh
ciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAgICAgICBi
dWZmZXJTb3VyY2UuYnVmZmVyID0gY3JlYXRlUmFtcChjb250ZXh0LCAwLCAxMjcsIHNvdXJjZUZy
YW1lcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJj
ZS1ub3QtZ2NlZC11bnRpbC1lbmRlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2Utbm90LWdjZWQtdW50aWwtZW5kZWQuaHRtbAppbmRleCAwYWQwNjg0YWQzMzVl
NWFlZWY1NmY1OGQxNzkzOTAyMjQ5ZDRhM2UxLi42MDMzMmUxYjI3MWEwMjQ3MGQ0ODcxYTJiYjM5
OWY0MDZjNjkzZjgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZl
cnNvdXJjZS1ub3QtZ2NlZC11bnRpbC1lbmRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5vdC1nY2VkLXVudGlsLWVuZGVkLmh0bWwKQEAgLTEyLDcg
KzEyLDcgQEAKIAogICAgICAgICAgICAgdmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwogICAgICAg
ICAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gMzI7Ci0gICAgICAgICAgICBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUp
OworICAgICAgICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIG51bWJl
ck9mRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBjb250ZXh0
LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAgICAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0
ZVRlc3RCdWZmZXIoY29udGV4dCwgbnVtYmVyT2ZGcmFtZXMpOwogICAgICAgICAgICAgc291cmNl
LmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja1N0YXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWM5NjRjNTNiMWZiNzBhY2M3
MjBmMGEyNTYxMWEzZjE1NWYxYjBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXli
YWNrU3RhdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGVz
dCBBdWRpb0NvbnRleHQgYWN0aXZlU291cmNlQ291bnQgYW5kIEF1ZGlvQnVmZmVyU291cmNlTm9k
ZSBwbGF5YmFja1N0YXRlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLVBBU1MgUmVu
ZGVyaW5nIHRpbWUgaXMgMiBzZWNvbmRzLgotUEFTUyBVTlNDSEVEVUxFRF9TVEFURSBTb3VyY2Ug
aGFzIGJlZW4gY3JlYXRlZAotUEFTUyBTQ0hFRFVMRURfU1RBVEUgICAzIHNlY29uZCBzb3VyY2Ug
c2NoZWR1bGVkIHRvIHN0YXJ0IGF0IHRpbWUgMwotUEFTUyBQTEFZSU5HX1NUQVRFICAgICAyIHNl
Y29uZCBzb3VyY2Ugc3RhcnRpbmcgYXQgdGltZSAxCi1QQVNTIEZJTklTSEVEX1NUQVRFICAgIDEu
MjUgc2Vjb25kIHNvdXJjZSBzdGFydGluZyBhdCB0aW1lIDAKLVBBU1MgU0NIRURVTEVEX1NUQVRF
ICAgYSBsb29waW5nIDAuNSBzZWNvbmQgc291cmNlIHNjaGVkdWxlZCBhdCB0aW1lIDMKLVBBU1Mg
UExBWUlOR19TVEFURSAgICAgYSBsb29waW5nIDAuNSBzZWNvbmQgc291cmNlIHN0YXJ0aW5nIGF0
IHRpbWUgMS4yNQotUEFTUyAyIGFyZSBjdXJyZW50bHkgcGxheWluZyBhcyBleHBlY3RlZC4KLVBB
U1MgYWN0aXZlU291cmNlQ291bnQgYW5kIHBsYXliYWNrU3RhdGUgdGVzdHMgc3VjY2VlZGVkLgot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3Rh
dGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNr
U3RhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBkZjJjZTAzODYyNzBi
NWFjM2E5NGIxZjFlOWJiZGJjMGUxZmI5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1w
bGF5YmFja1N0YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBBdWRp
b0NvbnRleHQgYWN0aXZlU291cmNlQ291bnQgYW5kIEF1ZGlvQnVmZmVyU291cmNlTm9kZSBwbGF5
YmFja1N0YXRlLiIpOwotCi0vLyBDcmVhdGUgYSBmZXcgc291cmNlcyB0aGF0IHN0YXJ0IGFuZCBl
bmQgcGxheWluZyBhdCB2YXJpb3VzIHRpbWVzLiAgQWZ0ZXIgcmVuZGVyaW5nLCBjaGVjayB0aGF0
Ci0vLyBlYWNoIHNvdXJjZSBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSBhbmQgdGhhdCB0aGUgbnVt
YmVyIG9mIGFjdGl2ZSBzb3VyY2VzIGlzIGNvcnJlY3QuCi0KLXZhciBzYW1wbGVSYXRlID0gNDQx
MDA7Ci0KLS8vIFJlbmRlciBmb3IgdGhpcyBsb25nLgotdmFyIHJlbmRlclRpbWUgPSAyOwotdmFy
IHJlbmRlckxlbmd0aCA9IHRpbWVUb1NhbXBsZUZyYW1lKHJlbmRlclRpbWUsIHNhbXBsZVJhdGUp
OwotCi12YXIgY29udGV4dDsKLQotLy8gTGlzdCBvZiBBdWRpb0J1ZmZlclNvdXJjZU5vZGVzIHNv
dXJjZXMuCi12YXIgc291cmNlcyA9IFtdOwotCi0vLyBMaXN0IG9mIG1lc3NhZ2VzIHRoYXQgd2ls
bCBiZSBwcmludGVkIG91dCBvbiBzdWNjZXNzIChvciBmYWlsdXJlKS4gIE1lc3NhZ2VzIGFyZSBp
biB0aGUgc2FtZQotLy8gb3JkZXIgYXMgdGhlIHNvdXJjZXMgbGlzdCBhYm92ZS4KLXZhciBzb3Vy
Y2VNZXNzYWdlcyA9IFtdOwotCi0vLyBMaXN0IG9mIHRoZSBleHBlY3RlZCBwbGF5YmFjayBzdGF0
ZSBmb3IgZWFjaCBzb3VyY2UuICBJbiB0aGUgc2FtZSBvcmRlciBhIHNvdXJjZXMgbGlzdCBhYm92
ZS4KLXZhciBzb3VyY2VFeHBlY3RlZFN0YXRlcyA9IFtdOwotCi0vLyBBcnJheSBtYXBwaW5nIHRo
ZSBwbGF5YmFjayBzdGF0ZSB0byBhIHN0cmluZy4KLXZhciBwbGF5YmFja1N0YXRlTmFtZSA9IFsi
VU5TQ0hFRFVMRURfU1RBVEUgIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiU0NIRURVTEVE
X1NUQVRFICAgIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiUExBWUlOR19TVEFURSAgICAg
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiRklOSVNIRURfU1RBVEUgICAgIl07Ci0KLWZ1
bmN0aW9uIGNoZWNrUmVzdWx0KGV2ZW50KQotewotICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKLQot
ICAgIC8vIEZvciBlYWNoIHNvdXJjZSwgdmVyaWZ5IHRoYXQgdGhlIHBsYXliYWNrIHN0YXRlIG1h
dGNoZXMgb3VyIGV4cGVjdGVkIHBsYXliYWNrIHN0YXRlLgotICAgIGZvciAodmFyIGsgPSAwOyBr
IDwgc291cmNlcy5sZW5ndGg7ICsraykgewotICAgICAgICB2YXIgcHJlZml4ID0gcGxheWJhY2tT
dGF0ZU5hbWVbc291cmNlRXhwZWN0ZWRTdGF0ZXNba11dICsgc291cmNlTWVzc2FnZXNba107Ci0g
ICAgICAgIGlmIChzb3VyY2VzW2tdLnBsYXliYWNrU3RhdGUgPT0gc291cmNlRXhwZWN0ZWRTdGF0
ZXNba10pIHsKLSAgICAgICAgICAgIHRlc3RQYXNzZWQocHJlZml4KTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQocHJlZml4ICsgIjogQWN0dWFsID0gIiArIHBsYXli
YWNrU3RhdGVOYW1lW3NvdXJjZXNba10ucGxheWJhY2tTdGF0ZV0pOwotICAgICAgICAgICAgc3Vj
Y2VzcyA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gRmlndXJlIG91dCBob3cg
bWFueSBhY3RpdmUgc291cmNlcyB0aGVyZSBzaG91bGQgYmUgZnJvbSB0aGUgZXhwZWN0ZWQgc3Rh
dGVzLgotICAgIHZhciBwbGF5aW5nU3RhdGUgPSBzb3VyY2VzWzBdLlBMQVlJTkdfU1RBVEUKLQot
ICAgIHZhciBleHBlY3RlZEFjdGl2ZUNvdW50ID0gMDsKLSAgICBmb3IgKGsgPSAwOyBrIDwgc291
cmNlRXhwZWN0ZWRTdGF0ZXMubGVuZ3RoOyArK2spIHsKLSAgICAgICAgaWYgKHNvdXJjZUV4cGVj
dGVkU3RhdGVzW2tdID09IHBsYXlpbmdTdGF0ZSkgewotICAgICAgICAgICAgKytleHBlY3RlZEFj
dGl2ZUNvdW50OwotICAgICAgICB9Ci0gICAgfQotICAgICAgCi0gICAgaWYgKGNvbnRleHQuYWN0
aXZlU291cmNlQ291bnQgPT0gZXhwZWN0ZWRBY3RpdmVDb3VudCkgewotICAgICAgICB0ZXN0UGFz
c2VkKGNvbnRleHQuYWN0aXZlU291cmNlQ291bnQgKyAiIGFyZSBjdXJyZW50bHkgcGxheWluZyBh
cyBleHBlY3RlZC4iKTsKLSAgICB9IGVsc2UgewotICAgICAgICB0ZXN0RmFpbGVkKGNvbnRleHQu
YWN0aXZlU291cmNlQ291bnQgKyAiIGFyZSBjdXJyZW50bHkgcGxheWluZywgYnV0IGV4cGVjdGVk
ICIgKyBleHBlY3RlZEFjdGl2ZUNvdW50ICsgIi4iKTsKLSAgICAgICAgc3VjY2VzcyA9IGZhbHNl
OwotICAgIH0KLQotICAgIGlmIChzdWNjZXNzKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoImFjdGl2
ZVNvdXJjZUNvdW50IGFuZCBwbGF5YmFja1N0YXRlIHRlc3RzIHN1Y2NlZWRlZC4iKTsKLSAgICB9
IGVsc2UgewotICAgICAgICB0ZXN0RmFpbGVkKCJhY3RpdmVTb3VyY2VDb3VudCBhbmQgcGxheWJh
Y2tTdGF0ZSB0ZXN0cyBkaWQgbm90IHN1Y2NlZWQuIik7Ci0gICAgfQotCi0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19Ci0KLS8vIHNvdXJjZUxlbmd0aCAtIGxlbmd0aCBvZiBzb3VyY2UgaW4gc2Vjb25k
cwotLy8gbm90ZUZ1bmN0aW9uIC0gZnVuY3Rpb24gdG8gdHVybiBvbiBzb3VyY2UgYXBwcm9wcmlh
dGVseQotLy8gZXhwZWN0ZWRTdGF0ZSAtIGV4cGVjdGVkIHN0YXRlIG9mIHRoZSBzb3VyY2UgYXQg
dGhlIGVuZCBvZiByZW5kZXJpbmcKLS8vIG1lc3NhZ2UgLSBtZXNzYWdlIHRvIGJlIGRpc3BsYXll
ZCBpZiB0ZXN0IHBhc3NlcwotZnVuY3Rpb24gY3JlYXRlVGVzdChzb3VyY2VMZW5ndGgsIG5vdGVG
dW5jdGlvbiwgZXhwZWN0ZWRTdGF0ZSwgbWVzc2FnZSkKLXsKLSAgICB2YXIgcyA9IGNvbnRleHQu
Y3JlYXRlQnVmZmVyU291cmNlKCk7Ci0gICAgcy5idWZmZXIgPSBjcmVhdGVJbXB1bHNlQnVmZmVy
KGNvbnRleHQsIHRpbWVUb1NhbXBsZUZyYW1lKHNvdXJjZUxlbmd0aCwgc2FtcGxlUmF0ZSkpOwot
ICAgIHMuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKLSAgICBub3RlRnVuY3Rpb24ocyk7
Ci0gICAgc291cmNlcy5wdXNoKHMpOwotICAgIHNvdXJjZU1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7
Ci0gICAgc291cmNlRXhwZWN0ZWRTdGF0ZXMucHVzaChleHBlY3RlZFN0YXRlKTsKLX0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi0g
ICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dCwgcmVuZGVyaW5nIGZvciByZW5kZXJU
aW1lIHNlY29uZHMuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
KDIsIHRpbWVUb1NhbXBsZUZyYW1lKHJlbmRlclRpbWUsIHNhbXBsZVJhdGUpLCBzYW1wbGVSYXRl
KTsKLQotICAgIC8vIFRoaXMgaXMgb25seSB1c2VkIHNvIHdlIGNhbiBhY2Nlc3MgdGhlIHBsYXli
YWNrIHN0YXRlIGNvbnN0YW50cy4KLSAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVh
dGVCdWZmZXJTb3VyY2UoKTsKLQotICAgIC8vIER1bW15IG1lc3NhZ2Ugc28gd2Uga25vdyBob3cg
bG9uZyB3ZSdyZSByZW5kZXJpbmcgc28gd2UgY2FuIGludGVycHJldCB0aGUgcGFzcy9mYWlsIG1l
c3NhZ2VzCi0gICAgLy8gY29ycmVjdGx5LgotICAgIHRlc3RQYXNzZWQoIlJlbmRlcmluZyB0aW1l
IGlzICIgKyByZW5kZXJUaW1lICsgIiBzZWNvbmRzLiIpOwotCi0gICAgLy8gVGVzdCB1bnNjaGVk
dWxlZCBzdGF0ZS4gQ3JlYXRlIDMgc2Vjb25kIHNvdXJjZSwgYnV0IGRvbid0IHNjaGVkdWxlIGl0
LgotCi0gICAgY3JlYXRlVGVzdCgzLAotICAgICAgICAgICAgICAgZnVuY3Rpb24ocykgeyB9LAot
ICAgICAgICAgICAgICAgYnVmZmVyU291cmNlLlVOU0NIRURVTEVEX1NUQVRFLAotICAgICAgICAg
ICAgICAgIlNvdXJjZSBoYXMgYmVlbiBjcmVhdGVkIik7Ci0KLSAgICAvLyBUZXN0IHN0YXJ0Lgot
Ci0gICAgY3JlYXRlVGVzdCgzLAotICAgICAgICAgICAgICAgZnVuY3Rpb24ocykgeyBzLnN0YXJ0
KHJlbmRlclRpbWUgKyAxKTsgfSwKLSAgICAgICAgICAgICAgIGJ1ZmZlclNvdXJjZS5TQ0hFRFVM
RURfU1RBVEUsCi0gICAgICAgICAgICAgICAiMyBzZWNvbmQgc291cmNlIHNjaGVkdWxlZCB0byBz
dGFydCBhdCB0aW1lICIgKyAocmVuZGVyVGltZSArIDEpKTsKLQotICAgIGNyZWF0ZVRlc3QoMiwK
LSAgICAgICAgICAgICAgIGZ1bmN0aW9uKHMpIHsgcy5zdGFydCgxKTsgfSwKLSAgICAgICAgICAg
ICAgIGJ1ZmZlclNvdXJjZS5QTEFZSU5HX1NUQVRFLAotICAgICAgICAgICAgICAgIjIgc2Vjb25k
IHNvdXJjZSBzdGFydGluZyBhdCB0aW1lIDEiKTsKLSAgICAgIAotICAgIGNyZWF0ZVRlc3QoMS4y
NSwKLSAgICAgICAgICAgICAgIGZ1bmN0aW9uKHMpIHsgcy5zdGFydCgwKTsgfSwKLSAgICAgICAg
ICAgICAgIGJ1ZmZlclNvdXJjZS5GSU5JU0hFRF9TVEFURSwKLSAgICAgICAgICAgICAgICIxLjI1
IHNlY29uZCBzb3VyY2Ugc3RhcnRpbmcgYXQgdGltZSAwIik7Ci0KLSAgICAvLyBUZXN0IGxvb3Bp
bmcgc291cmNlCi0KLSAgICBjcmVhdGVUZXN0KDAuNSwKLSAgICAgICAgICAgICAgIGZ1bmN0aW9u
KHMpIHsgcy5sb29wID0gdHJ1ZTsgcy5zdGFydChyZW5kZXJUaW1lICsgMSk7IH0sCi0gICAgICAg
ICAgICAgICBidWZmZXJTb3VyY2UuU0NIRURVTEVEX1NUQVRFLAotICAgICAgICAgICAgICAgImEg
bG9vcGluZyAwLjUgc2Vjb25kIHNvdXJjZSBzY2hlZHVsZWQgYXQgdGltZSAiICsgKHJlbmRlclRp
bWUgKyAxKSk7Ci0KLSAgICBjcmVhdGVUZXN0KDAuNSwKLSAgICAgICAgICAgICAgIGZ1bmN0aW9u
KHMpIHsgcy5sb29wID0gdHJ1ZTsgcy5zdGFydCgxLjI1KTsgfSwKLSAgICAgICAgICAgICAgIGJ1
ZmZlclNvdXJjZS5QTEFZSU5HX1NUQVRFLAotICAgICAgICAgICAgICAgImEgbG9vcGluZyAwLjUg
c2Vjb25kIHNvdXJjZSBzdGFydGluZyBhdCB0aW1lIDEuMjUiKTsKLQotICAgIGNvbnRleHQub25j
b21wbGV0ZSA9IGNoZWNrUmVzdWx0OwotICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKLX0K
LSAgICAgIAotcnVuVGVzdCgpOwotICAKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2ty
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFj
a3JhdGUuaHRtbAppbmRleCBlOWJiOTBkYzllZDQ3YTk1NjQxODlhYjM0MjE3ODBmYTdhMTQyNGIx
Li5jY2NmYzgzMDA3YzdkZjAzMDUzYzNjMWFhM2M4M2Y1ZWZhY2Q2YjYyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUu
aHRtbApAQCAtNzEsNyArNzEsNyBAQCBmdW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBu
ZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNv
bmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQo
Miwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBD
cmVhdGUgYSBzaW5nbGUgY3ljbGUgb2YgYSBzaW5lIHdhdmUuCiAgICAgLy8gV2UnbGwgbG9vcCB0
aGlzIHRvIHBsYXkgbm90ZXMgb2YgYSBnaXZlbiBkdXJhdGlvbiwgYXQgYSBnaXZlbiBwbGF5YmFj
ayByYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2Utc3RhcnQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXN0
YXJ0Lmh0bWwKaW5kZXggYzliYjAzMmUwZWMyYjU4NDkxZGI4NGViNDAzZGYzNWQ2YzQ0ZjJiOC4u
MTQ4ZTAyNjgzYjhmOTdhM2YyYTYzNTFlNDQ3NTc1OTAxMWI5MDQyYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3RhcnQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1zdGFydC5odG1sCkBAIC03NCw3ICs3
NCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29u
dGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHRvdGFsUmVuZGVyTGVuZ3Ro
RnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9D
b250ZXh0KDEsIHRvdGFsUmVuZGVyTGVuZ3RoRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICBidWZm
ZXIgPSBjcmVhdGVUZXN0QnVmZmVyKGNvbnRleHQsIGJ1ZmZlckZyYW1lTGVuZ3RoKTsKIAogICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UuaHRtbAppbmRleCBkYmUxMDU0OGZiNGI4ZjRjMGM4MTBl
ZTE4ZjY0Njc2MzIwOGZiNjdhLi5hNmNlNDMyNWMyZDBiZTcyYTViYmQwYzVkMTRlMGRhZmQwYjhm
YmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLmh0bWwKQEAg
LTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBu
ZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNv
bmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQo
Miwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgCiAgICAg
YnVmZmVyTG9hZGVyID0gbmV3IEJ1ZmZlckxvYWRlcigKICAgICAgICAgY29udGV4dCwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlbm9kZS1sZWdhY3kt
YXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNl
bm9kZS1sZWdhY3ktYXBpLWV4cGVjdGVkLnR4dAppbmRleCA1NWZjNzVjNzI4ZDg2YjE4NmJhM2Yw
MjRjNmViODViMjkxNzFmZTViLi5jZWE3NThiODQzM2M1NjdlMjliYTZlMGI1MTRmYjU1ZDI5YTAw
YTBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZW5v
ZGUtbGVnYWN5LWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9idWZmZXJzb3VyY2Vub2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0CkBAIC01LDE2ICs1LDI2
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIFBBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LnByb3RvdHlwZS5wbGF5YmFja1N0YXRlIGlzIHVuZGVmaW5lZC4KIFBBU1MgQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLnByb3RvdHlwZS5nYWluIGlzIHVuZGVmaW5lZC4KLVBBU1MgQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLlVOU0NIRURVTEVEX1NUQVRFIGlzIDAKLVBBU1MgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLlNDSEVEVUxFRF9TVEFURSBpcyAxCi1QQVNTIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5QTEFZ
SU5HX1NUQVRFIGlzIDIKLVBBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLkZJTklTSEVEX1NUQVRF
IGlzIDMKLVBBU1MgbGVnYWN5QnVmZmVyU291cmNlLnBsYXliYWNrU3RhdGUgaXMgZGVmaW5lZC4K
LVBBU1MgbGVnYWN5QnVmZmVyU291cmNlLmdhaW4gaXMgZGVmaW5lZC4KLVBBU1MgbGVnYWN5QnVm
ZmVyU291cmNlLlVOU0NIRURVTEVEX1NUQVRFIGlzIDAKLVBBU1MgbGVnYWN5QnVmZmVyU291cmNl
LlNDSEVEVUxFRF9TVEFURSBpcyAxCi1QQVNTIGxlZ2FjeUJ1ZmZlclNvdXJjZS5QTEFZSU5HX1NU
QVRFIGlzIDIKLVBBU1MgbGVnYWN5QnVmZmVyU291cmNlLkZJTklTSEVEX1NUQVRFIGlzIDMKK1BB
U1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlVOU0NIRURVTEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4K
K1BBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlNDSEVEVUxFRF9TVEFURSBpcyB1bmRlZmluZWQu
CitQQVNTIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5QTEFZSU5HX1NUQVRFIGlzIHVuZGVmaW5lZC4K
K1BBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLkZJTklTSEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4K
K1BBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnByb3RvdHlwZS5VTlNDSEVEVUxFRF9TVEFURSBp
cyB1bmRlZmluZWQuCitQQVNTIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5wcm90b3R5cGUuU0NIRURV
TEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1MgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnByb3Rv
dHlwZS5QTEFZSU5HX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1MgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLnByb3RvdHlwZS5GSU5JU0hFRF9TVEFURSBpcyB1bmRlZmluZWQuCitQQVNTIGJ1ZmZlclNv
dXJjZS5wbGF5YmFja1N0YXRlIGlzIHVuZGVmaW5lZC4KK1BBU1MgYnVmZmVyU291cmNlLmdhaW4g
aXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuVU5TQ0hFRFVMRURfU1RBVEUgaXMgdW5k
ZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuU0NIRURVTEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4K
K1BBU1MgYnVmZmVyU291cmNlLlBMQVlJTkdfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZm
ZXJTb3VyY2UuRklOSVNIRURfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2Uu
X19wcm90b19fLnBsYXliYWNrU3RhdGUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2Uu
X19wcm90b19fLmdhaW4gaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuX19wcm90b19f
LlVOU0NIRURVTEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1MgYnVmZmVyU291cmNlLl9fcHJv
dG9fXy5TQ0hFRFVMRURfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuX19w
cm90b19fLlBMQVlJTkdfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBidWZmZXJTb3VyY2UuX19w
cm90b19fLkZJTklTSEVEX1NUQVRFIGlzIHVuZGVmaW5lZC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2Vub2RlLWxlZ2FjeS1hcGkuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlbm9kZS1sZWdhY3ktYXBpLmh0bWwKaW5kZXggODBh
Y2Q4ZWY2NWQ1ZjVmY2M1NTc0M2U0M2M4NjYwYzg0OWZhMjAzMy4uYTI2YzhmMDI0NzM1ZDgwMGI1
MDMzZmIxYTA3YjMyZWJmOTM4MDllZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2Vub2RlLWxlZ2FjeS1hcGkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtbGVnYWN5LWFwaS5odG1sCkBAIC0xMCwyMCAr
MTAsMjkgQEAKICAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIkF1ZGlvQnVmZmVyU291cmNlTm9k
ZS5wcm90b3R5cGUucGxheWJhY2tTdGF0ZSIpOwogICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgi
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLnByb3RvdHlwZS5nYWluIik7CiAKLSAgICAgICAgLy8gVGVz
dHMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgcHJlZml4ZWQgQVBJLgotICAgICAgICBzaG91
bGRCZSgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlVOU0NIRURVTEVEX1NUQVRFIiwgIjAiKTsKLSAg
ICAgICAgc2hvdWxkQmUoIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5TQ0hFRFVMRURfU1RBVEUiLCAi
MSIpOwotICAgICAgICBzaG91bGRCZSgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlBMQVlJTkdfU1RB
VEUiLCAiMiIpOwotICAgICAgICBzaG91bGRCZSgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLkZJTklT
SEVEX1NUQVRFIiwgIjMiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIkF1ZGlvQnVmZmVy
U291cmNlTm9kZS5VTlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5l
ZCgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91
bGRCZVVuZGVmaW5lZCgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLlBMQVlJTkdfU1RBVEUiKTsKKyAg
ICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5GSU5JU0hFRF9T
VEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LnByb3RvdHlwZS5VTlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5l
ZCgiQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnByb3RvdHlwZS5TQ0hFRFVMRURfU1RBVEUiKTsKKyAg
ICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIkF1ZGlvQnVmZmVyU291cmNlTm9kZS5wcm90b3R5cGUu
UExBWUlOR19TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLnByb3RvdHlwZS5GSU5JU0hFRF9TVEFURSIpOwogCi0gICAgICAgIGxldCBsZWdh
Y3lDb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dDsKLSAgICAgICAgbGV0IGxlZ2FjeUJ1
ZmZlclNvdXJjZSA9IGxlZ2FjeUNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7Ci0gICAgICAg
IHNob3VsZEJlRGVmaW5lZCgibGVnYWN5QnVmZmVyU291cmNlLnBsYXliYWNrU3RhdGUiKTsKLSAg
ICAgICAgc2hvdWxkQmVEZWZpbmVkKCJsZWdhY3lCdWZmZXJTb3VyY2UuZ2FpbiIpOwotICAgICAg
ICBzaG91bGRCZSgibGVnYWN5QnVmZmVyU291cmNlLlVOU0NIRURVTEVEX1NUQVRFIiwgIjAiKTsK
LSAgICAgICAgc2hvdWxkQmUoImxlZ2FjeUJ1ZmZlclNvdXJjZS5TQ0hFRFVMRURfU1RBVEUiLCAi
MSIpOwotICAgICAgICBzaG91bGRCZSgibGVnYWN5QnVmZmVyU291cmNlLlBMQVlJTkdfU1RBVEUi
LCAiMiIpOwotICAgICAgICBzaG91bGRCZSgibGVnYWN5QnVmZmVyU291cmNlLkZJTklTSEVEX1NU
QVRFIiwgIjMiKTsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0OworICAg
ICAgICBsZXQgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAg
ICAgICAgc2hvdWxkQmVVbmRlZmluZWQoImJ1ZmZlclNvdXJjZS5wbGF5YmFja1N0YXRlIik7Cisg
ICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJidWZmZXJTb3VyY2UuZ2FpbiIpOworICAgICAgICBz
aG91bGRCZVVuZGVmaW5lZCgiYnVmZmVyU291cmNlLlVOU0NIRURVTEVEX1NUQVRFIik7CisgICAg
ICAgIHNob3VsZEJlVW5kZWZpbmVkKCJidWZmZXJTb3VyY2UuU0NIRURVTEVEX1NUQVRFIik7Cisg
ICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJidWZmZXJTb3VyY2UuUExBWUlOR19TVEFURSIpOwor
ICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiYnVmZmVyU291cmNlLkZJTklTSEVEX1NUQVRFIik7
CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJidWZmZXJTb3VyY2UuX19wcm90b19fLnBsYXli
YWNrU3RhdGUiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoImJ1ZmZlclNvdXJjZS5fX3By
b3RvX18uZ2FpbiIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiYnVmZmVyU291cmNlLl9f
cHJvdG9fXy5VTlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgi
YnVmZmVyU291cmNlLl9fcHJvdG9fXy5TQ0hFRFVMRURfU1RBVEUiKTsKKyAgICAgICAgc2hvdWxk
QmVVbmRlZmluZWQoImJ1ZmZlclNvdXJjZS5fX3Byb3RvX18uUExBWUlOR19TVEFURSIpOworICAg
ICAgICBzaG91bGRCZVVuZGVmaW5lZCgiYnVmZmVyU291cmNlLl9fcHJvdG9fXy5GSU5JU0hFRF9T
VEFURSIpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLWJhc2ljLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItYmFzaWMuaHRtbAppbmRleCBiMWM3YjI2
NzJlZmZmY2IxYmI1NzFhMzVhOGUxZDlhMGJjNDc5OGNiLi43YjYxMjA3ZDhkZjc0MmU1M2JmMTZk
NmQxZTc2MGY3YjY3MzZiNGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2NoYW5uZWxtZXJnZXItYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2NoYW5uZWxtZXJnZXItYmFzaWMuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBkZXNjcmlwdGlvbigi
QmFzaWMgdGVzdHMgZm9yIEF1ZGlvQ2hhbm5lbE1lcmdlci4iKTsKIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgdmFyIGNvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9D
b250ZXh0KCk7CiAKICAgICB0cnkgewogICAgICAgICB2YXIgbWVyZ2Vybm9kZSA9IGNvbnRleHQu
Y3JlYXRlQ2hhbm5lbE1lcmdlcigwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvY2hhbm5lbG1lcmdlci1zdGVyZW8uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvY2hhbm5lbG1lcmdlci1zdGVyZW8uaHRtbAppbmRleCA1NTRjMWZlZjVjOTk5YmFmODRhYWVl
YmM5YmI0MDBmYmE5MWZjMThhLi5mNTIzMjg4NGFhYmMyZGEwMmMwYmM4ZGUwZGRmY2FiYWIwZGRk
MTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXIt
c3RlcmVvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2Vy
LXN0ZXJlby5odG1sCkBAIC03Myw3ICs3Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgc3Rl
cmVvIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxp
bmVBdWRpb0NvbnRleHQoMiwgbGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUpOworICAg
IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBsZW5ndGhJblNhbXBsZUZyYW1l
cywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgdHdvIG1vbm8gYnVmZmVycywgb25lIGhh
dmluZyBhbGwgLTEgdmFsdWVzLCB0aGUgb3RoZXIgYWxsICsxLgogICAgIGJ1ZmZlcjEgPSBjcmVh
dGVCdWZmZXJXaXRoRENPZmZzZXQobGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUsIC0x
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sCmlu
ZGV4IDRlOWM3ZTkyYjEzNzQ0ZmY1ZjhkNGMyYzdhOGJmMTJmOTExMzZkZjIuLjM1MDcwZmY2MzRm
OTA3YWM1OTA2NjI3ZTA3MTc1YmFlOTdhMjI4MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9jaGFubmVsc3BsaXR0ZXIuaHRtbApAQCAtNzYsNyArNzYsNyBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENy
ZWF0ZSBzdGVyZW8gb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBsZW5ndGhJblNhbXBsZUZyYW1lcywgc2FtcGxlUmF0
ZSk7CisgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIGxlbmd0aEluU2Ft
cGxlRnJhbWVzLCBzYW1wbGVSYXRlKTsKIAogICAgIHRyeSB7CiAgICAgICAgIHZhciBzcGxpdHRl
cm5vZGUgPSBjb250ZXh0LmNyZWF0ZUNoYW5uZWxTcGxpdHRlcigwKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1wcm9taXNlLXRocm93aW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1wcm9taXNlLXRocm93aW5n
LWV4cGVjdGVkLnR4dAppbmRleCBhNjM2ZGZlNzllMDkxYWRlMzhmZTA3ZDliZTc2ZGI2MzM2NmU5
MDZmLi4xYmNiMWQ0NjhjNDAyMGYzZGViMTZmYTcyY2QxMGQ1MDQ1ZTI0OGExIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcHJvbWlzZS10aHJvd2luZy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2Ut
dGhyb3dpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDkgQEAKLVRlc3RzIHRoYXQgQXVkaW9D
b250ZXh0IHJlc3VtZS9zdXNwZW5kL2Nsb3NlIG1ldGhvZHMgcmVqZWN0IHByb21pc2VzIHdoZW4g
Y2FsbGVkIG9uIGFuIE9mZmxpbmVBdWRpb0NvbnRleHQuCitUZXN0cyB0aGF0IEF1ZGlvQ29udGV4
dCByZXN1bWUvc3VzcGVuZCBtZXRob2RzIHJlamVjdCBwcm9taXNlcyB3aGVuIGNhbGxlZCBvbiBh
biBPZmZsaW5lQXVkaW9Db250ZXh0LgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIFBB
U1MgY29udGV4dC5yZXN1bWUoKSBwcm9taXNlIHJlamVjdGVkIHdpdGggSW52YWxpZFN0YXRlRXJy
b3IgdmFsdWUKLVBBU1MgY29udGV4dC5zdXNwZW5kKCkgcHJvbWlzZSByZWplY3RlZCB3aXRoIElu
dmFsaWRTdGF0ZUVycm9yIHZhbHVlCi1QQVNTIGNvbnRleHQuY2xvc2UoKSBwcm9taXNlIHJlamVj
dGVkIHdpdGggSW52YWxpZFN0YXRlRXJyb3IgdmFsdWUKK1BBU1MgY29udGV4dC5zdXNwZW5kKCkg
cHJvbWlzZSByZWplY3RlZCB3aXRoIFR5cGVFcnJvcgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2NvbnRleHQtcHJvbWlzZS10aHJvd2luZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9jb250ZXh0LXByb21pc2UtdGhyb3dpbmcuaHRtbAppbmRleCAyMThhYjYxZjZlY2Uy
ODcyZjczNWY0ZTM2ZTQ2YWYyMWRiYzE5ODcyLi4yMWUzNWI3NDYyNzY4N2FhNTlmZDBlNWZhNGM4
Y2Q2NzY0ZTQzYWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRl
eHQtcHJvbWlzZS10aHJvd2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
Y29udGV4dC1wcm9taXNlLXRocm93aW5nLmh0bWwKQEAgLTEzLDEyICsxMywxMiBAQAogPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBB
dWRpb0NvbnRleHQgcmVzdW1lL3N1c3BlbmQvY2xvc2UgbWV0aG9kcyByZWplY3QgcHJvbWlzZXMg
d2hlbiBjYWxsZWQgb24gYW4gT2ZmbGluZUF1ZGlvQ29udGV4dC4iKTsKK2Rlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IEF1ZGlvQ29udGV4dCByZXN1bWUvc3VzcGVuZCBtZXRob2RzIHJlamVjdCBwcm9t
aXNlcyB3aGVuIGNhbGxlZCBvbiBhbiBPZmZsaW5lQXVkaW9Db250ZXh0LiIpOwogCiBmdW5jdGlv
biBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAg
Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1w
bGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9
IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNv
bmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIGNvbnRleHQucmVzdW1lKCkudGhlbihmdW5jdGlvbigp
IHsKICAgICAgICAgdGVzdEZhaWxlZCgnY29udGV4dC5yZXN1bWUoKSBwcm9taXNlIHJlc29sdmVk
IChzaG91bGQgaGF2ZSByZWplY3RlZCknKTsKQEAgLTM0LDIwICszNCwxMCBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkgewogICAgICAgICB0ZXN0RmFpbGVkKCdjb250ZXh0LnN1c3BlbmQoKSBwcm9taXNl
IHJlc29sdmVkIChzaG91bGQgaGF2ZSByZWplY3RlZCknKTsKICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CiAgICAgfSwgZnVuY3Rpb24oZSkgewotICAgICAgIGlmIChlLm5hbWUgPT0gJ0ludmFsaWRT
dGF0ZUVycm9yJykgCi0gICAgICAgICAgIHRlc3RQYXNzZWQoJ2NvbnRleHQuc3VzcGVuZCgpIHBy
b21pc2UgcmVqZWN0ZWQgd2l0aCBJbnZhbGlkU3RhdGVFcnJvciB2YWx1ZScpOwotICAgICAgIGVs
c2UKLSAgICAgICAgICAgdGVzdEZhaWxlZCgnY29udGV4dC5zdXNwZW5kKCkgcHJvbWlzZSByZWpl
Y3RlZCwgYnV0IHdpdGhvdXQgSW52YWxpZFN0YXRlRXJyb3IgdmFsdWUnKTsKLSAgICB9KTsKLQot
ICAgIGNvbnRleHQuY2xvc2UoKS50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0RmFpbGVk
KCdjb250ZXh0LmNsb3NlKCkgcHJvbWlzZSByZXNvbHZlZCAoc2hvdWxkIGhhdmUgcmVqZWN0ZWQp
Jyk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICBpZiAoZS5uYW1lID09ICdJbnZhbGlkU3RhdGVFcnJvcicpCi0gICAgICAgICAgIHRlc3RQYXNz
ZWQoJ2NvbnRleHQuY2xvc2UoKSBwcm9taXNlIHJlamVjdGVkIHdpdGggSW52YWxpZFN0YXRlRXJy
b3IgdmFsdWUnKTsKKyAgICAgICBpZiAoZS5uYW1lID09ICdUeXBlRXJyb3InKSAKKyAgICAgICAg
ICAgdGVzdFBhc3NlZCgnY29udGV4dC5zdXNwZW5kKCkgcHJvbWlzZSByZWplY3RlZCB3aXRoIFR5
cGVFcnJvcicpOwogICAgICAgIGVsc2UKLSAgICAgICAgICAgdGVzdEZhaWxlZCgnY29udGV4dC5j
bG9zZSgpIHByb21pc2UgcmVqZWN0ZWQsIGJ1dCB3aXRob3V0IEludmFsaWRTdGF0ZUVycm9yIHZh
bHVlJyk7CisgICAgICAgICAgIHRlc3RGYWlsZWQoJ2NvbnRleHQuc3VzcGVuZCgpIHByb21pc2Ug
cmVqZWN0ZWQgd2l0aCAnICsgZS5uYW1lICsgIiBpbnN0ZWFkIG9mIFR5cGVFcnJvciIpOwogICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvY29udGV4dC1wcm9taXNlLmh0bWwKaW5kZXggZmJlZTdkYTYzY2I4YjQzY2RkNDYwOWIx
NmNmMDVjZDM3NzBiYWNmMy4uOGUwMWJkOTIxMGMwNWYwNjgyMTE2MTdiMDE0MTk0NDdlOTRmY2Rh
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2Uu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcHJvbWlzZS5odG1s
CkBAIC0xNiw3ICsxNiw3IEBAIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IEF1ZGlvQ29udGV4dCBz
dXNwZW5kIG1ldGhvZCByZXNvbHZlIHByb21pc2VzIGltbWVkaWF0ZWx5CiBmdW5jdGlvbiBydW5U
ZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgIGNvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRl
eHQoKTsKIAogICAgIHZhciBpc1N1c3BlbmRlZCA9IGZhbHNlOwogICAgIGNvbnRleHQuc3VzcGVu
ZCgpLnRoZW4oZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9h
dWRpb2NvbnRleHQtcmVzdHJpY3Rpb24tYXVkaW9idWZmZXJzb3VyY2Vub2RlLXN0YXJ0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24tYXVkaW9idWZm
ZXJzb3VyY2Vub2RlLXN0YXJ0Lmh0bWwKaW5kZXggZWM1NDkxMzZmMzZmZjUxNmRlYThmYmU2NWQ2
Y2VhOGIyOTFkOTBmNy4uNGE1NTBlZTFiY2U0M2ZjYTNiMTFhYzYyODAzMmE5NDA3ZWUwYjhkNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXJlc3RyaWN0aW9u
LWF1ZGlvYnVmZmVyc291cmNlbm9kZS1zdGFydC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvY29udGV4dC1yZXN0cmljdGlvbi1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtc3RhcnQu
aHRtbApAQCAtMjAsNyArMjAsNyBAQCB2YXIgY2FsbGVkUmVzdW1lV2l0aFVzZXJHZXN0dXJlID0g
ZmFsc2U7CiBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgY29u
dGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICBpbnRlcm5hbHMuc2V0QXVkaW9Db250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdS
ZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvY29udGV4dC1yZXN0cmljdGlvbi5odG1sCmluZGV4IDIxNmYwOWFjNDEzNjk0
OWUwNjA0ZWU4Yjg5MTI4OTc1MjQ0ZTFmNzEuLjQ1YzUzMWE3NTA2ZDAyZTJmZjVlMmQxOWY1MDZl
Y2JiMDljNTI3NTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4
dC1yZXN0cmljdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4
dC1yZXN0cmljdGlvbi5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIHZhciBjYWxsZWRSZXN1bWVXaXRo
VXNlckdlc3R1cmUgPSBmYWxzZTsKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQoKTsKKyAgICBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogCiAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCiAgICAgICAgIGludGVybmFscy5zZXRBdWRpb0NvbnRleHRSZXN0cmljdGlv
bnMoY29udGV4dCwgJ1JlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvU3RhcnQnKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1zdGF0ZS1pbnRlcnJ1cHRlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWludGVycnVwdGVk
Lmh0bWwKaW5kZXggYzg3NTAzMzJiYmQxOWMzN2VhMGYyM2EwNWVhMzJmOTZlY2VlNGQ0NC4uZjc3
YzdkODljYjIwZmIxYzBhMjBlNjAzYzdmYzY4NzdiMzkwZWQ5NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWludGVycnVwdGVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWludGVycnVwdGVkLmh0bWwK
QEAgLTE5LDcgKzE5LDcgQEAgdmFyIG5vZGUgPSBudWxsOwogZnVuY3Rpb24gcnVuVGVzdCgpIHsK
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICBjb250ZXh0ID0gbmV3IHdl
YmtpdEF1ZGlvQ29udGV4dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAK
ICAgICBzaG91bGRCZSgnY29udGV4dC5zdGF0ZScsICcic3VzcGVuZGVkIicpOwogICAgIGNvbnRl
eHQub25zdGF0ZWNoYW5nZSA9IGJlZ2FuUnVubmluZzsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1zdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9jb250ZXh0LXN0YXRlLmh0bWwKaW5kZXggYTJkNDVlNmUxNTI2NzMyZDllZGYwMDM4YmI0
YTg2NjEwOTMwYjg0Ny4uOGIyYWMzOTNkODc3NTJhNWY5Njk0ODg1YWE0NDkyMTFhNWQ2NmYzOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLmh0bWwKQEAgLTE5
LDcgKzE5LDcgQEAgdmFyIG5vZGUgPSBudWxsOwogZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAKICAgICBz
aG91bGRCZSgnY29udGV4dC5zdGF0ZScsICcic3VzcGVuZGVkIicpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtY29ubmVjdC1vcmRlci5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbAppbmRleCA2MGNjZTcz
ZDk5YThmZTY4NTY2YTVjN2Q3OTVjMWQwODdhOTRjNmY3Li45OTkyODZhNmU2MDA4NTBjZWIyMjU4
OTIzMTU4YjY0MjNhMzRiNjgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b25vZGUtY29ubmVjdC1vcmRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
bm9kZS1jb25uZWN0LW9yZGVyLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8v
IENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4
dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAg
dmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVTaW5XYXZlQnVmZmVyKGNvbnRleHQsIHJlbmRlckxlbmd0
aFNlY29uZHMsIDg4MCk7CiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3Jl
YXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b25vZGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS5odG1sCmluZGV4IDNi
YTI0ODY2MTJkZjU2MmI0ZTc3NGMxOWMzOTFmZGEzN2Y0YTY0OTcuLjlhNGQ3MTk1ZWQ3Njg4MWNk
ZDdkOTkwM2UxMzc0YzA0OTNhNTEwZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvbm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS5odG1s
CkBAIC0xNyw3ICsxNyw3IEBAIHZhciBjb250ZXh0ID0gMDsKIHZhciBjb250ZXh0MiA9IDA7CiAK
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQoKTsKKyAgICBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogICAgIHdpbmRvdy5hdWRp
b05vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogCiAgICAgLy8gQ2hlY2sgaW5w
dXQgYW5kIG91dHB1dCBudW1iZXJzIG9mIEF1ZGlvU291cmNlTm9kZS4KQEAgLTcxLDcgKzcxLDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICAKICAgICAvLyBDcmVhdGUgYSBuZXcgY29udGV4
dCBhbmQgdHJ5IHRvIGNvbm5lY3QgdGhlIG90aGVyIGNvbnRleHQncyBub2RlIHRvIHRoaXMgb25l
LgogICAgIHRyeSB7Ci0gICAgICAgIGNvbnRleHQyID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgp
OworICAgICAgICBjb250ZXh0MiA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgd2luZG93
LmF1ZGlvTm9kZS5jb25uZWN0KGNvbnRleHQyLmRlc3RpbmF0aW9uKTsKICAgICAgICAgdGVzdEZh
aWxlZCgiZXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hlbiBjb25uZWN0aW5nIHRvIG90aGVy
IGNvbnRleHQncyBub2RlLiIpOwogICAgIH0gY2F0Y2goZSkgewpAQCAtODAsNyArODAsNyBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgLy8gQ3JlYXRlIGEgbmV3IGNvbnRleHQgd2l0aCB0
b28gbWFueSBhcmd1bWVudHMKICAgICB0cnkgewotICAgICAgICBjb250ZXh0MiA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoMCwgMCk7CisgICAgICAgIGNvbnRleHQyID0gbmV3IEF1ZGlvQ29udGV4
dCh7IH0sIDApOwogICAgICAgICB0ZXN0UGFzc2VkKCJleGNlcHRpb24gc2hvdWxkIG5vdCBiZSB0
aHJvd24gd2hlbiBjcmVhdGluZyBhdWRpbyBjb250ZXh0IHdpdGggdG9vIG1hbnkgYXJndW1lbnRz
LiIpOwogICAgIH0gY2F0Y2goZSkgewogICAgICAgICB0ZXN0RmFpbGVkKCJleGNlcHRpb24gdGhy
b3duIHdoZW4gY3JlYXRpbmcgYXVkaW8gY29udGV4dCB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cy4i
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1h
dWRpb3JhdGVzaWduYWwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29u
bmVjdC1hdWRpb3JhdGVzaWduYWwuaHRtbAppbmRleCA2Zjk4ZDJkODI5MTNlMWM1OTMxZDliYzE2
MTJmYmE1MGYyOTA0YTg4Li45MjYxODllNDU0NmIyYTczNzkxNjNjNjhkYWE2OTQ4OGZjYjg1YWRh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNvbm5lY3QtYXVk
aW9yYXRlc2lnbmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1j
b25uZWN0LWF1ZGlvcmF0ZXNpZ25hbC5odG1sCkBAIC02Myw3ICs2Myw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiAgICAgdmFyIHNhbXBsZUZyYW1lTGVuZ3RoID0gc2FtcGxlUmF0ZSAqIGxlbmd0
aEluU2Vjb25kczsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAg
Y29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZUZyYW1lTGVu
Z3RoLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQo
MSwgc2FtcGxlRnJhbWVMZW5ndGgsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gQ3JlYXRlIGJ1ZmZl
ciB1c2VkIGJ5IHRoZSBzb3VyY2Ugd2hpY2ggd2lsbCBoYXZlIGl0cyBnYWluIGNvbnRyb2xsZWQu
CiAgICAgY29uc3RhbnRPbmVCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBz
YW1wbGVGcmFtZUxlbmd0aCwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9h
dWRpb3BhcmFtLXN1bW1pbmdqdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9wYXJhbS1zdW1taW5nanVuY3Rpb24uaHRtbAppbmRleCAzMTgyOTZmZTcwYjY1NjA4NWZhNTNl
MmE3MDBiOTQwYTAxZTNjYjA2Li41ZDY0MTE0NjRjNmM3NjQ2OTk4OTI3ZjY2YmQ2NjQxMTc3ZTNh
Nzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXN1bW1pbmdq
dW5jdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc3VtbWlu
Z2p1bmN0aW9uLmh0bWwKQEAgLTc2LDcgKzc2LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAg
ICB2YXIgc2FtcGxlRnJhbWVMZW5ndGggPSBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzOwog
CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlRnJhbWVMZW5ndGgsIHNhbXBsZVJh
dGUpOworICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVGcmFt
ZUxlbmd0aCwgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgYnVmZmVyIHVzZWQgYnkgdGhl
IHNvdXJjZSB3aGljaCB3aWxsIGhhdmUgaXRzIGdhaW4gY29udHJvbGxlZC4KICAgICB2YXIgY29u
c3RhbnRPbmVCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBzYW1wbGVGcmFt
ZUxlbmd0aCwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3Byb2Nl
c3NpbmdldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wcm9jZXNzaW5nZXZl
bnQuaHRtbAppbmRleCAyNTFjNmExMWYxNWJkNjA3YzA0ZDk4YWZiN2FjODIzNzNhMjg3OGRkLi44
Y2ZiYWNkYWU2ZjA4MTU5NTg2Y2I2MWVkZGYxMmE0MmY3YjNiNDNlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb3Byb2Nlc3NpbmdldmVudC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvcHJvY2Vzc2luZ2V2ZW50Lmh0bWwKQEAgLTQyLDcgKzQyLDcgQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAK
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcg
d2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxl
UmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxl
bmd0aEluRnJhbWVzLCBzYW1wbGVSYXRlKTsKIAogICAgIHZhciBvc2NpbGxhdG9yID0gY29udGV4
dC5jcmVhdGVPc2NpbGxhdG9yKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1dG9tYXRpYy1wdWxsLW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1dG9tYXRp
Yy1wdWxsLW5vZGUuaHRtbAppbmRleCA5YmQ0OGJjYWQ3NzRmYTMzZjUzM2I5ZGNkNTVmZGFhNTM0
OWMxZTNmLi40M2IzNjI5ZDBiZWQwZTYyODhmZmVmZjczOTVhNjRmNmIzMGYwYmY1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdXRvbWF0aWMtcHVsbC1ub2RlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sCkBAIC0zMCw3ICsz
MCw3IEBAIHZhciBhbmFseXNlcjsKIAogZnVuY3Rpb24gY29uc3RydWN0Q29tbW9uR3JhcGgoKSB7
CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBs
ZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJM
ZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgY29uc3RhbnRCdWZmZXIgPSBjcmVhdGVD
b25zdGFudEJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhJbkZyYW1lcywgMSk7CiAKICAgICBi
dWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vY29udm9sdXRpb24tbW9uby1tb25vLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRtbAppbmRleCAxMjk1ZGY0ZGEz
ZTBlZjdhM2QyYTk2NWJhMjdhZDc4NmU4NDhkNjkzLi5iYjI2NDgwMDNjODMwMmFkZDBiNzJiMzIy
Y2Y3ZDhiYjMwY2E4MGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1
dGlvbi1tb25vLW1vbm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1dGlv
bi1tb25vLW1vbm8uaHRtbApAQCAtMjksNyArMjksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZs
aW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNh
bXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIHZhciBz
cXVhcmVQdWxzZSA9IGNyZWF0ZVNxdWFyZVB1bHNlQnVmZmVyKGNvbnRleHQsIHB1bHNlTGVuZ3Ro
RnJhbWVzKTsKICAgICB2YXIgdHJpYW5nbGVQdWxzZSA9IGNyZWF0ZVRyaWFuZ2xlUHVsc2VCdWZm
ZXIoY29udGV4dCwgMiAqIHB1bHNlTGVuZ3RoRnJhbWVzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2NvbnZvbHZlci1jaGFubmVscy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vY29udm9sdmVyLWNoYW5uZWxzLmh0bWwKaW5kZXggZGE0YWQzYmI1ZDI5ZTg3NDZlOWRhOWUx
N2IwZjk0ZDc1MDI0MTI4Ni4uM2Y3YTAxYmUyMWY2M2NiNmYyYTg0YTY5YmQ5OWZhMzQwMTIyYmVi
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY29udm9sdmVyLWNoYW5uZWxzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY29udm9sdmVyLWNoYW5uZWxzLmh0bWwKQEAg
LTIsNyArMiw2IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tcGF0aWJpbGl0
eS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMi
Pjwvc2NyaXB0PgogPHRpdGxlPlRlc3QgU3VwcG9ydGVkIE51bWJlciBvZiBDaGFubmVscyBmb3Ig
Q29udm9sdmVyTm9kZTwvdGl0bGU+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9jb252b2x2ZXItc2V0QnVmZmVyLWRpZmZlcmVudC1zYW1wbGVyYXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x2ZXItc2V0QnVmZmVyLWRpZmZlcmVudC1zYW1wbGVy
YXRlLmh0bWwKaW5kZXggMzBkYjUyMjJmOWQ3MGM1YTI2YzM3ODljOTEzMGExNGE2N2I4ZGFlZC4u
ZDc4ZGU0NTlkZThhMzlkNTgzNjFhNjQzNzg1ZjRkZjA3ZDYyNTlmNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vY29udm9sdmVyLXNldEJ1ZmZlci1kaWZmZXJlbnQtc2FtcGxlcmF0
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NvbnZvbHZlci1zZXRCdWZmZXItZGlm
ZmVyZW50LXNhbXBsZXJhdGUuaHRtbApAQCAtOSw3ICs5LDcgQEAKIDxzY3JpcHQ+CiBkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCBDb252b2x2ZXJOb2RlIGJ1ZmZlciByYXRlIG11c3QgbWF0Y2ggY29u
dGV4dCByYXRlLiIpOwogCi12YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIDI1NiwgNDQxMDApOwordmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4
dCgxLCAyNTYsIDQ0MTAwKTsKIHZhciBjb252b2x2ZXIgPSBjb250ZXh0LmNyZWF0ZUNvbnZvbHZl
cigpOwogCiBzaG91bGRUaHJvd0Vycm9yTmFtZSgiY29udm9sdmVyLmJ1ZmZlciA9IGNvbnRleHQu
Y3JlYXRlQnVmZmVyKDEsIDI1NiwgMjIwNTApIiwgIk5vdFN1cHBvcnRlZEVycm9yIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x2ZXItc2V0QnVmZmVyLW51bGwuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NvbnZvbHZlci1zZXRCdWZmZXItbnVsbC5odG1sCmlu
ZGV4IGI2MWQ2OWY0MDg5MzBjOGI3MjQyNjEwNWI3ODRlODUyYjRjOGRiNTUuLmU2YzI0MTNmMGY4
ZDAwMTEzY2NjM2RjMDZhYWVkZDY0MWM2NmQzOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2NvbnZvbHZlci1zZXRCdWZmZXItbnVsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2NvbnZvbHZlci1zZXRCdWZmZXItbnVsbC5odG1sCkBAIC04LDcgKzgsNyBAQAogPHNj
cmlwdD4KIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IENvbnZvbHZlck5vZGUgaW1wdWxzZSByZXNw
b25zZSBidWZmZXIgY2FuIGJlIHNldCB0byBudWxsLiIpOwogCi12YXIgY29udGV4dCA9IG5ldyB3
ZWJraXRBdWRpb0NvbnRleHQoKTsKK3ZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwog
dmFyIGNvbnYgPSBjb250ZXh0LmNyZWF0ZUNvbnZvbHZlcigpOwogCiBzaG91bGROb3RUaHJvdygi
Y29udi5idWZmZXIgPSBudWxsIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9j
cmVhdGVNZWRpYVN0cmVhbVNvdXJjZS1udWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2NyZWF0ZU1lZGlhU3RyZWFtU291cmNlLW51bGwtZXhwZWN0ZWQudHh0CmluZGV4IDg2
OWNiMjRmYTI3MmYwOGU2ODc3NTFjMTQ1YWZiZTJlYWU1NDRmMjYuLjIzZjcwNDI0OTE0OWUyMzE3
YjBlODcwZGZiZWZiMmNjMGU1NmQ4NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2NyZWF0ZU1lZGlhU3RyZWFtU291cmNlLW51bGwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2NyZWF0ZU1lZGlhU3RyZWFtU291cmNlLW51bGwtZXhwZWN0ZWQudHh0CkBA
IC0zLDcgKzMsNyBAQCBUZXN0cyB0aGF0IHBhc3NpbmcgbnVsbCB0byBjb250ZXh0LmNyZWF0ZU1l
ZGlhU3RyZWFtU291cmNlKCkgdGhyb3dzIGEgVHlwZUVycm9yLgogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgY29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShudWxsKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWVkaWFTdHJlYW0nKSB0byB3
ZWJraXRBdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UgbXVzdCBiZSBhbiBpbnN0
YW5jZSBvZiBNZWRpYVN0cmVhbS4KK1BBU1MgY29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJj
ZShudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWVkaWFTdHJl
YW0nKSB0byBBdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UgbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBNZWRpYVN0cmVhbS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY3JlYXRl
TWVkaWFTdHJlYW1Tb3VyY2UtbnVsbC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY3JlYXRl
TWVkaWFTdHJlYW1Tb3VyY2UtbnVsbC5odG1sCmluZGV4IDFjOTRhYWZkYjFmOTU4ZjU4ZGZmNmY3
NWNhNjhkOGY1YjI1NDdkZjkuLjdkMjg2MDE4ZmE3MWRkMDI2MTBjMDJlOGJhN2M4ZGEzNmU2NTEy
YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NyZWF0ZU1lZGlhU3RyZWFtU291
cmNlLW51bGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jcmVhdGVNZWRpYVN0cmVh
bVNvdXJjZS1udWxsLmh0bWwKQEAgLTgsOCArOCw4IEBACiA8c2NyaXB0PgogZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgcGFzc2luZyBudWxsIHRvIGNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3Vy
Y2UoKSB0aHJvd3MgYSBUeXBlRXJyb3IuIik7CiAKLXZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCgpOwotc2hvdWxkVGhyb3coImNvbnRleHQuY3JlYXRlTWVkaWFTdHJlYW1Tb3Vy
Y2UobnVsbCkiLCAiJ1R5cGVFcnJvcjogQXJndW1lbnQgMSAoXFwnbWVkaWFTdHJlYW1cXCcpIHRv
IHdlYmtpdEF1ZGlvQ29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZSBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIE1lZGlhU3RyZWFtJyIpOwordmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0
KCk7CitzaG91bGRUaHJvdygiY29udGV4dC5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShudWxsKSIs
ICInVHlwZUVycm9yOiBBcmd1bWVudCAxIChcXCdtZWRpYVN0cmVhbVxcJykgdG8gQXVkaW9Db250
ZXh0LmNyZWF0ZU1lZGlhU3RyZWFtU291cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgTWVkaWFT
dHJlYW0nIik7CiAKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVj
b2RlLWF1ZGlvLWRhdGEtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
ZGVjb2RlLWF1ZGlvLWRhdGEtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IDU3MTU0ZmMxY2QyYjFk
MjM4M2Y2ZTAwYjJjZDI0ODM1MTUyNjZmYTYuLjk5YWE4YzA3ZDJmYzk5YmVlNjNkZTkwNWViZGM1
M2M5ZjhmNTBkMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRp
by1kYXRhLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWNv
ZGUtYXVkaW8tZGF0YS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIEJhc2ljIHRl
c3RzIGZvciBkZWNvZGVBdWRpb0RhdGEgZnVuY3Rpb24uCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAotUEFTUyBjb250ZXh0LmRlY29kZUF1ZGlvRGF0YShudWxsLCBmdW5jdGlvbigpe30s
IGZ1bmN0aW9uKCl7fSk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdh
dWRpb0RhdGEnKSB0byB3ZWJraXRBdWRpb0NvbnRleHQuZGVjb2RlQXVkaW9EYXRhIG11c3QgYmUg
YW4gaW5zdGFuY2Ugb2YgQXJyYXlCdWZmZXIuCitQQVNTIFBhc3NpbmcgYSBudWxsIGFycmF5IHRv
IEF1ZGlvQ29udGV4dC5kZWNvZGVBdWRpb0RhdGEoKSB0aHJldyBhIFR5cGVFcnJvcgogUEFTUyBU
aGUgcmVzb3VyY2VzL21lZGlhLzI0Yml0LTQ0a2h6LndhdiB0ZXN0OiBzdWNjZXNzQ2FsbGJhY2sg
aGFzIGJlZW4gY2FsbGVkIGNvcnJlY3RseS4KIFBBU1MgVGhlIHJlc291cmNlcy9tZWRpYS9pbnZh
bGlkLWF1ZGlvLWZpbGUudHh0IHRlc3Q6IGVycm9yQ2FsbGJhY2sgaGFzIGJlZW4gY2FsbGVkIGNv
cnJlY3RseS4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLWJhc2ljLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS1iYXNpYy5odG1sCmluZGV4IDJlZGNlZjhm
NTI0NGYzMTJjZThlYzhmNTU0YzQzNmZjNDQ1ZGFmNDAuLmEzMzNiNjVhYWVmOWRiNjRlZDUzZmNi
MDU2MzFjZmMxNTE0MDUwZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlY29k
ZS1hdWRpby1kYXRhLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVjb2Rl
LWF1ZGlvLWRhdGEtYmFzaWMuaHRtbApAQCAtMTAsMTAgKzEwLDE3IEBAIGRlc2NyaXB0aW9uKCJC
YXNpYyB0ZXN0cyBmb3IgZGVjb2RlQXVkaW9EYXRhIGZ1bmN0aW9uLiIpOwogICAgIAogd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi12YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0Nv
bnRleHQoKTsKK3ZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogCi0vLyBkZWNvZGVB
dWRpb0RhdGEgc2hvdWxkIHJhaXNlIGV4Y2VwdGlvbiB3aGVuIGFycmF5YnVmZmVyIHBhcmFtZXRl
ciBpcyBudWxsLgotc2hvdWxkVGhyb3coImNvbnRleHQuZGVjb2RlQXVkaW9EYXRhKG51bGwsIGZ1
bmN0aW9uKCl7fSwgZnVuY3Rpb24oKXt9KTsiLCAiJ1R5cGVFcnJvcjogQXJndW1lbnQgMSAoXFwn
YXVkaW9EYXRhXFwnKSB0byB3ZWJraXRBdWRpb0NvbnRleHQuZGVjb2RlQXVkaW9EYXRhIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgQXJyYXlCdWZmZXInIik7CisvLyBkZWNvZGVBdWRpb0RhdGEgc2hv
dWxkIHJlamVjdCB0aGUgcHJvbWlzZSB3aGVuIGFycmF5YnVmZmVyIHBhcmFtZXRlciBpcyBudWxs
LgorY29udGV4dC5kZWNvZGVBdWRpb0RhdGEobnVsbCwgZnVuY3Rpb24oKXt9LCBmdW5jdGlvbigp
e30pLnRoZW4oKCkgPT4geworICAgIHRlc3RGYWlsZWQoIlBhc3NpbmcgYSBudWxsIGFycmF5IHRv
IEF1ZGlvQ29udGV4dC5kZWNvZGVBdWRpb0RhdGEoKSBkaWQgbm90IHRocm93Iik7Cit9LCAoZSkg
PT4geworICAgIGlmIChlLm5hbWUgPT0gIlR5cGVFcnJvciIpCisgICAgICAgIHRlc3RQYXNzZWQo
IlBhc3NpbmcgYSBudWxsIGFycmF5IHRvIEF1ZGlvQ29udGV4dC5kZWNvZGVBdWRpb0RhdGEoKSB0
aHJldyBhIFR5cGVFcnJvciIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFzc2lu
ZyBhIG51bGwgYXJyYXkgdG8gQXVkaW9Db250ZXh0LmRlY29kZUF1ZGlvRGF0YSgpIHRocmV3IGEg
IiArIGUubmFtZSArICIgaW5zdGVhZCBvZiBhIFR5cGVFcnJvciIpOworfSk7CiAKIHZhciBkZWNv
ZGVDYXNlQXJyYXkgPSBbe3VybDogInJlc291cmNlcy9tZWRpYS8yNGJpdC00NGtoei53YXYiLCBy
ZXN1bHQ6IHRydWV9LAogICAgICAgICAgICAgICAgICAgICAgICB7dXJsOiAicmVzb3VyY2VzL21l
ZGlhL2ludmFsaWQtYXVkaW8tZmlsZS50eHQiLCByZXN1bHQ6IGZhbHNlfV07CkBAIC01Miw3ICs1
OSw5IEBAIGZ1bmN0aW9uIHJ1bkRlY29kZVRlc3QoaW5kZXgpIHsKICAgICByZXF1ZXN0LnNlbmQo
KTsKIH0KIAotcnVuRGVjb2RlVGVzdCgwKTsKK3NldFRpbWVvdXQoKCkgPT4geworICAgIHJ1bkRl
Y29kZVRlc3QoMCk7Cit9LCAwKTsKIAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS10b28tc2hvcnQuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sCmluZGV4
IGZiMTllZmQ3YjUwY2ViOGI2OWU4ODdlNTRiOTQ2NDliY2QxMGFlNDMuLmRiOWQ4YjdlMzliODY4
MWI1MWE1NDU3OTQ0NDdiYzQxZTEzMjJlYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sCkBAIC0xMCw3ICsxMCw3IEBA
IGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgZGVjb2RpbmcgYW4gYXVkaW8gZmlsZSB3aGljaCBpcyB0
b28gc2hvcnQgZG9lcyBub3QgY2F1c2UKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
Ci12YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKK3ZhciBjb250ZXh0ID0g
bmV3IEF1ZGlvQ29udGV4dCgpOwogdmFyIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsK
IHJlcXVlc3Qub3BlbigiR0VUIiwgJ3Jlc291cmNlcy9tZWRpYS90b28tc2hvcnQubTRhJywgdHJ1
ZSk7CiByZXF1ZXN0LnJlc3BvbnNlVHlwZSA9ICJhcnJheWJ1ZmZlciI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRlZmF1bHQtZGVsYXkuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sCmluZGV4
IGE0YzcxMmY0ZGU4MDY0YWNlNmM1Y2YzOGZmNWRiNGI2ZWE5OTk0YzMuLjYwOWQ5NjEzZTY4NGU4
NzlkMDdkMzk3ZTJiMjQ3NjdjYzY3Y2FkZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sCkBAIC0xOSw3ICsxOSw3IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
ICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBj
b250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJl
bmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IE9m
ZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNh
bXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0
LCAyMCwgMjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9uZQog
ICAgIAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZh
dWx0LWRlbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRl
ZmF1bHQtZGVsYXkuaHRtbAppbmRleCA3NjNkZjIyMzY0ZWE4YTUwMjI0MDQxNDRjOTdjNGY5ODQ4
NDgzMWJjLi4yZTJhM2I5MGUwMDU2YWU5Y2Y1NWIzMzhlZjFjYWM0MjExOTliNDg2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXku
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQt
ZGVsYXkuaHRtbApAQCAtMTksNyArMTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxp
bmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVk
aW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRl
KTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJh
dGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZl
ciA9IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMs
IHNhbXBsZVJhdGUpOyAvLyAyMEh6IHRvbmUKICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0g
Y29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVs
YXlub2RlLW1heGRlbGF5Lmh0bWwKaW5kZXggNTJjMjMzYThjMTY1ODQyOWUyZDRkNDEzMzVhMDY2
OWFlMGQ0OTlkNC4uYWY4NGE3ODliMzBjZDUyNmYwZTU4YzYzNmVmZWU0MTc2OWMzMjM2MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWwKQEAgLTE5LDcg
KzE5LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0g
ICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQg
PSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVy
KGNvbnRleHQsIDIwLCAyMCAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBI
eiB0b25lCiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVy
U291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4
ZGVsYXlsaW1pdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5
bGltaXQuaHRtbAppbmRleCAzOWFhOGJlZThlYWViNGZlN2UzYjYyY2U3NmQ3NDFkZDBmZjU1MDcz
Li5jYWEyYThlNTkzMTE5Mzk2MmMwN2Y4ZmY5YzQ5ODVmYzYwNjIwMzNmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1pdC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheWxpbWl0Lmh0bWwKQEAgLTE5LDcg
KzE5LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0g
ICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQg
PSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVy
KGNvbnRleHQsIDIwLCAyMCAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBI
eiB0b25lCiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVy
U291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtc2No
ZWR1bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLXNjaGVkdWxpbmcu
aHRtbAppbmRleCBhMDgxNThkODI4NzIwNDA0MGFmYTU2MTQ3MzY2Y2YyYzllZTQyZTRjLi5hN2Mw
NDI0YjIzOGU5OGQzZmMxMzBiODBjYjZiZTM5YjczNTEzZDYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWwKQEAgLTE5LDcgKzE5LDcgQEAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAg
ICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRl
eHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVy
TGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxl
UmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDIw
LCAyMCAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25lCiAgICAg
CiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sCmluZGV4IGQ2YTQ3M2MxZGVkZDIxMGUxYmQ4NmFl
MGE2YWVhNTY4NGU4MDUyOGUuLjAxMWNkOTkzZmJlZTkyZTlhZWYzMWExZGEyNDM0YTEzODc5ZGI0
YjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sCkBAIC0xOSw3ICsxOSw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAg
ICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IE9mZmxp
bmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBs
ZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCAy
MCwgMjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9uZQogICAg
IAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFsLmh0bWwKaW5kZXgg
ODhkZDQzYWViZTQ3MWM0MmUzMzU2NDU1ZDM5OWE1Yzc4YjI3Nzk5YS4uZTY0ZGJiNmM3MWFhOTZm
NDUwZmNiZmY2NDg5ZTBjMjU3MWY1MTg2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9k
aXN0YW5jZS1leHBvbmVudGlhbC5odG1sCkBAIC0xNyw3ICsxNyw3IEBACiAgICAgICAgICAgd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUg
YXVkaW8gY29udGV4dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OworICAgICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICAvLyBU
ZW1wIHBhbm5lciBub2RlIHNvIHdlIGNhbiBnZXQgdGhlIGV4cG9uZW50aWFsIHZhbHVlLgogICAg
ICAgICAgIHZhciB0ZW1wUGFubmVyID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbAppbmRleCA3ZWJiNmEyNTFmOTk0Yjdk
NjY0NjE0ZmM0MWU2MGZkYzFkNzg1ZjBjLi5mYmE2YmZjZTY2ZDY2N2Q0MTY2MTY5N2Q5MzJkMmMw
MDAwY2VkNWNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1pbnZl
cnNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtaW52ZXJzZS5odG1s
CkBAIC0xNyw3ICsxNyw3IEBACiAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICAgICAg
ICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAq
IHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNvbnRleHQgPSBu
ZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICAvLyBUZW1wIHBhbm5lciBub2RlIHNvIHdlIGNh
biBnZXQgdGhlIGludmVyc2UgdmFsdWUuCiAgICAgICAgICAgdmFyIHRlbXBQYW5uZXIgPSBjb250
ZXh0LmNyZWF0ZVBhbm5lcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlz
dGFuY2UtbGluZWFyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIu
aHRtbAppbmRleCA0YTg0OTNjMjBkYzFiNzg4NzM5ODE4MDQ0OWE5N2FiMzBmMTA5MWJmLi42NzQ3
MWUwYWI1MzJlNTdjOTVkZGQxNGU2ZjJiZWRiYzE1YmRiZTA0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9kaXN0YW5jZS1saW5lYXIuaHRtbApAQCAtMTcsNyArMTcsNyBAQAogICAgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5l
IGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVk
aW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRl
KTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxl
UmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgICAgLy8g
Q3JlYXRlIHRlbXAgcGFubmVyIHRvIGdldCBsaW5lYXIgdmFsdWUgZm9yIHRlc3RpbmcuCiAgICAg
ICAgICAgdmFyIHBhbm5lck1vZGVsID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2R5bmFtaWNzY29tcHJlc3Nvci1iYXNpYy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vZHluYW1pY3Njb21wcmVzc29yLWJhc2ljLmh0bWwKaW5kZXgg
MjNjM2Y5N2M3NTkzYTkwM2VlOWM2ZWRkYjQyMmJjYmM4NWZlNTZjOC4uZjA3YTAwMzI3ODU0NzNm
NDRkNmY2ZTBlNWUxYzg1YmY1YjY0YmVhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vZHluYW1pY3Njb21wcmVzc29yLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vZHluYW1pY3Njb21wcmVzc29yLWJhc2ljLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgdmFyIGNv
bnRleHQ7CiB2YXIgY29tcHJlc3NvcjsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBjb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9D
b250ZXh0KCk7CiAgICAgY29tcHJlc3NvciA9IGNvbnRleHQuY3JlYXRlRHluYW1pY3NDb21wcmVz
c29yKCk7CiAKICAgICB0cnkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZmlu
aXNoZWQtYXVkaW8tYnVmZmVyLXNvdXJjZS1ub2Rlcy1zaG91bGQtYmUtY29sbGVjdGFibGUuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2ZpbmlzaGVkLWF1ZGlvLWJ1ZmZlci1zb3VyY2Utbm9k
ZXMtc2hvdWxkLWJlLWNvbGxlY3RhYmxlLmh0bWwKaW5kZXggZWJmZGY3YmM4ZGJjODA5ZGQ1ZTdl
YjU1ODEzNzA2MmU2MTdiZDQxZC4uZWJhZmQ3Y2Q5MGIyNTdjYjgyNzE5MjIyNmExY2VhZDAyZDIx
OGNhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZmluaXNoZWQtYXVkaW8tYnVm
ZmVyLXNvdXJjZS1ub2Rlcy1zaG91bGQtYmUtY29sbGVjdGFibGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9maW5pc2hlZC1hdWRpby1idWZmZXItc291cmNlLW5vZGVzLXNob3VsZC1i
ZS1jb2xsZWN0YWJsZS5odG1sCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAKICAgICAgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIAogICAgICAgICB7Ci0gICAgICAgICAgICBjb250ZXh0ID0gbmV3IHdl
YmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpOwor
ICAgICAgICAgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIG51bWJlck9m
RnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzaW5nIG1vcmUg
dGhhbiA2IHNlZW1zIHRvIGZhaWwuIDYgaXMgdGhlIGRlZmF1bHQgdmFsdWUgc28gSSdtIGd1ZXNz
aW5nIHRoZXJlJ3MgYSBidWcgdGhlcmUuLi4KICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gNjsK
ICAgICAgICAgICAgIGxldCBtZXJnZXIgPSBjb250ZXh0LmNyZWF0ZUNoYW5uZWxNZXJnZXIoY291
bnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi1iYXNpYy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi1iYXNpYy5odG1sCmluZGV4IDhhNGQ2OGIwNmNkMGI5
ZmYwOGQ1MmMwMmEyMjhhYTlhZjVlOTg3MTguLjdhZDllZmEwYmRhNDc5MjY2ZDg1ZTJjZmExOTUx
YTlkY2ViMDM4OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2dhaW4tYmFzaWMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9nYWluLWJhc2ljLmh0bWwKQEAgLTIxLDcg
KzIxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9CiAKICAgICAvLyBDcmVhdGUgYXVk
aW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsK
KyAgICB2YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKIAogICAgIC8vIENyZWF0ZSBn
YWluIG5vZGUuCiAgICAgdmFyIGdhaW5Ob2RlID0gY29udGV4dC5jcmVhdGVHYWluKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9nYWluLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9nYWluLmh0bWwKaW5kZXggMmZhMjRkYjM3NWQwOGIxMDZmNzc1NjQxMGZmMmMzZDcwYzhk
OTZiMC4uMzczZDE4YzFkNWJjNjZlMjgwNjQ5YTNmOTU2ZmM3ZTIwMjY3NjYwYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2dhaW4uaHRtbApAQCAtNTksNyArNTksNyBAQCBmdW5jdGlvbiBpbml0KCkgewogICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNv
bnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVu
Z3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAK
ICAgICAvLyBDcmVhdGUgYSBidWZmZXIgZm9yIGEgc2hvcnQgIm5vdGUiLgogICAgIHNpbldhdmVC
dWZmZXIgPSBjcmVhdGVTaW5XYXZlQnVmZmVyKGJ1ZmZlckR1cmF0aW9uU2Vjb25kcywgODgwLjAp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3Vy
Y2Vub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1
ZGlvc291cmNlbm9kZS1leHBlY3RlZC50eHQKaW5kZXggNjRkNTM2ZDhhOGFmY2RiYWZiMTRmNWQ5
OGE2NDE5ZGNkOGI1MjcxZS4uY2I4NjEzZDc5YTRmZWE2NTc1NDE5Yjg1MjAxY2I0MzI3ZTIyOTZm
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3Vy
Y2Vub2RlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1l
bnRhdWRpb3NvdXJjZW5vZGUtZXhwZWN0ZWQudHh0CkBAIC05LDcgKzksNyBAQCBQQVNTIGNvbm5l
Y3QoKSBleGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIG91dHB1dCBpbmRleC4KIFBBU1MgY29u
bmVjdCgpIGV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgaW5wdXQgaW5kZXguCiBQQVNTIGF1
ZGlvTm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pIHN1Y2NlZWRlZC4KIFBBU1MgY3Jl
YXRlTWVkaWFFbGVtZW50U291cmNlKCkgdGhyZXcgZXJyb3Igd2hlbiBjYWxsZWQgdHdpY2Ugb24g
c2FtZSBIVE1MTWVkaWFFbGVtZW50LgotUEFTUyBjb250ZXh0LmNyZWF0ZU1lZGlhRWxlbWVudFNv
dXJjZShudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWVkaWFF
bGVtZW50JykgdG8gd2Via2l0QXVkaW9Db250ZXh0LmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxNZWRpYUVsZW1lbnQuCitQQVNTIGNvbnRleHQuY3Jl
YXRlTWVkaWFFbGVtZW50U291cmNlKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFy
Z3VtZW50IDEgKCdtZWRpYUVsZW1lbnQnKSB0byBBdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFFbGVt
ZW50U291cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTE1lZGlhRWxlbWVudC4KIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRt
bAppbmRleCAwYWI0YTM2YTNmMTllOTNmZDMxNmIzZWJjOWM4ZDMzMjViMjBhNjk5Li44NTI4OTRj
Zjc2MGY3ZjMyMDI3ODRjMTFhYzk4NWMwOTBlOTM2NGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbApAQCAt
MTksNyArMTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIH0KIAogICAgIGF1ZGlvRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIik7Ci0gICAgY29udGV4dCA9IG5l
dyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsKKyAgICBjb250ZXh0
ID0gbmV3IEF1ZGlvQ29udGV4dCh7IHNhbXBsZVJhdGU6IDQ0MTAwIH0pOwogICAgIHNvdXJjZSA9
IGNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKGF1ZGlvRWxlbWVudCk7CiAgICAgYXVk
aW9FbGVtZW50ID0gbnVsbDsKICAgICBjb250ZXh0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwKaW5kZXggYzIy
ZjJjMTcwMjlmMTUyYjU3MzBlNjQwMTg3YzBmMzY2OTY4Nzg5Yi4uM2U0ZmI2MTE3NDgzNDliOTFi
MDlkMzA5N2VhMzM1NDVlNWU1NmMxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
bWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgdmFy
IGNvbnRleHQgPSAwOwogZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CiAKLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOwor
ICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAKICAgICBhdWRpb0VsZW1lbnQgPSBu
ZXcgQXVkaW8oKTsKICAgICBtZWRpYVNvdXJjZSA9IGNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50
U291cmNlKGF1ZGlvRWxlbWVudCk7CkBAIC03NCw3ICs3NCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgICAgIHRlc3RQYXNzZWQoImNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSgpIHRocmV3
IGVycm9yIHdoZW4gY2FsbGVkIHR3aWNlIG9uIHNhbWUgSFRNTE1lZGlhRWxlbWVudC4iKTsKICAg
ICB9CiAKLSAgICBzaG91bGRUaHJvdygiY29udGV4dC5jcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2Uo
bnVsbCkiLCAiJ1R5cGVFcnJvcjogQXJndW1lbnQgMSAoXFwnbWVkaWFFbGVtZW50XFwnKSB0byB3
ZWJraXRBdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgSFRNTE1lZGlhRWxlbWVudCciKTsKKyAgICBzaG91bGRUaHJvdygiY29udGV4dC5j
cmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UobnVsbCkiLCAiJ1R5cGVFcnJvcjogQXJndW1lbnQgMSAo
XFwnbWVkaWFFbGVtZW50XFwnKSB0byBBdWRpb0NvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291
cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTE1lZGlhRWxlbWVudCciKTsKIAogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWl4aW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcuaHRtbAppbmRleCA5NGJkNGJjZDk3
NTUwNWE2OTRiNGQxYjEyMjFmYjYyYTI2MTM3ZjdjLi5kMzU5NmViZDFiZTBiYTQwN2IwZDcxYTYy
MGM4MDgzNGRiMjcyMzU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcuaHRtbApAQCAtMjgsNyArMjgs
NyBAQCBmdW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIC8v
IENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRP
ZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBs
ZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVS
YXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICAgICAgCiAgICAgYnVmZmVy
TG9hZGVyID0gbmV3IEJ1ZmZlckxvYWRlcigKICAgICAgICAgY29udGV4dCwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtZ2MuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtZ2MuaHRtbAppbmRleCBkMDA5YTA1
NGUxODg1OGUzNzMzYjcxODIxNzExYzBmZWMyZTZiMTUzLi5hNmYzNmYwMzczMWQ0YmJmNTVmMWRk
OTRlOTRkNDQwYTY3MjIwZGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZs
aW5lYXVkaW9jb250ZXh0LWdjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vb2ZmbGlu
ZWF1ZGlvY29udGV4dC1nYy5odG1sCkBAIC02LDEzICs2LDEzIEBACiA8c2NyaXB0PgogCiBmdW5j
dGlvbiBjcmVhdGVDb250ZXh0KCkgewotICAgIGxldCBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxp
bmVBdWRpb0NvbnRleHQoMiwgMTAwMCwgNDQxMDApOworICAgIGxldCBjb250ZXh0ID0gbmV3IE9m
ZmxpbmVBdWRpb0NvbnRleHQoMiwgMTAwMCwgNDQxMDApOwogICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQogICAgICAgICByZXR1cm4gaW50ZXJuYWxzLm9ic2VydmVHQyhjb250ZXh0KTsKIH0KIAog
ZnVuY3Rpb24gY3JlYXRlUmVuZGVyaW5nQ29udGV4dChjb21wbGV0ZUNhbGxiYWNrKSB7Ci0gICAg
bGV0IGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCAxMDAwLCA0NDEw
MCk7CisgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCAxMDAwLCA0
NDEwMCk7CiAgICAgbGV0IG5vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAg
IG5vZGUuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKICAgICBub2RlLnN0YXJ0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0LXJlc3Ry
aWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9vZmZsaW5lYXVkaW9jb250ZXh0LXJl
c3RyaWN0aW9uLmh0bWwKaW5kZXggZjlkNmE2Zjk4YWMyYWE2ODg4OTNhYWUwN2RkMzUwM2YzNGYx
NWEyNS4uM2VjMTQ2NWU3YmE5NGZmMDI1NDU4YWJlMGY4ODE4MjU3NzhkOGM1NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vb2ZmbGluZWF1ZGlvY29udGV4dC1yZXN0cmljdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL29mZmxpbmVhdWRpb2NvbnRleHQtcmVzdHJp
Y3Rpb24uaHRtbApAQCAtMjAsNyArMjAsNyBAQCB2YXIgY2FsbGVkUmVzdW1lV2l0aFVzZXJHZXN0
dXJlID0gZmFsc2U7CiBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4
dCgyLCAxMDAwLCA0NDEwMCk7CisgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0
KDIsIDEwMDAsIDQ0MTAwKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICBp
bnRlcm5hbHMuc2V0QXVkaW9Db250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1aXJlVXNl
ckdlc3R1cmVGb3JBdWRpb1N0YXJ0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9vc2NpbGxhdG9ybm9kZS1sZWdhY3ktYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL29zY2lsbGF0b3Jub2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDBmMmVh
MWI2MGY1NWFlOTM5Zjc3ZDIyOTVjZTNiY2EyYjdkMzkwMzEuLjM3YzBmMDM5YWIxOTU5ZDcxODNi
NjJlZGVlNzJkMDQ1ZGZjZGQ5ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL29z
Y2lsbGF0b3Jub2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL29zY2lsbGF0b3Jub2RlLWxlZ2FjeS1hcGktZXhwZWN0ZWQudHh0CkBAIC00LDE1ICs0
LDI0IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyBPc2NpbGxhdG9yTm9kZS5w
cm90b3R5cGUucGxheWJhY2tTdGF0ZSBpcyB1bmRlZmluZWQuCi1QQVNTIE9zY2lsbGF0b3JOb2Rl
LlVOU0NIRURVTEVEX1NUQVRFIGlzIDAKLVBBU1MgT3NjaWxsYXRvck5vZGUuU0NIRURVTEVEX1NU
QVRFIGlzIDEKLVBBU1MgT3NjaWxsYXRvck5vZGUuUExBWUlOR19TVEFURSBpcyAyCi1QQVNTIE9z
Y2lsbGF0b3JOb2RlLkZJTklTSEVEX1NUQVRFIGlzIDMKLVBBU1MgbGVnYWN5T3NjaWxsYXRvci5w
bGF5YmFja1N0YXRlIGlzIGRlZmluZWQuCi1QQVNTIGxlZ2FjeU9zY2lsbGF0b3IuVU5TQ0hFRFVM
RURfU1RBVEUgaXMgMAotUEFTUyBsZWdhY3lPc2NpbGxhdG9yLlNDSEVEVUxFRF9TVEFURSBpcyAx
Ci1QQVNTIGxlZ2FjeU9zY2lsbGF0b3IuUExBWUlOR19TVEFURSBpcyAyCi1QQVNTIGxlZ2FjeU9z
Y2lsbGF0b3IuRklOSVNIRURfU1RBVEUgaXMgMworUEFTUyBPc2NpbGxhdG9yTm9kZS5VTlNDSEVE
VUxFRF9TVEFURSBpcyB1bmRlZmluZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLlNDSEVEVUxFRF9T
VEFURSBpcyB1bmRlZmluZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLlBMQVlJTkdfU1RBVEUgaXMg
dW5kZWZpbmVkLgorUEFTUyBPc2NpbGxhdG9yTm9kZS5GSU5JU0hFRF9TVEFURSBpcyB1bmRlZmlu
ZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLnByb3RvdHlwZS5VTlNDSEVEVUxFRF9TVEFURSBpcyB1
bmRlZmluZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLnByb3RvdHlwZS5TQ0hFRFVMRURfU1RBVEUg
aXMgdW5kZWZpbmVkLgorUEFTUyBPc2NpbGxhdG9yTm9kZS5wcm90b3R5cGUuUExBWUlOR19TVEFU
RSBpcyB1bmRlZmluZWQuCitQQVNTIE9zY2lsbGF0b3JOb2RlLnByb3RvdHlwZS5GSU5JU0hFRF9T
VEFURSBpcyB1bmRlZmluZWQuCitQQVNTIG9zY2lsbGF0b3IucGxheWJhY2tTdGF0ZSBpcyB1bmRl
ZmluZWQuCitQQVNTIG9zY2lsbGF0b3IuVU5TQ0hFRFVMRURfU1RBVEUgaXMgdW5kZWZpbmVkLgor
UEFTUyBvc2NpbGxhdG9yLlNDSEVEVUxFRF9TVEFURSBpcyB1bmRlZmluZWQuCitQQVNTIG9zY2ls
bGF0b3IuUExBWUlOR19TVEFURSBpcyB1bmRlZmluZWQuCitQQVNTIG9zY2lsbGF0b3IuRklOSVNI
RURfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBvc2NpbGxhdG9yLl9fcHJvdG9fXy5wbGF5YmFj
a1N0YXRlIGlzIHVuZGVmaW5lZC4KK1BBU1Mgb3NjaWxsYXRvci5fX3Byb3RvX18uVU5TQ0hFRFVM
RURfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBvc2NpbGxhdG9yLl9fcHJvdG9fXy5TQ0hFRFVM
RURfU1RBVEUgaXMgdW5kZWZpbmVkLgorUEFTUyBvc2NpbGxhdG9yLl9fcHJvdG9fXy5QTEFZSU5H
X1NUQVRFIGlzIHVuZGVmaW5lZC4KK1BBU1Mgb3NjaWxsYXRvci5fX3Byb3RvX18uRklOSVNIRURf
U1RBVEUgaXMgdW5kZWZpbmVkLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9y
bm9kZS1sZWdhY3ktYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9ybm9k
ZS1sZWdhY3ktYXBpLmh0bWwKaW5kZXggNTViNDZjYzVlNDY3NjZkNzk4YzBhNjE1YThkYjA3Yzcz
MTJlNWUwNy4uYWUzNWQ2NTY5Nzk5OGM0NzdmNjZjNDQxMDYyNjgxOTE2YWQwMmMwZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vb3NjaWxsYXRvcm5vZGUtbGVnYWN5LWFwaS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3Jub2RlLWxlZ2FjeS1hcGkuaHRt
bApAQCAtOSwxOSArOSwyNyBAQAogCiAgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJPc2NpbGxh
dG9yTm9kZS5wcm90b3R5cGUucGxheWJhY2tTdGF0ZSIpOwogCi0gICAgICAgIC8vIFRlc3RzIGJh
Y2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIHByZWZpeGVkIEFQSS4KLSAgICAgICAgc2hvdWxkQmUo
Ik9zY2lsbGF0b3JOb2RlLlVOU0NIRURVTEVEX1NUQVRFIiwgIjAiKTsKLSAgICAgICAgc2hvdWxk
QmUoIk9zY2lsbGF0b3JOb2RlLlNDSEVEVUxFRF9TVEFURSIsICIxIik7Ci0gICAgICAgIHNob3Vs
ZEJlKCJPc2NpbGxhdG9yTm9kZS5QTEFZSU5HX1NUQVRFIiwgIjIiKTsKLSAgICAgICAgc2hvdWxk
QmUoIk9zY2lsbGF0b3JOb2RlLkZJTklTSEVEX1NUQVRFIiwgIjMiKTsKKyAgICAgICAgc2hvdWxk
QmVVbmRlZmluZWQoIk9zY2lsbGF0b3JOb2RlLlVOU0NIRURVTEVEX1NUQVRFIik7CisgICAgICAg
IHNob3VsZEJlVW5kZWZpbmVkKCJPc2NpbGxhdG9yTm9kZS5TQ0hFRFVMRURfU1RBVEUiKTsKKyAg
ICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIk9zY2lsbGF0b3JOb2RlLlBMQVlJTkdfU1RBVEUiKTsK
KyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIk9zY2lsbGF0b3JOb2RlLkZJTklTSEVEX1NUQVRF
Iik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJPc2NpbGxhdG9yTm9kZS5wcm90b3R5cGUu
VU5TQ0hFRFVMRURfU1RBVEUiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoIk9zY2lsbGF0
b3JOb2RlLnByb3RvdHlwZS5TQ0hFRFVMRURfU1RBVEUiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRl
ZmluZWQoIk9zY2lsbGF0b3JOb2RlLnByb3RvdHlwZS5QTEFZSU5HX1NUQVRFIik7CisgICAgICAg
IHNob3VsZEJlVW5kZWZpbmVkKCJPc2NpbGxhdG9yTm9kZS5wcm90b3R5cGUuRklOSVNIRURfU1RB
VEUiKTsKIAotICAgICAgICBsZXQgbGVnYWN5Q29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQ7Ci0gICAgICAgIGxldCBsZWdhY3lPc2NpbGxhdG9yID0gbGVnYWN5Q29udGV4dC5jcmVhdGVP
c2NpbGxhdG9yKCk7Ci0gICAgICAgIHNob3VsZEJlRGVmaW5lZCgibGVnYWN5T3NjaWxsYXRvci5w
bGF5YmFja1N0YXRlIik7Ci0gICAgICAgIHNob3VsZEJlKCJsZWdhY3lPc2NpbGxhdG9yLlVOU0NI
RURVTEVEX1NUQVRFIiwgIjAiKTsKLSAgICAgICAgc2hvdWxkQmUoImxlZ2FjeU9zY2lsbGF0b3Iu
U0NIRURVTEVEX1NUQVRFIiwgIjEiKTsKLSAgICAgICAgc2hvdWxkQmUoImxlZ2FjeU9zY2lsbGF0
b3IuUExBWUlOR19TVEFURSIsICIyIik7Ci0gICAgICAgIHNob3VsZEJlKCJsZWdhY3lPc2NpbGxh
dG9yLkZJTklTSEVEX1NUQVRFIiwgIjMiKTsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgQXVk
aW9Db250ZXh0OworICAgICAgICBsZXQgb3NjaWxsYXRvciA9IGNvbnRleHQuY3JlYXRlT3NjaWxs
YXRvcigpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgib3NjaWxsYXRvci5wbGF5YmFja1N0
YXRlIik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLlVOU0NIRURVTEVE
X1NUQVRFIik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLlNDSEVEVUxF
RF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgib3NjaWxsYXRvci5QTEFZSU5H
X1NUQVRFIik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLkZJTklTSEVE
X1NUQVRFIik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLl9fcHJvdG9f
Xy5wbGF5YmFja1N0YXRlIik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9y
Ll9fcHJvdG9fXy5VTlNDSEVEVUxFRF9TVEFURSIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5l
ZCgib3NjaWxsYXRvci5fX3Byb3RvX18uU0NIRURVTEVEX1NUQVRFIik7CisgICAgICAgIHNob3Vs
ZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLl9fcHJvdG9fXy5QTEFZSU5HX1NUQVRFIik7CisgICAg
ICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvc2NpbGxhdG9yLl9fcHJvdG9fXy5GSU5JU0hFRF9TVEFU
RSIpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vcGFnZS1jYW5zdGFydG1lZGlhLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9wYWdlLWNhbnN0YXJ0bWVkaWEuaHRtbAppbmRleCBkOThlYWUzMjIzMmUyZDdkYWQxNDhh
OGRkMWM1OTQ5NmUwZDlkNDk5Li41Njg5Y2Y4YjNhZGNkYTM5YTI5M2NhNmJmNDA0MzNlYzdjMjRk
YmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYWdlLWNhbnN0YXJ0bWVkaWEu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYWdlLWNhbnN0YXJ0bWVkaWEuaHRtbApA
QCAtMTksNyArMTksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQo
KTsKKyAgICBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogCiAgICAgY29udGV4dC5yZXN1
bWUoKS50aGVuKHJlc3VtZVByb21pc2VSZXNvbHZlZCkuY2F0Y2gocmVzdW1lUHJvbWlzZVJlamVj
dGVkKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93
ZXItc3RlcmVvLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1z
dGVyZW8uaHRtbAppbmRleCA4MDkyZDcyZDhiMzNmMjkxMDdhM2NlYzFhOGU5NjZiMDQ3NmMyY2Nh
Li40MGE1MWY5M2I1YzJhZTFlNWI5MWIyMDU5YmIzNTc2OTQ0MGVjODIxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbApAQCAtMjMs
NyArMjMsNyBAQAogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAg
ICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4
dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxp
bmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBs
ZVJhdGUpOwogCiAgICAgICAgICAgY3JlYXRlVGVzdEFuZFJ1bihjb250ZXh0LCBub2Rlc1RvQ3Jl
YXRlLCAyKTsKICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5l
ci1lcXVhbHBvd2VyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dl
ci5odG1sCmluZGV4IDgyZmIyMjBmNjZlNmJlNjAwODJlOTFiN2RmYmJkMzJkMjFjZmIyMWEuLmZh
Yjc5MGY1ZTMwOGVjOGQxYjkyNGJkNGViMTRiYTU3NTFiMTRmMWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICAgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZs
aW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwg
c2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAg
ICAgY3JlYXRlVGVzdEFuZFJ1bihjb250ZXh0LCBub2Rlc1RvQ3JlYXRlLCAxKTsKICAgICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFz
aWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVybm9k
ZS1iYXNpYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZDhi
YWU1Yjc0ZDJmYWRhNzAwYTIyZmI2MDRmMzBjYWJjOTI3ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcHJlZml4ZWQt
cGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCww
IEBACi1CYXNpYyB0ZXN0cyBmb3IgV2ViS2l0IFByZWZpeGVkIFBhbm5lck5vZGUuCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotUEFTUyBQYW5uZXJOb2RlIGhhcyBvbmUgaW5wdXQuCi1Q
QVNTIFBhbm5lck5vZGUgaGFzIG9uZSBvdXRwdXQuCi1QQVNTIHJlZkRpc3RhbmNlIGRlZmF1bHQg
dmFsdWUgaXMgMS4KLVBBU1MgcmVmRGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDI3MC41Mi4KLVBB
U1MgbWF4RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMC4KLVBBU1MgbWF4RGlzdGFuY2Ug
dmFsdWUgaXMgc2V0IHRvIDEwMC41NS4KLVBBU1Mgcm9sbG9mZkZhY3RvciBkZWZhdWx0IHZhbHVl
IGlzIDEuCi1QQVNTIHJvbGxvZmZGYWN0b3IgdmFsdWUgaXMgc2V0IHRvIDAuODMuCi1QQVNTIGNv
bmVJbm5lckFuZ2xlIGRlZmF1bHQgdmFsdWUgaXMgMzYwLgotUEFTUyBjb25lSW5uZXJBbmdsZSB2
YWx1ZSBpcyBzZXQgdG8gMjQwLjQ1LgotUEFTUyBjb25lT3V0ZXJBbmdsZSBkZWZhdWx0IHZhbHVl
IGlzIDM2MC4KLVBBU1MgY29uZU91dGVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDE2Ni42Ni4KLVBB
U1MgY29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIGlzIDAuCi1QQVNTIGNvbmVPdXRlckdhaW4g
dmFsdWUgaXMgc2V0IHRvIDAuMzUuCi1QQVNTIFBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ0hSVEYn
IHBhbm5pbmdNb2RlbC4KLVBBU1MgUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnaW52ZXJzZScgZGlz
dGFuY2VNb2RlbC4KLVBBU1MgcGFubmluZ01vZGVsOiAnZXF1YWxwb3dlcicgaXMgc2V0dGFibGUu
Ci1QQVNTIHBhbm5pbmdNb2RlbDogJ0hSVEYnIGlzIHNldHRhYmxlLgotUEFTUyBkaXN0YW5jZU1v
ZGVsOiAnbGluZWFyJyBpcyBzZXR0YWJsZS4KLVBBU1MgZGlzdGFuY2VNb2RlbDogJ2ludmVyc2Un
IGlzIHNldHRhYmxlLgotUEFTUyBkaXN0YW5jZU1vZGVsOiAnZXhwb25lbnRpYWwnIGlzIHNldHRh
YmxlLgotUEFTUyBTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgc3RyaW5nIHZhbHVl
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgotUEFTUyBTZXR0aW5nIC5kaXN0YW5jZU1vZGVs
IHRvIGlsbGVnYWwgdHlwZSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE0YzNjOTJiNTY4MDkyNDEzNmRlZTBjMWMzMzNjNjU3ZjQzNmVm
ZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTYyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RzIGZvciBXZWJLaXQgUHJlZml4
ZWQgUGFubmVyTm9kZS4iKTsKLQotdmFyIGNvbnRleHQgPSAwOwotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotICAgIGNvbnRleHQgPSBu
ZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7Ci0gICAgdmFyIHBhbm5lciA9IGNvbnRleHQuY3JlYXRl
UGFubmVyKCk7Ci0gICAKLSAgICBpZiAocGFubmVyLm51bWJlck9mSW5wdXRzID09PSAxKSAKLSAg
ICAgICAgdGVzdFBhc3NlZCgiUGFubmVyTm9kZSBoYXMgb25lIGlucHV0LiIpOwotICAgIGVsc2UK
LSAgICAgICAgdGVzdEZhaWxlZCgiUGFubmVyTm9kZSBzaG91bGQgaGF2ZSBvbmUgaW5wdXQuIik7
Ci0gICAgCi0gICAgaWYgKHBhbm5lci5udW1iZXJPZk91dHB1dHMgPT09IDEpIAotICAgICAgICB0
ZXN0UGFzc2VkKCJQYW5uZXJOb2RlIGhhcyBvbmUgb3V0cHV0LiIpOwotICAgIGVsc2UKLSAgICAg
ICAgdGVzdEZhaWxlZCgiUGFubmVyTm9kZSBzaG91bGQgaGF2ZSBvbmUgb3V0cHV0LiIpOwotCi0g
ICAgaWYgKHBhbm5lci5yZWZEaXN0YW5jZSA9PT0gMSkKLSAgICAgICAgdGVzdFBhc3NlZCgicmVm
RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZh
aWxlZCgicmVmRGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMS4iKTsKLSAgICAKLSAg
ICBwYW5uZXIucmVmRGlzdGFuY2UgPSAyNzAuNTIKLSAgICBpZiAocGFubmVyLnJlZkRpc3RhbmNl
ID09PSAyNzAuNTIpCi0gICAgICAgIHRlc3RQYXNzZWQoInJlZkRpc3RhbmNlIHZhbHVlIGlzIHNl
dCB0byAyNzAuNTIuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJyZWZEaXN0YW5j
ZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDI3MC41Mi4iKTsKLSAgICAKLSAgICBpZiAocGFubmVy
Lm1heERpc3RhbmNlID09PSAxMDAwMCkKLSAgICAgICAgdGVzdFBhc3NlZCgibWF4RGlzdGFuY2Ug
ZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQo
Im1heERpc3RhbmNlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDEwMDAwLiIpOwotICAgIAotICAg
IHBhbm5lci5tYXhEaXN0YW5jZSA9IDEwMC41NQotICAgIGlmIChwYW5uZXIubWF4RGlzdGFuY2Ug
PT09IDEwMC41NSkKLSAgICAgICAgdGVzdFBhc3NlZCgibWF4RGlzdGFuY2UgdmFsdWUgaXMgc2V0
IHRvIDEwMC41NS4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoIm1heERpc3RhbmNl
IHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMTAwLjU1LiIpOwotICAgIAotICAgIGlmIChwYW5uZXIu
cm9sbG9mZkZhY3RvciA9PT0gMSkKLSAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciBk
ZWZhdWx0IHZhbHVlIGlzIDEuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJyb2xs
b2ZmRmFjdG9yIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDEuIik7Ci0gICAgCi0gICAgcGFubmVy
LnJvbGxvZmZGYWN0b3IgPSAwLjgzCi0gICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAw
LjgzKQotICAgICAgICB0ZXN0UGFzc2VkKCJyb2xsb2ZmRmFjdG9yIHZhbHVlIGlzIHNldCB0byAw
LjgzLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCgicm9sbG9mZkZhY3RvciB2YWx1
ZSBzaG91bGQgYmUgc2V0IHRvIDAuODMuIik7Ci0gICAgCi0gICAgaWYgKHBhbm5lci5jb25lSW5u
ZXJBbmdsZSA9PT0gMzYwKQotICAgICAgICB0ZXN0UGFzc2VkKCJjb25lSW5uZXJBbmdsZSBkZWZh
dWx0IHZhbHVlIGlzIDM2MC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoImNvbmVJ
bm5lckFuZ2xlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDM2MC4iKTsKLSAgICAKLSAgICBwYW5u
ZXIuY29uZUlubmVyQW5nbGUgPSAyNDAuNDUKLSAgICBpZiAocGFubmVyLmNvbmVJbm5lckFuZ2xl
ID09PSAyNDAuNDUpCi0gICAgICAgIHRlc3RQYXNzZWQoImNvbmVJbm5lckFuZ2xlIHZhbHVlIGlz
IHNldCB0byAyNDAuNDUuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJjb25lSW5u
ZXJBbmdsZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDI0MC40NS4iKTsKLSAgICAKLSAgICBpZiAo
cGFubmVyLmNvbmVPdXRlckFuZ2xlID09PSAzNjApCi0gICAgICAgIHRlc3RQYXNzZWQoImNvbmVP
dXRlckFuZ2xlIGRlZmF1bHQgdmFsdWUgaXMgMzYwLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVz
dEZhaWxlZCgiY29uZU91dGVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMzYwLiIpOwot
ICAgIAotICAgIHBhbm5lci5jb25lT3V0ZXJBbmdsZSA9IDE2Ni42NgotICAgIGlmIChwYW5uZXIu
Y29uZU91dGVyQW5nbGUgPT09IDE2Ni42NikKLSAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVy
QW5nbGUgdmFsdWUgaXMgc2V0IHRvIDE2Ni42Ni4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RG
YWlsZWQoImNvbmVPdXRlckFuZ2xlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMTY2LjY2LiIpOwot
ICAgIAotICAgIGlmIChwYW5uZXIuY29uZU91dGVyR2FpbiA9PT0gMCkKLSAgICAgICAgdGVzdFBh
c3NlZCgiY29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIGlzIDAuIik7Ci0gICAgZWxzZQotICAg
ICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJHYWluIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDAu
Iik7Ci0KLSAgICBwYW5uZXIuY29uZU91dGVyR2FpbiA9IDAuMzUKLSAgICBpZiAocGFubmVyLmNv
bmVPdXRlckdhaW4gPT09IDAuMzUpCi0gICAgICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckdhaW4g
dmFsdWUgaXMgc2V0IHRvIDAuMzUuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJj
b25lT3V0ZXJHYWluIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMC4zNS4iKTsKLQotICAgIGlmIChw
YW5uZXIucGFubmluZ01vZGVsID09PSAiSFJURiIpCi0gICAgICAgIHRlc3RQYXNzZWQoIlBhbm5l
ck5vZGUgZGVmYXVsdHMgdG8gJ0hSVEYnIHBhbm5pbmdNb2RlbC4iKTsKLSAgICBlbHNlCi0gICAg
ICAgIHRlc3RGYWlsZWQoIlBhbm5lck5vZGUgc2hvdWxkIGRlZmF1bHQgdG8gJ0hSVEYnIHBhbm5p
bmdNb2RlbC4iKTsKLSAgICAKLSAgICBpZiAocGFubmVyLmRpc3RhbmNlTW9kZWwgPT09ICJpbnZl
cnNlIikKLSAgICAgICAgdGVzdFBhc3NlZCgiUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnaW52ZXJz
ZScgZGlzdGFuY2VNb2RlbC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoIlBhbm5l
ck5vZGUgc2hvdWxkIGRlZmF1bHQgdG8gJ2ludmVyc2UnIGRpc3RhbmNlTW9kZWwuIik7Ci0KLSAg
ICAvLyBDaGVjayB0aGF0IHRoZSAucGFubmluZ01vZGVsIGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHRv
IGFsbCBsZWdhbCB2YWx1ZXMuCi0gICAgdmFyIHBhbm5pbmdNb2RlbHMgPSBbe3ZhbHVlOiAiZXF1
YWxwb3dlciJ9LAotICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZTogIkhSVEYifSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIF07Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhbm5p
bmdNb2RlbHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHBhbm5l
ci5wYW5uaW5nTW9kZWwgPSBwYW5uaW5nTW9kZWxzW2ldLnZhbHVlOwotICAgICAgICAgICAgaWYg
KHBhbm5lci5wYW5uaW5nTW9kZWwgPT09IHBhbm5pbmdNb2RlbHNbaV0udmFsdWUpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJwYW5uaW5nTW9kZWw6ICciICsgcGFubmluZ01vZGVs
c1tpXS52YWx1ZSArICInIGlzIHNldHRhYmxlLiI7Ci0gICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZChtZXNzYWdlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdmFyIG1l
c3NhZ2UgPSAicGFubmluZ01vZGVsOiAnIiArIHBhbm5pbmdNb2RlbHNbaV0udmFsdWUgKyAiJyB3
YXMgbm90IGNvcnJlY3RseSBzZXQuIjsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKG1lc3Nh
Z2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgICAgIHZh
ciBtZXNzYWdlID0gIlNldHRpbmcgcGFubmluZ01vZGVsIHRvICciICsgcGFubmluZ01vZGVsc1tp
XS52YWx1ZSArICInIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiI7Ci0gICAgICAgICAgICB0
ZXN0RmFpbGVkKG1lc3NhZ2UpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sgdGhh
dCB0aGUgLmRpc3RhbmNlTW9kZWwgYXR0cmlidXRlIGNhbiBiZSBzZXQgdG8gYWxsIGxlZ2FsIHZh
bHVlcy4KLSAgICB2YXIgZGlzdGFuY2VNb2RlbHMgPSBbe3ZhbHVlOiAibGluZWFyIn0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZTogImludmVyc2UifSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAge3ZhbHVlOiAiZXhwb25lbnRpYWwifV07Ci0KLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGRpc3RhbmNlTW9kZWxzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9IGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVlOwot
ICAgICAgICAgICAgaWYgKHBhbm5lci5kaXN0YW5jZU1vZGVsID09PSBkaXN0YW5jZU1vZGVsc1tp
XS52YWx1ZSkgewotICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gImRpc3RhbmNlTW9kZWw6
ICciICsgZGlzdGFuY2VNb2RlbHNbaV0udmFsdWUgKyAiJyBpcyBzZXR0YWJsZS4iOwotICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQobWVzc2FnZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gImRpc3RhbmNlTW9kZWw6ICciICsgZGlzdGFuY2VN
b2RlbHNbaV0udmFsdWUgKyAiJyB3YXMgbm90IGNvcnJlY3RseSBzZXQuIjsKLSAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGNhdGNo
KGUpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gIlNldHRpbmcgZGlzdGFuY2VNb2RlbCB0
byAnIiArIGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVlICsgIicgc2hvdWxkIG5vdCB0aHJvdyBleGNl
cHRpb24uIjsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQobWVzc2FnZSk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICAvLyBDaGVjayB0aGF0IHdlIGRvbid0IHRocm93IGFuIGV4Y2VwdGlvbiBmb3Ig
aWxsZWdhbCAuZGlzdGFuY2VNb2RlbCB2YWx1ZXMgYXMgcGVyIFdlYklETC4KLSAgICBzaG91bGRO
b3RUaHJvd0V4Y2VwdGlvbihmdW5jdGlvbigpIHsgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSAieHl6
MTIzNDlqZmtzZCI7IH0sICJTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgc3RyaW5n
IHZhbHVlIik7Ci0gICAgc2hvdWxkTm90VGhyb3dFeGNlcHRpb24oZnVuY3Rpb24oKSB7IHBhbm5l
ci5kaXN0YW5jZU1vZGVsID0gbmV3IEZsb2F0MzJBcnJheSgxKTsgfSwgIlNldHRpbmcgLmRpc3Rh
bmNlTW9kZWwgdG8gaWxsZWdhbCB0eXBlIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQot
cnVuVGVzdCgpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhw
ZWN0ZWQudHh0CmluZGV4IGIxZWVjZjNmODgxMzQxZWI5ZTE3NDBhYTY1ZDZiMDQwNWEwZGM5MWMu
LmI4YjY5ODk1YmIyNjM1YzAxMWViNDZlMjBkMzNjZjU5ZTFiNmRmYTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5n
LWV4cGVjdGVkLnR4dApAQCAtMzksNyArMzksNyBAQCBQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9y
IGlsbGVnYWwgZmZ0U2l6ZSA2NTUzNi4KIFBBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdh
bCBmZnRTaXplIDY1NTM3LgogUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNp
emUgMTMxMDcyLgogUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTMx
MDczLgotUEFTUyB3ZWJraXRBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBG
RlQgYXJyYXkgcmVzaXppbmdzLgorUEFTUyBBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUg
aW52YWxpZCBGRlQgYXJyYXkgcmVzaXppbmdzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9y
ZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jl
YWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sCmluZGV4IDc2N2NiMTdjNGZmMjNmYjZjNmI1
NDk4YTYwZDA2ODNjZTJjMGM5MjkuLjFlZTczMTlhMjY1YTdmM2IzYTZkM2Y0N2M0Y2FiMjIxNDJl
MGM3ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXIt
ZmZ0LXNpemluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlz
ZXItZmZ0LXNpemluZy5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGRlc2NyaXB0aW9uKCJUZXN0IHRo
YXQgcmUtc2l6aW5nIHRoZSBGRlQgYXJyYXlzIGRvZXMgbm90IGZhaWwuIik7CiBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAogdmFyIGRvVGVzdCA9IGZ1bmN0aW9uKGZmdFNpemUsIGlsbGVnYWwpIHsK
LSAgICB2YXIgYyA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAw
KTsKKyAgICB2YXIgYyA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsK
ICAgICB2YXIgYSA9IGMuY3JlYXRlQW5hbHlzZXIoKTsKICAgICB0cnkgewogICAgICAgICBhLmZm
dFNpemUgPSBmZnRTaXplOwpAQCAtNDMsNyArNDMsNyBAQCBmb3IgKHZhciBpID0gMjsgaSA8PSAw
eDIwMDAwOyBpICo9IDIpIHsKICAgICBkb1Rlc3QoaSArIDEsIHRydWUpOwogfQogCi10ZXN0UGFz
c2VkKCJ3ZWJraXRBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJy
YXkgcmVzaXppbmdzLiIpOwordGVzdFBhc3NlZCgiQXVkaW9Db250ZXh0IHN1cnZpdmVkIG11bHRp
cGxlIGludmFsaWQgRkZUIGFycmF5IHJlc2l6aW5ncy4iKTsKIGZpbmlzaEpTVGVzdCgpOwogPC9z
Y3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJj
ZXMvYXVkaW8tY29kZWMtdGVzdC5qcyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9h
dWRpby1jb2RlYy10ZXN0LmpzCmluZGV4IDVjZmRlMDNhODIxZDYzMDQ0ZTgxMGQ3OGRmNDk1MTRj
MGZiYTA5MzIuLmQwNGVlMTA5ZDQ0M2MyZDQ0NDI4ZTY0ZWQ4YmM1OWI1NTE0NjY4MzEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0Lmpz
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0Lmpz
CkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIHJ1bkRlY29kaW5nVGVzdCh1cmwsIG9wdGlvbmFs
U2FtcGxlUmF0ZSkKICAgICB2YXIgc2FtcGxlUmF0ZSA9ICh0eXBlb2Ygb3B0aW9uYWxTYW1wbGVS
YXRlID09PSAidW5kZWZpbmVkIikgPyBkZWZhdWx0U2FtcGxlUmF0ZSA6IG9wdGlvbmFsU2FtcGxl
UmF0ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4
dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBsZW5ndGhJ
blNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29u
dGV4dCgxLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICAK
ICAgICBidWZmZXJMb2FkZXIgPSBuZXcgQnVmZmVyTG9hZGVyKAogICAgICAgICBjb250ZXh0LApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291
cmNlLWVuZGVkLWRldGFjaGVkLWZyYW1lLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vcmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291cmNlLWVuZGVkLWRldGFjaGVkLWZyYW1lLWlmcmFt
ZS5odG1sCmluZGV4IDZlOTNhOTkxOTg5NTk1NTRjN2JmOWEzOTU1ZThlYzZkZDA4OTZiZGYuLjNj
MGYxMjkwZjgyNzgwY2RmNmFlODYzOWVlODRjYzBiN2QyYzQ4NTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb2J1ZmZlcnNvdXJjZS1lbmRlZC1kZXRhY2hl
ZC1mcmFtZS1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMv
YXVkaW9idWZmZXJzb3VyY2UtZW5kZWQtZGV0YWNoZWQtZnJhbWUtaWZyYW1lLmh0bWwKQEAgLTEx
LDcgKzExLDcgQEAKICAgICB7CiAgICAgICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAuMDsKICAg
ICAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gMzI7Ci0gICAgICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7Cisg
ICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1l
cywgc2FtcGxlUmF0ZSk7CiAgICAgICAgIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291
cmNlKCk7CiAgICAgICAgIHNvdXJjZS5idWZmZXIgPSBjcmVhdGVUZXN0QnVmZmVyKGNvbnRleHQs
IG51bWJlck9mRnJhbWVzKTsKICAgICAgICAgc291cmNlLmNvbm5lY3QoY29udGV4dC5kZXN0aW5h
dGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9w
YXJhbS10ZXN0aW5nLWxlZ2FjeS5qcyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9h
dWRpb3BhcmFtLXRlc3RpbmctbGVnYWN5LmpzCmluZGV4IDY4MDdhMWU3ZTVmNzMzZTdlODY4ZTZm
MjNhM2M4ZTBiYmJmNThiNGYuLjNkZjMwODNkMWE1OGFiOWI2MzU0MjQwNDZmZGE3MDQxZjA2NGM3
MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFt
LXRlc3RpbmctbGVnYWN5LmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9h
dWRpb3BhcmFtLXRlc3RpbmctbGVnYWN5LmpzCkBAIC00MDUsNyArNDA1LDcgQEAgZnVuY3Rpb24g
Y3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QobnVtYmVyT2ZUZXN0cywgaW5pdGlhbFZhbHVlLCBzZXRW
YWx1ZUZ1bmN0aW9uLAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8v
IENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRP
ZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKSwgc2FtcGxl
UmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxl
bmd0aChudW1iZXJPZlRlc3RzKSwgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIGNvbnN0YW50QnVmZmVy
ID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgcmVuZGVyTGVuZ3RoKG51bWJlck9m
VGVzdHMpKTsKIAogICAgIC8vIFdlIHVzZSBhbiBBdWRpb0dhaW5Ob2RlIGhlcmUgc2ltcGx5IGFz
IGEgY29udmVuaWVudCB3YXkgdG8gdGVzdCB0aGUgQXVkaW9QYXJhbQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2NvbXBhdGliaWxpdHkuanMgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9yZXNvdXJjZXMvY29tcGF0aWJpbGl0eS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjAwMmIxNmM3MDRmMzk5N2U1NzE1YmVhMjVmM2I2MjM3NTAwOThmNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9yZXNvdXJjZXMvY29tcGF0aWJpbGl0eS5qcworKysgL2Rldi9udWxsCkBAIC0xLDgg
KzAsMCBAQAotLy8gVGhpcyB3aWxsIHByZXZlbnQgd29yayB0byB1cGRhdGUgdGVzdHMgdG8gdXNl
IHVucHJlZml4ZWQgb2JqZWN0cyBpbgotLy8gdGhlIGZ1dHVyZS4gIEl0IHdsbCBhbHNvIG1ha2Ug
aXQgcG9zc2libGUgdG8gYmlzZWN0IGJ1aWxkcyB1c2luZwotLy8gYSBXZWJLaXQgdGhhdCBvbmx5
IHN1cHBvcnRzIHByZWZpeGVkIG9iamVjdHMuCi0KLWlmICh3aW5kb3cuaGFzT3duUHJvcGVydHko
J3dlYmtpdEF1ZGlvQ29udGV4dCcpICYmICF3aW5kb3cuaGFzT3duUHJvcGVydHkoJ0F1ZGlvQ29u
dGV4dCcpKSB7Ci0gICAgd2luZG93LkF1ZGlvQ29udGV4dCA9IHdlYmtpdEF1ZGlvQ29udGV4dDsK
LSAgICB3aW5kb3cuT2ZmbGluZUF1ZGlvQ29udGV4dCA9IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQ7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNj
cmlwdGF1ZGlvbm9kZS10ZXN0aW5nLmpzIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2Vz
L2phdmFzY3JpcHRhdWRpb25vZGUtdGVzdGluZy5qcwppbmRleCA3ODdlMGQxMTQ1OTliODhkMTMw
YmYxZjc5NjUwOWM3MzE2NDc5ZWM4Li5jMDAyZmU3MjI1NDU4ZmVjY2MyNTRhOTIwNzhhMDk2Yjlm
MmYwYTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNj
cmlwdGF1ZGlvbm9kZS10ZXN0aW5nLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291
cmNlcy9qYXZhc2NyaXB0YXVkaW9ub2RlLXRlc3RpbmcuanMKQEAgLTY1LDcgKzY1LDcgQEAgZnVu
Y3Rpb24gY2hlY2tTdGVyZW9Pbmx5RGF0YShidWZmZXIsIG51bWJlck9mQ2hhbm5lbHMsIGxlbmd0
aCkgewogZnVuY3Rpb24gcnVuSlNOb2RlVGVzdCgpCiB7CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUg
YXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQoMiwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBu
ZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0
ZSk7CiAKICAgICB2YXIgc291cmNlQnVmZmVyID0gY3JlYXRlQnVmZmVyKGNvbnRleHQsIHNvdXJj
ZUNoYW5uZWxzLCByZW5kZXJMZW5ndGhJbkZyYW1lcyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9vc2NpbGxhdG9yLXRlc3RpbmctbGVnYWN5LmpzIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL29zY2lsbGF0b3ItdGVzdGluZy1sZWdhY3kuanMK
aW5kZXggYzI3ZmRhMTFmNDZkZTExZjg3OTFiYzFjMTk3MGU5YjE3Y2UzY2NmMS4uYjI3OTUzZDA4
ODYyZWNhMGEwMDMwNTFjNGU1ZDhkYjIwMzE5ZTVlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vcmVzb3VyY2VzL29zY2lsbGF0b3ItdGVzdGluZy1sZWdhY3kuanMKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL29zY2lsbGF0b3ItdGVzdGluZy1sZWdhY3kuanMK
QEAgLTE5LDcgKzE5LDcgQEAgdmFyIGNvbnRleHQgPSAwOwogCiBmdW5jdGlvbiBnZW5lcmF0ZUV4
cG9uZW50aWFsT3NjaWxsYXRvclN3ZWVwKG9zY2lsbGF0b3JUeXBlKSB7CiAgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVB
dWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7
CisgICAgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBs
ZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgdmFyIG9zYyA9IGNvbnRleHQuY3Jl
YXRlT3NjaWxsYXRvcigpOwogICAgIGlmIChvc2NpbGxhdG9yVHlwZSA9PSAiY3VzdG9tIikgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxp
bmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3NhbXBsZS1hY2N1cmF0ZS1zY2hlZHVsaW5n
Lmh0bWwKaW5kZXggMTZmNWVjMjllZWNiNDc3ZTBiZTAwMTk3N2Q4OWY1OWQ4YWVjOGE2OC4uYzJh
OWIwMWI4NzFkMjhkZDFhYTZkZDEwMzU3YTUyNDQzY2NjNGM4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUtc2NoZWR1bGluZy5odG1sCkBAIC0xMDgs
NyArMTA4LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQu
Ci0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJh
dGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgT2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVS
YXRlKTsKICAgICBjcmVhdGVJbXB1bHNlKCk7ICAgIAogCiAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzYW1wbGVPZmZzZXRzLmxlbmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9zaWxlbmNlLWFmdGVyLXBsYXliYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9zaWxlbmNlLWFmdGVyLXBsYXliYWNrLmh0bWwKaW5kZXggYWRhZjMxNjMwMmRjYzJmZWExOTA4
ZmE0Mzk0NzQ0YzIxNjNkYjdkZS4uN2IyMTlkZGM2Y2JiNjdkNTQxMzY2Mjc1ZGViYmFhYzNiNjcw
MGQ4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2lsZW5jZS1hZnRlci1wbGF5
YmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3NpbGVuY2UtYWZ0ZXItcGxheWJh
Y2suaHRtbApAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICAgfQogCiAgICAgICAgICBmdW5jdGlv
biBydW5UZXN0KCkgewotICAgICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1
ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsK
KyAgICAgICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxl
UmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICAgICBhdWRp
b0VsZW1lbnQgPSBuZXcgQXVkaW8oKTsKICAgICAgICAgICAgICBhdWRpb0VsZW1lbnQuc3JjID0g
InJlc291cmNlcy9tZWRpYS8xMjhrYnBzLTQ0a2h6Lm1wMyI7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2lsZW50LWF1ZGlvLWludGVycnVwdGVkLWluLWJhY2tn
cm91bmQuaHRtbAppbmRleCBjNWM1ZDVkZTQyMzc0YzljNmVjYjk5YmJkMGU2NzVhZGI1M2Y2OTJm
Li5iODI5NzY2ODJmNWExMGRmNGY1ODhkMDJmOTk2ZGRkOTkwYTQ3MTU2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3Vu
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3NpbGVudC1hdWRpby1pbnRlcnJ1cHRl
ZC1pbi1iYWNrZ3JvdW5kLmh0bWwKQEAgLTI5LDcgKzI5LDcgQEAgZnVuY3Rpb24gaGlkZVBhZ2Uo
KQogfQogCiBvbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICBjb250ZXh0ID0gbmV3ICh3aW5kb3cu
QXVkaW9Db250ZXh0IHx8IHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQpKCk7CisgICAgY29udGV4
dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKIAogICAgIGF1ZGlvRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImF1ZGlvIik7CiAgICAgYXVkaW9FbGVtZW50Lmxvb3AgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKaW5k
ZXggYzEyNGU3YzMwMjM3YjA3YTYxMzQzYmY2ZGQ2OTYyZjBkM2NhMGJiZC4uM2MwZTQ5ODg3NmU1
NTJjOTBhYTcwY2RlZDVlMjAzOTg1OGJjNzA4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sCkBAIC00NSw3ICs0NSw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAg
Ly8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dCwgdGhlIGRlc3RpbmF0aW9uIGlzIG1vbm8u
Ci0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJh
dGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3
IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMs
IHNhbXBsZVJhdGUpOwogICAgIC8vIENyZWF0ZSBhIHN0ZXJlbyBBdWRpb0J1ZmZlci4KICAgICB0
b25lQnVmZmVyID0gY3JlYXRlRGF0YUJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhTZWNvbmRz
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1sCmluZGV4IDcxNDJiZGE2NzVkOTc2
MDVmMTU0MzM2ZDQ5MmI5YTk5NWY3ZDEzMWUuLjJhN2RkYjJiNTFiYmUxMzNlZjUxMGVmYTUwYTMw
OWQ3ZGNkZGMyMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Rlc3QtYmFzaWMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby90ZXN0LWJhc2ljLmh0bWwKQEAgLTM5LDcg
KzM5LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVy
KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVk
aW9Db250ZXh0KCk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAg
dmFyIGF1ZGlvQnVmZmVyID0gY29udGV4dC5jcmVhdGVCdWZmZXIoMiwgbGVuZ3RoSW5TZWNvbmRz
ICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CiAgICAgCiAgICAgZ2VuZXJhdGVTaW5XYXZlKGF1
ZGlvQnVmZmVyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1t
b25vLTUxLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctbW9uby01MS5odG1s
CmluZGV4IDI1NDEwMmM2NWU0NzY1NTljMTQ5MzliYzFmZmIzMzMyZDZlZTNhMTMuLmMzMTdkMDU0
MDViOGUzOGQ3ZWVlMTc2MTZiYzgxNzI2ZjdjNjVmMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vdXAtbWl4aW5nLW1vbm8tNTEuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkgewogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBz
YW1wbGVSYXRlID0gNDQxMDAuMDsKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5l
QXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0
ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCg2LCBzYW1wbGVS
YXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVy
ID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCA0NDAsIHRvbmVMZW5ndGhTZWNvbmRzLCAxKTsg
CiAKICAgICB2YXIgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLXN0ZXJlby5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tc3RlcmVvLmh0bWwKaW5kZXggMTc3
MDMwZjQzMDI4NTkzNDMzMGI5ZDgzMTA0OTBiNDk5ZGViZjk4OC4uZThlYTM3MWNjNTU0NjFmOTRm
MjZhNTU1Y2QyODI1MTY2N2FhYWVhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
dXAtbWl4aW5nLW1vbm8tc3RlcmVvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAt
bWl4aW5nLW1vbm8tc3RlcmVvLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQKICAgICB2YXIgc2Ft
cGxlUmF0ZSA9IDQ0MTAwLjA7Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1
ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OworICAgIHZhciBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0
ZSAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9
IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgNDQwLCB0b25lTGVuZ3RoU2Vjb25kcywgMSk7IAog
CiAgICAgdmFyIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwKaW5kZXggNDE1YWVhMWEw
ZGU5ZDJhNzZmZTY5Nzg1NDg1NDlmMjQxMjQyODY0NS4uNDMzOWNjZTBjNDkzNmZiNTI4NDc5YmIw
YjZlODEzZGRmZGI3ZmJhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4
aW5nLXN0ZXJlby01MS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1z
dGVyZW8tNTEuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAg
ICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBzYW1wbGVSYXRlID0g
NDQxMDAuMDsKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFy
IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxl
bmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9u
ZUJ1ZmZlcihjb250ZXh0LCA0NDAsIHRvbmVMZW5ndGhTZWNvbmRzLCAyKTsgCiAKICAgICB2YXIg
c291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dh
dmVzaGFwZXIuaHRtbAppbmRleCBiYzU0MDBkMDgzZGI0ZTlkZDMzZDUxNzdiNmFmNGVhMDY1NGQ5
NTQ2Li4yMzBjZWY0Yjg1ZWQzZWFhYWE2ZDEwZmUxODRlMjkxNDNmNzZlZWZjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby93YXZlc2hhcGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vd2F2ZXNoYXBlci5odG1sCkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAg
IC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIG51bWJlck9mUmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRl
KTsKKyAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZSZW5k
ZXJGcmFtZXMsIHNhbXBsZVJhdGUpOwogICAgIAogICAgIC8vIHNvdXJjZSAtPiB3YXZlc2hhcGVy
IC0+IGRlc3RpbmF0aW9uCiAgICAgdmFyIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291
cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93ZWItYXVkaW8taXMtcGxh
eWluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2ViLWF1ZGlvLWlzLXBsYXlpbmcuaHRt
bAppbmRleCA1MzY0NTg3YjU5ZDg3OGJmNDFhMDFkZTJiZDhkNzMxN2I1YzQ4YTQ2Li5hZWQ3ZTJl
YWQwNTU0YzA3MmZiZWE3MmJkY2JlZjI1ZTRkNmQwMDc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby93ZWItYXVkaW8taXMtcGxheWluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3dlYi1hdWRpby1pcy1wbGF5aW5nLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ3aW5k
b3cuaW50ZXJuYWxzLnBhZ2VNZWRpYVN0YXRlKCkuaW5jbHVkZXMoJ0lzUGxheWluZ0F1ZGlvJyki
KTsKIAotICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAg
ICAgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgICAgIHZhciBmcmVx
dWVuY3kgPSAzMDA7CiAgICAgICAgIHZhciBvc2NpbGxhdG9yID0gY29udGV4dC5jcmVhdGVPc2Np
bGxhdG9yKCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dlYmF1ZGlvLWdj
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby93ZWJhdWRpby1nYy5odG1sCmluZGV4IDA5ZjQ3
ZjFiM2Q5ZGVjZGFmODAxNmI4OThhM2QwODliY2FjMzI1NmMuLjcxNjdlY2Y1MTFjNWEwNGI5ODBi
MTgxNGJhM2Q2OGExZTYwYTE4OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dl
YmF1ZGlvLWdjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2ViYXVkaW8tZ2MuaHRt
bApAQCAtMTYsNyArMTYsNyBAQCBmdW5jdGlvbiBjaGVja0V2ZW50KCkgewogfQogCiBmdW5jdGlv
biBpbml0KCkgewotICAgIGxldCBjdHggPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAg
bGV0IGN0eCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKIAogICAgIGxldCBzb3VyY2UgPSBjdHguY3Jl
YXRlT3NjaWxsYXRvcigpOwogICAgIHNvdXJjZS5mcmVxdWVuY3kudmFsdWUgPSAzMDA7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93ZWJraXRvZmZsaW5lYXVkaW9jb250ZXh0LXN0
YXJ0UmVuZGVyaW5nLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dl
YmtpdG9mZmxpbmVhdWRpb2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2gtZXhwZWN0ZWQudHh0
CmluZGV4IDA5Njk2NmRjMjVmZDhhMzI0YjRmMDMwMjdiMWQ2NWRlNDA4MWM2ZmUuLjcxMWRiMDY0
MzQyZWU2MDE5OTZhOGFiMzJkZDk3YTRmZGRmNGJjZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3dlYmtpdG9mZmxpbmVhdWRpb2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2gt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dlYmtpdG9mZmxpbmVhdWRp
b2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAotQ2hlY2tzIHRoYXQgc3RhcnRpbmcgcmVuZGVyaW5nIG9uIGEgd2Via2l0T2ZmbGluZUF1ZGlv
Q29udGV4dCB0aGF0IGhhcyBubyBub2RlcyBkb2VzIG5vdCBjcmFzaC4KK0NoZWNrcyB0aGF0IHN0
YXJ0aW5nIHJlbmRlcmluZyBvbiBhIE9mZmxpbmVBdWRpb0NvbnRleHQgdGhhdCBoYXMgbm8gbm9k
ZXMgZG9lcyBub3QgY3Jhc2guCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2Via2l0b2ZmbGluZWF1ZGlvY29udGV4dC1zdGFy
dFJlbmRlcmluZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2Via2l0b2ZmbGlu
ZWF1ZGlvY29udGV4dC1zdGFydFJlbmRlcmluZy1jcmFzaC5odG1sCmluZGV4IDI5NThkNWQ1OWY0
Yjg0NmQ5NDEwOGFiNDAyZDdjNGQ1ZWUwYzA2ZjcuLjUzMGUyMDVlNGUzZWZkMWZjNTczYjQyYmYw
NDY1MGZiZmY1ZmM1NzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dlYmtpdG9m
ZmxpbmVhdWRpb2NvbnRleHQtc3RhcnRSZW5kZXJpbmctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby93ZWJraXRvZmZsaW5lYXVkaW9jb250ZXh0LXN0YXJ0UmVuZGVyaW5nLWNy
YXNoLmh0bWwKQEAgLTMsMTAgKzMsMTAgQEAKIDxib2R5PgogPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiQ2hlY2tz
IHRoYXQgc3RhcnRpbmcgcmVuZGVyaW5nIG9uIGEgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCB0
aGF0IGhhcyBubyBub2RlcyBkb2VzIG5vdCBjcmFzaC4iKTsKK2Rlc2NyaXB0aW9uKCJDaGVja3Mg
dGhhdCBzdGFydGluZyByZW5kZXJpbmcgb24gYSBPZmZsaW5lQXVkaW9Db250ZXh0IHRoYXQgaGFz
IG5vIG5vZGVzIGRvZXMgbm90IGNyYXNoLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWxl
dCBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMTI4LCA0NDEwMCk7
CitsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEyOCwgNDQxMDApOwog
Y29udGV4dC5vbmNvbXBsZXRlID0gKCkgPT4gewogICAgIHRlc3RQYXNzZWQoIkZpbmlzaGVkIHJl
bmRlcmluZyIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2VicnRjL2F1ZGlvLXBlZXItY29ubmVjdGlvbi1nNzIyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJy
dGMvYXVkaW8tcGVlci1jb25uZWN0aW9uLWc3MjIuaHRtbAppbmRleCA0YjU0OWJlZjkwNGVmZjIx
ZjA0MDgxMDZkNGExYmNmOWIzNjRjMjg2Li41YjZlMmEyMTEzZGViMDM1NGJiNzMxZmI3Nzk2YjU2
NmI5NWM2OGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tcGVlci1jb25u
ZWN0aW9uLWc3MjIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tcGVlci1jb25u
ZWN0aW9uLWc3MjIuaHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYyA9
InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotdmFyIGNvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KCk7Cit2YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsK
IHZhciByZW1vdGVTdHJlYW07CiAKIGFzeW5jIGZ1bmN0aW9uIGNoZWNrRm9ySHVtQmlwQm9wKHN0
cmVhbSwgcHJldmlvdXNSZXN1bHRzLCBjb3VudGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2VicnRjL2F1ZGlvLXBlZXItY29ubmVjdGlvbi13ZWJhdWRpby5odG1sIGIvTGF5b3V0VGVzdHMv
d2VicnRjL2F1ZGlvLXBlZXItY29ubmVjdGlvbi13ZWJhdWRpby5odG1sCmluZGV4IDBkYWY2NjEw
NTYxYTMzNWNmOWVhYmM4OWU0NzBmODMzYTcyZmFlZDkuLjk0MzMxN2U4OWRmY2IwNWRlODA4ZThl
OWMyNDUzNGI3OTYzNTgwNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9hdWRpby1w
ZWVyLWNvbm5lY3Rpb24td2ViYXVkaW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvYXVk
aW8tcGVlci1jb25uZWN0aW9uLXdlYmF1ZGlvLmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAg
ICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29udGV4
dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICB2YXIgcmVtb3RlU3RyZWFtOwogCiAgICAgYXN5
bmMgZnVuY3Rpb24gY2hlY2tGb3JIdW1CaXBCb3Aoc3RyZWFtLCBwcmV2aW91c1Jlc3VsdHMsIGNv
dW50ZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvY2xvbmUtYXVkaW8tdHJhY2su
aHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9jbG9uZS1hdWRpby10cmFjay5odG1sCmluZGV4IDBm
OTM3NDg0OTA4M2Y0YWRlMDI3NjY1NzRhMTUzYjU4MmQ5MWJiZGIuLjQyNDM3ZTcxOTQ1MGRlNTk4
MjEyNTRmNzQ2ZThjN2UzZWY2OTI3NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9j
bG9uZS1hdWRpby10cmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9jbG9uZS1hdWRp
by10cmFjay5odG1sCkBAIC05LDcgKzksNyBAQAogPGJvZHk+CiAgICAgPHNjcmlwdCBzcmMgPSJy
b3V0aW5lcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICB2YXIgY29udGV4dCA9IG5l
dyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRl
eHQoKTsKICAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQogICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9u
KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2dldFVzZXJNZWRpYS13ZWJh
dWRpby1hdXRvcGxheS5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL2dldFVzZXJNZWRpYS13ZWJh
dWRpby1hdXRvcGxheS5odG1sCmluZGV4IDcyM2U3YTkzOWMzMzQyMzk0ZTBjNmZiODA1M2I5ODZl
NjAxYWU1MjEuLjliZTYyODY5MmYwODdmNmMzMDJjMGQ4NTVmODc0NTU0MTVkZjAzNWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9nZXRVc2VyTWVkaWEtd2ViYXVkaW8tYXV0b3BsYXku
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLWF1dG9w
bGF5Lmh0bWwKQEAgLTExLDcgKzExLDcgQEAKIHRlc3QoKCkgPT4gewogICAgIGFzc2VydF90cnVl
KCEhd2luZG93LmludGVybmFscywgIlRlc3QgcmVxdWlyZXMgaW50ZXJuYWxzIEFQSSIpOwogCi0g
ICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgdmFyIGNvbnRl
eHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgaW50ZXJuYWxzLnNldEF1ZGlvQ29udGV4dFJl
c3RyaWN0aW9ucyhjb250ZXh0LCAnUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9TdGFydCcpOwog
CiAgICAgdmFyIG5vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpAQCAtMjMsNyAr
MjMsNyBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICBpZiAoIXdpbmRvdy5pbnRlcm5h
bHMpCiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgiVGVzdCByZXF1aXJlcyBpbnRlcm5h
bHMgQVBJIik7CiAKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsK
KyAgICB2YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICBpbnRlcm5hbHMuc2V0
QXVkaW9Db250ZXh0UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1aXJlVXNlckdlc3R1cmVGb3JB
dWRpb1N0YXJ0Jyk7CiAKICAgICB2YXIgbm9kZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNl
KCk7CkBAIC00Nyw3ICs0Nyw3IEBAIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgIGlmICgh
d2luZG93LmludGVybmFscykKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJUZXN0IHJl
cXVpcmVzIGludGVybmFscyBBUEkiKTsKICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSkudGhlbigoc3RyZWFtKSA9PiB7Ci0gICAgICAg
IHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgICAgICB2YXIgY29u
dGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICAgICAgaW50ZXJuYWxzLnNldEF1ZGlvQ29u
dGV4dFJlc3RyaWN0aW9ucyhjb250ZXh0LCAnUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9TdGFy
dCcpOwogCiAgICAgICAgIHZhciBub2RlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsK
QEAgLTYwLDcgKzYwLDcgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgaWYgKCF3aW5k
b3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIlRlc3QgcmVxdWly
ZXMgaW50ZXJuYWxzIEFQSSIpOwogICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KS50aGVuKChzdHJlYW0pID0+IHsKLSAgICAgICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgIHZhciBjb250ZXh0
ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogICAgICAgICBpbnRlcm5hbHMuc2V0QXVkaW9Db250ZXh0
UmVzdHJpY3Rpb25zKGNvbnRleHQsICdSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0Jyk7
CiAKICAgICAgICAgdmFyIG5vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1hdWRpby1tdXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlvLW11dGUuaHRtbApp
bmRleCA0YWQ2MTY3ZTYyMzI2MTllM2Y5NWMyNGJlYmMxNjViMjk2YjgyODkxLi5lOTk5YjYxMzNk
MGMyNjNjNmUyMzU2MWU3NTJiMTNiM2JkNWUxMTVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlvLW11dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJydGMvcGVlci1jb25uZWN0aW9uLWF1ZGlvLW11dGUuaHRtbApAQCAtOSw3ICs5LDcgQEAKIDxi
b2R5PgogICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQ+Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgdmFy
IGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9
PiB7CiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tbXV0ZTIuaHRtbCBiL0xheW91dFRlc3RzL3dl
YnJ0Yy9wZWVyLWNvbm5lY3Rpb24tYXVkaW8tbXV0ZTIuaHRtbAppbmRleCBjYWE3NTdmODU2MTRm
NDExMmVmN2UwZWVlNzZmYzZjZGUyOGUyMzVkLi5iMGExODE5ODdlNTY0NjM3NTAyYjI2MTc4ODcz
OTc0ZDc5Y2MwYjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0
aW9uLWF1ZGlvLW11dGUyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVj
dGlvbi1hdWRpby1tdXRlMi5odG1sCkBAIC05LDcgKzksNyBAQAogPGJvZHk+CiAgICAgPHNjcmlw
dCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLSAgICB2YXIgY29u
dGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyBB
dWRpb0NvbnRleHQoKTsKICAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgdmFy
IGxvY2FsVHJhY2s7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86IHRydWV9KS50aGVuKChsb2NhbFN0cmVhbSkgPT4gewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1jcmVhdGVNZWRpYVN0cmVhbURl
c3RpbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWNyZWF0
ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24uaHRtbAppbmRleCAyNjRiZjg3YzI4OWFmNDQwMjFhNmJm
ZmRlZTQwYzQzY2Q4MDQ0MmQ5Li41N2UyZjZlNWJmZjUwY2ZjM2RlMmU5ZGY3NmQ5ZjI2NTJkNjdk
MDY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLWNyZWF0
ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVl
ci1jb25uZWN0aW9uLWNyZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24uaHRtbApAQCAtNyw3ICs3
LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0PgotICAgIGNvbnN0IG5vaXNlQ29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQoKTsKKyAgICBjb25zdCBub2lzZUNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAg
Y29uc3Qgb3NjaWxsYXRvciA9IG5vaXNlQ29udGV4dC5jcmVhdGVPc2NpbGxhdG9yKCk7CiAgICAg
Y29uc3QgYXVkaW9TdHJlYW1EZXN0aW5hdGlvbiA9IG5vaXNlQ29udGV4dC5jcmVhdGVNZWRpYVN0
cmVhbURlc3RpbmF0aW9uKCk7CiAgICAgY29uc3QgYXVkaW9TdHJlYW0gPSBhdWRpb1N0cmVhbURl
c3RpbmF0aW9uLnN0cmVhbTsKQEAgLTE1LDcgKzE1LDcgQEAKICAgICBvc2NpbGxhdG9yLnN0YXJ0
KCk7CiAgICAgY29uc3QgYXVkaW9UcmFjayA9IGF1ZGlvU3RyZWFtLmdldEF1ZGlvVHJhY2tzKClb
MF07CiAKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2
YXIgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAgICB2YXIgcmVtb3RlU3RyZWFtOwog
CiAgICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tGb3JIdW1CaXBCb3Aoc3RyZWFtLCBwcmV2aW91c1Jl
c3VsdHMsIGNvdW50ZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25u
ZWN0aW9uLXJlbW90ZS1hdWRpby1tdXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1j
b25uZWN0aW9uLXJlbW90ZS1hdWRpby1tdXRlLmh0bWwKaW5kZXggNjAyNGM0ZDgyOGE1MDlhODRl
ZDZiZmFiZGNmZTlkMzRmNjU5Y2U0NC4uN2I5YjJhNWIyN2Q3NjBmOWU0OWEyN2E5MDE4NDMzZGYw
MzliYWE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1y
ZW1vdGUtYXVkaW8tbXV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyLWNvbm5l
Y3Rpb24tcmVtb3RlLWF1ZGlvLW11dGUuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgIDxzY3Jp
cHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAKLSAgICB2YXIg
Y29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgY29udGV4dCA9IG5l
dyBBdWRpb0NvbnRleHQoKTsKICAgICB2YXIgcmVtb3RlU3RyZWFtOwogICAgIGFzeW5jIGZ1bmN0
aW9uIGNoZWNrRm9yU291bmQoZXhwZWN0ZWQsIG1lc3NhZ2UsIGNvdW50KQogICAgIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tcmVtb3RlLWF1ZGlvLW11
dGUyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlci1jb25uZWN0aW9uLXJlbW90ZS1hdWRp
by1tdXRlMi5odG1sCmluZGV4IGNjZDJlYjI5ZDRmNTRjOWFiNjA0NTg2YjlkYTMyMTk5MzE2OTAx
ZjAuLjZiMzJkMmIzZmNlMWZhY2Q3MGExOWY4NjY0NTlhZTZiZjllNWUyNDUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyLWNvbm5lY3Rpb24tcmVtb3RlLWF1ZGlvLW11dGUyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXItY29ubmVjdGlvbi1yZW1vdGUtYXVkaW8t
bXV0ZTIuaHRtbApAQCAtOSw3ICs5LDcgQEAKIDxib2R5PgogICAgIDxzY3JpcHQgc3JjID0icm91
dGluZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0
KCk7CiAgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KS50aGVuKChsb2NhbFN0
cmVhbSkgPT4gewogICAgICAgICAgICAgdmFyIHJlbW90ZVRyYWNrOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVz
LmpzCmluZGV4IGJlNDU5MTZkMmI0MGYxNDRlODJkNDJmNzJhZDM2NDY1ZWY1N2MwNGQuLmQ4ZGI3
MmY2NWQxNzY5NjFlYTc5N2M5ZGM0ODJiZDBiNTFlZjkzYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMu
anMKQEAgLTE2Nyw3ICsxNjcsNyBAQCBmdW5jdGlvbiB3YWl0Rm9yVmlkZW9TaXplKHZpZGVvLCB3
aWR0aCwgaGVpZ2h0LCBjb3VudCkKIAogYXN5bmMgZnVuY3Rpb24gZG9IdW1BbmFseXNpcyhzdHJl
YW0sIGV4cGVjdGVkKQogewotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4
dCgpOworICAgIHZhciBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogICAgIGZvciAodmFy
IGNwdHIgPSAwOyBjcHRyIDwgMjA7IGNwdHIrKykgewogICAgICAgICB2YXIgcmVzdWx0cyA9IGF3
YWl0IGFuYWx5c2VBdWRpbyhzdHJlYW0sIDIwMCwgY29udGV4dCk7CiAgICAgICAgIGlmIChyZXN1
bHRzLmhlYXJkSHVtID09PSBleHBlY3RlZCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>