<?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>184717</bug_id>
          
          <creation_ts>2018-04-17 17:01:28 -0700</creation_ts>
          <short_desc>REGRESSION(r230697): These caused multiple failures on the Test262 testers. (Requested by mlewis13 on #webkit).</short_desc>
          <delta_ts>2018-04-17 17:07:04 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>184600</blocked>
    
    <blocked>184689</blocked>
    
    <blocked>184703</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>jfbastien</cc>
    
    <cc>jlewis3</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1415348</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-17 17:01:28 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/230697 broke the build:
These caused multiple failures on the Test262 testers. (Requested by mlewis13 on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415352</commentid>
    <comment_count>1</comment_count>
      <attachid>338161</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-17 17:01:45 -0700</bug_when>
    <thetext>Created attachment 338161
ROLLOUT of r230697

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415354</commentid>
    <comment_count>2</comment_count>
      <attachid>338161</attachid>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-04-17 17:03:03 -0700</bug_when>
    <thetext>Comment on attachment 338161
ROLLOUT of r230697

Landing Rollout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415359</commentid>
    <comment_count>3</comment_count>
      <attachid>338161</attachid>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-04-17 17:05:13 -0700</bug_when>
    <thetext>Comment on attachment 338161
ROLLOUT of r230697

Clearing flags on attachment: 338161

Committed r230741: &lt;https://trac.webkit.org/changeset/230741&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415360</commentid>
    <comment_count>4</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-04-17 17:05:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415363</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-17 17:07:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/39510774&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338161</attachid>
            <date>2018-04-17 17:01:45 -0700</date>
            <delta_ts>2018-04-17 17:05:13 -0700</delta_ts>
            <desc>ROLLOUT of r230697</desc>
            <filename>bug-184717-20180417200145.patch</filename>
            <type>text/plain</type>
            <size>110285</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2VmZjA1M2RkMmRmYWZhMjU0ZGQ2MTQzMjk1YmUzNTBlZTAyYzZjLi5lMDk5Mzk4ODJiNWViMTRk
NTFhYzc0NTdkNmQwNjFiMzFmMWQyYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxOC0wNC0xNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMDY5NywgcjIzMDcy
MCwgYW5kIHIyMzA3MjQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODQ3MTcKKworICAgICAgICBUaGVzZSBjYXVzZWQgbXVsdGlwbGUgZmFpbHVyZXMg
b24gdGhlIFRlc3QyNjIgdGVzdGVycy4KKyAgICAgICAgKFJlcXVlc3RlZCBieSBtbGV3aXMxMyBv
biAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJb
V2ViQXNzZW1ibHldW01vZHVsZXNdIFByb3RvdHlwZSB3YXNtIGltcG9ydCIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDYwMAorICAgICAgICBodHRw
czovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMwNjk3CisKKyAgICAgICAgIltXZWJBc3Nl
bWJseV1bTW9kdWxlc10gSW1wbGVtZW50IGZ1bmN0aW9uIGltcG9ydCBmcm9tIHdhc20KKyAgICAg
ICAgbW9kdWxlcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NDY4OQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjMw
NzIwCisKKyAgICAgICAgIltKU0NdIFJlbmFtZSBydW5XZWJBc3NlbWJseSB0byBydW5XZWJBc3Nl
bWJseVN1aXRlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg0NzAzCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzA3
MjQKKwogMjAxOC0wNC0xNyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQSBwdXQgaXMgbm90IGFuIEV4aXN0aW5nUHJvcGVydHkgcHV0IHdoZW4gd2UgdHJhbnNp
dGlvbiBhIHN0cnVjdHVyZSBiZWNhdXNlIG9mIGFuIGF0dHJpYnV0ZXMgY2hhbmdlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlNTkzZTI4YWIwNjYwYWVlYWNkZWUyZWIzZTIxODFm
ZGVjMGZlYWUuLjAyYTZkN2Q2ZjUyMGJiNzkzYWUyNzVlYjc4NjUwY2Y3ZTdjMzU0MDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzA4LDcgKzE3MDgsNiBAQAogCQlFMzVDQTE1
NDFEQkMzQTVDMDBGODM1MTYgLyogRE9NSklUSGVhcFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVDQTE1MjFEQkMzQTU2MDBGODM1MTYgLyog
RE9NSklUSGVhcFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTM1Q0ExNTYxREJDM0E1RjAwRjgzNTE2IC8qIERPTUpJVEFic3RyYWN0SGVh
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1Q0Ex
NTAxREJDM0E1NjAwRjgzNTE2IC8qIERPTUpJVEFic3RyYWN0SGVhcC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNUUwMzYwMUI3QUI0M0UwMDcz
QUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUUwMzVFMUI3QUI0M0UwMDczQUQyQSAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlFMzZDQzk0NzIwODYzMTRGMDA1MUZGRDYgLyog
V2FzbUNyZWF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM2Q0M5NDYyMDg2MzE0RjAwNTFGRkQ2IC8qIFdhc21DcmVhdGlvbk1vZGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzc5NEU3
NjFCNzdFQjk3MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNzk0RTc0MUI3N0VCOTcwMDU1NDNBRSAvKiBN
b2R1bGVBbmFseXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzOTNBREQ4MUZFNzAyRDAwMDIyRDY4MSAvKiBXZWFrTWFwSW1wbElubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTNBREQ3
MUZFNzAyQ0MwMDIyRDY4MSAvKiBXZWFrTWFwSW1wbElubGluZXMuaCAqLzsgfTsKIAkJRTM5RDQ1
RjUxRDM5MDA1NjAwQjNCMzc3IC8qIEludGVycHJldGVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5RDlEODQxRDM5MDAwNjAwNjY3Mjgy
IC8qIEludGVycHJldGVySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC00NTYyLDcgKzQ1NjEsNiBAQAogCQlFMzVFMDM1RDFCN0FCNDNF
MDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUUwMzVFMUI3QUI0M0UwMDcz
QUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUzNkNDOTQ2MjA4NjMxNEYwMDUxRkZENiAvKiBXYXNtQ3Jl
YXRpb25Nb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21DcmVhdGlv
bk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM3OTRFNzMxQjc3RUI5NzAw
NTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1vZHVsZUFuYWx5emVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTM3OTRFNzQxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUFuYWx5emVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzODBBNzZCMURDRDcxOTUwMDBGODlFNiAvKiBNYWNyb0Fzc2VtYmxl
ckhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjcm9Bc3NlbWJs
ZXJIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjY3LDcgKzYyNjUs
NiBAQAogCQkJCTUyNkFDNEI1MUU5NzdDNUQwMDM1MDBFMSAvKiBXYXNtQ29kZUJsb2NrLmggKi8s
CiAJCQkJQUQ0MTJCMzExRTdCMkU4QTAwOEFGMTU3IC8qIFdhc21Db250ZXh0LmNwcCAqLywKIAkJ
CQlBRDQxMkIzMjFFN0IyRThBMDA4QUYxNTcgLyogV2FzbUNvbnRleHQuaCAqLywKLQkJCQlFMzZD
Qzk0NjIwODYzMTRGMDA1MUZGRDYgLyogV2FzbUNyZWF0aW9uTW9kZS5oICovLAogCQkJCUFENUMz
NkRDMUY2ODhCNUYwMDBCQ0FBRiAvKiBXYXNtRW1iZWRkZXIuaCAqLywKIAkJCQk3OURBRTI3OTFF
MDNDODIyMDBCNTI2QUEgLyogV2FzbUV4Y2VwdGlvblR5cGUuaCAqLywKIAkJCQk1MzgxQjkzNjFF
NjBFOTY2MDA5MEY3OTQgLyogV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAgKi8sCkBAIC04NzM5
LDYgKzg3MzYsNyBAQAogCQkJCTBGMjVGMUI0MTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0
aENhbGxLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMjJFNUE3MURBNjQ0QTgwMDZFNzcwOSAv
KiBGVExTbmlwcGV0UGFyYW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJENzE3MTc4RTFD
MDA2OTBDN0YgLyogRlRMU3RhY2ttYXBBcmd1bWVudExpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUZFNDc2RkY0MjA3RTg1RDUwMDkzQ0EyRCAvKiBKSVRDb2RlTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVBMEExMjE3MDUxM0RCMDBCQjcyMkMgLyogRlRMU3RhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3RkNDMjZEMTdBMEI2QUEwMDc4NkQxQSAvKiBGVExTd2l0Y2hDYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjIzNUJFMjE3MTc4RTFDMDA2OTBDN0YgLyogRlRMVGh1bmtzLmggaW4g
SGVhZGVycyAqLywKQEAgLTg5MzAsNyArODkyOCw2IEBACiAJCQkJRkUzQTA2QTYxQzEwQjcyRDAw
MzkwRkREIC8qIEpJVEJpdE9yR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTNBMDZC
NDFDMTBDQjkzMDAzOTBGREQgLyogSklUQml0WG9yR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NkNDRUZERTBGNDEzRjg5MDBGRDdGOUUgLyogSklUQ29kZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRkU0NzZGRjQyMDdFODVENTAwOTNDQTJEIC8qIEpJVENvZGVNYXAuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMDc3NkJGMTRGRjAwMkIwMDEwMjMzMiAvKiBKSVRDb21waWxhdGlvbkVmZm9y
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZBRjdFRkUxNjVCQTkxRjAwMEM4NDU1IC8qIEpJVERp
c2Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUxODdBMEQxQzAzMEQ1QzAwMzhCQkNB
IC8qIEpJVERpdkdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC05NDk0LDcgKzk0OTEsNiBA
QAogCQkJCTUzRkQwNEQ0MUQ3QUIyOTEwMDMyODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTUyNkFDNEI3MUU5NzdDNUQwMDM1MDBFMSAvKiBXYXNtQ29k
ZUJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDQxMkIzNDFFN0IyRTlFMDA4QUYxNTcgLyog
V2FzbUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzNkNDOTQ3MjA4NjMxNEYwMDUxRkZE
NiAvKiBXYXNtQ3JlYXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDVDMzZERDFGNjg4
QjY1MDAwQkNBQUYgLyogV2FzbUVtYmVkZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OURBRTI3
QTFFMDNDODIyMDBCNTI2QUEgLyogV2FzbUV4Y2VwdGlvblR5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUzODFCOTM5MUU2MEU5N0QwMDkwRjc5NCAvKiBXYXNtRmF1bHRTaWduYWxIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmpzCmluZGV4IGVlZjkxZWI4NjU1MWZhOTMxOTdjMTRk
ODA5MDhkZDY5ZjU2ZGM3NGEuLjkzZjIyMjU2ZDY3M2Q2MTIyMDgwZTBlYjFmNDZlNmRjMzE1YmNl
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Nb2R1bGVMb2Fk
ZXJQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL01vZHVs
ZUxvYWRlclByb3RvdHlwZS5qcwpAQCAtOTUsNiArOTUsNyBAQCBmdW5jdGlvbiBuZXdSZWdpc3Ry
eUVudHJ5KGtleSkKICAgICAgICAgaW5zdGFudGlhdGU6IEB1bmRlZmluZWQsCiAgICAgICAgIHNh
dGlzZnk6IEB1bmRlZmluZWQsCiAgICAgICAgIGRlcGVuZGVuY2llczogW10sIC8vIFRvIGtlZXAg
dGhlIG1vZHVsZSBvcmRlciwgd2Ugc3RvcmUgdGhlIG1vZHVsZSBrZXlzIGluIHRoZSBhcnJheS4K
KyAgICAgICAgZGVwZW5kZW5jaWVzTWFwOiBAdW5kZWZpbmVkLAogICAgICAgICBtb2R1bGU6IEB1
bmRlZmluZWQsIC8vIEpTTW9kdWxlUmVjb3JkCiAgICAgICAgIGxpbmtFcnJvcjogQHVuZGVmaW5l
ZCwKICAgICAgICAgbGlua1N1Y2NlZWRlZDogdHJ1ZSwKQEAgLTE5NiwyMiArMTk3LDIyIEBAIGZ1
bmN0aW9uIHJlcXVlc3RJbnN0YW50aWF0ZShlbnRyeSwgcGFyYW1ldGVycywgZmV0Y2hlcikKICAg
ICAgICAgZW50cnkuaW5zdGFudGlhdGUgPSBpbnN0YW50aWF0ZVByb21pc2U7CiAKICAgICAgICAg
dmFyIGtleSA9IGVudHJ5LmtleTsKLSAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VNb2R1bGUoa2V5
LCBzb3VyY2UpLnRoZW4oKG1vZHVsZVJlY29yZCkgPT4gewotICAgICAgICAgICAgdmFyIGRlcGVu
ZGVuY2llc01hcCA9IG1vZHVsZVJlY29yZC5kZXBlbmRlbmNpZXNNYXA7Ci0gICAgICAgICAgICB2
YXIgcmVxdWVzdGVkTW9kdWxlcyA9IHRoaXMucmVxdWVzdGVkTW9kdWxlcyhtb2R1bGVSZWNvcmQp
OwotICAgICAgICAgICAgdmFyIGRlcGVuZGVuY2llcyA9IEBuZXdBcnJheVdpdGhTaXplKHJlcXVl
c3RlZE1vZHVsZXMubGVuZ3RoKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGgg
PSByZXF1ZXN0ZWRNb2R1bGVzLmxlbmd0aDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIGRlcE5hbWUgPSByZXF1ZXN0ZWRNb2R1bGVzW2ldOwotICAgICAgICAgICAgICAg
IHZhciBkZXBLZXkgPSB0aGlzLnJlc29sdmVTeW5jKGRlcE5hbWUsIGtleSwgZmV0Y2hlcik7Ci0g
ICAgICAgICAgICAgICAgdmFyIGRlcEVudHJ5ID0gdGhpcy5lbnN1cmVSZWdpc3RlcmVkKGRlcEtl
eSk7Ci0gICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGRlcGVuZGVuY2llcywgaSwgZGVw
RW50cnkpOwotICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc01hcC5Ac2V0KGRlcE5hbWUsIGRl
cEVudHJ5KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVudHJ5LmRlcGVuZGVuY2llcyA9
IGRlcGVuZGVuY2llczsKLSAgICAgICAgICAgIGVudHJ5Lm1vZHVsZSA9IG1vZHVsZVJlY29yZDsK
LSAgICAgICAgICAgIEBzZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlU2F0aXNmeSk7Ci0gICAg
ICAgICAgICByZXR1cm4gZW50cnk7Ci0gICAgICAgIH0pOworICAgICAgICB2YXIgbW9kdWxlUmVj
b3JkID0gdGhpcy5wYXJzZU1vZHVsZShrZXksIHNvdXJjZSk7CisgICAgICAgIHZhciBkZXBlbmRl
bmNpZXNNYXAgPSBtb2R1bGVSZWNvcmQuZGVwZW5kZW5jaWVzTWFwOworICAgICAgICB2YXIgcmVx
dWVzdGVkTW9kdWxlcyA9IHRoaXMucmVxdWVzdGVkTW9kdWxlcyhtb2R1bGVSZWNvcmQpOworICAg
ICAgICB2YXIgZGVwZW5kZW5jaWVzID0gQG5ld0FycmF5V2l0aFNpemUocmVxdWVzdGVkTW9kdWxl
cy5sZW5ndGgpOworICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gcmVxdWVzdGVkTW9k
dWxlcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGRlcE5hbWUg
PSByZXF1ZXN0ZWRNb2R1bGVzW2ldOworICAgICAgICAgICAgdmFyIGRlcEtleSA9IHRoaXMucmVz
b2x2ZVN5bmMoZGVwTmFtZSwga2V5LCBmZXRjaGVyKTsKKyAgICAgICAgICAgIHZhciBkZXBFbnRy
eSA9IHRoaXMuZW5zdXJlUmVnaXN0ZXJlZChkZXBLZXkpOworICAgICAgICAgICAgQHB1dEJ5VmFs
RGlyZWN0KGRlcGVuZGVuY2llcywgaSwgZGVwRW50cnkpOworICAgICAgICAgICAgZGVwZW5kZW5j
aWVzTWFwLkBzZXQoZGVwTmFtZSwgZGVwRW50cnkpOworICAgICAgICB9CisgICAgICAgIGVudHJ5
LmRlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llczsKKyAgICAgICAgZW50cnkuZGVwZW5kZW5jaWVz
TWFwID0gZGVwZW5kZW5jaWVzTWFwOworICAgICAgICBlbnRyeS5tb2R1bGUgPSBtb2R1bGVSZWNv
cmQ7CisgICAgICAgIEBzZXRTdGF0ZVRvTWF4KGVudHJ5LCBATW9kdWxlU2F0aXNmeSk7CisgICAg
ICAgIHJldHVybiBlbnRyeTsKICAgICB9KTsKICAgICByZXR1cm4gaW5zdGFudGlhdGVQcm9taXNl
OwogfQpAQCAtMjg3LDcgKzI4OCw3IEBAIGZ1bmN0aW9uIGxpbmsoZW50cnksIGZldGNoZXIpCiAg
ICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSBkZXBlbmRlbmNpZXMubGVuZ3RoOyBpIDwg
bGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLmxpbmsoZGVwZW5kZW5jaWVzW2ldLCBmZXRj
aGVyKTsKIAotICAgICAgICB0aGlzLm1vZHVsZURlY2xhcmF0aW9uSW5zdGFudGlhdGlvbihlbnRy
eS5tb2R1bGUsIGZldGNoZXIpOworICAgICAgICB0aGlzLm1vZHVsZURlY2xhcmF0aW9uSW5zdGFu
dGlhdGlvbihlbnRyeS5tb2R1bGUsIGVudHJ5LmtleSwgZmV0Y2hlcik7CiAgICAgfSBjYXRjaCAo
ZXJyb3IpIHsKICAgICAgICAgZW50cnkubGlua1N1Y2NlZWRlZCA9IGZhbHNlOwogICAgICAgICBl
bnRyeS5saW5rRXJyb3IgPSBlcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggNzQ0ZGUzMGVm
N2U0ZmU4YzkyODA5NzE2YjFiNDMzOWY2ZmYwYzljMi4uNDBjN2VkYzhmNmU3MGIwYTM2YTliNzk1
NzU1YjY2NzY4NTJmOWRiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE4Niw4ICsxODYsNyBA
QCBzdGF0aWMgdW5zaWduZWQgYXN5bmNUZXN0RXhwZWN0ZWRQYXNzZXMgeyAwIH07CiAKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yPgotc3RhdGljIGJvb2wgZmlsbEJ1ZmZlcldpdGhDb250
ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBWZWN0b3ImIGJ1ZmZlcik7CitzdGF0
aWMgYm9vbCBmaWxsQnVmZmVyV2l0aENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUsIFZlY3RvcjxjaGFyPiYgYnVmZmVyKTsKIHN0YXRpYyBSZWZQdHI8VWludDhBcnJheT4gZmls
bEJ1ZmZlcldpdGhDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKIAogY2xh
c3MgQ29tbWFuZExpbmU7CkBAIC0xOTYsNyArMTk1LDcgQEAgY2xhc3MgV29ya2VyczsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgRnVuYz4KIGludCBydW5KU0MoQ29tbWFuZExpbmUsIGJvb2wgaXNXb3Jr
ZXIsIGNvbnN0IEZ1bmMmKTsKLXN0YXRpYyB2b2lkIGNoZWNrRXhjZXB0aW9uKEV4ZWNTdGF0ZSos
IEdsb2JhbE9iamVjdCosIGJvb2wgaXNMYXN0RmlsZSwgYm9vbCBoYXNFeGNlcHRpb24sIEpTVmFs
dWUsIENvbW1hbmRMaW5lJiwgYm9vbCYgc3VjY2Vzcyk7CitzdGF0aWMgdm9pZCBjaGVja0V4Y2Vw
dGlvbihHbG9iYWxPYmplY3QqLCBib29sIGlzTGFzdEZpbGUsIGJvb2wgaGFzRXhjZXB0aW9uLCBK
U1ZhbHVlLCBDb21tYW5kTGluZSYsIGJvb2wmIHN1Y2Nlc3MpOwogCiBjbGFzcyBNZXNzYWdlIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE1lc3NhZ2U+IHsKIHB1YmxpYzoKQEAgLTg0NSw4
ICs4NDQsNyBAQCBJZGVudGlmaWVyIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGVjUwogICAgIHJldHVybiBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1
bGVOYW1lKGtleS5pbXBsKCkpKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rvcj4KLXN0
YXRpYyB2b2lkIGNvbnZlcnRTaGViYW5nVG9KU0NvbW1lbnQoVmVjdG9yJiBidWZmZXIpCitzdGF0
aWMgdm9pZCBjb252ZXJ0U2hlYmFuZ1RvSlNDb21tZW50KFZlY3RvcjxjaGFyPiYgYnVmZmVyKQog
ewogICAgIGlmIChidWZmZXIuc2l6ZSgpID49IDIpIHsKICAgICAgICAgaWYgKGJ1ZmZlclswXSA9
PSAnIycgJiYgYnVmZmVyWzFdID09ICchJykKQEAgLTg4NCw4ICs4ODIsNyBAQCBzdGF0aWMgUmVm
UHRyPFVpbnQ4QXJyYXk+IGZpbGxCdWZmZXJXaXRoQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5n
JiBmaWxlTmFtZSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBW
ZWN0b3I+Ci1zdGF0aWMgYm9vbCBmaWxsQnVmZmVyV2l0aENvbnRlbnRzT2ZGaWxlKEZJTEUqIGZp
bGUsIFZlY3RvciYgYnVmZmVyKQorc3RhdGljIGJvb2wgZmlsbEJ1ZmZlcldpdGhDb250ZW50c09m
RmlsZShGSUxFKiBmaWxlLCBWZWN0b3I8Y2hhcj4mIGJ1ZmZlcikKIHsKICAgICAvLyBXZSBtaWdo
dCBoYXZlIGluamVjdGVkICJ1c2Ugc3RyaWN0IjsgYXQgdGhlIHRvcC4KICAgICBzaXplX3QgaW5p
dGlhbFNpemUgPSBidWZmZXIuc2l6ZSgpOwpAQCAtOTIzLDggKzkyMCw3IEBAIHN0YXRpYyBib29s
IGZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBW
ZWN0b3I8Y2hhcj4mCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFZl
Y3Rvcj4KLXN0YXRpYyBib29sIGZldGNoTW9kdWxlRnJvbUxvY2FsRmlsZVN5c3RlbShjb25zdCBT
dHJpbmcmIGZpbGVOYW1lLCBWZWN0b3ImIGJ1ZmZlcikKK3N0YXRpYyBib29sIGZldGNoTW9kdWxl
RnJvbUxvY2FsRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBWZWN0b3I8Y2hhcj4m
IGJ1ZmZlcikKIHsKICAgICAvLyBXZSBhc3N1bWUgdGhhdCBmaWxlTmFtZSBpcyBhbHdheXMgYW4g
YWJzb2x1dGUgcGF0aC4KICNpZiBPUyhXSU5ET1dTKQpAQCAtOTc1LDI1ICs5NzEsMTQgQEAgSlNJ
bnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICB9CiAKICAgICAvLyBIZXJlLCBub3cgd2UgY29uc2lk
ZXIgbW9kdWxlS2V5IGFzIHRoZSBmaWxlTmFtZS4KLSAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVy
OwotICAgIGlmICghZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKG1vZHVsZUtleSwgYnVm
ZmVyKSkgeworICAgIFZlY3RvcjxjaGFyPiB1dGY4OworICAgIGlmICghZmV0Y2hNb2R1bGVGcm9t
TG9jYWxGaWxlU3lzdGVtKG1vZHVsZUtleSwgdXRmOCkpIHsKICAgICAgICAgYXV0byByZXN1bHQg
PSBkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsIG1ha2VTdHJpbmcoIkNv
dWxkIG5vdCBvcGVuIGZpbGUgJyIsIG1vZHVsZUtleSwgIicuIikpKTsKICAgICAgICAgc2NvcGUu
cmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIC8vIEZpbGVTeXN0ZW0gZG9lcyBub3Qg
aGF2ZSBtaW1lLXR5cGUgaGVhZGVyLiBUaGUgSlNDIHNoZWxsIHJlY29nbml6ZXMgV2ViQXNzZW1i
bHkncyBtYWdpYyBoZWFkZXIuCi0gICAgaWYgKGJ1ZmZlci5zaXplKCkgPj0gNCkgewotICAgICAg
ICBpZiAoYnVmZmVyWzBdID09ICdcMCcgJiYgYnVmZmVyWzFdID09ICdhJyAmJiBidWZmZXJbMl0g
PT0gJ3MnICYmIGJ1ZmZlclszXSA9PSAnbScpIHsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0g
ZGVmZXJyZWQtPnJlc29sdmUoZXhlYywgSlNTb3VyY2VDb2RlOjpjcmVhdGUodm0sIFNvdXJjZUNv
ZGUoV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFdURk1vdmUoYnVmZmVyKSwgU291
cmNlT3JpZ2luIHsgbW9kdWxlS2V5IH0sIG1vZHVsZUtleSkpKSk7Ci0gICAgICAgICAgICBzY29w
ZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQotICAgIGF1dG8gcmVzdWx0ID0gZGVmZXJyZWQt
PnJlc29sdmUoZXhlYywgSlNTb3VyY2VDb2RlOjpjcmVhdGUodm0sIG1ha2VTb3VyY2Uoc3RyaW5n
RnJvbVVURihidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBtb2R1bGVLZXkgfSwgbW9kdWxlS2V5LCBU
ZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpKSk7CisgICAg
YXV0byByZXN1bHQgPSBkZWZlcnJlZC0+cmVzb2x2ZShleGVjLCBKU1NvdXJjZUNvZGU6OmNyZWF0
ZSh2bSwgbWFrZVNvdXJjZShzdHJpbmdGcm9tVVRGKHV0ZjgpLCBTb3VyY2VPcmlnaW4geyBtb2R1
bGVLZXkgfSwgbW9kdWxlS2V5LCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlOjpNb2R1bGUpKSk7CiAgICAgc2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE2MzIsNyArMTYxNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCksIG1ha2VTb3VyY2Uoc291cmNlQ29kZSwgU291cmNlT3JpZ2luKEFTQ0lJTGl0ZXJh
bCgid29ya2VyIikpKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQgPSBldmFsdWF0aW9uRXhjZXB0aW9uLT52YWx1ZSgpOwotICAgICAgICAgICAg
ICAgICAgICBjaGVja0V4Y2VwdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgZ2xvYmFs
T2JqZWN0LCB0cnVlLCBldmFsdWF0aW9uRXhjZXB0aW9uLCByZXN1bHQsIGNvbW1hbmRMaW5lLCBz
dWNjZXNzKTsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LCB0cnVlLCBldmFsdWF0aW9uRXhjZXB0aW9uLCByZXN1bHQsIGNvbW1hbmRMaW5lLCBzdWNjZXNz
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICAgICAgICAgICAg
ICAgICAgZXhpdCgxKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CkBAIC0y
MjU5LDcgKzIyNDQsNyBAQCBzdGF0aWMgYm9vbCBjaGVja1VuY2F1Z2h0RXhjZXB0aW9uKFZNJiB2
bSwgR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotc3RhdGljIHZvaWQgY2hlY2tFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgYm9vbCBpc0xhc3RGaWxlLCBib29sIGhhc0V4Y2VwdGlv
biwgSlNWYWx1ZSB2YWx1ZSwgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJvb2wmIHN1Y2Nlc3MpCitz
dGF0aWMgdm9pZCBjaGVja0V4Y2VwdGlvbihHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgYm9v
bCBpc0xhc3RGaWxlLCBib29sIGhhc0V4Y2VwdGlvbiwgSlNWYWx1ZSB2YWx1ZSwgQ29tbWFuZExp
bmUmIG9wdGlvbnMsIGJvb2wmIHN1Y2Nlc3MpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogCkBAIC0yMjcxLDcgKzIyNTYsNyBAQCBzdGF0aWMgdm9pZCBjaGVja0V4Y2VwdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBib29sIGlzTAog
ICAgIGlmICghb3B0aW9ucy5tX3VuY2F1Z2h0RXhjZXB0aW9uTmFtZSB8fCAhaXNMYXN0RmlsZSkg
ewogICAgICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiAhaGFzRXhjZXB0aW9uOwogICAgICAgICBp
ZiAob3B0aW9ucy5tX2R1bXAgJiYgIWhhc0V4Y2VwdGlvbikKLSAgICAgICAgICAgIHByaW50Zigi
RW5kOiAlc1xuIiwgdmFsdWUudG9XVEZTdHJpbmcoZXhlYykudXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgICAgICBwcmludGYoIkVuZDogJXNcbiIsIHZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgaWYgKGhhc0V4Y2VwdGlv
bikKICAgICAgICAgICAgIGR1bXBFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAg
fSBlbHNlCkBAIC0yMzI0LDEyICsyMzA5LDEyIEBAIHN0YXRpYyBib29sIHJ1bldpdGhPcHRpb25z
KEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb21tYW5kTGluZSYgb3B0aW9ucykKICAgICAg
ICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CiAKICAgICAgICAgICAgIEpTRnVuY3Rpb24q
IGZ1bGZpbGxIYW5kbGVyID0gSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIDEsIFN0cmluZygpLCBbJiwgaXNMYXN0RmlsZV0oRXhlY1N0YXRlKiBleGVjKSB7Ci0g
ICAgICAgICAgICAgICAgY2hlY2tFeGNlcHRpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBpc0xhc3RG
aWxlLCBmYWxzZSwgZXhlYy0+YXJndW1lbnQoMCksIG9wdGlvbnMsIHN1Y2Nlc3MpOworICAgICAg
ICAgICAgICAgIGNoZWNrRXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgaXNMYXN0RmlsZSwgZmFsc2Us
IGV4ZWMtPmFyZ3VtZW50KDApLCBvcHRpb25zLCBzdWNjZXNzKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgICAgIEpTRnVuY3Rpb24qIHJlamVjdEhhbmRsZXIgPSBKU05hdGl2ZVN0ZEZ1bmN0
aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFsmLCBpc0xhc3RGaWxl
XShFeGVjU3RhdGUqIGV4ZWMpIHsKLSAgICAgICAgICAgICAgICBjaGVja0V4Y2VwdGlvbihleGVj
LCBnbG9iYWxPYmplY3QsIGlzTGFzdEZpbGUsIHRydWUsIGV4ZWMtPmFyZ3VtZW50KDApLCBvcHRp
b25zLCBzdWNjZXNzKTsKKyAgICAgICAgICAgICAgICBjaGVja0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIGlzTGFzdEZpbGUsIHRydWUsIGV4ZWMtPmFyZ3VtZW50KDApLCBvcHRpb25zLCBzdWNjZXNz
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgICAgICAgICAgfSk7CiAKQEAgLTIzNDIsNyArMjMyNyw3IEBAIHN0YXRpYyBib29sIHJ1
bldpdGhPcHRpb25zKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb21tYW5kTGluZSYgb3B0
aW9ucykKICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgICAg
ICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9
IGV2YWx1YXRpb25FeGNlcHRpb24tPnZhbHVlKCk7Ci0gICAgICAgICAgICBjaGVja0V4Y2VwdGlv
bihnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgZ2xvYmFsT2JqZWN0LCBpc0xhc3RGaWxlLCBl
dmFsdWF0aW9uRXhjZXB0aW9uLCByZXR1cm5WYWx1ZSwgb3B0aW9ucywgc3VjY2Vzcyk7CisgICAg
ICAgICAgICBjaGVja0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIGlzTGFzdEZpbGUsIGV2YWx1YXRp
b25FeGNlcHRpb24sIHJldHVyblZhbHVlLCBvcHRpb25zLCBzdWNjZXNzKTsKICAgICAgICAgfQog
CiAgICAgICAgIHNjcmlwdEJ1ZmZlci5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2Rlc0FuYWx5emVNb2R1bGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlc0FuYWx5emVNb2R1bGUuY3BwCmluZGV4IDZkOTk2MGYwYjAxMzEz
OGVkNDI2MWRkZTI0NjMyYjljZGYxMThhYzYuLjQyNmU1M2I5ZDFkNzdiMDBmNDI5ZjliNzQ0OWFk
ZTQxMmQ1ZDU5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZXNBbmFseXplTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzQW5hbHl6ZU1vZHVsZS5jcHAKQEAgLTUyLDExICs1Miw5IEBAIHZvaWQgSW1wb3J0RGVjbGFy
YXRpb25Ob2RlOjphbmFseXplTW9kdWxlKE1vZHVsZUFuYWx5emVyJiBhbmFseXplcikKICAgICBh
bmFseXplci5tb2R1bGVSZWNvcmQoKS0+YXBwZW5kUmVxdWVzdGVkTW9kdWxlKG1fbW9kdWxlTmFt
ZS0+bW9kdWxlTmFtZSgpKTsKICAgICBmb3IgKGF1dG8qIHNwZWNpZmllciA6IG1fc3BlY2lmaWVy
TGlzdC0+c3BlY2lmaWVycygpKSB7CiAgICAgICAgIGFuYWx5emVyLm1vZHVsZVJlY29yZCgpLT5h
ZGRJbXBvcnRFbnRyeShKU01vZHVsZVJlY29yZDo6SW1wb3J0RW50cnkgewotICAgICAgICAgICAg
c3BlY2lmaWVyLT5pbXBvcnRlZE5hbWUoKSA9PSBhbmFseXplci52bSgpLnByb3BlcnR5TmFtZXMt
PnRpbWVzSWRlbnRpZmllcgotICAgICAgICAgICAgICAgID8gSlNNb2R1bGVSZWNvcmQ6OkltcG9y
dEVudHJ5VHlwZTo6TmFtZXNwYWNlIDogSlNNb2R1bGVSZWNvcmQ6OkltcG9ydEVudHJ5VHlwZTo6
U2luZ2xlLAogICAgICAgICAgICAgbV9tb2R1bGVOYW1lLT5tb2R1bGVOYW1lKCksCiAgICAgICAg
ICAgICBzcGVjaWZpZXItPmltcG9ydGVkTmFtZSgpLAotICAgICAgICAgICAgc3BlY2lmaWVyLT5s
b2NhbE5hbWUoKSwKKyAgICAgICAgICAgIHNwZWNpZmllci0+bG9jYWxOYW1lKCkKICAgICAgICAg
fSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VQcm92aWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92
aWRlci5oCmluZGV4IDBkMGMyZmM4NGNkMDVhNThhMzEyMTJhMzY5YWY3NWE1ODFhMDEyMmUuLjJl
NjhlODIwMjdkYjI4NTg5ZjM3YjRmMDBmNmNmODgwYjRlYWZjODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKQEAgLTEyMCw5ICsxMjAsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgY2xhc3MgV2ViQXNz
ZW1ibHlTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CiAgICAgcHVibGlj
OgotICAgICAgICBzdGF0aWMgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IGNyZWF0ZShW
ZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiB1cmwpCisgICAgICAgIHN0YXRpYyBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQ
cm92aWRlcj4gY3JlYXRlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgdXJsKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFdU
Rk1vdmUoZGF0YSksIHNvdXJjZU9yaWdpbiwgdXJsKSk7CisgICAgICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKGRhdGEsIHNvdXJjZU9yaWdpbiwg
dXJsKSk7CiAgICAgICAgIH0KIAogICAgICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Qgb3ZlcnJp
ZGUKQEAgLTE0MSwxMCArMTQxLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAg
ICBwcml2YXRlOgotICAgICAgICBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFZlY3Rvcjx1aW50
OF90PiYmIGRhdGEsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJp
bmcmIHVybCkKKyAgICAgICAgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihjb25zdCBWZWN0b3I8
dWludDhfdD4mIGRhdGEsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBjb25zdCBT
dHJpbmcmIHVybCkKICAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCB1
cmwsIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OldlYkFzc2VtYmx5
KQogICAgICAgICAgICAgLCBtX3NvdXJjZSgiW1dlYkFzc2VtYmx5IHNvdXJjZV0iKQotICAgICAg
ICAgICAgLCBtX2RhdGEoV1RGTW92ZShkYXRhKSkKKyAgICAgICAgICAgICwgbV9kYXRhKGRhdGEp
CiAgICAgICAgIHsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5jcHAKaW5kZXggYzA2MDk5ZjgyYzFlZmVl
ZmE1MGFlNmI5ZGM3MDc3ZmY2ODcxNTdhNC4uMzMyNTNkZjU5NmY3MDkyNTIyNGIzODY4YmY4ODMz
ZmQwOWRjYzQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJz
dHJhY3RNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Fic3RyYWN0TW9kdWxlUmVjb3JkLmNwcApAQCAtMzIsOSArMzIsNyBAQAogI2luY2x1ZGUgIkpT
TWFwLmgiCiAjaW5jbHVkZSAiSlNNb2R1bGVFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTTW9k
dWxlTmFtZXNwYWNlT2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNNb2R1bGVSZWNvcmQuaCIKICNpbmNs
dWRlICJVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2suaCIKLSNpbmNsdWRlICJXZWJBc3Nl
bWJseU1vZHVsZVJlY29yZC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBBYnN0cmFj
dE1vZHVsZVJlY29yZEludGVybmFsIHsKQEAgLTEzOSwxMSArMTM3LDE5IEBAIGF1dG8gQWJzdHJh
Y3RNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb246OmFtYmlndW91cygpIC0+IFJlc29sdXRpb24KICAg
ICByZXR1cm4gUmVzb2x1dGlvbiB7IFR5cGU6OkFtYmlndW91cywgbnVsbHB0ciwgSWRlbnRpZmll
cigpIH07CiB9CiAKK3N0YXRpYyBKU1ZhbHVlIGlkZW50aWZpZXJUb0pTVmFsdWUoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQoreworICAgIFZNJiB2bSA9IGV4
ZWMtPnZtKCk7CisgICAgaWYgKGlkZW50aWZpZXIuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJu
IFN5bWJvbDo6Y3JlYXRlKHZtLCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKmlkZW50aWZpZXIu
aW1wbCgpKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKCZ2bSwgaWRlbnRpZmllci5pbXBsKCkpOwor
fQorCiBBYnN0cmFjdE1vZHVsZVJlY29yZCogQWJzdHJhY3RNb2R1bGVSZWNvcmQ6Omhvc3RSZXNv
bHZlSW1wb3J0ZWRNb2R1bGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1
bGVOYW1lKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTVmFsdWUgbW9kdWxlTmFtZVZhbHVlID0gaWRl
bnRpZmllclRvSlNWYWx1ZSh2bSwgbW9kdWxlTmFtZSk7CisgICAgSlNWYWx1ZSBtb2R1bGVOYW1l
VmFsdWUgPSBpZGVudGlmaWVyVG9KU1ZhbHVlKGV4ZWMsIG1vZHVsZU5hbWUpOwogICAgIEpTVmFs
dWUgZW50cnkgPSBtX2RlcGVuZGVuY2llc01hcC0+SlNNYXA6OmdldChleGVjLCBtb2R1bGVOYW1l
VmFsdWUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIHNj
b3BlLnJlbGVhc2UoKTsKQEAgLTE2MCw3ICsxNjYsNyBAQCBhdXRvIEFic3RyYWN0TW9kdWxlUmVj
b3JkOjpyZXNvbHZlSW1wb3J0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbG9j
YQogICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6bm90Rm91bmQoKTsKIAogICAgIGNvbnN0IElt
cG9ydEVudHJ5JiBpbXBvcnRFbnRyeSA9ICpvcHRpb25hbEltcG9ydEVudHJ5OwotICAgIGlmIChp
bXBvcnRFbnRyeS50eXBlID09IEFic3RyYWN0TW9kdWxlUmVjb3JkOjpJbXBvcnRFbnRyeVR5cGU6
Ok5hbWVzcGFjZSkKKyAgICBpZiAoaW1wb3J0RW50cnkuaXNOYW1lc3BhY2UoZXhlYy0+dm0oKSkp
CiAgICAgICAgIHJldHVybiBSZXNvbHV0aW9uOjpub3RGb3VuZCgpOwogCiAgICAgQWJzdHJhY3RN
b2R1bGVSZWNvcmQqIGltcG9ydGVkTW9kdWxlID0gaG9zdFJlc29sdmVJbXBvcnRlZE1vZHVsZShl
eGVjLCBpbXBvcnRFbnRyeS5tb2R1bGVSZXF1ZXN0KTsKQEAgLTc2OSwzMSArNzc1LDYgQEAgSlNN
b2R1bGVOYW1lc3BhY2VPYmplY3QqIEFic3RyYWN0TW9kdWxlUmVjb3JkOjpnZXRNb2R1bGVOYW1l
c3BhY2UoRXhlY1N0YXRlKiBleGUKICAgICByZXR1cm4gbW9kdWxlTmFtZXNwYWNlT2JqZWN0Owog
fQogCi12b2lkIEFic3RyYWN0TW9kdWxlUmVjb3JkOjpsaW5rKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgaWYg
KGF1dG8qIGpzTW9kdWxlUmVjb3JkID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZVJlY29yZCo+KHZt
LCB0aGlzKSkKLSAgICAgICAgcmV0dXJuIGpzTW9kdWxlUmVjb3JkLT5saW5rKGV4ZWMsIHNjcmlw
dEZldGNoZXIpOwotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICBpZiAoYXV0byogd2FzbU1v
ZHVsZVJlY29yZCA9IGpzRHluYW1pY0Nhc3Q8V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQqPih2bSwg
dGhpcykpCi0gICAgICAgIHJldHVybiB3YXNtTW9kdWxlUmVjb3JkLT5saW5rKGV4ZWMsIHNjcmlw
dEZldGNoZXIsIG51bGxwdHIsIFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbU1vZHVsZUxvYWRlcik7
Ci0jZW5kaWYKLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi1KU19FWFBP
UlRfUFJJVkFURSBKU1ZhbHVlIEFic3RyYWN0TW9kdWxlUmVjb3JkOjpldmFsdWF0ZShFeGVjU3Rh
dGUqIGV4ZWMpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBpZiAoYXV0byoganNN
b2R1bGVSZWNvcmQgPSBqc0R5bmFtaWNDYXN0PEpTTW9kdWxlUmVjb3JkKj4odm0sIHRoaXMpKQot
ICAgICAgICByZXR1cm4ganNNb2R1bGVSZWNvcmQtPmV2YWx1YXRlKGV4ZWMpOwotI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKLSAgICBpZiAoYXV0byogd2FzbU1vZHVsZVJlY29yZCA9IGpzRHluYW1p
Y0Nhc3Q8V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQqPih2bSwgdGhpcykpCi0gICAgICAgIHJldHVy
biB3YXNtTW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKLSNlbmRpZgotICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KIHN0
YXRpYyBTdHJpbmcgcHJpbnRhYmxlTmFtZShjb25zdCBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+
JiB1aWQpCiB7CiAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5oCmluZGV4IDViYjViMTZm
ZDNlMTlhZWMzMjU0NjVkOGJkMTcwYzhlZmU5NzRkYzAuLjU5Mjk5NWI1MDYxOWNiZmU2Y2MyZmFk
YTI4YjdlNmM0YWIyODBjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQuaApAQCAtNjEsMTIgKzYxLDE1IEBAIHB1YmxpYzoK
ICAgICAgICAgSWRlbnRpZmllciBsb2NhbE5hbWU7CiAgICAgfTsKIAotICAgIGVudW0gY2xhc3Mg
SW1wb3J0RW50cnlUeXBlIHsgU2luZ2xlLCBOYW1lc3BhY2UgfTsKICAgICBzdHJ1Y3QgSW1wb3J0
RW50cnkgewotICAgICAgICBJbXBvcnRFbnRyeVR5cGUgdHlwZTsKICAgICAgICAgSWRlbnRpZmll
ciBtb2R1bGVSZXF1ZXN0OwogICAgICAgICBJZGVudGlmaWVyIGltcG9ydE5hbWU7CiAgICAgICAg
IElkZW50aWZpZXIgbG9jYWxOYW1lOworCisgICAgICAgIGJvb2wgaXNOYW1lc3BhY2UoVk0mIHZt
KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaW1wb3J0TmFtZSA9PSB2bS5w
cm9wZXJ0eU5hbWVzLT50aW1lc0lkZW50aWZpZXI7CisgICAgICAgIH0KICAgICB9OwogCiAgICAg
dHlwZWRlZiBXVEY6Okxpc3RIYXNoU2V0PFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4sIElkZW50
aWZpZXJSZXBIYXNoPiBPcmRlcmVkSWRlbnRpZmllclNldDsKQEAgLTExNiwxNCArMTE5LDYgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gbV9tb2R1bGVFbnZpcm9ubWVudC5nZXQoKTsKICAgICB9
CiAKLSAgICBKU01vZHVsZUVudmlyb25tZW50KiBtb2R1bGVFbnZpcm9ubWVudE1heUJlTnVsbCgp
Ci0gICAgewotICAgICAgICByZXR1cm4gbV9tb2R1bGVFbnZpcm9ubWVudC5nZXQoKTsKLSAgICB9
Ci0KLSAgICB2b2lkIGxpbmsoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKLSAg
ICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSopOwotCiBwcm90
ZWN0ZWQ6CiAgICAgQWJzdHJhY3RNb2R1bGVSZWNvcmQoVk0mLCBTdHJ1Y3R1cmUqLCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBWTSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVFbnZpcm9u
bWVudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUVudmlyb25t
ZW50LmNwcAppbmRleCBhOWViODRhN2NkNmYzMTFlNWViOTcwZDE5ZDNkNWZiOTkyNTY3NzdmLi5j
NjE3MzE0ODUwYmY4Y2FkMjE0YzIzMmIwNDcyNjU3NjE0YmE4M2U4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUVudmlyb25tZW50LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUVudmlyb25tZW50LmNwcApAQCAt
MTAzLDkgKzEwMywxMCBAQCB2b2lkIEpTTW9kdWxlRW52aXJvbm1lbnQ6OmdldE93bk5vbkluZGV4
UHJvcGVydHlOYW1lcyhKU09iamVjdCogY2VsbCwgRXhlY1N0YXRlKgogewogICAgIEpTTW9kdWxl
RW52aXJvbm1lbnQqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNNb2R1bGVFbnZpcm9ubWVudCo+KGNl
bGwpOwogICAgIGlmIChwcm9wZXJ0eU5hbWVzQXJyYXkuaW5jbHVkZVN0cmluZ1Byb3BlcnRpZXMo
KSkgeworICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgICAgICBmb3IgKGNvbnN0IGF1
dG8mIHBhaXIgOiB0aGlzT2JqZWN0LT5tb2R1bGVSZWNvcmQoKS0+aW1wb3J0RW50cmllcygpKSB7
CiAgICAgICAgICAgICBjb25zdCBBYnN0cmFjdE1vZHVsZVJlY29yZDo6SW1wb3J0RW50cnkmIGlt
cG9ydEVudHJ5ID0gcGFpci52YWx1ZTsKLSAgICAgICAgICAgIGlmIChpbXBvcnRFbnRyeS50eXBl
ID09IEFic3RyYWN0TW9kdWxlUmVjb3JkOjpJbXBvcnRFbnRyeVR5cGU6OlNpbmdsZSkKKyAgICAg
ICAgICAgIGlmICghaW1wb3J0RW50cnkuaXNOYW1lc3BhY2Uodm0pKQogICAgICAgICAgICAgICAg
IHByb3BlcnR5TmFtZXNBcnJheS5hZGQoaW1wb3J0RW50cnkubG9jYWxOYW1lKTsKICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9h
ZGVyLmNwcAppbmRleCA5MDg1OTFkOTI4MGM4ZGY4ZDMzZjY1Y2YzMzk3OGIzMjc4YzAwZjA1Li4x
YmUzYzdhYzM4NmZiYjE3ZTY1NjlmOThlOWY4Zjg0NDg1NzZiNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCkBAIC0yNzUsOSArMjc1
LDEwIEBAIEpTVmFsdWUgSlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBrZXksIEpTVmFsdWUgbW9kdWxlUmVjCiAgICAgaWYgKGdsb2JhbE9iamVjdC0+Z2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZhbHVhdGUpCiAgICAgICAgIHJl
dHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPm1vZHVsZUxvYWRl
ckV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5LCBtb2R1bGVSZWNvcmRWYWx1
ZSwgc2NyaXB0RmV0Y2hlcik7CiAKLSAgICBpZiAoYXV0byogbW9kdWxlUmVjb3JkID0ganNEeW5h
bWljQ2FzdDxBYnN0cmFjdE1vZHVsZVJlY29yZCo+KGV4ZWMtPnZtKCksIG1vZHVsZVJlY29yZFZh
bHVlKSkKLSAgICAgICAgcmV0dXJuIG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUoZXhlYyk7Ci0gICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9
IGpzRHluYW1pY0Nhc3Q8SlNNb2R1bGVSZWNvcmQqPihleGVjLT52bSgpLCBtb2R1bGVSZWNvcmRW
YWx1ZSk7CisgICAgaWYgKCFtb2R1bGVSZWNvcmQpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOworICAgIHJldHVybiBtb2R1bGVSZWNvcmQtPmV2YWx1YXRlKGV4ZWMpOwogfQogCiBKU01v
ZHVsZU5hbWVzcGFjZU9iamVjdCogSlNNb2R1bGVMb2FkZXI6OmdldE1vZHVsZU5hbWVzcGFjZU9i
amVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbW9kdWxlUmVjb3JkVmFsdWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAKaW5kZXggYzU1
ZDBkMTk4NGEyNDRmZDRhYmQzNDYzM2ZhYWRiMzZmOGY3MTgxZi4uNmZhMmY3MmVhMmU3MjhlY2I0
ODFlYmJiZDYyMjJmZTQzZjUyOWFkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTW9kdWxlUmVjb3JkLmNwcApAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEpTTW9kdWxl
UmVjb3JkOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9tb2R1bGVQcm9ncmFtRXhlY3V0YWJs
ZSk7CiB9CiAKLXZvaWQgSlNNb2R1bGVSZWNvcmQ6OmxpbmsoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHNjcmlwdEZldGNoZXIpCit2b2lkIEpTTW9kdWxlUmVjb3JkOjpsaW5rKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBrZXksIEpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTg5LDEyICs4OSwxMiBAQCB2b2lkIEpTTW9kdWxlUmVjb3JkOjpsaW5rKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQogICAgICAgICB0aHJvd1N5bnRheEVycm9yKGV4
ZWMsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpbnN0YW50aWF0ZURlY2xh
cmF0aW9ucyhleGVjLCBleGVjdXRhYmxlLCBzY3JpcHRGZXRjaGVyKTsKKyAgICBpbnN0YW50aWF0
ZURlY2xhcmF0aW9ucyhleGVjLCBleGVjdXRhYmxlLCBrZXksIHNjcmlwdEZldGNoZXIpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgbV9tb2R1bGVQcm9ncmFt
RXhlY3V0YWJsZS5zZXQodm0sIHRoaXMsIGV4ZWN1dGFibGUpOwogfQogCi12b2lkIEpTTW9kdWxl
UmVjb3JkOjppbnN0YW50aWF0ZURlY2xhcmF0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIE1vZHVsZVBy
b2dyYW1FeGVjdXRhYmxlKiBtb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSwgSlNWYWx1ZSBzY3JpcHRG
ZXRjaGVyKQordm9pZCBKU01vZHVsZVJlY29yZDo6aW5zdGFudGlhdGVEZWNsYXJhdGlvbnMoRXhl
Y1N0YXRlKiBleGVjLCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSogbW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGUsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCiB7CiAgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBKU01vZHVsZVJlY29yZDo6aW5zdGFudGlhdGVEZWNs
YXJhdGlvbnMoRXhlY1N0YXRlKiBleGVjLCBNb2R1bGVQcm9ncmFtRXhlY3UKICAgICAgICAgY29u
c3QgSW1wb3J0RW50cnkmIGltcG9ydEVudHJ5ID0gcGFpci52YWx1ZTsKICAgICAgICAgQWJzdHJh
Y3RNb2R1bGVSZWNvcmQqIGltcG9ydGVkTW9kdWxlID0gaG9zdFJlc29sdmVJbXBvcnRlZE1vZHVs
ZShleGVjLCBpbXBvcnRFbnRyeS5tb2R1bGVSZXF1ZXN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICAgICAgaWYgKGltcG9ydEVudHJ5LnR5cGUgPT0g
QWJzdHJhY3RNb2R1bGVSZWNvcmQ6OkltcG9ydEVudHJ5VHlwZTo6TmFtZXNwYWNlKSB7CisgICAg
ICAgIGlmIChpbXBvcnRFbnRyeS5pc05hbWVzcGFjZSh2bSkpIHsKICAgICAgICAgICAgIEpTTW9k
dWxlTmFtZXNwYWNlT2JqZWN0KiBuYW1lc3BhY2VPYmplY3QgPSBpbXBvcnRlZE1vZHVsZS0+Z2V0
TW9kdWxlTmFtZXNwYWNlKGV4ZWMpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgdm9pZCgpKTsKICAgICAgICAgICAgIGJvb2wgcHV0UmVzdWx0ID0gZmFsc2U7CkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBKU01vZHVsZVJlY29yZDo6aW5zdGFudGlhdGVEZWNsYXJhdGlv
bnMoRXhlY1N0YXRlKiBleGVjLCBNb2R1bGVQcm9ncmFtRXhlY3UKICAgICB9CiAKICAgICB7Ci0g
ICAgICAgIEpTT2JqZWN0KiBtZXRhUHJvcGVydGllcyA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+bW9kdWxlTG9hZGVyKCktPmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKGV4ZWMsIGlk
ZW50aWZpZXJUb0pTVmFsdWUodm0sIG1vZHVsZUtleSgpKSwgdGhpcywgc2NyaXB0RmV0Y2hlcik7
CisgICAgICAgIEpTT2JqZWN0KiBtZXRhUHJvcGVydGllcyA9IGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+bW9kdWxlTG9hZGVyKCktPmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKGV4ZWMs
IGtleSwgdGhpcywgc2NyaXB0RmV0Y2hlcik7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHZvaWQoKSk7CiAgICAgICAgIGJvb2wgcHV0UmVzdWx0ID0gZmFsc2U7CiAgICAgICAg
IHN5bWJvbFRhYmxlUHV0VG91Y2hXYXRjaHBvaW50U2V0KG1vZHVsZUVudmlyb25tZW50LCBleGVj
LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5tZXRhUHJpdmF0ZU5hbWUoKSwgbWV0
YVByb3BlcnRpZXMsIC8qIHNob3VsZFRocm93UmVhZE9ubHlFcnJvciAqLyBmYWxzZSwgLyogaWdu
b3JlUmVhZE9ubHlFcnJvcnMgKi8gdHJ1ZSwgcHV0UmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5oCmluZGV4IGFjMmRjZmE2YzUyOThiZDcz
ZTRmZGMyY2Y1MWYwY2MxNTQwN2JjZmQuLmNkZmNjNDBlZTU4MjllNzI1NzUxNGY5ODE3ZTk5MzY4
MDcwOTQ5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlUmVjb3JkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKICAgICBzdGF0
aWMgSlNNb2R1bGVSZWNvcmQqIGNyZWF0ZShFeGVjU3RhdGUqLCBWTSYsIFN0cnVjdHVyZSosIGNv
bnN0IElkZW50aWZpZXImLCBjb25zdCBTb3VyY2VDb2RlJiwgY29uc3QgVmFyaWFibGVFbnZpcm9u
bWVudCYsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmKTsKIAotICAgIHZvaWQgbGluayhFeGVj
U3RhdGUqLCBKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOworICAgIHZvaWQgbGluayhFeGVjU3RhdGUq
LCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSopOwogCiAgICAgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlQ29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQ29kZTsgfQpAQCAtNjAsNyAr
NjAsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwg
U2xvdFZpc2l0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCi0gICAg
dm9pZCBpbnN0YW50aWF0ZURlY2xhcmF0aW9ucyhFeGVjU3RhdGUqLCBNb2R1bGVQcm9ncmFtRXhl
Y3V0YWJsZSosIEpTVmFsdWUgc2NyaXB0RmV0Y2hlcik7CisgICAgdm9pZCBpbnN0YW50aWF0ZURl
Y2xhcmF0aW9ucyhFeGVjU3RhdGUqLCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSosIEpTVmFsdWUg
a2V5LCBKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogCiAgICAgU291cmNlQ29kZSBtX3NvdXJjZUNv
ZGU7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCBtX2RlY2xhcmVkVmFyaWFibGVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlw
ZS5jcHAKaW5kZXggNGUwOTNlMTBhYTVkZTRjNjIxMjU3Njg3NWJmZjE4Njk1ZThkMzFhNC4uM2Q0
ZjQ0YTE0NTk3ZWMxY2MwNWJjZjJjNzI2NGFhMmViNTQ3ZmFlNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwCkBA
IC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiTm9kZXMuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIK
ICNpbmNsdWRlICJQYXJzZXJFcnJvci5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5UHJvdG90eXBl
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC03Nyw3ICs3Niw3IEBAIGNvbnN0IENsYXNzSW5m
byBNb2R1bGVMb2FkZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIk1vZHVsZUxvYWRlciIsICZCYXNl
OjpzX2luZm8sCiAgICAgcmVxdWVzdEluc3RhbnRpYXRlICAgICAgICAgICAgIEpTQnVpbHRpbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlv
biAzCiAgICAgcmVxdWVzdFNhdGlzZnkgICAgICAgICAgICAgICAgIEpTQnVpbHRpbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAzCiAg
ICAgbGluayAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTQnVpbHRpbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAyCi0gICAgbW9k
dWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uIG1vZHVsZUxvYWRlclByb3RvdHlwZU1vZHVsZURl
Y2xhcmF0aW9uSW5zdGFudGlhdGlvbiBEb250RW51bXxGdW5jdGlvbiAyCisgICAgbW9kdWxlRGVj
bGFyYXRpb25JbnN0YW50aWF0aW9uIG1vZHVsZUxvYWRlclByb3RvdHlwZU1vZHVsZURlY2xhcmF0
aW9uSW5zdGFudGlhdGlvbiBEb250RW51bXxGdW5jdGlvbiAzCiAgICAgbW9kdWxlRXZhbHVhdGlv
biAgICAgICAgICAgICAgIEpTQnVpbHRpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAyCiAgICAgZXZhbHVhdGUgICAgICAgICAgICAg
ICAgICAgICAgIG1vZHVsZUxvYWRlclByb3RvdHlwZUV2YWx1YXRlICAgICAgICAgICAgICAgICAg
ICAgICBEb250RW51bXxGdW5jdGlvbiAzCiAgICAgcHJvdmlkZUZldGNoICAgICAgICAgICAgICAg
ICAgIEpTQnVpbHRpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
b250RW51bXxGdW5jdGlvbiAyCkBAIC0xMDQsNTIgKzEwMyw0MSBAQCBNb2R1bGVMb2FkZXJQcm90
b3R5cGU6Ok1vZHVsZUxvYWRlclByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVQYXJz
ZU1vZHVsZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Ci0KLSAgICBKU0ludGVybmFs
UHJvbWlzZURlZmVycmVkKiBkZWZlcnJlZCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNy
ZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwotICAgIHNjb3BlLnJlbGVh
c2VBc3NlcnROb0V4Y2VwdGlvbigpOwotCi0gICAgYXV0byByZWplY3QgPSBbJl0gewotICAgICAg
ICBKU1ZhbHVlIGV4Y2VwdGlvbiA9IHNjb3BlLmV4Y2VwdGlvbigpOwotICAgICAgICBzY29wZS5j
bGVhckV4Y2VwdGlvbigpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGRlZmVycmVk
LT5yZWplY3QoZXhlYywgZXhjZXB0aW9uKSk7Ci0gICAgfTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBjb25zdCBJZGVudGlmaWVyIG1vZHVsZUtleSA9
IGV4ZWMtPmFyZ3VtZW50KDApLnRvUHJvcGVydHlLZXkoZXhlYyk7Ci0gICAgaWYgKFVOTElLRUxZ
KHNjb3BlLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIHJlamVjdCgpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCi0gICAgSlNWYWx1ZSBz
b3VyY2UgPSBleGVjLT5hcmd1bWVudCgxKTsKLSAgICBhdXRvKiBqc1NvdXJjZUNvZGUgPSBqc0Nh
c3Q8SlNTb3VyY2VDb2RlKj4oc291cmNlKTsKKyAgICBhdXRvKiBqc1NvdXJjZUNvZGUgPSBqc0R5
bmFtaWNDYXN0PEpTU291cmNlQ29kZSo+KHZtLCBleGVjLT5hcmd1bWVudCgxKSk7CisgICAgaWYg
KCFqc1NvdXJjZUNvZGUpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNj
b3BlKTsKICAgICBTb3VyY2VDb2RlIHNvdXJjZUNvZGUgPSBqc1NvdXJjZUNvZGUtPnNvdXJjZUNv
ZGUoKTsKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICBpZiAoc291cmNlQ29kZS5wcm92
aWRlcigpLT5zb3VyY2VUeXBlKCkgPT0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpXZWJBc3Nl
bWJseSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShXZWJBc3NlbWJseVByb3RvdHlw
ZTo6aW5zdGFudGlhdGUoZXhlYywgZGVmZXJyZWQsIG1vZHVsZUtleSwganNTb3VyY2VDb2RlKSk7
Ci0jZW5kaWYKLQogICAgIENvZGVQcm9maWxpbmcgcHJvZmlsZShzb3VyY2VDb2RlKTsKIAogICAg
IFBhcnNlckVycm9yIGVycm9yOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2R1bGVQcm9ncmFtTm9k
ZT4gbW9kdWxlUHJvZ3JhbU5vZGUgPSBwYXJzZTxNb2R1bGVQcm9ncmFtTm9kZT4oCiAgICAgICAg
ICZ2bSwgc291cmNlQ29kZSwgSWRlbnRpZmllcigpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RC
dWlsdGluLAogICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCwgSlNQYXJzZXJTY3Jp
cHRNb2RlOjpNb2R1bGUsIFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlQW5hbHl6ZU1vZGUsIFN1cGVy
QmluZGluZzo6Tm90TmVlZGVkLCBlcnJvcik7Ci0gICAgaWYgKGVycm9yLmlzVmFsaWQoKSkKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShkZWZlcnJlZC0+cmVqZWN0KGV4ZWMsIGVycm9y
LnRvRXJyb3JPYmplY3QoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzb3VyY2VDb2RlKSkp
OworCisgICAgaWYgKGVycm9yLmlzVmFsaWQoKSkgeworICAgICAgICB0aHJvd1ZNRXJyb3IoZXhl
Yywgc2NvcGUsIGVycm9yLnRvRXJyb3JPYmplY3QoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LCBzb3VyY2VDb2RlKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CisgICAgfQogICAgIEFTU0VSVChtb2R1bGVQcm9ncmFtTm9kZSk7CiAKICAgICBNb2R1
bGVBbmFseXplciBtb2R1bGVBbmFseXplcihleGVjLCBtb2R1bGVLZXksIHNvdXJjZUNvZGUsIG1v
ZHVsZVByb2dyYW1Ob2RlLT52YXJEZWNsYXJhdGlvbnMoKSwgbW9kdWxlUHJvZ3JhbU5vZGUtPmxl
eGljYWxWYXJpYWJsZXMoKSk7Ci0gICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkK
LSAgICAgICAgcmV0dXJuIHJlamVjdCgpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBt
b2R1bGVBbmFseXplci5hbmFseXplKCptb2R1bGVQcm9ncmFtTm9kZSk7CiAKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGRlZmVycmVkLT5yZXNvbHZlKGV4ZWMsIG1vZHVsZUFuYWx5emVyLmFu
YWx5emUoKm1vZHVsZVByb2dyYW1Ob2RlKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
bW9kdWxlUmVjb3JkKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVM
b2FkZXJQcm90b3R5cGVSZXF1ZXN0ZWRNb2R1bGVzKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBhdXRvKiBtb2R1bGVSZWNvcmQgPSBqc0R5bmFtaWNDYXN0PEFic3RyYWN0TW9k
dWxlUmVjb3JkKj4odm0sIGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZVJlY29yZCo+KHZtLCBleGVjLT5h
cmd1bWVudCgwKSk7CiAgICAgaWYgKCFtb2R1bGVSZWNvcmQpIHsKICAgICAgICAgc2NvcGUucmVs
ZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEVtcHR5QXJy
YXkoZXhlYywgbnVsbHB0cikpOwpAQCAtMTY5LDE0ICsxNTcsMTQgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQcm90b3R5cGVNb2R1bGVEZWNsYXJhdGlvbkluc3Rh
bnRpYXRpb24KIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBtb2R1bGVSZWNvcmQgPSBqc0R5bmFt
aWNDYXN0PEFic3RyYWN0TW9kdWxlUmVjb3JkKj4odm0sIGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAg
ICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0ganNEeW5hbWljQ2FzdDxKU01vZHVsZVJl
Y29yZCo+KHZtLCBleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKCFtb2R1bGVSZWNvcmQpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBpZiAo
T3B0aW9uczo6ZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSgpKQogICAgICAgICBkYXRhTG9nKCJMb2Fk
ZXIgW2xpbmtdICIsIG1vZHVsZVJlY29yZC0+bW9kdWxlS2V5KCksICJcbiIpOwogCi0gICAgbW9k
dWxlUmVjb3JkLT5saW5rKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpKTsKKyAgICBtb2R1bGVSZWNv
cmQtPmxpbmsoZXhlYywgZXhlYy0+YXJndW1lbnQoMSksIGV4ZWMtPmFyZ3VtZW50KDIpKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ3JlYXRpb25Nb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQ3JlYXRpb25Nb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDEyZmU4Y2MwYmZkNGVlNzQ0NzM4ZjkwMzQxMzFkODk3OWIzN2ZiNTUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUNyZWF0aW9uTW9kZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLQotbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBXYXNtIHsKLQotZW51bSBjbGFzcyBDcmVhdGlvbk1vZGUgewotICAgIEZyb21KUywK
LSAgICBGcm9tTW9kdWxlTG9hZGVyCi19OwotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggYzUxMjg2YjdkYTk2
MGM3M2VhYWUxZjI4NzdmZTYyOTM5MzQ3ZTRmZS4uYmQwNmQzYzljMjUxNjVlY2RmMGI3Yjg0MmEy
MDkxNGQ2ZWQ1OWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJK
U0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgotI2luY2x1ZGUgIkpTU291
cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkFzc2VtYmx5RnVuY3Rpb24uaCIKICNpbmNsdWRlICJX
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oIgogCkBAIC01MCwxNiArNDksMTAgQEAgQUxXQVlT
X0lOTElORSB1aW50MzJfdCB0b05vbldyYXBwaW5nVWludDMyKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRvdWJsZVZhbHVl
KTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGQ6OnBhaXI8Y29uc3QgdWludDhfdCosIHNpemVfdD4g
Z2V0V2FzbUJ1ZmZlckZyb21WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitB
TFdBWVNfSU5MSU5FIHN0ZDo6cGFpcjx1aW50OF90Kiwgc2l6ZV90PiBnZXRXYXNtQnVmZmVyRnJv
bVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotCi0gICAgaWYgKGF1dG8qIHNvdXJjZSA9IGpzRHluYW1pY0Nhc3Q8SlNTb3VyY2VDb2RlKj4o
dm0sIHZhbHVlKSkgewotICAgICAgICBhdXRvKiBwcm92aWRlciA9IHN0YXRpY19jYXN0PFdlYkFz
c2VtYmx5U291cmNlUHJvdmlkZXIqPihzb3VyY2UtPnNvdXJjZUNvZGUoKS5wcm92aWRlcigpKTsK
LSAgICAgICAgcmV0dXJuIHsgcHJvdmlkZXItPmRhdGEoKS5kYXRhKCksIHByb3ZpZGVyLT5kYXRh
KCkuc2l6ZSgpIH07Ci0gICAgfQotCiAgICAgLy8gSWYgdGhlIGdpdmVuIGJ5dGVzIGFyZ3VtZW50
IGlzIG5vdCBhIEJ1ZmZlclNvdXJjZSwgYSBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHRocm93bi4K
ICAgICBKU0FycmF5QnVmZmVyKiBhcnJheUJ1ZmZlciA9IHZhbHVlLmdldE9iamVjdCgpID8ganNE
eW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0sIHZhbHVlLmdldE9iamVjdCgpKSA6IG51bGxw
dHI7CiAgICAgSlNBcnJheUJ1ZmZlclZpZXcqIGFycmF5QnVmZmVyVmlldyA9IHZhbHVlLmdldE9i
amVjdCgpID8ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KHZtLCB2YWx1ZS5nZXRP
YmplY3QoKSkgOiBudWxscHRyOwpAQCAtODMsNyArNzYsNyBAQCBBTFdBWVNfSU5MSU5FIHN0ZDo6
cGFpcjxjb25zdCB1aW50OF90Kiwgc2l6ZV90PiBnZXRXYXNtQnVmZmVyRnJvbVZhbHVlKEV4ZWNT
dGF0ZQogQUxXQVlTX0lOTElORSBWZWN0b3I8dWludDhfdD4gY3JlYXRlU291cmNlQnVmZmVyRnJv
bVZhbHVlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGNvbnN0IHVpbnQ4
X3QqIGRhdGE7CisgICAgdWludDhfdCogZGF0YTsKICAgICBzaXplX3QgYnl0ZVNpemU7CiAgICAg
c3RkOjp0aWUoZGF0YSwgYnl0ZVNpemUpID0gZ2V0V2FzbUJ1ZmZlckZyb21WYWx1ZShleGVjLCB2
YWx1ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBWZWN0b3I8dWludDhf
dD4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5SW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUluc3RhbmNlLmNwcAppbmRleCA5ZTU4Zjc0NzZkYTg5YmY2N2U4OWIyMzUzYzBlZTE2
ZDZjM2E4ODgzLi43NzFhNjQwYTMyYjg1OTlhMDVhM2RmNDUzNjM3ZGQ2YjUzYTljOTA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFu
Y2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJ
bnN0YW5jZS5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICAg
ICAgdmlzaXRvci5hcHBlbmQoKnRoaXNPYmplY3QtPmluc3RhbmNlKCkuaW1wb3J0RnVuY3Rpb248
UG9pc29uZWRCYXJyaWVyPEpTT2JqZWN0Pj4oaSkpOyAvLyBUaGlzIGFsc28ga2VlcHMgdGhlIGZ1
bmN0aW9ucycgSlNXZWJBc3NlbWJseUluc3RhbmNlIGFsaXZlLgogfQogCi12b2lkIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZTo6ZmluYWxpemVDcmVhdGlvbihWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywg
UmVmPFdhc206OkNvZGVCbG9jaz4mJiB3YXNtQ29kZUJsb2NrLCBKU09iamVjdCogaW1wb3J0T2Jq
ZWN0LCBXYXNtOjpDcmVhdGlvbk1vZGUgY3JlYXRpb25Nb2RlKQordm9pZCBKU1dlYkFzc2VtYmx5
SW5zdGFuY2U6OmZpbmFsaXplQ3JlYXRpb24oVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIFJlZjxX
YXNtOjpDb2RlQmxvY2s+JiYgd2FzbUNvZGVCbG9jaykKIHsKICAgICBtX2luc3RhbmNlLT5maW5h
bGl6ZUNyZWF0aW9uKHRoaXMsIHdhc21Db2RlQmxvY2suY29weVJlZigpKTsKIApAQCAtMTI3LDI0
ICsxMjcsMTUgQEAgdm9pZCBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmZpbmFsaXplQ3JlYXRpb24o
Vk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIFJlZjxXYXNtOjoKICAgICB9CiAKICAgICBhdXRvKiBt
b2R1bGVSZWNvcmQgPSBqc0Nhc3Q8V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQqPihtX21vZHVsZU5h
bWVzcGFjZU9iamVjdC0+bW9kdWxlUmVjb3JkKCkpOwotICAgIG1vZHVsZVJlY29yZC0+cHJlcGFy
ZUxpbmsodm0sIHRoaXMpOworICAgIG1vZHVsZVJlY29yZC0+bGluayhleGVjLCBtX21vZHVsZS5n
ZXQoKSwgdGhpcyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAot
ICAgIGlmIChjcmVhdGlvbk1vZGUgPT0gV2FzbTo6Q3JlYXRpb25Nb2RlOjpGcm9tSlMpIHsKLSAg
ICAgICAgbW9kdWxlUmVjb3JkLT5saW5rKGV4ZWMsIGpzTnVsbCgpLCBpbXBvcnRPYmplY3QsIGNy
ZWF0aW9uTW9kZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
Ci0KLSAgICAgICAgSlNWYWx1ZSBzdGFydFJlc3VsdCA9IG1vZHVsZVJlY29yZC0+ZXZhbHVhdGUo
ZXhlYyk7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShzdGFydFJlc3VsdCk7Ci0gICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgfQotfQotCi1JZGVudGlmaWVyIEpT
V2ViQXNzZW1ibHlJbnN0YW5jZTo6Y3JlYXRlUHJpdmF0ZU1vZHVsZUtleSgpCi17Ci0gICAgcmV0
dXJuIElkZW50aWZpZXI6OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRlc2NyaXB0
aW9uLCAiV2ViQXNzZW1ibHlJbnN0YW5jZSIpKTsKKyAgICBKU1ZhbHVlIHN0YXJ0UmVzdWx0ID0g
bW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhcnRSZXN1
bHQpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiB9CiAKLUpTV2Vi
QXNzZW1ibHlJbnN0YW5jZSogSlNXZWJBc3NlbWJseUluc3RhbmNlOjpjcmVhdGUoVk0mIHZtLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZUtleSwgSlNXZWJBc3NlbWJs
eU1vZHVsZSoganNNb2R1bGUsIEpTT2JqZWN0KiBpbXBvcnRPYmplY3QsIFN0cnVjdHVyZSogaW5z
dGFuY2VTdHJ1Y3R1cmUsIFJlZjxXYXNtOjpNb2R1bGU+JiYgbW9kdWxlLCBXYXNtOjpDcmVhdGlv
bk1vZGUgY3JlYXRpb25Nb2RlKQorSlNXZWJBc3NlbWJseUluc3RhbmNlKiBKU1dlYkFzc2VtYmx5
SW5zdGFuY2U6OmNyZWF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlNXZWJBc3NlbWJseU1v
ZHVsZSoganNNb2R1bGUsIEpTT2JqZWN0KiBpbXBvcnRPYmplY3QsIFN0cnVjdHVyZSogaW5zdGFu
Y2VTdHJ1Y3R1cmUsIFJlZjxXYXNtOjpNb2R1bGU+JiYgbW9kdWxlKQogewogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIGF1dG8qIGdsb2JhbE9iamVj
dCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKQEAgLTE2Myw2ICsxNTQsMTEgQEAgSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OmNyZWF0ZShWTSYgdm0s
IEV4ZWNTdGF0ZSogZXhlYywgY28KICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoYmVmb3JlLCAi
ICIsIFN0cmluZzo6ZnJvbVVURjgoaW1wb3J0Lm1vZHVsZSksICI6IiwgU3RyaW5nOjpmcm9tVVRG
OChpbXBvcnQuZmllbGQpLCAiICIsIGFmdGVyKTsKICAgICB9OwogCisgICAgLy8gSWYgdGhlIGxp
c3Qgb2YgbW9kdWxlLmltcG9ydHMgaXMgbm90IGVtcHR5IGFuZCBUeXBlKGltcG9ydE9iamVjdCkg
aXMgbm90IE9iamVjdCwgYSBUeXBlRXJyb3IgaXMgdGhyb3duLgorICAgIGlmIChtb2R1bGVJbmZv
cm1hdGlvbi5pbXBvcnRzLnNpemUoKSAmJiAhaW1wb3J0T2JqZWN0KQorICAgICAgICByZXR1cm4g
ZXhjZXB0aW9uKGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoImNhbid0IG1ha2Ug
V2ViQXNzZW1ibHkuSW5zdGFuY2UgYmVjYXVzZSB0aGVyZSBpcyBubyBpbXBvcnRzIE9iamVjdCBh
bmQgdGhlIFdlYkFzc2VtYmx5Lk1vZHVsZSByZXF1aXJlcyBpbXBvcnRzIikpKTsKKworICAgIElk
ZW50aWZpZXIgbW9kdWxlS2V5ID0gSWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2
YXRlTmFtZTo6RGVzY3JpcHRpb24sICJXZWJBc3NlbWJseUluc3RhbmNlIikpOwogICAgIFdlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBXZWJBc3NlbWJseU1vZHVsZVJlY29y
ZDo6Y3JlYXRlKGV4ZWMsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5TW9kdWxlUmVjb3Jk
U3RydWN0dXJlKCksIG1vZHVsZUtleSwgbW9kdWxlSW5mb3JtYXRpb24pOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAKQEAgLTE4MCw1OSArMTc2LDY5IEBA
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogSlNXZWJBc3NlbWJseUluc3RhbmNlOjpjcmVhdGUoVk0m
IHZtLCBFeGVjU3RhdGUqIGV4ZWMsIGNvCiAKICAgICAvLyBMZXQgZnVuY3MsIG1lbW9yaWVzIGFu
ZCB0YWJsZXMgYmUgaW5pdGlhbGx5LWVtcHR5IGxpc3RzIG9mIGNhbGxhYmxlIEphdmFTY3JpcHQg
b2JqZWN0cywgV2ViQXNzZW1ibHkuTWVtb3J5IG9iamVjdHMgYW5kIFdlYkFzc2VtYmx5LlRhYmxl
IG9iamVjdHMsIHJlc3BlY3RpdmVseS4KICAgICAvLyBMZXQgaW1wb3J0cyBiZSBhbiBpbml0aWFs
bHktZW1wdHkgbGlzdCBvZiBleHRlcm5hbCB2YWx1ZXMuCisgICAgdW5zaWduZWQgbnVtSW1wb3J0
RnVuY3Rpb25zID0gMDsKICAgICB1bnNpZ25lZCBudW1JbXBvcnRHbG9iYWxzID0gMDsKIAogICAg
IGJvb2wgaGFzTWVtb3J5SW1wb3J0ID0gZmFsc2U7CiAgICAgYm9vbCBoYXNUYWJsZUltcG9ydCA9
IGZhbHNlOwotCi0gICAgaWYgKGNyZWF0aW9uTW9kZSA9PSBXYXNtOjpDcmVhdGlvbk1vZGU6OkZy
b21KUykgewotICAgICAgICAvLyBJZiB0aGUgbGlzdCBvZiBtb2R1bGUuaW1wb3J0cyBpcyBub3Qg
ZW1wdHkgYW5kIFR5cGUoaW1wb3J0T2JqZWN0KSBpcyBub3QgT2JqZWN0LCBhIFR5cGVFcnJvciBp
cyB0aHJvd24uCi0gICAgICAgIGlmIChtb2R1bGVJbmZvcm1hdGlvbi5pbXBvcnRzLnNpemUoKSAm
JiAhaW1wb3J0T2JqZWN0KQotICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVUeXBl
RXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJjYW4ndCBtYWtlIFdlYkFzc2VtYmx5Lkluc3RhbmNl
IGJlY2F1c2UgdGhlcmUgaXMgbm8gaW1wb3J0cyBPYmplY3QgYW5kIHRoZSBXZWJBc3NlbWJseS5N
b2R1bGUgcmVxdWlyZXMgaW1wb3J0cyIpKSk7Ci0gICAgfQotCiAgICAgLy8gRm9yIGVhY2ggaW1w
b3J0IGkgaW4gbW9kdWxlLmltcG9ydHM6CiAgICAgZm9yIChhdXRvJiBpbXBvcnQgOiBtb2R1bGVJ
bmZvcm1hdGlvbi5pbXBvcnRzKSB7Ci0gICAgICAgIElkZW50aWZpZXIgbW9kdWxlTmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5tb2R1bGUp
KTsKLSAgICAgICAgSWRlbnRpZmllciBmaWVsZE5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQuZmllbGQpKTsKLSAgICAgICAgbW9kdWxlUmVj
b3JkLT5hcHBlbmRSZXF1ZXN0ZWRNb2R1bGUobW9kdWxlTmFtZSk7Ci0gICAgICAgIG1vZHVsZVJl
Y29yZC0+YWRkSW1wb3J0RW50cnkoV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OkltcG9ydEVudHJ5
IHsKLSAgICAgICAgICAgIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpJbXBvcnRFbnRyeVR5cGU6
OlNpbmdsZSwKLSAgICAgICAgICAgIG1vZHVsZU5hbWUsCi0gICAgICAgICAgICBmaWVsZE5hbWUs
Ci0gICAgICAgICAgICBJZGVudGlmaWVyOjpmcm9tVWlkKFByaXZhdGVOYW1lKFByaXZhdGVOYW1l
OjpEZXNjcmlwdGlvbiwgIldlYkFzc2VtYmx5SW1wb3J0TmFtZSIpKSwKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgLy8gU2tpcCBXYXNtOjpFeHRlcm5hbEtpbmQ6OkZ1bmN0aW9uIHZhbGlkYXRpb24g
aGVyZS4gSXQgd2lsbCBiZSBkb25lIGluIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rLgot
ICAgICAgICAvLyBFdmVudHVhbGx5IHdlIHdpbGwgbW92ZSBhbGwgdGhlIGxpbmtpbmcgY29kZSBo
ZXJlIHRvIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rLgotICAgICAgICBzd2l0Y2ggKGlt
cG9ydC5raW5kKSB7Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpGdW5jdGlvbjoK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6
VGFibGU6Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpNZW1vcnk6Ci0gICAgICAg
IGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotCi0gICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAgICAgIGlmIChjcmVhdGlvbk1v
ZGUgPT0gV2FzbTo6Q3JlYXRpb25Nb2RlOjpGcm9tSlMpIHsKLSAgICAgICAgICAgIC8vIDEuIExl
dCBvIGJlIHRoZSByZXN1bHRhbnQgdmFsdWUgb2YgcGVyZm9ybWluZyBHZXQoaW1wb3J0T2JqZWN0
LCBpLm1vZHVsZV9uYW1lKS4KLSAgICAgICAgICAgIEpTVmFsdWUgaW1wb3J0TW9kdWxlVmFsdWUg
PSBpbXBvcnRPYmplY3QtPmdldChleGVjLCBtb2R1bGVOYW1lKTsKLSAgICAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7Ci0gICAgICAgICAgICAvLyAyLiBJ
ZiBUeXBlKG8pIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yLgotICAgICAgICAgICAg
aWYgKCFpbXBvcnRNb2R1bGVWYWx1ZS5pc09iamVjdCgpKQotICAgICAgICAgICAgICAgIHJldHVy
biBleGNlcHRpb24oY3JlYXRlVHlwZUVycm9yKGV4ZWMsIGltcG9ydEZhaWxNZXNzYWdlKGltcG9y
dCwgImltcG9ydCIsICJtdXN0IGJlIGFuIG9iamVjdCIpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIs
IHJ1bnRpbWVUeXBlRm9yVmFsdWUoaW1wb3J0TW9kdWxlVmFsdWUpKSk7CisgICAgICAgIC8vIDEu
IExldCBvIGJlIHRoZSByZXN1bHRhbnQgdmFsdWUgb2YgcGVyZm9ybWluZyBHZXQoaW1wb3J0T2Jq
ZWN0LCBpLm1vZHVsZV9uYW1lKS4KKyAgICAgICAgSlNWYWx1ZSBpbXBvcnRNb2R1bGVWYWx1ZSA9
IGltcG9ydE9iamVjdC0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBTdHJp
bmc6OmZyb21VVEY4KGltcG9ydC5tb2R1bGUpKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgbnVsbHB0cik7CisgICAgICAgIC8vIDIuIElmIFR5cGUobykgaXMgbm90
IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IuCisgICAgICAgIGlmICghaW1wb3J0TW9kdWxlVmFs
dWUuaXNPYmplY3QoKSkKKyAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlVHlwZUVy
cm9yKGV4ZWMsIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydCIsICJtdXN0IGJlIGFu
IG9iamVjdCIpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUoaW1w
b3J0TW9kdWxlVmFsdWUpKSk7CiAKLSAgICAgICAgICAgIC8vIDMuIExldCB2IGJlIHRoZSB2YWx1
ZSBvZiBwZXJmb3JtaW5nIEdldChvLCBpLml0ZW1fbmFtZSkKLSAgICAgICAgICAgIEpTT2JqZWN0
KiBvYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3QqPihpbXBvcnRNb2R1bGVWYWx1ZSk7Ci0gICAgICAg
ICAgICB2YWx1ZSA9IG9iamVjdC0+Z2V0KGV4ZWMsIGZpZWxkTmFtZSk7Ci0gICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwotICAgICAgICB9Ci0gICAg
ICAgIGlmICghdmFsdWUpCi0gICAgICAgICAgICB2YWx1ZSA9IGpzVW5kZWZpbmVkKCk7CisgICAg
ICAgIC8vIDMuIExldCB2IGJlIHRoZSB2YWx1ZSBvZiBwZXJmb3JtaW5nIEdldChvLCBpLml0ZW1f
bmFtZSkKKyAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGpzQ2FzdDxKU09iamVjdCo+KGltcG9y
dE1vZHVsZVZhbHVlKTsKKyAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IG9iamVjdC0+Z2V0KGV4ZWMs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5maWVs
ZCkpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsK
IAogICAgICAgICBzd2l0Y2ggKGltcG9ydC5raW5kKSB7CiAgICAgICAgIGNhc2UgV2FzbTo6RXh0
ZXJuYWxLaW5kOjpGdW5jdGlvbjogeworICAgICAgICAgICAgLy8gNC4gSWYgaSBpcyBhIGZ1bmN0
aW9uIGltcG9ydDoKKyAgICAgICAgICAgIC8vIGkuIElmIElzQ2FsbGFibGUodikgaXMgZmFsc2Us
IHRocm93IGEgV2ViQXNzZW1ibHkuTGlua0Vycm9yLgorICAgICAgICAgICAgaWYgKCF2YWx1ZS5p
c0Z1bmN0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dl
YkFzc2VtYmx5TGlua0Vycm9yKGV4ZWMsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJp
bXBvcnQgZnVuY3Rpb24iLCAibXVzdCBiZSBjYWxsYWJsZSIpKSk7CisKKyAgICAgICAgICAgIFdh
c206Okluc3RhbmNlKiBjYWxsZWVJbnN0YW5jZSA9IG51bGxwdHI7CisgICAgICAgICAgICBXYXNt
VG9XYXNtSW1wb3J0YWJsZUZ1bmN0aW9uOjpMb2FkTG9jYXRpb24gZW50cnlwb2ludExvYWRMb2Nh
dGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8
SlNPYmplY3QqPih2YWx1ZSk7CisKKyAgICAgICAgICAgIC8vIGlpLiBJZiB2IGlzIGFuIEV4cG9y
dGVkIEZ1bmN0aW9uIEV4b3RpYyBPYmplY3Q6CisgICAgICAgICAgICBXZWJBc3NlbWJseUZ1bmN0
aW9uKiB3YXNtRnVuY3Rpb247CisgICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
biogd2FzbVdyYXBwZXJGdW5jdGlvbjsKKyAgICAgICAgICAgIGlmIChpc1dlYkFzc2VtYmx5SG9z
dEZ1bmN0aW9uKHZtLCBmdW5jdGlvbiwgd2FzbUZ1bmN0aW9uLCB3YXNtV3JhcHBlckZ1bmN0aW9u
KSkgeworICAgICAgICAgICAgICAgIC8vIGEuIElmIHRoZSBzaWduYXR1cmUgb2YgdiBkb2VzIG5v
dCBtYXRjaCB0aGUgc2lnbmF0dXJlIG9mIGksIHRocm93IGEgV2ViQXNzZW1ibHkuTGlua0Vycm9y
LgorICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGltcG9ydGVkU2lnbmF0dXJl
SW5kZXg7CisgICAgICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikgeworICAgICAgICAgICAg
ICAgICAgICBpbXBvcnRlZFNpZ25hdHVyZUluZGV4ID0gd2FzbUZ1bmN0aW9uLT5zaWduYXR1cmVJ
bmRleCgpOworICAgICAgICAgICAgICAgICAgICBjYWxsZWVJbnN0YW5jZSA9ICZ3YXNtRnVuY3Rp
b24tPmluc3RhbmNlKCktPmluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9p
bnRMb2FkTG9jYXRpb24gPSB3YXNtRnVuY3Rpb24tPmVudHJ5cG9pbnRMb2FkTG9jYXRpb24oKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgIGltcG9ydGVkU2lnbmF0dXJlSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWdu
YXR1cmVJbmRleCgpOworICAgICAgICAgICAgICAgICAgICAvLyBiLiBMZXQgY2xvc3VyZSBiZSB2
LltbQ2xvc3VyZV1dLgorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiA9IHdhc21XcmFwcGVy
RnVuY3Rpb24tPmZ1bmN0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IFdhc206OlNpZ25hdHVyZUluZGV4IGV4cGVjdGVkU2lnbmF0dXJlSW5kZXggPSBtb2R1bGVJbmZv
cm1hdGlvbi5pbXBvcnRGdW5jdGlvblNpZ25hdHVyZUluZGljZXNbaW1wb3J0LmtpbmRJbmRleF07
CisgICAgICAgICAgICAgICAgaWYgKGltcG9ydGVkU2lnbmF0dXJlSW5kZXggIT0gZXhwZWN0ZWRT
aWduYXR1cmVJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVh
dGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGV4ZWMsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBv
cnQsICJpbXBvcnRlZCBmdW5jdGlvbiIsICJzaWduYXR1cmUgZG9lc24ndCBtYXRjaCB0aGUgcHJv
dmlkZWQgV2ViQXNzZW1ibHkgZnVuY3Rpb24ncyBzaWduYXR1cmUiKSkpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgLy8gaWlpLiBPdGhlcndpc2U6CisgICAgICAgICAgICAvLyBhLiBMZXQg
Y2xvc3VyZSBiZSBhIG5ldyBob3N0IGZ1bmN0aW9uIG9mIHRoZSBnaXZlbiBzaWduYXR1cmUgd2hp
Y2ggY2FsbHMgdiBieSBjb2VyY2luZyBXZWJBc3NlbWJseSBhcmd1bWVudHMgdG8gSmF2YVNjcmlw
dCBhcmd1bWVudHMgdmlhIFRvSlNWYWx1ZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LCBpZiBhbnks
IGJ5IGNvZXJjaW5nIHZpYSBUb1dlYkFzc2VtYmx5VmFsdWUuCisgICAgICAgICAgICAvLyBOb3Rl
OiBkb25lIGFzIHBhcnQgb2YgUGxhbiBjb21waWxhdGlvbi4KKyAgICAgICAgICAgIC8vIGl2LiBB
cHBlbmQgdiB0byBmdW5jcy4KKyAgICAgICAgICAgIC8vIE5vdGU6IGFkZGluZyB0aGUgSlNDZWxs
IHRvIHRoZSBpbnN0YW5jZSBsaXN0IGZ1bGZpbGxzIGNsb3N1cmUgcmVxdWlyZW1lbnRzIGIuIGFi
b3ZlICh0aGUgV2ViQXNzZW1ibHkuSW5zdGFuY2Ugd2lsIGJlIGtlcHQgYWxpdmUpIGFuZCB2LiBi
ZWxvdyAodGhlIEpTRnVuY3Rpb24pLgorCisgICAgICAgICAgICBBU1NFUlQobnVtSW1wb3J0RnVu
Y3Rpb25zID09IGltcG9ydC5raW5kSW5kZXgpOworICAgICAgICAgICAgYXV0byogaW5mbyA9IGpz
SW5zdGFuY2UtPmluc3RhbmNlKCkuaW1wb3J0RnVuY3Rpb25JbmZvKG51bUltcG9ydEZ1bmN0aW9u
cyk7CisgICAgICAgICAgICBpbmZvLT50YXJnZXRJbnN0YW5jZSA9IGNhbGxlZUluc3RhbmNlOwor
ICAgICAgICAgICAgaW5mby0+d2FzbUVudHJ5cG9pbnRMb2FkTG9jYXRpb24gPSBlbnRyeXBvaW50
TG9hZExvY2F0aW9uOworICAgICAgICAgICAganNJbnN0YW5jZS0+aW5zdGFuY2UoKS5pbXBvcnRG
dW5jdGlvbjxQb2lzb25lZEJhcnJpZXI8SlNPYmplY3Q+PihudW1JbXBvcnRGdW5jdGlvbnMpLT5z
ZXQodm0sIGpzSW5zdGFuY2UsIGZ1bmN0aW9uKTsKKyAgICAgICAgICAgICsrbnVtSW1wb3J0RnVu
Y3Rpb25zOworICAgICAgICAgICAgLy8gdi4gQXBwZW5kIGNsb3N1cmUgdG8gaW1wb3J0cy4KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxL
aW5kOjpUYWJsZTogewpAQCAtMzIzLDcgKzMyOSw2IEBAIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
SlNXZWJBc3NlbWJseUluc3RhbmNlOjpjcmVhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
CiAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSAgICBBU1NFUlQobW9kdWxlUmVjb3JkLT5p
bXBvcnRFbnRyaWVzKCkuc2l6ZSgpID09IG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydHMuc2l6ZSgp
KTsKIAogICAgIHsKICAgICAgICAgaWYgKCEhbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5ICYmIG1v
ZHVsZUluZm9ybWF0aW9uLm1lbW9yeS5pc0ltcG9ydCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCmluZGV4IDNjYTQ2
ZDZkYmZkZTk0OTU4NTBmZTA5ZDljZGVhNTgxYTU3ZWU3MGQuLmVkOWIyYjExOGJmZDNhMGI3ZWE5
ZDJjNDMxMWU1YWUxOTE1NmZkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5j
bHVkZSAiSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlN
ZW1vcnkuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5VGFibGUuaCIKLSNpbmNsdWRlICJXYXNt
Q3JlYXRpb25Nb2RlLmgiCiAjaW5jbHVkZSAiV2FzbUluc3RhbmNlLmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogCkBAIC01MSwxNCArNTAsMTIgQEAgY2xhc3MgSlNXZWJBc3NlbWJseUluc3RhbmNl
IGZpbmFsIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CiAKLSAgICBzdGF0aWMgSWRlbnRpZmllciBj
cmVhdGVQcml2YXRlTW9kdWxlS2V5KCk7Ci0KLSAgICBzdGF0aWMgSlNXZWJBc3NlbWJseUluc3Rh
bmNlKiBjcmVhdGUoVk0mLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVLZXks
IEpTV2ViQXNzZW1ibHlNb2R1bGUqLCBKU09iamVjdCogaW1wb3J0T2JqZWN0LCBTdHJ1Y3R1cmUq
LCBSZWY8V2FzbTo6TW9kdWxlPiYmLCBXYXNtOjpDcmVhdGlvbk1vZGUpOworICAgIHN0YXRpYyBK
U1dlYkFzc2VtYmx5SW5zdGFuY2UqIGNyZWF0ZShWTSYsIEV4ZWNTdGF0ZSosIEpTV2ViQXNzZW1i
bHlNb2R1bGUqLCBKU09iamVjdCogaW1wb3J0T2JqZWN0LCBTdHJ1Y3R1cmUqLCBSZWY8V2FzbTo6
TW9kdWxlPiYmKTsKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBK
U0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIAot
ICAgIHZvaWQgZmluYWxpemVDcmVhdGlvbihWTSYsIEV4ZWNTdGF0ZSosIFJlZjxXYXNtOjpDb2Rl
QmxvY2s+JiYsIEpTT2JqZWN0KiBpbXBvcnRPYmplY3QsIFdhc206OkNyZWF0aW9uTW9kZSk7Cisg
ICAgdm9pZCBmaW5hbGl6ZUNyZWF0aW9uKFZNJiwgRXhlY1N0YXRlKiwgUmVmPFdhc206OkNvZGVC
bG9jaz4mJik7CiAgICAgCiAgICAgV2FzbTo6SW5zdGFuY2UmIGluc3RhbmNlKCkgeyByZXR1cm4g
bV9pbnN0YW5jZS5nZXQoKTsgfQogICAgIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0KiBtb2R1bGVO
YW1lc3BhY2VPYmplY3QoKSB7IHJldHVybiBtX21vZHVsZU5hbWVzcGFjZU9iamVjdC5nZXQoKTsg
fQpAQCAtNzksOCArNzYsNiBAQCBwdWJsaWM6CiAgICAgICAgIGluc3RhbmNlKCkuc2V0VGFibGUo
bWFrZVJlZigqdGFibGUoKS0+dGFibGUoKSkpOwogICAgIH0KIAotICAgIEpTV2ViQXNzZW1ibHlN
b2R1bGUqIG1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlLmdldCgpOyB9Ci0KICAgICBz
dGF0aWMgc2l6ZV90IG9mZnNldE9mUG9pc29uZWRJbnN0YW5jZSgpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihKU1dlYkFzc2VtYmx5SW5zdGFuY2UsIG1faW5zdGFuY2UpOyB9CiAgICAgc3RhdGlj
IHNpemVfdCBvZmZzZXRPZlBvaXNvbmVkQ2FsbGVlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9G
KEpTV2ViQXNzZW1ibHlJbnN0YW5jZSwgbV9jYWxsZWUpOyB9CiAKQEAgLTk0LDYgKzg5LDggQEAg
cHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZp
c2l0b3ImKTsKIAogcHJpdmF0ZToKKyAgICBKU1dlYkFzc2VtYmx5TW9kdWxlKiBtb2R1bGUoKSBj
b25zdCB7IHJldHVybiBtX21vZHVsZS5nZXQoKTsgfQorCiAgICAgUG9pc29uZWRSZWY8SlNXZWJB
c3NlbWJseUluc3RhbmNlUG9pc29uLCBXYXNtOjpJbnN0YW5jZT4gbV9pbnN0YW5jZTsKIAogICAg
IFBvaXNvbmVkQmFycmllcjxKU1dlYkFzc2VtYmx5TW9kdWxlPiBtX21vZHVsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3IuY3BwCmluZGV4IDIwODllNGY3MTUzYjI2OTBmYTc4YTNlYmE3MjY1
MTQ3OWZjZDVlODYuLmI2Nzg4ZmE1MGM2NDU0YTIwZDM1NzUwZDIzMGYzZWJhYzAzMmM4OGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFu
Y2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcApAQCAtNzcsMTAgKzc3LDEwIEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJbnN0
YW5jZShFeGVjU3RhdGUqIGV4CiAgICAgU3RydWN0dXJlKiBpbnN0YW5jZVN0cnVjdHVyZSA9IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIGV4ZWMtPm5ld1Rh
cmdldCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPldlYkFzc2VtYmx5SW5zdGFuY2VT
dHJ1Y3R1cmUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAg
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UgPSBKU1dlYkFzc2VtYmx5SW5zdGFuY2U6
OmNyZWF0ZSh2bSwgZXhlYywgSlNXZWJBc3NlbWJseUluc3RhbmNlOjpjcmVhdGVQcml2YXRlTW9k
dWxlS2V5KCksIG1vZHVsZSwgaW1wb3J0T2JqZWN0LCBpbnN0YW5jZVN0cnVjdHVyZSwgUmVmPFdh
c206Ok1vZHVsZT4obW9kdWxlLT5tb2R1bGUoKSksIFdhc206OkNyZWF0aW9uTW9kZTo6RnJvbUpT
KTsKKyAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlID0gSlNXZWJBc3NlbWJseUlu
c3RhbmNlOjpjcmVhdGUodm0sIGV4ZWMsIG1vZHVsZSwgaW1wb3J0T2JqZWN0LCBpbnN0YW5jZVN0
cnVjdHVyZSwgUmVmPFdhc206Ok1vZHVsZT4obW9kdWxlLT5tb2R1bGUoKSkpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBpbnN0YW5jZS0+ZmluYWxpemVDcmVh
dGlvbih2bSwgZXhlYywgbW9kdWxlLT5tb2R1bGUoKS5jb21waWxlU3luYygmdm0ud2FzbUNvbnRl
eHQsIGluc3RhbmNlLT5tZW1vcnlNb2RlKCksICZXYXNtOjpjcmVhdGVKU1RvV2FzbVdyYXBwZXIs
ICZXYXNtOjp3YXNtVG9KU0V4Y2VwdGlvbiksIGltcG9ydE9iamVjdCwgV2FzbTo6Q3JlYXRpb25N
b2RlOjpGcm9tSlMpOworICAgIGluc3RhbmNlLT5maW5hbGl6ZUNyZWF0aW9uKHZtLCBleGVjLCBt
b2R1bGUtPm1vZHVsZSgpLmNvbXBpbGVTeW5jKCZ2bS53YXNtQ29udGV4dCwgaW5zdGFuY2UtPm1l
bW9yeU1vZGUoKSwgJldhc206OmNyZWF0ZUpTVG9XYXNtV3JhcHBlciwgJldhc206Ondhc21Ub0pT
RXhjZXB0aW9uKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGluc3RhbmNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRl
eCAxNzhkOWE1ZDNjYWRmNmQ0YzgzZGFjNDlhMTcwMzFhYWM5NjA1NmIyLi5lMzQ2NDZjNmRiODFk
ODZlNjdmODIwNzdhZjg5M2E2ZGRmMmNmMzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC04Niwx
NTIgKzg2LDE2IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCh0
aGlzT2JqZWN0LT5tX3N0YXJ0RnVuY3Rpb24pOwogfQogCi12b2lkIFdlYkFzc2VtYmx5TW9kdWxl
UmVjb3JkOjpwcmVwYXJlTGluayhWTSYgdm0sIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFu
Y2UpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQoIW1faW5zdGFuY2UpOwotICAgIG1faW5zdGFuY2Uu
c2V0KHZtLCB0aGlzLCBpbnN0YW5jZSk7Ci19Ci0KLXZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQ6OmxpbmsoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBKU09iamVjdCogaW1wb3J0T2JqZWN0
LCBXYXNtOjpDcmVhdGlvbk1vZGUgY3JlYXRpb25Nb2RlKQordm9pZCBXZWJBc3NlbWJseU1vZHVs
ZVJlY29yZDo6bGluayhFeGVjU3RhdGUqIGV4ZWMsIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVs
ZSwgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSkKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBV
TlVTRURfUEFSQU0oc2NvcGUpOwogICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKTsKIAotICAgIFJFTEVBU0VfQVNTRVJUKG1faW5zdGFuY2UpOwotCi0g
ICAgV2FzbTo6Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLmNv
ZGVCbG9jaygpOwotICAgIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSA9IG1faW5zdGFuY2Ut
Pm1vZHVsZSgpOworICAgIFdhc206OkNvZGVCbG9jayogY29kZUJsb2NrID0gaW5zdGFuY2UtPmlu
c3RhbmNlKCkuY29kZUJsb2NrKCk7CiAgICAgY29uc3QgV2FzbTo6TW9kdWxlSW5mb3JtYXRpb24m
IG1vZHVsZUluZm9ybWF0aW9uID0gbW9kdWxlLT5tb2R1bGVJbmZvcm1hdGlvbigpOwogCi0gICAg
YXV0byBleGNlcHRpb24gPSBbJl0gKEpTT2JqZWN0KiBlcnJvcikgewotICAgICAgICB0aHJvd0V4
Y2VwdGlvbihleGVjLCBzY29wZSwgZXJyb3IpOwotICAgIH07Ci0KLSAgICBhdXRvIGltcG9ydEZh
aWxNZXNzYWdlID0gWyZdIChjb25zdCBXYXNtOjpJbXBvcnQmIGltcG9ydCwgY29uc3QgY2hhciog
YmVmb3JlLCBjb25zdCBjaGFyKiBhZnRlcikgewotICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhi
ZWZvcmUsICIgIiwgU3RyaW5nOjpmcm9tVVRGOChpbXBvcnQubW9kdWxlKSwgIjoiLCBTdHJpbmc6
OmZyb21VVEY4KGltcG9ydC5maWVsZCksICIgIiwgYWZ0ZXIpOwotICAgIH07Ci0KLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIGltcG9ydCA6IG1vZHVsZUluZm9ybWF0aW9uLmltcG9ydHMpIHsKLSAgICAg
ICAgLy8gVmFsaWRhdGlvbiBhbmQgbGlua2luZyBvdGhlciB0aGFuIFdhc206OkV4dGVybmFsS2lu
ZDo6RnVuY3Rpb24gaXMgYWxyZWFkeSBkb25lIGluIEpTV2ViQXNzZW1ibHlJbnN0YW5jZS4KLSAg
ICAgICAgLy8gRXZlbnR1YWxseSB3ZSB3aWxsIG1vdmUgYWxsIHRoZSBsaW5raW5nIGNvZGUgaW4g
SlNXZWJBc3NlbWJseUluc3RhbmNlIGhlcmUgYW5kIHJlbW92ZSB0aGlzIHN3aXRjaCBzdGF0ZW1l
bnQuCi0gICAgICAgIHN3aXRjaCAoaW1wb3J0LmtpbmQpIHsKLSAgICAgICAgY2FzZSBXYXNtOjpF
eHRlcm5hbEtpbmQ6OkZ1bmN0aW9uOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
V2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtp
bmQ6Ok1lbW9yeToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6Okdsb2JhbDoKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgSWRlbnRpZmllciBtb2R1
bGVOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIFN0cmluZzo6ZnJvbVVURjgoaW1w
b3J0Lm1vZHVsZSkpOwotICAgICAgICBJZGVudGlmaWVyIGZpZWxkTmFtZSA9IElkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCBTdHJpbmc6OmZyb21VVEY4KGltcG9ydC5maWVsZCkpOwotICAgICAg
ICBKU1ZhbHVlIHZhbHVlOwotICAgICAgICBpZiAoY3JlYXRpb25Nb2RlID09IFdhc206OkNyZWF0
aW9uTW9kZTo6RnJvbUpTKSB7Ci0gICAgICAgICAgICAvLyAxLiBMZXQgbyBiZSB0aGUgcmVzdWx0
YW50IHZhbHVlIG9mIHBlcmZvcm1pbmcgR2V0KGltcG9ydE9iamVjdCwgaS5tb2R1bGVfbmFtZSku
Ci0gICAgICAgICAgICBKU1ZhbHVlIGltcG9ydE1vZHVsZVZhbHVlID0gaW1wb3J0T2JqZWN0LT5n
ZXQoZXhlYywgbW9kdWxlTmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB2b2lkKCkpOwotICAgICAgICAgICAgLy8gMi4gSWYgVHlwZShvKSBpcyBub3QgT2JqZWN0
LCB0aHJvdyBhIFR5cGVFcnJvci4KLSAgICAgICAgICAgIGlmICghaW1wb3J0TW9kdWxlVmFsdWUu
aXNPYmplY3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZVR5cGVF
cnJvcihleGVjLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnQiLCAibXVzdCBiZSBh
biBvYmplY3QiKSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBydW50aW1lVHlwZUZvclZhbHVlKGlt
cG9ydE1vZHVsZVZhbHVlKSkpOwotCi0gICAgICAgICAgICAvLyAzLiBMZXQgdiBiZSB0aGUgdmFs
dWUgb2YgcGVyZm9ybWluZyBHZXQobywgaS5pdGVtX25hbWUpCi0gICAgICAgICAgICBKU09iamVj
dCogb2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oaW1wb3J0TW9kdWxlVmFsdWUpOwotICAgICAg
ICAgICAgdmFsdWUgPSBvYmplY3QtPmdldChleGVjLCBmaWVsZE5hbWUpOwotICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIEFic3RyYWN0TW9kdWxlUmVjb3JkKiBpbXBvcnRlZE1vZHVsZSA9IGhvc3RSZXNv
bHZlSW1wb3J0ZWRNb2R1bGUoZXhlYywgbW9kdWxlTmFtZSk7Ci0gICAgICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgICAgICAgICAgUmVzb2x1dGlvbiByZXNv
bHV0aW9uID0gaW1wb3J0ZWRNb2R1bGUtPnJlc29sdmVFeHBvcnQoZXhlYywgZmllbGROYW1lKTsK
LSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgICAg
ICAgICBzd2l0Y2ggKHJlc29sdXRpb24udHlwZSkgewotICAgICAgICAgICAgY2FzZSBSZXNvbHV0
aW9uOjpUeXBlOjpOb3RGb3VuZDoKLSAgICAgICAgICAgICAgICB0aHJvd1N5bnRheEVycm9yKGV4
ZWMsIHNjb3BlLCBtYWtlU3RyaW5nKCJJbXBvcnRpbmcgYmluZGluZyBuYW1lICciLCBTdHJpbmco
ZmllbGROYW1lLmltcGwoKSksICInIGlzIG5vdCBmb3VuZC4iKSk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgICAgICBjYXNlIFJlc29sdXRpb246OlR5cGU6OkFtYmlndW91czoK
LSAgICAgICAgICAgICAgICB0aHJvd1N5bnRheEVycm9yKGV4ZWMsIHNjb3BlLCBtYWtlU3RyaW5n
KCJJbXBvcnRpbmcgYmluZGluZyBuYW1lICciLCBTdHJpbmcoZmllbGROYW1lLmltcGwoKSksICIn
IGNhbm5vdCBiZSByZXNvbHZlZCBkdWUgdG8gYW1iaWd1b3VzIG11bHRpcGxlIGJpbmRpbmdzLiIp
KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGNhc2UgUmVzb2x1dGlv
bjo6VHlwZTo6RXJyb3I6Ci0gICAgICAgICAgICAgICAgdGhyb3dTeW50YXhFcnJvcihleGVjLCBz
Y29wZSwgbWFrZVN0cmluZygiSW1wb3J0aW5nIGJpbmRpbmcgbmFtZSAnZGVmYXVsdCcgY2Fubm90
IGJlIHJlc29sdmVkIGJ5IHN0YXIgZXhwb3J0IGVudHJpZXMuIikpOwotICAgICAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICAgICAgY2FzZSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZDoK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQWJz
dHJhY3RNb2R1bGVSZWNvcmQqIGltcG9ydGVkUmVjb3JkID0gcmVzb2x1dGlvbi5tb2R1bGVSZWNv
cmQ7Ci0gICAgICAgICAgICBKU01vZHVsZUVudmlyb25tZW50KiBpbXBvcnRlZEVudmlyb25tZW50
ID0gaW1wb3J0ZWRSZWNvcmQtPm1vZHVsZUVudmlyb25tZW50TWF5QmVOdWxsKCk7Ci0gICAgICAg
ICAgICAvLyBJdCBtZWFucyB0aGF0IHRhcmdldCBtb2R1bGUgaXMgbm90IGxpbmtlZCB5ZXQuIElu
IHdhc20gbG9hZGluZywgd2UgYWxsb3cgdGhpcyBzaW5jZSB3ZSBkbyBub3Qgc29sdmUgY3ljbGlj
IHJlc29sdXRpb24gYXMgaWYgSlMncyBiaW5kaW5ncy4KLSAgICAgICAgICAgIC8vIEF0IHRoYXQg
dGltZSwgZXJyb3Igb2NjdXJzIHNpbmNlIHx2YWx1ZXwgaXMgYW4gZW1wdHksIGFuZCBsYXRlciB8
dmFsdWV8IGJlY29tZXMgYW4gdW5kZWZpbmVkLgotICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRo
dWIuY29tL1dlYkFzc2VtYmx5L2VzbS1pbnRlZ3JhdGlvbi90cmVlL21hc3Rlci9wcm9wb3NhbHMv
ZXNtLWludGVncmF0aW9uI2pzLS0td2FzbS1jeWNsZS13aGVyZS1qcy1pcy1oaWdoZXItaW4tdGhl
LW1vZHVsZS1ncmFwaAotICAgICAgICAgICAgaWYgKGltcG9ydGVkRW52aXJvbm1lbnQpIHsKLSAg
ICAgICAgICAgICAgICBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUgPSBpbXBvcnRlZEVudmlyb25t
ZW50LT5zeW1ib2xUYWJsZSgpOwotICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBs
b2NrZXIoc3ltYm9sVGFibGUtPm1fbG9jayk7Ci0gICAgICAgICAgICAgICAgYXV0byBpdGVyID0g
c3ltYm9sVGFibGUtPmZpbmQobG9ja2VyLCByZXNvbHV0aW9uLmxvY2FsTmFtZS5pbXBsKCkpOwot
ICAgICAgICAgICAgICAgIEFTU0VSVChpdGVyICE9IHN5bWJvbFRhYmxlLT5lbmQobG9ja2VyKSk7
Ci0gICAgICAgICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSYgZW50cnkgPSBpdGVyLT52YWx1ZTsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoIWVudHJ5LmlzTnVsbCgpKTsKLSAgICAgICAgICAgICAg
ICBBU1NFUlQoaW1wb3J0ZWRFbnZpcm9ubWVudC0+aXNWYWxpZFNjb3BlT2Zmc2V0KGVudHJ5LnNj
b3BlT2Zmc2V0KCkpKTsKLQotICAgICAgICAgICAgICAgIC8vIFNuYXBzaG90dGluZyBhIHZhbHVl
LgotICAgICAgICAgICAgICAgIHZhbHVlID0gaW1wb3J0ZWRFbnZpcm9ubWVudC0+dmFyaWFibGVB
dChlbnRyeS5zY29wZU9mZnNldCgpKS5nZXQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICBpZiAoIXZhbHVlKQotICAgICAgICAgICAgdmFsdWUgPSBqc1VuZGVmaW5lZCgpOwot
Ci0gICAgICAgIHN3aXRjaCAoaW1wb3J0LmtpbmQpIHsKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRl
cm5hbEtpbmQ6OkZ1bmN0aW9uOiB7Ci0gICAgICAgICAgICAvLyA0LiBJZiBpIGlzIGEgZnVuY3Rp
b24gaW1wb3J0OgotICAgICAgICAgICAgLy8gaS4gSWYgSXNDYWxsYWJsZSh2KSBpcyBmYWxzZSwg
dGhyb3cgYSBXZWJBc3NlbWJseS5MaW5rRXJyb3IuCi0gICAgICAgICAgICBpZiAoIXZhbHVlLmlz
RnVuY3Rpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IoZXhlYywgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImlt
cG9ydCBmdW5jdGlvbiIsICJtdXN0IGJlIGNhbGxhYmxlIikpKTsKLQotICAgICAgICAgICAgV2Fz
bTo6SW5zdGFuY2UqIGNhbGxlZUluc3RhbmNlID0gbnVsbHB0cjsKLSAgICAgICAgICAgIFdhc21U
b1dhc21JbXBvcnRhYmxlRnVuY3Rpb246OkxvYWRMb2NhdGlvbiBlbnRyeXBvaW50TG9hZExvY2F0
aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxK
U09iamVjdCo+KHZhbHVlKTsKLQotICAgICAgICAgICAgLy8gaWkuIElmIHYgaXMgYW4gRXhwb3J0
ZWQgRnVuY3Rpb24gRXhvdGljIE9iamVjdDoKLSAgICAgICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rp
b24qIHdhc21GdW5jdGlvbjsKLSAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9u
KiB3YXNtV3JhcHBlckZ1bmN0aW9uOwotICAgICAgICAgICAgaWYgKGlzV2ViQXNzZW1ibHlIb3N0
RnVuY3Rpb24odm0sIGZ1bmN0aW9uLCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rpb24p
KSB7Ci0gICAgICAgICAgICAgICAgLy8gYS4gSWYgdGhlIHNpZ25hdHVyZSBvZiB2IGRvZXMgbm90
IG1hdGNoIHRoZSBzaWduYXR1cmUgb2YgaSwgdGhyb3cgYSBXZWJBc3NlbWJseS5MaW5rRXJyb3Iu
Ci0gICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggaW1wb3J0ZWRTaWduYXR1cmVJ
bmRleDsKLSAgICAgICAgICAgICAgICBpZiAod2FzbUZ1bmN0aW9uKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGltcG9ydGVkU2lnbmF0dXJlSW5kZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUlu
ZGV4KCk7Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxlZUluc3RhbmNlID0gJndhc21GdW5jdGlv
bi0+aW5zdGFuY2UoKS0+aW5zdGFuY2UoKTsKLSAgICAgICAgICAgICAgICAgICAgZW50cnlwb2lu
dExvYWRMb2NhdGlvbiA9IHdhc21GdW5jdGlvbi0+ZW50cnlwb2ludExvYWRMb2NhdGlvbigpOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGltcG9ydGVkU2ln
bmF0dXJlSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOwotICAg
ICAgICAgICAgICAgICAgICAvLyBiLiBMZXQgY2xvc3VyZSBiZSB2LltbQ2xvc3VyZV1dLgotICAg
ICAgICAgICAgICAgICAgICBmdW5jdGlvbiA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPmZ1bmN0aW9u
KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUlu
ZGV4IGV4cGVjdGVkU2lnbmF0dXJlSW5kZXggPSBtb2R1bGVJbmZvcm1hdGlvbi5pbXBvcnRGdW5j
dGlvblNpZ25hdHVyZUluZGljZXNbaW1wb3J0LmtpbmRJbmRleF07Ci0gICAgICAgICAgICAgICAg
aWYgKGltcG9ydGVkU2lnbmF0dXJlSW5kZXggIT0gZXhwZWN0ZWRTaWduYXR1cmVJbmRleCkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlu
a0Vycm9yKGV4ZWMsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBmdW5j
dGlvbiIsICJzaWduYXR1cmUgZG9lc24ndCBtYXRjaCB0aGUgcHJvdmlkZWQgV2ViQXNzZW1ibHkg
ZnVuY3Rpb24ncyBzaWduYXR1cmUiKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8g
aWlpLiBPdGhlcndpc2U6Ci0gICAgICAgICAgICAvLyBhLiBMZXQgY2xvc3VyZSBiZSBhIG5ldyBo
b3N0IGZ1bmN0aW9uIG9mIHRoZSBnaXZlbiBzaWduYXR1cmUgd2hpY2ggY2FsbHMgdiBieSBjb2Vy
Y2luZyBXZWJBc3NlbWJseSBhcmd1bWVudHMgdG8gSmF2YVNjcmlwdCBhcmd1bWVudHMgdmlhIFRv
SlNWYWx1ZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LCBpZiBhbnksIGJ5IGNvZXJjaW5nIHZpYSBU
b1dlYkFzc2VtYmx5VmFsdWUuCi0gICAgICAgICAgICAvLyBOb3RlOiBkb25lIGFzIHBhcnQgb2Yg
UGxhbiBjb21waWxhdGlvbi4KLSAgICAgICAgICAgIC8vIGl2LiBBcHBlbmQgdiB0byBmdW5jcy4K
LSAgICAgICAgICAgIC8vIE5vdGU6IGFkZGluZyB0aGUgSlNDZWxsIHRvIHRoZSBpbnN0YW5jZSBs
aXN0IGZ1bGZpbGxzIGNsb3N1cmUgcmVxdWlyZW1lbnRzIGIuIGFib3ZlICh0aGUgV2ViQXNzZW1i
bHkuSW5zdGFuY2Ugd2lsIGJlIGtlcHQgYWxpdmUpIGFuZCB2LiBiZWxvdyAodGhlIEpTRnVuY3Rp
b24pLgotCi0gICAgICAgICAgICBhdXRvKiBpbmZvID0gbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5p
bXBvcnRGdW5jdGlvbkluZm8oaW1wb3J0LmtpbmRJbmRleCk7Ci0gICAgICAgICAgICBpbmZvLT50
YXJnZXRJbnN0YW5jZSA9IGNhbGxlZUluc3RhbmNlOwotICAgICAgICAgICAgaW5mby0+d2FzbUVu
dHJ5cG9pbnRMb2FkTG9jYXRpb24gPSBlbnRyeXBvaW50TG9hZExvY2F0aW9uOwotICAgICAgICAg
ICAgbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5pbXBvcnRGdW5jdGlvbjxKU1dlYkFzc2VtYmx5SW5z
dGFuY2U6OlBvaXNvbmVkQmFycmllcjxKU09iamVjdD4+KGltcG9ydC5raW5kSW5kZXgpLT5zZXQo
dm0sIG1faW5zdGFuY2UuZ2V0KCksIGZ1bmN0aW9uKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpUYWJsZToKLSAgICAgICAg
Y2FzZSBXYXNtOjpFeHRlcm5hbEtpbmQ6Ok1lbW9yeToKLSAgICAgICAgY2FzZSBXYXNtOjpFeHRl
cm5hbEtpbmQ6Okdsb2JhbDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQot
CiAgICAgU3ltYm9sVGFibGUqIGV4cG9ydFN5bWJvbFRhYmxlID0gbW9kdWxlLT5leHBvcnRTeW1i
b2xUYWJsZSgpOwogICAgIHVuc2lnbmVkIGZ1bmN0aW9uSW1wb3J0Q291bnQgPSBjb2RlQmxvY2st
PmZ1bmN0aW9uSW1wb3J0Q291bnQoKTsKIApAQCAtMjQ2LDEyICsxMTAsMTIgQEAgdm9pZCBXZWJB
c3NlbWJseU1vZHVsZVJlY29yZDo6bGluayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIEpTT2Jq
ZWN0KiBpbXBvcnRPYmoKICAgICAgICAgICAgIC8vICAgaWkuIChOb3RlOiBBdCBtb3N0IG9uZSB3
cmFwcGVyIGlzIGNyZWF0ZWQgZm9yIGFueSBjbG9zdXJlLCBzbyBmdW5jIGlzIHVuaXF1ZSwgZXZl
biBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgb2NjdXJyYW5jZXMgaW4gdGhlIGxpc3QuIE1vcmVvdmVy
LCBpZiB0aGUgaXRlbSB3YXMgYW4gaW1wb3J0IHRoYXQgaXMgYWxyZWFkeSBhbiBFeHBvcnRlZCBG
dW5jdGlvbiBFeG90aWMgT2JqZWN0LCB0aGVuIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBvYmplY3Qg
d2lsbCBiZSBmb3VuZC4gRm9yIGltcG9ydHMgdGhhdCBhcmUgcmVndWxhciBKUyBmdW5jdGlvbnMs
IGEgbmV3IHdyYXBwZXIgd2lsbCBiZSBjcmVhdGVkLikKICAgICAgICAgICAgIGlmIChleHAua2lu
ZEluZGV4IDwgZnVuY3Rpb25JbXBvcnRDb3VudCkgewogICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGZ1bmN0aW9uSW5kZXggPSBleHAua2luZEluZGV4OwotICAgICAgICAgICAgICAgIEpTT2JqZWN0
KiBmdW5jdGlvbkltcG9ydCA9IG1faW5zdGFuY2UtPmluc3RhbmNlKCkuaW1wb3J0RnVuY3Rpb248
SlNXZWJBc3NlbWJseUluc3RhbmNlOjpQb2lzb25lZEJhcnJpZXI8SlNPYmplY3Q+PihmdW5jdGlv
bkluZGV4KS0+Z2V0KCk7CisgICAgICAgICAgICAgICAgSlNPYmplY3QqIGZ1bmN0aW9uSW1wb3J0
ID0gaW5zdGFuY2UtPmluc3RhbmNlKCkuaW1wb3J0RnVuY3Rpb248SlNXZWJBc3NlbWJseUluc3Rh
bmNlOjpQb2lzb25lZEJhcnJpZXI8SlNPYmplY3Q+PihmdW5jdGlvbkluZGV4KS0+Z2V0KCk7CiAg
ICAgICAgICAgICAgICAgaWYgKGlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIGZ1bmN0aW9u
SW1wb3J0KSkKICAgICAgICAgICAgICAgICAgICAgZXhwb3J0ZWRWYWx1ZSA9IGZ1bmN0aW9uSW1w
b3J0OwogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBXYXNtOjpT
aWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1vZHVsZS0+c2lnbmF0dXJlSW5kZXhGcm9t
RnVuY3Rpb25JbmRleFNwYWNlKGZ1bmN0aW9uSW5kZXgpOwotICAgICAgICAgICAgICAgICAgICBl
eHBvcnRlZFZhbHVlID0gV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBmdW5jdGlvbkltcG9ydCwgZnVuY3Rpb25JbmRleCwgbV9pbnN0YW5jZS5nZXQo
KSwgc2lnbmF0dXJlSW5kZXgpOworICAgICAgICAgICAgICAgICAgICBleHBvcnRlZFZhbHVlID0g
V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBmdW5j
dGlvbkltcG9ydCwgZnVuY3Rpb25JbmRleCwgaW5zdGFuY2UsIHNpZ25hdHVyZUluZGV4KTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8v
ICAgaWlpLiBPdGhlcndpc2U6CkBAIC0yNjIsMjMgKzEyNiwyMyBAQCB2b2lkIFdlYkFzc2VtYmx5
TW9kdWxlUmVjb3JkOjpsaW5rKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgSlNPYmplY3QqIGlt
cG9ydE9iagogICAgICAgICAgICAgICAgIFdhc206Oldhc21Ub1dhc21JbXBvcnRhYmxlRnVuY3Rp
b246OkxvYWRMb2NhdGlvbiBlbnRyeXBvaW50TG9hZExvY2F0aW9uID0gY29kZUJsb2NrLT5lbnRy
eXBvaW50TG9hZExvY2F0aW9uRnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShleHAua2luZEluZGV4KTsK
ICAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1v
ZHVsZS0+c2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGV4cC5raW5kSW5kZXgp
OwogICAgICAgICAgICAgICAgIGNvbnN0IFdhc206OlNpZ25hdHVyZSYgc2lnbmF0dXJlID0gV2Fz
bTo6U2lnbmF0dXJlSW5mb3JtYXRpb246OmdldChzaWduYXR1cmVJbmRleCk7Ci0gICAgICAgICAg
ICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogZnVuY3Rpb24gPSBXZWJBc3NlbWJseUZ1bmN0aW9u
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKSwgU3Ry
aW5nOjpmcm9tVVRGOChleHAuZmllbGQpLCBtX2luc3RhbmNlLmdldCgpLCBlbWJlZGRlckVudHJ5
cG9pbnRDYWxsZWUsIGVudHJ5cG9pbnRMb2FkTG9jYXRpb24sIHNpZ25hdHVyZUluZGV4KTsKKyAg
ICAgICAgICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiBmdW5jdGlvbiA9IFdlYkFzc2VtYmx5
RnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBzaWduYXR1cmUuYXJndW1lbnRDb3Vu
dCgpLCBTdHJpbmc6OmZyb21VVEY4KGV4cC5maWVsZCksIGluc3RhbmNlLCBlbWJlZGRlckVudHJ5
cG9pbnRDYWxsZWUsIGVudHJ5cG9pbnRMb2FkTG9jYXRpb24sIHNpZ25hdHVyZUluZGV4KTsKICAg
ICAgICAgICAgICAgICBleHBvcnRlZFZhbHVlID0gZnVuY3Rpb247CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdhc206OkV4dGVybmFs
S2luZDo6VGFibGU6IHsKICAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGd1YXJhbnRlZWQg
YnkgbW9kdWxlIHZlcmlmaWNhdGlvbi4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1faW5z
dGFuY2UtPnRhYmxlKCkpOyAKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGluc3RhbmNlLT50
YWJsZSgpKTsgCiAgICAgICAgICAgICBBU1NFUlQoZXhwLmtpbmRJbmRleCA9PSAwKTsKIAotICAg
ICAgICAgICAgZXhwb3J0ZWRWYWx1ZSA9IG1faW5zdGFuY2UtPnRhYmxlKCk7CisgICAgICAgICAg
ICBleHBvcnRlZFZhbHVlID0gaW5zdGFuY2UtPnRhYmxlKCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIFdhc206OkV4dGVybmFsS2luZDo6TWVtb3J5OiB7CiAg
ICAgICAgICAgICBBU1NFUlQoZXhwLmtpbmRJbmRleCA9PSAwKTsKIAotICAgICAgICAgICAgZXhw
b3J0ZWRWYWx1ZSA9IG1faW5zdGFuY2UtPm1lbW9yeSgpOworICAgICAgICAgICAgZXhwb3J0ZWRW
YWx1ZSA9IGluc3RhbmNlLT5tZW1vcnkoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgV2FzbTo6RXh0ZXJuYWxLaW5kOjpHbG9iYWw6IHsKQEAgLTI4OCw3ICsx
NTIsNyBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSwgSlNPYmplY3QqIGltcG9ydE9iagogICAgICAgICAgICAgLy8gUmV0dXJuIFRv
SlNWYWx1ZSh2KS4KICAgICAgICAgICAgIHN3aXRjaCAoZ2xvYmFsLnR5cGUpIHsKICAgICAgICAg
ICAgIGNhc2UgV2FzbTo6STMyOgotICAgICAgICAgICAgICAgIGV4cG9ydGVkVmFsdWUgPSBKU1Zh
bHVlKG1faW5zdGFuY2UtPmluc3RhbmNlKCkubG9hZEkzMkdsb2JhbChleHAua2luZEluZGV4KSk7
CisgICAgICAgICAgICAgICAgZXhwb3J0ZWRWYWx1ZSA9IEpTVmFsdWUoaW5zdGFuY2UtPmluc3Rh
bmNlKCkubG9hZEkzMkdsb2JhbChleHAua2luZEluZGV4KSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAKICAgICAgICAgICAgIGNhc2UgV2FzbTo6STY0OgpAQCAtMjk2LDExICsxNjAsMTEgQEAg
dm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGluayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUsIEpTT2JqZWN0KiBpbXBvcnRPYmoKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIGNhc2UgV2FzbTo6RjMyOgotICAgICAgICAgICAgICAgIGV4cG9ydGVkVmFsdWUgPSBK
U1ZhbHVlKG1faW5zdGFuY2UtPmluc3RhbmNlKCkubG9hZEYzMkdsb2JhbChleHAua2luZEluZGV4
KSk7CisgICAgICAgICAgICAgICAgZXhwb3J0ZWRWYWx1ZSA9IEpTVmFsdWUoaW5zdGFuY2UtPmlu
c3RhbmNlKCkubG9hZEYzMkdsb2JhbChleHAua2luZEluZGV4KSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgV2FzbTo6RjY0OgotICAgICAgICAgICAgICAgIGV4
cG9ydGVkVmFsdWUgPSBKU1ZhbHVlKG1faW5zdGFuY2UtPmluc3RhbmNlKCkubG9hZEY2NEdsb2Jh
bChleHAua2luZEluZGV4KSk7CisgICAgICAgICAgICAgICAgZXhwb3J0ZWRWYWx1ZSA9IEpTVmFs
dWUoaW5zdGFuY2UtPmluc3RhbmNlKCkubG9hZEY2NEdsb2JhbChleHAua2luZEluZGV4KSk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0zMjcsMTUg
KzE5MSwxOCBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSwgSlNPYmplY3QqIGltcG9ydE9iagogICAgICAgICBBU1NFUlQoIXNpZ25h
dHVyZS5hcmd1bWVudENvdW50KCkpOwogICAgICAgICBBU1NFUlQoc2lnbmF0dXJlLnJldHVyblR5
cGUoKSA9PSBXYXNtOjpWb2lkKTsKICAgICAgICAgaWYgKHN0YXJ0RnVuY3Rpb25JbmRleFNwYWNl
IDwgY29kZUJsb2NrLT5mdW5jdGlvbkltcG9ydENvdW50KCkpIHsKLSAgICAgICAgICAgIEpTT2Jq
ZWN0KiBzdGFydEZ1bmN0aW9uID0gbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5pbXBvcnRGdW5jdGlv
bjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U6OlBvaXNvbmVkQmFycmllcjxKU09iamVjdD4+KHN0YXJ0
RnVuY3Rpb25JbmRleFNwYWNlKS0+Z2V0KCk7CisgICAgICAgICAgICBKU09iamVjdCogc3RhcnRG
dW5jdGlvbiA9IGluc3RhbmNlLT5pbnN0YW5jZSgpLmltcG9ydEZ1bmN0aW9uPEpTV2ViQXNzZW1i
bHlJbnN0YW5jZTo6UG9pc29uZWRCYXJyaWVyPEpTT2JqZWN0Pj4oc3RhcnRGdW5jdGlvbkluZGV4
U3BhY2UpLT5nZXQoKTsKICAgICAgICAgICAgIG1fc3RhcnRGdW5jdGlvbi5zZXQodm0sIHRoaXMs
IHN0YXJ0RnVuY3Rpb24pOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgV2FzbTo6Q2Fs
bGVlJiBlbWJlZGRlckVudHJ5cG9pbnRDYWxsZWUgPSBjb2RlQmxvY2stPmVtYmVkZGVyRW50cnlw
b2ludENhbGxlZUZyb21GdW5jdGlvbkluZGV4U3BhY2Uoc3RhcnRGdW5jdGlvbkluZGV4U3BhY2Up
OwogICAgICAgICAgICAgV2FzbTo6V2FzbVRvV2FzbUltcG9ydGFibGVGdW5jdGlvbjo6TG9hZExv
Y2F0aW9uIGVudHJ5cG9pbnRMb2FkTG9jYXRpb24gPSBjb2RlQmxvY2stPmVudHJ5cG9pbnRMb2Fk
TG9jYXRpb25Gcm9tRnVuY3Rpb25JbmRleFNwYWNlKHN0YXJ0RnVuY3Rpb25JbmRleFNwYWNlKTsK
LSAgICAgICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIGZ1bmN0aW9uID0gV2ViQXNzZW1ibHlG
dW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHNpZ25hdHVyZS5hcmd1bWVudENvdW50
KCksICJzdGFydCIsIG1faW5zdGFuY2UuZ2V0KCksIGVtYmVkZGVyRW50cnlwb2ludENhbGxlZSwg
ZW50cnlwb2ludExvYWRMb2NhdGlvbiwgc2lnbmF0dXJlSW5kZXgpOworICAgICAgICAgICAgV2Vi
QXNzZW1ibHlGdW5jdGlvbiogZnVuY3Rpb24gPSBXZWJBc3NlbWJseUZ1bmN0aW9uOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKSwgInN0YXJ0IiwgaW5z
dGFuY2UsIGVtYmVkZGVyRW50cnlwb2ludENhbGxlZSwgZW50cnlwb2ludExvYWRMb2NhdGlvbiwg
c2lnbmF0dXJlSW5kZXgpOwogICAgICAgICAgICAgbV9zdGFydEZ1bmN0aW9uLnNldCh2bSwgdGhp
cywgZnVuY3Rpb24pOwogICAgICAgICB9CiAgICAgfQorCisgICAgUkVMRUFTRV9BU1NFUlQoIW1f
aW5zdGFuY2UpOworICAgIG1faW5zdGFuY2Uuc2V0KHZtLCB0aGlzLCBpbnN0YW5jZSk7CiAgICAg
bV9tb2R1bGVFbnZpcm9ubWVudC5zZXQodm0sIHRoaXMsIG1vZHVsZUVudmlyb25tZW50KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
b2R1bGVSZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
TW9kdWxlUmVjb3JkLmgKaW5kZXggMzE2ZjMzN2RlYzBjOWJlNjEzY2JiM2Q1YTVmNDQ4ZjgzNzYz
OWVmNC4uZmNlMWQ2NDYzOTAzNTcyMDYwYzlkOTk3YzEwY2ViZjBkYWNkZDlkOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJl
Y29yZC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5j
bHVkZSAiQWJzdHJhY3RNb2R1bGVSZWNvcmQuaCIKLSNpbmNsdWRlICJXYXNtQ3JlYXRpb25Nb2Rl
LmgiCiAjaW5jbHVkZSAiV2FzbU1vZHVsZUluZm9ybWF0aW9uLmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewpAQCAtNDksOCArNDgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKICAgICBzdGF0aWMgV2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQqIGNyZWF0ZShFeGVjU3RhdGUqLCBWTSYsIFN0cnVjdHVyZSos
IGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBXYXNtOjpNb2R1bGVJbmZvcm1hdGlvbiYpOwogCi0g
ICAgdm9pZCBwcmVwYXJlTGluayhWTSYsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSopOwotICAgIHZv
aWQgbGluayhFeGVjU3RhdGUqLCBKU1ZhbHVlIHNjcmlwdEZldGNoZXIsIEpTT2JqZWN0KiBpbXBv
cnRPYmplY3QsIFdhc206OkNyZWF0aW9uTW9kZSk7CisgICAgdm9pZCBsaW5rKEV4ZWNTdGF0ZSos
IEpTV2ViQXNzZW1ibHlNb2R1bGUqLCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqKTsKICAgICBKU19F
WFBPUlRfUFJJVkFURSBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSopOwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90
b3R5cGUuY3BwCmluZGV4IGM3YWQwZTNkZGNhOGQ2NDQ0OWFmMTU5MTcxYWZjYjg2YTM4MGVhNjku
LjQ2NDQxZDNkMjJmNmE2YjJhMGRkZjU5OWFlYzU0ZjYzZjJkNGIyNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAK
QEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJFeGNlcHRpb24uaCIKICNpbmNsdWRlICJGdW5j
dGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlICJKU01v
ZHVsZU5hbWVzcGFjZU9iamVjdC5oIgogI2luY2x1ZGUgIkpTUHJvbWlzZURlZmVycmVkLmgiCiAj
aW5jbHVkZSAiSlNUb1dhc20uaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5SGVscGVycy5oIgpA
QCAtMTIxLDIxICsxMjAsMTYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
d2ViQXNzZW1ibHlDb21waWxlRnVuYyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfQogfQogCi1lbnVt
IGNsYXNzIFJlc29sdmUgeyBXaXRoSW5zdGFuY2UsIFdpdGhNb2R1bGVSZWNvcmQsIFdpdGhNb2R1
bGVBbmRJbnN0YW5jZSB9Owotc3RhdGljIHZvaWQgcmVzb2x2ZShWTSYgdm0sIEV4ZWNTdGF0ZSog
ZXhlYywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
aW5zdGFuY2UsIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSwgSlNPYmplY3QqIGltcG9ydE9i
amVjdCwgUmVmPFdhc206OkNvZGVCbG9jaz4mJiBjb2RlQmxvY2ssIFJlc29sdmUgcmVzb2x2ZUtp
bmQsIFdhc206OkNyZWF0aW9uTW9kZSBjcmVhdGlvbk1vZGUpCitlbnVtIGNsYXNzIFJlc29sdmUg
eyBXaXRoSW5zdGFuY2UsIFdpdGhNb2R1bGVBbmRJbnN0YW5jZSB9Oworc3RhdGljIHZvaWQgcmVz
b2x2ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2Us
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1v
ZHVsZSwgUmVmPFdhc206OkNvZGVCbG9jaz4mJiBjb2RlQmxvY2ssIFJlc29sdmUgcmVzb2x2ZUtp
bmQpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwotICAgIGlu
c3RhbmNlLT5maW5hbGl6ZUNyZWF0aW9uKHZtLCBleGVjLCBXVEZNb3ZlKGNvZGVCbG9jayksIGlt
cG9ydE9iamVjdCwgY3JlYXRpb25Nb2RlKTsKKyAgICBpbnN0YW5jZS0+ZmluYWxpemVDcmVhdGlv
bih2bSwgZXhlYywgV1RGTW92ZShjb2RlQmxvY2spKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCByZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2UpKTsKIAogICAgIGlmIChyZXNvbHZl
S2luZCA9PSBSZXNvbHZlOjpXaXRoSW5zdGFuY2UpCiAgICAgICAgIHByb21pc2UtPnJlc29sdmUo
ZXhlYywgaW5zdGFuY2UpOwotICAgIGVsc2UgaWYgKHJlc29sdmVLaW5kID09IFJlc29sdmU6Oldp
dGhNb2R1bGVSZWNvcmQpIHsKLSAgICAgICAgYXV0byogbW9kdWxlUmVjb3JkID0gaW5zdGFuY2Ut
Pm1vZHVsZU5hbWVzcGFjZU9iamVjdCgpLT5tb2R1bGVSZWNvcmQoKTsKLSAgICAgICAgaWYgKE9w
dGlvbnM6OmR1bXBNb2R1bGVSZWNvcmQoKSkKLSAgICAgICAgICAgIG1vZHVsZVJlY29yZC0+ZHVt
cCgpOwotICAgICAgICBwcm9taXNlLT5yZXNvbHZlKGV4ZWMsIG1vZHVsZVJlY29yZCk7Ci0gICAg
fSBlbHNlIHsKKyAgICBlbHNlIHsKICAgICAgICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVj
dEVtcHR5T2JqZWN0KGV4ZWMpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmdm0sIEFTQ0lJTGl0ZXJhbCgibW9kdWxlIikpLCBtb2R1bGUpOwog
ICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
IEFTQ0lJTGl0ZXJhbCgiaW5zdGFuY2UiKSksIGluc3RhbmNlKTsKQEAgLTE0NCw2NyArMTM4LDUz
IEBAIHN0YXRpYyB2b2lkIHJlc29sdmUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlz
ZURlZmVycmVkKiBwcm9taXNlLCBKU1dlYkFzCiAgICAgQ0xFQVJfQU5EX1JFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHZvaWQoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGluc3RhbnRpYXRlKFZNJiB2
bSwgRXhlY1N0YXRlKiBleGVjLCBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZSwgSlNXZWJBc3Nl
bWJseU1vZHVsZSogbW9kdWxlLCBKU09iamVjdCogaW1wb3J0T2JqZWN0LCBjb25zdCBJZGVudGlm
aWVyJiBtb2R1bGVLZXksIFJlc29sdmUgcmVzb2x2ZUtpbmQsIFdhc206OkNyZWF0aW9uTW9kZSBj
cmVhdGlvbk1vZGUpCitzdGF0aWMgdm9pZCBpbnN0YW50aWF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSog
ZXhlYywgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UsIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1v
ZHVsZSwgSlNPYmplY3QqIGltcG9ydE9iamVjdCwgUmVzb2x2ZSByZXNvbHZlS2luZCkKIHsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgLy8gSW4gb3JkZXIg
dG8gYXZvaWQgcG90ZW50aWFsbHkgcmVjb21waWxpbmcgYSBtb2R1bGUuIFdlIGZpcnN0IGdhdGhl
ciBhbGwgdGhlIGltcG9ydC9tZW1vcnkgaW5mb3JtYXRpb24gcHJpb3IgdG8gY29tcGlsaW5nIGNv
ZGUuCi0gICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSA9IEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZTo6Y3JlYXRlKHZtLCBleGVjLCBtb2R1bGVLZXksIG1vZHVsZSwgaW1wb3J0T2JqZWN0
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPldlYkFzc2VtYmx5SW5zdGFuY2VTdHJ1Y3R1
cmUoKSwgUmVmPFdhc206Ok1vZHVsZT4obW9kdWxlLT5tb2R1bGUoKSksIGNyZWF0aW9uTW9kZSk7
CisgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSA9IEpTV2ViQXNzZW1ibHlJbnN0
YW5jZTo6Y3JlYXRlKHZtLCBleGVjLCBtb2R1bGUsIGltcG9ydE9iamVjdCwgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5XZWJBc3NlbWJseUluc3RhbmNlU3RydWN0dXJlKCksIFJlZjxXYXNt
OjpNb2R1bGU+KG1vZHVsZS0+bW9kdWxlKCkpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCByZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2UpKTsKIAogICAgIFZlY3RvcjxTdHJvbmc8
SlNDZWxsPj4gZGVwZW5kZW5jaWVzOwogICAgIC8vIFRoZSBpbnN0YW5jZSBrZWVwcyB0aGUgbW9k
dWxlIGFsaXZlLgogICAgIGRlcGVuZGVuY2llcy5hcHBlbmQoU3Ryb25nPEpTQ2VsbD4odm0sIGlu
c3RhbmNlKSk7Ci0gICAgZGVwZW5kZW5jaWVzLmFwcGVuZChTdHJvbmc8SlNDZWxsPih2bSwgaW1w
b3J0T2JqZWN0KSk7CiAgICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXItPmFkZFBlbmRpbmdQcm9t
aXNlKHByb21pc2UsIFdURk1vdmUoZGVwZW5kZW5jaWVzKSk7CiAgICAgLy8gTm90ZTogVGhpcyBj
b21wbGV0aW9uIHRhc2sgbWF5IG9yIG1heSBub3QgZ2V0IGNhbGxlZCBpbW1lZGlhdGVseS4KLSAg
ICBtb2R1bGUtPm1vZHVsZSgpLmNvbXBpbGVBc3luYygmdm0ud2FzbUNvbnRleHQsIGluc3RhbmNl
LT5tZW1vcnlNb2RlKCksIGNyZWF0ZVNoYXJlZFRhc2s8V2FzbTo6Q29kZUJsb2NrOjpDYWxsYmFj
a1R5cGU+KFtwcm9taXNlLCBpbnN0YW5jZSwgbW9kdWxlLCBpbXBvcnRPYmplY3QsIHJlc29sdmVL
aW5kLCBjcmVhdGlvbk1vZGUsICZ2bV0gKFJlZjxXYXNtOjpDb2RlQmxvY2s+JiYgcmVmQ29kZUJs
b2NrKSBtdXRhYmxlIHsKKyAgICBtb2R1bGUtPm1vZHVsZSgpLmNvbXBpbGVBc3luYygmdm0ud2Fz
bUNvbnRleHQsIGluc3RhbmNlLT5tZW1vcnlNb2RlKCksIGNyZWF0ZVNoYXJlZFRhc2s8V2FzbTo6
Q29kZUJsb2NrOjpDYWxsYmFja1R5cGU+KFtwcm9taXNlLCBpbnN0YW5jZSwgbW9kdWxlLCByZXNv
bHZlS2luZCwgJnZtXSAoUmVmPFdhc206OkNvZGVCbG9jaz4mJiByZWZDb2RlQmxvY2spIG11dGFi
bGUgewogICAgICAgICBSZWZQdHI8V2FzbTo6Q29kZUJsb2NrPiBjb2RlQmxvY2sgPSBXVEZNb3Zl
KHJlZkNvZGVCbG9jayk7Ci0gICAgICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5zY2hlZHVs
ZVdvcmtTb29uKHByb21pc2UsIFtwcm9taXNlLCBpbnN0YW5jZSwgbW9kdWxlLCBpbXBvcnRPYmpl
Y3QsIHJlc29sdmVLaW5kLCBjcmVhdGlvbk1vZGUsICZ2bSwgY29kZUJsb2NrID0gV1RGTW92ZShj
b2RlQmxvY2spXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXIt
PnNjaGVkdWxlV29ya1Nvb24ocHJvbWlzZSwgW3Byb21pc2UsIGluc3RhbmNlLCBtb2R1bGUsIHJl
c29sdmVLaW5kLCAmdm0sIGNvZGVCbG9jayA9IFdURk1vdmUoY29kZUJsb2NrKV0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBpbnN0YW5jZS0+Z2xvYmFsT2JqZWN0
KCktPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgICAgIHJlc29sdmUodm0sIGV4ZWMsIHByb21pc2Us
IGluc3RhbmNlLCBtb2R1bGUsIGltcG9ydE9iamVjdCwgY29kZUJsb2NrLnJlbGVhc2VOb25OdWxs
KCksIHJlc29sdmVLaW5kLCBjcmVhdGlvbk1vZGUpOworICAgICAgICAgICAgcmVzb2x2ZSh2bSwg
ZXhlYywgcHJvbWlzZSwgaW5zdGFuY2UsIG1vZHVsZSwgY29kZUJsb2NrLnJlbGVhc2VOb25OdWxs
KCksIHJlc29sdmVLaW5kKTsKICAgICAgICAgfSk7CiAgICAgfSksICZXYXNtOjpjcmVhdGVKU1Rv
V2FzbVdyYXBwZXIsICZXYXNtOjp3YXNtVG9KU0V4Y2VwdGlvbik7CiB9CiAKLXN0YXRpYyB2b2lk
IGNvbXBpbGVBbmRJbnN0YW50aWF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlNQcm9taXNl
RGVmZXJyZWQqIHByb21pc2UsIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZUtleSwgSlNWYWx1ZSBi
dWZmZXIsIEpTT2JqZWN0KiBpbXBvcnRPYmplY3QsIFJlc29sdmUgcmVzb2x2ZUtpbmQsIFdhc206
OkNyZWF0aW9uTW9kZSBjcmVhdGlvbk1vZGUpCitzdGF0aWMgdm9pZCBjb21waWxlQW5kSW5zdGFu
dGlhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNl
LCBKU1ZhbHVlIGJ1ZmZlciwgSlNPYmplY3QqIGltcG9ydE9iamVjdCkKIHsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAKICAgICBhdXRvKiBnbG9iYWxPYmplY3Qg
PSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAKLSAgICBKU0NlbGwqIG1vZHVsZUtleUNl
bGwgPSBpZGVudGlmaWVyVG9KU1ZhbHVlKHZtLCBtb2R1bGVLZXkpLmFzQ2VsbCgpOwogICAgIFZl
Y3RvcjxTdHJvbmc8SlNDZWxsPj4gZGVwZW5kZW5jaWVzOwogICAgIGRlcGVuZGVuY2llcy5hcHBl
bmQoU3Ryb25nPEpTQ2VsbD4odm0sIGltcG9ydE9iamVjdCkpOwotICAgIGRlcGVuZGVuY2llcy5h
cHBlbmQoU3Ryb25nPEpTQ2VsbD4odm0sIG1vZHVsZUtleUNlbGwpKTsKICAgICB2bS5wcm9taXNl
RGVmZXJyZWRUaW1lci0+YWRkUGVuZGluZ1Byb21pc2UocHJvbWlzZSwgV1RGTW92ZShkZXBlbmRl
bmNpZXMpKTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiBzb3VyY2UgPSBjcmVhdGVTb3VyY2VCdWZm
ZXJGcm9tVmFsdWUodm0sIGV4ZWMsIGJ1ZmZlcik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgcmVqZWN0KGV4ZWMsIHNjb3BlLCBwcm9taXNlKSk7CiAKLSAgICBXYXNtOjpNb2R1bGU6
OnZhbGlkYXRlQXN5bmMoJnZtLndhc21Db250ZXh0LCBXVEZNb3ZlKHNvdXJjZSksIGNyZWF0ZVNo
YXJlZFRhc2s8V2FzbTo6TW9kdWxlOjpDYWxsYmFja1R5cGU+KFtwcm9taXNlLCBpbXBvcnRPYmpl
Y3QsIG1vZHVsZUtleUNlbGwsIGdsb2JhbE9iamVjdCwgcmVzb2x2ZUtpbmQsIGNyZWF0aW9uTW9k
ZSwgJnZtXSAoV2FzbTo6TW9kdWxlOjpWYWxpZGF0aW9uUmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxl
IHsKLSAgICAgICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXItPnNjaGVkdWxlV29ya1Nvb24ocHJv
bWlzZSwgW3Byb21pc2UsIGltcG9ydE9iamVjdCwgbW9kdWxlS2V5Q2VsbCwgZ2xvYmFsT2JqZWN0
LCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCksIHJlc29sdmVLaW5kLCBjcmVhdGlvbk1vZGUsICZ2
bV0gKCkgbXV0YWJsZSB7CisgICAgV2FzbTo6TW9kdWxlOjp2YWxpZGF0ZUFzeW5jKCZ2bS53YXNt
Q29udGV4dCwgV1RGTW92ZShzb3VyY2UpLCBjcmVhdGVTaGFyZWRUYXNrPFdhc206Ok1vZHVsZTo6
Q2FsbGJhY2tUeXBlPihbcHJvbWlzZSwgaW1wb3J0T2JqZWN0LCBnbG9iYWxPYmplY3QsICZ2bV0g
KFdhc206Ok1vZHVsZTo6VmFsaWRhdGlvblJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5zY2hlZHVsZVdvcmtTb29uKHByb21pc2UsIFtw
cm9taXNlLCBpbXBvcnRPYmplY3QsIGdsb2JhbE9iamVjdCwgcmVzdWx0ID0gV1RGTW92ZShyZXN1
bHQpLCAmdm1dICgpIG11dGFibGUgewogICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
Q0FUQ0hfU0NPUEUodm0pOwogICAgICAgICAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgICAgICAgICBKU1dlYkFzc2VtYmx5TW9kdWxlKiBtb2R1
bGUgPSBKU1dlYkFzc2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKHZtLCBleGVjLCBnbG9iYWxPYmpl
Y3QtPldlYkFzc2VtYmx5TW9kdWxlU3RydWN0dXJlKCksIFdURk1vdmUocmVzdWx0KSk7CiAgICAg
ICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAgICAgICAgICAg
IHJldHVybiByZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2UpOwogCi0gICAgICAgICAgICBjb25z
dCBJZGVudGlmaWVyIG1vZHVsZUtleSA9IEpTVmFsdWUobW9kdWxlS2V5Q2VsbCkudG9Qcm9wZXJ0
eUtleShleGVjKTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChleGVjLCBzY29wZSwgcHJvbWlzZSk7Ci0K
LSAgICAgICAgICAgIGluc3RhbnRpYXRlKHZtLCBleGVjLCBwcm9taXNlLCBtb2R1bGUsIGltcG9y
dE9iamVjdCwgbW9kdWxlS2V5LCByZXNvbHZlS2luZCwgY3JlYXRpb25Nb2RlKTsKKyAgICAgICAg
ICAgIGluc3RhbnRpYXRlKHZtLCBleGVjLCBwcm9taXNlLCBtb2R1bGUsIGltcG9ydE9iamVjdCwg
UmVzb2x2ZTo6V2l0aE1vZHVsZUFuZEluc3RhbmNlKTsKICAgICAgICAgfSk7CiAgICAgfSkpOwog
fQogCi1KU1ZhbHVlIFdlYkFzc2VtYmx5UHJvdG90eXBlOjppbnN0YW50aWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1
bGVLZXksIEpTVmFsdWUgYXJndW1lbnQpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAg
ICBjb21waWxlQW5kSW5zdGFudGlhdGUodm0sIGV4ZWMsIHByb21pc2UsIG1vZHVsZUtleSwgYXJn
dW1lbnQsIG51bGxwdHIsIFJlc29sdmU6OldpdGhNb2R1bGVSZWNvcmQsIFdhc206OkNyZWF0aW9u
TW9kZTo6RnJvbU1vZHVsZUxvYWRlcik7Ci0gICAgcmV0dXJuIHByb21pc2UtPnByb21pc2UoKTsK
LX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0
YW50aWF0ZUZ1bmMoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CkBAIC0yMjYsOSArMjA2LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
d2ViQXNzZW1ibHlJbnN0YW50aWF0ZUZ1bmMoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgSlNWYWx1ZSBmaXJzdEFyZ3VtZW50ID0gZXhlYy0+YXJndW1lbnQo
MCk7CiAgICAgICAgICAgICBpZiAoYXV0byogbW9kdWxlID0ganNEeW5hbWljQ2FzdDxKU1dlYkFz
c2VtYmx5TW9kdWxlKj4odm0sIGZpcnN0QXJndW1lbnQpKQotICAgICAgICAgICAgICAgIGluc3Rh
bnRpYXRlKHZtLCBleGVjLCBwcm9taXNlLCBtb2R1bGUsIGltcG9ydE9iamVjdCwgSlNXZWJBc3Nl
bWJseUluc3RhbmNlOjpjcmVhdGVQcml2YXRlTW9kdWxlS2V5KCksIFJlc29sdmU6OldpdGhJbnN0
YW5jZSwgV2FzbTo6Q3JlYXRpb25Nb2RlOjpGcm9tSlMpOworICAgICAgICAgICAgICAgIGluc3Rh
bnRpYXRlKHZtLCBleGVjLCBwcm9taXNlLCBtb2R1bGUsIGltcG9ydE9iamVjdCwgUmVzb2x2ZTo6
V2l0aEluc3RhbmNlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjb21waWxl
QW5kSW5zdGFudGlhdGUodm0sIGV4ZWMsIHByb21pc2UsIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTo6
Y3JlYXRlUHJpdmF0ZU1vZHVsZUtleSgpLCBmaXJzdEFyZ3VtZW50LCBpbXBvcnRPYmplY3QsIFJl
c29sdmU6OldpdGhNb2R1bGVBbmRJbnN0YW5jZSwgV2FzbTo6Q3JlYXRpb25Nb2RlOjpGcm9tSlMp
OworICAgICAgICAgICAgICAgIGNvbXBpbGVBbmRJbnN0YW50aWF0ZSh2bSwgZXhlYywgcHJvbWlz
ZSwgZmlyc3RBcmd1bWVudCwgaW1wb3J0T2JqZWN0KTsKICAgICAgICAgfQogCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZS0+cHJvbWlzZSgpKTsKQEAgLTI0MCw3ICsyMjAs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVZhbGlk
YXRlRnVuYyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBjb25zdCB1aW50OF90
KiBiYXNlOworICAgIHVpbnQ4X3QqIGJhc2U7CiAgICAgc2l6ZV90IGJ5dGVTaXplOwogICAgIHN0
ZDo6dGllKGJhc2UsIGJ5dGVTaXplKSA9IGdldFdhc21CdWZmZXJGcm9tVmFsdWUoZXhlYywgZXhl
Yy0+YXJndW1lbnQoMCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRK
U1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5UHJvdG90eXBlLmgKaW5kZXggYmJiMjI2ZGJjYzY5OWUzZjBmMGI4YWYxYzk1NDcwNTU5
YzY5NTRhMS4uZDVkMGQ2Y2JkZWY3YjJjOWYyNTc5NWU1YTBkYjViYTA1ZGM0MmRjYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlw
ZS5oCkBAIC00Miw4ICs0Miw2IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKIAotICAg
IHN0YXRpYyBKU1ZhbHVlIGluc3RhbnRpYXRlKEV4ZWNTdGF0ZSosIEpTUHJvbWlzZURlZmVycmVk
KiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUpOwotCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihWTSYpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMzIxNWFmYmFmOWQ2NTlmNzNlM2YyNGQxYjdhNzJiYzQ1NzAxNzcw
Yi4uN2IzMzM1ZDA5YjNkNGVhMjhiZWZkZmIzY2ZhYWMyNTMxNWI0MjU5NCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisy
MDE4LTA0LTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjMwNjk3LCByMjMwNzIwLCBhbmQgcjIzMDcy
NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDcx
NworCisgICAgICAgIFRoZXNlIGNhdXNlZCBtdWx0aXBsZSBmYWlsdXJlcyBvbiB0aGUgVGVzdDI2
MiB0ZXN0ZXJzLgorICAgICAgICAoUmVxdWVzdGVkIGJ5IG1sZXdpczEzIG9uICN3ZWJraXQpLgor
CisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIltXZWJBc3NlbWJseV1b
TW9kdWxlc10gUHJvdG90eXBlIHdhc20gaW1wb3J0IgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NjAwCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yMzA2OTcKKworICAgICAgICAiW1dlYkFzc2VtYmx5XVtNb2R1bGVz
XSBJbXBsZW1lbnQgZnVuY3Rpb24gaW1wb3J0IGZyb20gd2FzbQorICAgICAgICBtb2R1bGVzIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Njg5Cisg
ICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzA3MjAKKworICAgICAg
ICAiW0pTQ10gUmVuYW1lIHJ1bldlYkFzc2VtYmx5IHRvIHJ1bldlYkFzc2VtYmx5U3VpdGUiCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ3MDMKKyAg
ICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMDcyNAorCiAyMDE4LTA0
LTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkIHJvbGxvdXQgb2YgcjIzMDYzMi4gUmVncmVzc2lvbiBpbiBtZW1vcnkgdXNhZ2UuCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRleCBlOWMxYmIwYzA1NzhhMzUxNTI4ZTMzYTZm
ODkwZmNhMWZkNzVlOTRjLi5hMTg2YzA5ZmNlOTliZGRkODY5ZGNkZmZmY2ZhNjRlNWYyOGY2OWE5
IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rv
b2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTEwMDEsMTkgKzEwMDEsNiBAQCBl
bmQKIGRlZiBydW5XZWJBc3NlbWJseQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCiAgICAgcmV0
dXJuIGlmICEkaXNGVExQbGF0Zm9ybQotICAgIHJ1bigiZGVmYXVsdC13YXNtIiwgIi1tIiwgKkZU
TF9PUFRJT05TKQotICAgIGlmICRtb2RlICE9ICJxdWljayIKLSAgICAgICAgcnVuKCJ3YXNtLW5v
LWNqaXQteWVzLXRscy1jb250ZXh0IiwgIi1tIiwgIi0tdXNlRmFzdFRMU0Zvcldhc21Db250ZXh0
PXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TKSkKLSAgICAgICAgcnVuKCJ3
YXNtLWVhZ2VyLWpldHRpc29uIiwgIi1tIiwgIi0tZm9yY2VDb2RlQmxvY2tUb0pldHRpc29uRHVl
VG9PbGRBZ2U9dHJ1ZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAgcnVuKCJ3YXNtLW5vLWNhbGwt
aWMiLCAiLW0iLCAiLS11c2VDYWxsSUNzRm9yV2ViQXNzZW1ibHlUb0pTQ2FsbHM9ZmFsc2UiLCAq
RlRMX09QVElPTlMpCi0gICAgICAgIHJ1bigid2FzbS1uby10bHMtY29udGV4dCIsICItbSIsICIt
LXVzZUZhc3RUTFNGb3JXYXNtQ29udGV4dD1mYWxzZSIsICpGVExfT1BUSU9OUykKLSAgICAgICAg
cnVuKCJ3YXNtLXNsb3ctbWVtb3J5IiwgIi1tIiwgIi0tdXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5
PWZhbHNlIiwgKkZUTF9PUFRJT05TKQotICAgIGVuZAotZW5kCi0KLWRlZiBydW5XZWJBc3NlbWJs
eVN1aXRlCi0gICAgcmV0dXJuIGlmICEkaml0VGVzdHMKLSAgICByZXR1cm4gaWYgISRpc0ZUTFBs
YXRmb3JtCiAgICAgbW9kdWxlcyA9IERpcltXQVNNVEVTVFNfUEFUSCArICIqLmpzIl0ubWFwIHsg
fGZ8IEZpbGUuYmFzZW5hbWUoZikgfQogICAgIHByZXBhcmVFeHRyYUFic29sdXRlRmlsZXMoV0FT
TVRFU1RTX1BBVEgsIFsid2FzbS5qc29uIl0pCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxl
cyhtb2R1bGVzLm1hcCB7IHxmfCAiLi4vIiArIGYgfSwgJGNvbGxlY3Rpb24pCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgyNzBiODJlYzMx
NzkxZjkwODQ0OGU3MGU0ZDA3ZDA4NGI4YmQ0ODguLjQ5ZTc5ZmI2MjlmMzI1NzNmZWQ5NjViODdi
NDU3NGIxOGE2ZTQ1ZjMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMDQtMTcgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMzA2OTcsIHIyMzA3MjAsIGFuZCByMjMwNzI0LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NzE3CisKKyAgICAgICAgVGhlc2UgY2F1c2Vk
IG11bHRpcGxlIGZhaWx1cmVzIG9uIHRoZSBUZXN0MjYyIHRlc3RlcnMuCisgICAgICAgIChSZXF1
ZXN0ZWQgYnkgbWxld2lzMTMgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdl
c2V0czoKKworICAgICAgICAiW1dlYkFzc2VtYmx5XVtNb2R1bGVzXSBQcm90b3R5cGUgd2FzbSBp
bXBvcnQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODQ2MDAKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMDY5Nwor
CisgICAgICAgICJbV2ViQXNzZW1ibHldW01vZHVsZXNdIEltcGxlbWVudCBmdW5jdGlvbiBpbXBv
cnQgZnJvbSB3YXNtCisgICAgICAgIG1vZHVsZXMiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2ODkKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzIzMDcyMAorCisgICAgICAgICJbSlNDXSBSZW5hbWUgcnVuV2ViQXNz
ZW1ibHkgdG8gcnVuV2ViQXNzZW1ibHlTdWl0ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDcwMworICAgICAgICBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjMwNzI0CisKIDIwMTgtMDQtMTcgIEpGIEJhc3RpZW4gIDxqZmJhc3Rp
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEEgcHV0IGlzIG5vdCBhbiBFeGlzdGluZ1Byb3BlcnR5
IHB1dCB3aGVuIHdlIHRyYW5zaXRpb24gYSBzdHJ1Y3R1cmUgYmVjYXVzZSBvZiBhbiBhdHRyaWJ1
dGVzIGNoYW5nZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtLnlhbWwgYi9KU1Rlc3RzL3dhc20u
eWFtbAppbmRleCAwMmM1Y2IyZDliN2JjNjc0Y2Y2ZDVjOTkyNDU5NGY0OWQzMTYwNDM5Li5mMjEy
NGVmYjFhMzM5ZDc0MTMzZDlkZWFjZWM0ZmFhYjQwNDY0NGQ4IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3dhc20ueWFtbAorKysgYi9KU1Rlc3RzL3dhc20ueWFtbApAQCAtMjIsMjMgKzIyLDIxIEBACiAj
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKIC0gcGF0aDogd2FzbS9zZWxmLXRlc3QvCi0gIGNtZDogcnVuV2ViQXNzZW1i
bHlTdWl0ZSB1bmxlc3MgcGFyc2VSdW5Db21tYW5kcworICBjbWQ6IHJ1bldlYkFzc2VtYmx5IHVu
bGVzcyBwYXJzZVJ1bkNvbW1hbmRzCiAtIHBhdGg6IHdhc20vanMtYXBpLwotICBjbWQ6IHJ1bldl
YkFzc2VtYmx5U3VpdGUgdW5sZXNzIHBhcnNlUnVuQ29tbWFuZHMKKyAgY21kOiBydW5XZWJBc3Nl
bWJseSB1bmxlc3MgcGFyc2VSdW5Db21tYW5kcwogLSBwYXRoOiB3YXNtL25vSklULwogICBjbWQ6
IHJ1bk5vSklUIHVubGVzcyBwYXJzZVJ1bkNvbW1hbmRzCiAtIHBhdGg6IHdhc20vZnVuY3Rpb24t
dGVzdHMKLSAgY21kOiBydW5XZWJBc3NlbWJseVN1aXRlIHVubGVzcyBwYXJzZVJ1bkNvbW1hbmRz
CisgIGNtZDogcnVuV2ViQXNzZW1ibHkgdW5sZXNzIHBhcnNlUnVuQ29tbWFuZHMKIC0gcGF0aDog
d2FzbS9mdXp6Ci0gIGNtZDogcnVuV2ViQXNzZW1ibHlTdWl0ZSB1bmxlc3MgcGFyc2VSdW5Db21t
YW5kcworICBjbWQ6IHJ1bldlYkFzc2VtYmx5IHVubGVzcyBwYXJzZVJ1bkNvbW1hbmRzCiAtIHBh
dGg6IHdhc20vc3RyZXNzCi0gIGNtZDogcnVuV2ViQXNzZW1ibHlTdWl0ZSB1bmxlc3MgcGFyc2VS
dW5Db21tYW5kcworICBjbWQ6IHJ1bldlYkFzc2VtYmx5IHVubGVzcyBwYXJzZVJ1bkNvbW1hbmRz
CiAtIHBhdGg6IHdhc20vbG93RXhlY3V0YWJsZU1lbW9yeQogICBjbWQ6IHJ1bldlYkFzc2VtYmx5
TG93RXhlY3V0YWJsZU1lbW9yeSB1bmxlc3MgcGFyc2VSdW5Db21tYW5kcwogLSBwYXRoOiB3YXNt
L3JlZ3Jlc3MvCi0gIGNtZDogcnVuV2ViQXNzZW1ibHlTdWl0ZSB1bmxlc3MgcGFyc2VSdW5Db21t
YW5kcwotLSBwYXRoOiB3YXNtL21vZHVsZXMvCi0gIGNtZDogcnVuV2ViQXNzZW1ibHlTdWl0ZSB1
bmxlc3MgcGFyc2VSdW5Db21tYW5kcworICBjbWQ6IHJ1bldlYkFzc2VtYmx5IHVubGVzcyBwYXJz
ZVJ1bkNvbW1hbmRzCiAKIC0gcGF0aDogd2FzbS9zcGVjLXRlc3RzL2FkZHJlc3Mud2FzdC5qcwog
ICBjbWQ6IHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3QgOm5vcm1hbApAQCAtMTc4LDYgKzE3NiwzIEBA
CiAgIGNtZDogcnVuV2ViQXNzZW1ibHlTcGVjVGVzdCA6bm9ybWFsCiAtIHBhdGg6IHdhc20vc3Bl
Yy10ZXN0cy91dGY4LWltcG9ydC1tb2R1bGUud2FzdC5qcwogICBjbWQ6IHJ1bldlYkFzc2VtYmx5
U3BlY1Rlc3QgOm5vcm1hbAotCi0tIHBhdGg6IHdhc20vbW9kdWxlcy9ydW4tZnJvbS13YXNtLndh
c20KLSAgY21kOiBydW5XZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVs
ZXMvY29uc3RhbnQud2FzbSBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2NvbnN0YW50Lndhc20KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwNmFiZGY2OThmOWUyYzU1NTIwYjdiYWRiMDc4
N2Q0YjdlZWVhOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMzAKbGNtWlFiRVk0
K1FVfD9XbFcyfFJ6KVolOTZWZE9+OCZucXJUJXF3QUwwMDJ6WDE8bjhmCgpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy93YXNtL21vZHVsZXMvY29uc3RhbnQud2F0IGIvSlNUZXN0cy93YXNtL21vZHVsZXMv
Y29uc3RhbnQud2F0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjM5MjQ1NTNmNDk4
NzMzMTA0ZDUwY2U5YWVmMjU2MWMwN2QyZjg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2NvbnN0YW50LndhdAorKysg
L2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotKG1vZHVsZQotICAgIChnbG9iYWwgJGNvbnN0YW50
IChleHBvcnQgImNvbnN0YW50IikgaTMyIGkzMi5jb25zdCA0MikpCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vbW9kdWxlcy9kZWZhdWx0LWltcG9ydC1zdGFyLWVycm9yLmpzIGIvSlNUZXN0cy93
YXNtL21vZHVsZXMvZGVmYXVsdC1pbXBvcnQtc3Rhci1lcnJvci5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjZjNjQ2MTBlNmI3Njc4ZmZhN2YzYTE0ZmExZGY2ODk2NTZkMDRmNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dh
c20vbW9kdWxlcy9kZWZhdWx0LWltcG9ydC1zdGFyLWVycm9yLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKLWlt
cG9ydCgiLi9kZWZhdWx0LWltcG9ydC1zdGFyLWVycm9yL2VudHJ5Lndhc20iKS50aGVuKCR2bS5h
Ym9ydCwgZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgYXNzZXJ0LmVxKFN0cmluZyhlcnJvciksIGBT
eW50YXhFcnJvcjogSW1wb3J0aW5nIGJpbmRpbmcgbmFtZSAnZGVmYXVsdCcgY2Fubm90IGJlIHJl
c29sdmVkIGJ5IHN0YXIgZXhwb3J0IGVudHJpZXMuYCk7Ci19KS50aGVuKGZ1bmN0aW9uICgpIHsg
fSwgJHZtLmFib3J0KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2RlZmF1bHQt
aW1wb3J0LXN0YXItZXJyb3IvZW50cnkud2FzbSBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2RlZmF1
bHQtaW1wb3J0LXN0YXItZXJyb3IvZW50cnkud2FzbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDhjZjY5ZjRmODcwMTg2NTNmOTk5NTU2Y2EwMWI0NmNmNzRmNzgyYi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKbGl0ZXJhbCA0OAp6Y21aUWJFWTQrUVV8P1dtVk43NlBVPW42eipWOFhD
KVhPU25QZjFObkVYXnJsVXw/b3FXWis8QTxZSGxEViZEYjwKRHlEPGpxCgpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy93YXNtL21vZHVsZXMvZGVmYXVsdC1pbXBvcnQtc3Rhci1lcnJvci9lbnRyeS53YXQg
Yi9KU1Rlc3RzL3dhc20vbW9kdWxlcy9kZWZhdWx0LWltcG9ydC1zdGFyLWVycm9yL2VudHJ5Lndh
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDA3ZmU3ZmViZmY1NGUxMmY5ZmRlNDRl
YTMzY2QyM2Q1OTExYzdiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9kZWZhdWx0LWltcG9ydC1zdGFyLWVycm9yL2Vu
dHJ5LndhdAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotKG1vZHVsZQotICAgIChpbXBv
cnQgIi4vdDEuanMiICJkZWZhdWx0IiAoZnVuYyAkbG9nKSkKLSAgICAodHlwZSAkdDAgKGZ1bmMp
KQotICAgIChmdW5jICRtYWluICh0eXBlICR0MCkKLSAgICApCi0gICAgKHN0YXJ0ICRtYWluKQot
KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvZGVmYXVsdC1pbXBvcnQtc3Rhci1l
cnJvci90MC5qcyBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2RlZmF1bHQtaW1wb3J0LXN0YXItZXJy
b3IvdDAuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjZDgwMzBmZTJhMTU0OWI5
MWNjYzNmZjQ0MDk4ZDcxYjhkOWVkZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVsZXMvZGVmYXVsdC1pbXBvcnQtc3Rhci1l
cnJvci90MC5qcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWltcG9ydCBBIGZyb20gIi4v
dDEuanMiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9kZWZhdWx0LWltcG9ydC1z
dGFyLWVycm9yL3QxLmpzIGIvSlNUZXN0cy93YXNtL21vZHVsZXMvZGVmYXVsdC1pbXBvcnQtc3Rh
ci1lcnJvci90MS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM5MTEyNDcwY2Zh
ZGI2MDk5ZWIwNDA2MGRkOWEwNjllZTAzMGQ0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9kZWZhdWx0LWltcG9ydC1z
dGFyLWVycm9yL3QxLmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZXhwb3J0ICogZnJv
bSAiLi90Mi5qcyIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2RlZmF1bHQtaW1w
b3J0LXN0YXItZXJyb3IvdDIuanMgYi9KU1Rlc3RzL3dhc20vbW9kdWxlcy9kZWZhdWx0LWltcG9y
dC1zdGFyLWVycm9yL3QyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDFmMGEw
Y2U4YzY3MDczNTJiN2M0MDdjYjhjY2VlNzk0NjY0ZDQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2RlZmF1bHQtaW1w
b3J0LXN0YXItZXJyb3IvdDIuanMKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1leHBvcnQg
ZGVmYXVsdCBmdW5jdGlvbiBDb2NvYSgpIHsgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21v
ZHVsZXMvanMtd2FzbS1jeWNsZS5qcyBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2pzLXdhc20tY3lj
bGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0ZjBmODY2YzI5YTM4OTc4NDc5
NTQxMjMzZTkwNzRmODc5ODc0MTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVsZXMvanMtd2FzbS1jeWNsZS5qcworKysgL2Rl
di9udWxsCkBAIC0xLDQgKzAsMCBAQAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2Vy
dC5qcyc7Ci1pbXBvcnQoIi4vanMtd2FzbS1jeWNsZS9lbnRyeS5qcyIpLnRoZW4oJHZtLmFib3J0
LCBmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICBhc3NlcnQuZXEoU3RyaW5nKGVycm9yKSwgYEVycm9y
OiBpbXBvcnQgZnVuY3Rpb24gLi9lbnRyeS5qczpyZXR1cm40MiBtdXN0IGJlIGNhbGxhYmxlYCk7
Ci19KS50aGVuKGZ1bmN0aW9uICgpIHsgfSwgJHZtLmFib3J0KTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9tb2R1bGVzL2pzLXdhc20tY3ljbGUvZW50cnkuanMgYi9KU1Rlc3RzL3dhc20vbW9k
dWxlcy9qcy13YXNtLWN5Y2xlL2VudHJ5LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyMDE0MzY0NGEwMWM3MzY3NzQ4OGE4MWRlOTBhOGNjNDlhMWUyZWJkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2pz
LXdhc20tY3ljbGUvZW50cnkuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLWltcG9y
dCB7IHN1bSB9IGZyb20gIi4vc3VtLndhc20iCi1leHBvcnQgZnVuY3Rpb24gcmV0dXJuNDIoKSB7
Ci0gICAgcmV0dXJuIDQyOwotfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvanMt
d2FzbS1jeWNsZS9zdW0ud2FzbSBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2pzLXdhc20tY3ljbGUv
c3VtLndhc20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4YzE2ZTVjZmFjNjFlODhl
ZmQzYmFlM2YxNDYxZDE1MTU3NTBhYTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwg
NzAKemNtVn4kSX1VJiM1Q3k+Wm1JOCRYKm00MylqMGJ7KGg2RDtlaDFGaSY4UlhkcmZMQFpRUVdM
MGgoWiMjO0hOSUhxClhHME5KYnpZbDFIdSRFQC0yRCswTGZkU1MzeypldEcKCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9qcy13YXNtLWN5Y2xlL3N1bS53YXQgYi9KU1Rlc3RzL3dh
c20vbW9kdWxlcy9qcy13YXNtLWN5Y2xlL3N1bS53YXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDNlMjIzZjc2Y2U0MmIyNjIyNTBiNWJlYjcwNjI1MzlmNWFlNTU5NWUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVs
ZXMvanMtd2FzbS1jeWNsZS9zdW0ud2F0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0o
bW9kdWxlCi0gICAgKGltcG9ydCAiLi9lbnRyeS5qcyIgInJldHVybjQyIiAoZnVuYyAkcmV0dXJu
NDIgKHJlc3VsdCBpMzIpKSkKLSAgICAodHlwZSAkdDAgKGZ1bmMgKHBhcmFtIGkzMiBpMzIpIChy
ZXN1bHQgaTMyKSkpCi0gICAgKGZ1bmMgJHN1bSAoZXhwb3J0ICJzdW0iKSAodHlwZSAkdDApIChw
YXJhbSAkcDAgaTMyKSAocGFyYW0gJHAxIGkzMikgKHJlc3VsdCBpMzIpCi0gICAgICAgIGdldF9s
b2NhbCAkcDEKLSAgICAgICAgZ2V0X2xvY2FsICRwMAotICAgICAgICBpMzIuYWRkKSkKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2pzLXdhc20tZnVuY3Rpb24tbmFtZXNwYWNlLmpz
IGIvSlNUZXN0cy93YXNtL21vZHVsZXMvanMtd2FzbS1mdW5jdGlvbi1uYW1lc3BhY2UuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1NGRiMDMwYWFiNzQyOTk0YTUxZGNiZDM5YWIx
MWE2ZWRiYjkwYzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvanMtd2FzbS1mdW5jdGlvbi1uYW1lc3BhY2UuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1pbXBvcnQgKiBhcyBzdW0gZnJvbSAiLi9zdW0u
d2FzbSIKLWltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOwotCi1hc3NlcnQu
aXNPYmplY3Qoc3VtKTsKLWFzc2VydC5pc0Z1bmN0aW9uKHN1bS5zdW0pOwotYXNzZXJ0LmVxKHN1
bS5zdW0oMzIsIDQyKSwgNzQpOwotYXNzZXJ0LmVxKHN1bS5zdW0oLTIsIDQyKSwgNDApOwotCi1h
c3NlcnQudGhyb3dzKCgpID0+IHsKLSAgICBzdW0uc3VtID0gMzI7Ci19LCBUeXBlRXJyb3IsIGBB
dHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LmApOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy93YXNtL21vZHVsZXMvanMtd2FzbS1mdW5jdGlvbi5qcyBiL0pTVGVzdHMvd2FzbS9t
b2R1bGVzL2pzLXdhc20tZnVuY3Rpb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDBiZTViODFmM2EwMDg1MWY3ZjI4YjQxNGQ2MjYyYTdjMDg1ZjdiZmIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVsZXMvanMt
d2FzbS1mdW5jdGlvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWltcG9ydCB7
IHN1bSB9IGZyb20gIi4vc3VtLndhc20iCi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNz
ZXJ0LmpzJzsKLQotYXNzZXJ0LmlzRnVuY3Rpb24oc3VtKTsKLWFzc2VydC5lcShzdW0oMzIsIDQy
KSwgNzQpOwotYXNzZXJ0LmVxKHN1bSgtMiwgNDIpLCA0MCk7Ci0KLWFzc2VydC50aHJvd3MoKCkg
PT4gewotICAgIHN1bSA9IDMyOwotfSwgVHlwZUVycm9yLCBgQXR0ZW1wdGVkIHRvIGFzc2lnbiB0
byByZWFkb25seSBwcm9wZXJ0eS5gKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVz
L2pzLXdhc20tZ2xvYmFsLW5hbWVzcGFjZS5qcyBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2pzLXdh
c20tZ2xvYmFsLW5hbWVzcGFjZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTJh
NGRmYWJkODYzYzQxNzJkYmU0NjQwMGMwYmY0MTZhNDgyMmNlNy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9qcy13YXNt
LWdsb2JhbC1uYW1lc3BhY2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLWltcG9y
dCAqIGFzIGNvbnN0YW50IGZyb20gIi4vY29uc3RhbnQud2FzbSIKLWltcG9ydCAqIGFzIGFzc2Vy
dCBmcm9tICcuLi9hc3NlcnQuanMnOwotCi1hc3NlcnQuaXNOdW1iZXIoY29uc3RhbnQuY29uc3Rh
bnQpOwotYXNzZXJ0LmVxKGNvbnN0YW50LmNvbnN0YW50LCA0Mik7Ci1hc3NlcnQudGhyb3dzKCgp
ID0+IHsKLSAgICBjb25zdGFudC5jb25zdGFudCA9IDIwMDsKLX0sIFR5cGVFcnJvciwgYEF0dGVt
cHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuYCk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vbW9kdWxlcy9qcy13YXNtLWdsb2JhbC5qcyBiL0pTVGVzdHMvd2FzbS9tb2R1bGVz
L2pzLXdhc20tZ2xvYmFsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWU3OTI5
YWM3YjEyMTJlM2Y1OGE4MDgyMDM0Y2I4YzgwMTMyNWU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2pzLXdhc20tZ2xv
YmFsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1pbXBvcnQgeyBjb25zdGFudCB9
IGZyb20gIi4vY29uc3RhbnQud2FzbSIKLWltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3Nl
cnQuanMnOwotCi1hc3NlcnQuaXNOdW1iZXIoY29uc3RhbnQpOwotYXNzZXJ0LmVxKGNvbnN0YW50
LCA0Mik7Ci1hc3NlcnQudGhyb3dzKCgpID0+IHsKLSAgICBjb25zdGFudCA9IDIwMDsKLX0sIFR5
cGVFcnJvciwgYEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuYCk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9qcy13YXNtLW1lbW9yeS1uYW1lc3BhY2Uu
anMgYi9KU1Rlc3RzL3dhc20vbW9kdWxlcy9qcy13YXNtLW1lbW9yeS1uYW1lc3BhY2UuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkMzJlM2E2ZWYyODg4ZjcwNDVhOTViZGQzN2Yy
OWQwNGVlZmNmZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvanMtd2FzbS1tZW1vcnktbmFtZXNwYWNlLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotaW1wb3J0ICogYXMgbWVtb3J5IGZyb20gIi4vbWVt
b3J5Lndhc20iCi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKLQotYXNz
ZXJ0Lmluc3RhbmNlb2YobWVtb3J5Lm1lbW9yeSwgV2ViQXNzZW1ibHkuTWVtb3J5KTsKLWxldCBi
dWZmZXIgPSBuZXcgVWludDhBcnJheShtZW1vcnkubWVtb3J5LmJ1ZmZlcik7Ci1hc3NlcnQuZXEo
YnVmZmVyWzRdLCAweDEwKTsKLWFzc2VydC5lcShidWZmZXJbNV0sIDB4MDApOwotYXNzZXJ0LmVx
KGJ1ZmZlcls2XSwgMHgxMCk7Ci1hc3NlcnQuZXEoYnVmZmVyWzddLCAweDAwKTsKLWFzc2VydC50
aHJvd3MoKCkgPT4gewotICAgIG1lbW9yeS5tZW1vcnkgPSAyMDA7Ci19LCBUeXBlRXJyb3IsIGBB
dHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LmApOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy93YXNtL21vZHVsZXMvanMtd2FzbS1tZW1vcnkuanMgYi9KU1Rlc3RzL3dhc20vbW9k
dWxlcy9qcy13YXNtLW1lbW9yeS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ1
ZWNjZjgzY2VlZTc4OWU2ZTU4NTNlNmEyYTZlNTYzY2I2NDdkMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9qcy13YXNt
LW1lbW9yeS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLWltcG9ydCB7IG1lbW9y
eSB9IGZyb20gIi4vbWVtb3J5Lndhc20iCi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNz
ZXJ0LmpzJzsKLQotYXNzZXJ0Lmluc3RhbmNlb2YobWVtb3J5LCBXZWJBc3NlbWJseS5NZW1vcnkp
OwotbGV0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KG1lbW9yeS5idWZmZXIpOwotYXNzZXJ0LmVx
KGJ1ZmZlcls0XSwgMHgxMCk7Ci1hc3NlcnQuZXEoYnVmZmVyWzVdLCAweDAwKTsKLWFzc2VydC5l
cShidWZmZXJbNl0sIDB4MTApOwotYXNzZXJ0LmVxKGJ1ZmZlcls3XSwgMHgwMCk7Ci1hc3NlcnQu
dGhyb3dzKCgpID0+IHsKLSAgICBtZW1vcnkgPSAyMDA7Ci19LCBUeXBlRXJyb3IsIGBBdHRlbXB0
ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtL21vZHVsZXMvanMtd2FzbS1zdGFydC5qcyBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2pz
LXdhc20tc3RhcnQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyMjc0YzA0ZmE3
OGJmMWMzNzZkYTQzMmJhMDhlYmM0NThlODA4YTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVsZXMvanMtd2FzbS1zdGFydC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20g
Jy4uL2Fzc2VydC5qcyc7Ci0KLVByb21pc2UuYWxsKFsKLSAgICBpbXBvcnQoIi4vc3RhcnQud2Fz
bSIpLAotICAgIGltcG9ydCgiLi9zdGFydC53YXNtIiksCi1dKS50aGVuKChbc3RhcnQwLCBzdGFy
dDFdKSA9PiB7Ci0gICAgYXNzZXJ0LmVxKHN0YXJ0MCwgc3RhcnQxKTsKLSAgICBhc3NlcnQuZXEo
c3RhcnQwLmdldCgpLCAxKTsKLX0sICR2bS5hYm9ydCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dh
c20vbW9kdWxlcy9qcy13YXNtLXRhYmxlLW5hbWVzcGFjZS5qcyBiL0pTVGVzdHMvd2FzbS9tb2R1
bGVzL2pzLXdhc20tdGFibGUtbmFtZXNwYWNlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhOWNjM2JhMTllNTE1MTBmNDMwOTVkODQ1ODJjNzczMzFhOTdiMzY0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVz
L2pzLXdhc20tdGFibGUtbmFtZXNwYWNlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBA
QAotaW1wb3J0ICogYXMgdGFibGUgZnJvbSAiLi90YWJsZS53YXNtIgotaW1wb3J0ICogYXMgYXNz
ZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7Ci0KLWFzc2VydC5pbnN0YW5jZW9mKHRhYmxlLnRhYmxl
LCBXZWJBc3NlbWJseS5UYWJsZSk7Ci1hc3NlcnQuZXEodGFibGUudGFibGUubGVuZ3RoLCAzKTsK
LWFzc2VydC5pc0Z1bmN0aW9uKHRhYmxlLnRhYmxlLmdldCgwKSk7Ci1hc3NlcnQuaXNGdW5jdGlv
bih0YWJsZS50YWJsZS5nZXQoMSkpOwotYXNzZXJ0LmVxKHRhYmxlLnRhYmxlLmdldCgyKSwgbnVs
bCk7Ci0KLWFzc2VydC5lcSh0YWJsZS50YWJsZS5nZXQoMCkoKSwgNDIpOwotYXNzZXJ0LmVxKHRh
YmxlLnRhYmxlLmdldCgxKSgpLCA4Myk7Ci0KLWFzc2VydC50aHJvd3MoKCkgPT4gewotICAgIHRh
YmxlLnRhYmxlID0gMzI7Ci19LCBUeXBlRXJyb3IsIGBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJl
YWRvbmx5IHByb3BlcnR5LmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvanMt
d2FzbS10YWJsZS5qcyBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL2pzLXdhc20tdGFibGUuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyN2Y1MWMyYjMwYmYyYmU3ZjUzNDA3ZTIwMjZj
YmExMTI4Mjg5NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvanMtd2FzbS10YWJsZS5qcworKysgL2Rldi9udWxsCkBA
IC0xLDE1ICswLDAgQEAKLWltcG9ydCB7IHRhYmxlIH0gZnJvbSAiLi90YWJsZS53YXNtIgotaW1w
b3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7Ci0KLWFzc2VydC5pbnN0YW5jZW9m
KHRhYmxlLCBXZWJBc3NlbWJseS5UYWJsZSk7Ci1hc3NlcnQuZXEodGFibGUubGVuZ3RoLCAzKTsK
LWFzc2VydC5pc0Z1bmN0aW9uKHRhYmxlLmdldCgwKSk7Ci1hc3NlcnQuaXNGdW5jdGlvbih0YWJs
ZS5nZXQoMSkpOwotYXNzZXJ0LmVxKHRhYmxlLmdldCgyKSwgbnVsbCk7Ci0KLWFzc2VydC5lcSh0
YWJsZS5nZXQoMCkoKSwgNDIpOwotYXNzZXJ0LmVxKHRhYmxlLmdldCgxKSgpLCA4Myk7Ci0KLWFz
c2VydC50aHJvd3MoKCkgPT4gewotICAgIHRhYmxlID0gMzI7Ci19LCBUeXBlRXJyb3IsIGBBdHRl
bXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LmApOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy93YXNtL21vZHVsZXMvbWVtb3J5Lndhc20gYi9KU1Rlc3RzL3dhc20vbW9kdWxlcy9tZW1v
cnkud2FzbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmI2OTYxMDgyNGJmOGY1OWNm
YTE2NjkxZWYzNWU5YTMxNTdmNTBlZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAz
NwpzY21aUWJFWTQrUVV8P1duV0BIZCM9VkR+YlAwaF9PcyReb3w9My09VVdaYEJKVT1VeWMwQWR7
a25nOVIqCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvbWVtb3J5LndhdCBiL0pT
VGVzdHMvd2FzbS9tb2R1bGVzL21lbW9yeS53YXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI3YTNiMTE0ZTk2MzM1ZDVhMmQ0NWQ0MzI2ZjY2MjdkMzYwY2QxODcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVsZXMv
bWVtb3J5LndhdAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotKG1vZHVsZQotICAgICht
ZW1vcnkgJG1lbW9yeSAoZXhwb3J0ICJtZW1vcnkiKSAxNykKLSAgICAoZGF0YSAoaTMyLmNvbnN0
IDQpICJcMTBcMDBcMTBcMDAiKSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3J1
bi1mcm9tLXdhc20ud2FzbSBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3J1bi1mcm9tLXdhc20ud2Fz
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODczNDVlNmNlYzU1ZGFjNmFhZGJkYzJm
NDYyZTMyNjc1ODM0YTEzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA3MQp6Y21a
UWJFWTQrUVV8P1k2VWBrK01OTU5qSVV7WWR+KDk8c30mQ15YUSVGb3A7MlApN3smUFl3cCoyXmtw
MXYzfkoKVm5WQT9GSTJha1pJMmhSJjlKS0AoeEIoenU0bFYheQoKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9tb2R1bGVzL3J1bi1mcm9tLXdhc20ud2F0IGIvSlNUZXN0cy93YXNtL21vZHVsZXMv
cnVuLWZyb20td2FzbS53YXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlNTFlNTBh
MjE5YThjMTE2ZGIwYzQxYjBkOTlkODA4Yzg5M2NhMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVsZXMvcnVuLWZyb20td2Fz
bS53YXQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLShtb2R1bGUKLSAgICAoaW1wb3J0
ICIuL3J1bi1mcm9tLXdhc20vY2hlY2suanMiICJjaGVjayIgKGZ1bmMgJGNoZWNrIChwYXJhbSBp
MzIpKSkKLSAgICAodHlwZSAkdDAgKGZ1bmMpKQotICAgIChmdW5jICRtYWluICh0eXBlICR0MCkK
LSAgICAgICAgaTMyLmNvbnN0IDQyCi0gICAgICAgIGNhbGwgJGNoZWNrKQotICAgIChzdGFydCAk
bWFpbikpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9ydW4tZnJvbS13YXNtL2No
ZWNrLmpzIGIvSlNUZXN0cy93YXNtL21vZHVsZXMvcnVuLWZyb20td2FzbS9jaGVjay5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFhMzUzNTI2ZTQ1YThjNzE2YjNmYzI4MDc4ODUw
MjE1Mzg1YjBlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9ydW4tZnJvbS13YXNtL2NoZWNrLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsNiArMCwwIEBACi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vLi4vYXNzZXJ0
LmpzJzsKLQotZXhwb3J0IGZ1bmN0aW9uIGNoZWNrKHZhbHVlKQotewotICAgIGFzc2VydC5lcSh2
YWx1ZSwgNDIpOwotfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvc3RhcnQud2Fz
bSBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3N0YXJ0Lndhc20KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc3MTY2MGZmMmExZmE1ZDZiMDU3NjZmZDM0ZjNiM2M2MDI0MTcxYjcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNjEKemNtWlFiRVk0K1FVfD9ZNlVgaytNTk1LO0JY
SiUkJVV9UiVzdFk+cyY7QVVyTVdLS15sMFpLRDZhMHhKUkdBSmBSCk5HRz9oVGFJKmtlK3lLOzAx
fGF8ZAoKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3N0YXJ0LndhdCBiL0pTVGVz
dHMvd2FzbS9tb2R1bGVzL3N0YXJ0LndhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Nzc0NGU0MmFiMjUzNzViMzg0ZTcwOTk3YTUzNjczOTVlZWYyMWZiMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy9zdGFy
dC53YXQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0obW9kdWxlCi0gICAgKGdsb2Jh
bCAkZzAgKG11dCBpMzIpIGkzMi5jb25zdCAwKQotICAgICh0eXBlICR0MCAoZnVuYykpCi0gICAg
KGZ1bmMgJGluY3JlbWVudCAodHlwZSAkdDApCi0gICAgICAgIGdldF9nbG9iYWwgJGcwCi0gICAg
ICAgIGkzMi5jb25zdCAxCi0gICAgICAgIGkzMi5hZGQKLSAgICAgICAgc2V0X2dsb2JhbCAkZzAp
Ci0gICAgKHN0YXJ0ICRpbmNyZW1lbnQpCi0gICAgKHR5cGUgJHQxIChmdW5jIChyZXN1bHQgaTMy
KSkpCi0gICAgKGZ1bmMgJGdldCAoZXhwb3J0ICJnZXQiKSAodHlwZSAkdDEpIChyZXN1bHQgaTMy
KQotICAgICAgICBnZXRfZ2xvYmFsICRnMCkpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9k
dWxlcy9zdW0ud2FzbSBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3N1bS53YXNtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0YzcyMmE3YzNiN2ZlMjEwMzljNDg0NjM0MWFiMTRkZmE5YTQ5
OWNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDQxCndjbVpRYkVZNCtRVXw/V21Y
R356S3VWPGBoV0AyUHVYSj0kQ0YzbnxOO05vT3RYSFp+TlY5NFNJMERoZVhZNSlLTAoKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3N1bS53YXQgYi9KU1Rlc3RzL3dhc20vbW9kdWxl
cy9zdW0ud2F0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTNmMmEzNTkzODMwODEz
YzQxM2EwYTEzNjI1OGMwMGI0ZDU2OTM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3N1bS53YXQKKysrIC9kZXYvbnVs
bApAQCAtMSw2ICswLDAgQEAKLShtb2R1bGUKLSAgICAodHlwZSAkdDAgKGZ1bmMgKHBhcmFtIGkz
MiBpMzIpIChyZXN1bHQgaTMyKSkpCi0gICAgKGZ1bmMgJHN1bSAoZXhwb3J0ICJzdW0iKSAodHlw
ZSAkdDApIChwYXJhbSAkcDAgaTMyKSAocGFyYW0gJHAxIGkzMikgKHJlc3VsdCBpMzIpCi0gICAg
ICAgIGdldF9sb2NhbCAkcDEKLSAgICAgICAgZ2V0X2xvY2FsICRwMAotICAgICAgICBpMzIuYWRk
KSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3RhYmxlLndhc20gYi9KU1Rlc3Rz
L3dhc20vbW9kdWxlcy90YWJsZS53YXNtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
NDA4YzQ2OWE5MTNlNjIzZmNkODA3Njk3YmFkY2QzOGRlZDczYmM5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpsaXRlcmFsIDYxCnpjbVZ+JChHNVVBNUpsMVpXQG99JG1GUXdSdUBaa0k2ODtzYkE/
TUtWUS1ERyVkUF5+SSpGX25zO18ySjVpI20jPQpOOEpjRXVhJW4rK3Y+KGAqMklLJCQKCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy90YWJsZS53YXQgYi9KU1Rlc3RzL3dhc20vbW9k
dWxlcy90YWJsZS53YXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhNmI2OTk2MjE0
ODdiOWMzZTVlN2E3ODU2ZjcyODdlZjMyNjFhZGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVsZXMvdGFibGUud2F0CisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0obW9kdWxlCi0gICAgKHRhYmxlICR0YWJsZSAoZXhw
b3J0ICJ0YWJsZSIpIDMgYW55ZnVuYykKLSAgICAoZnVuYyAkZjAgKHJlc3VsdCBpMzIpIGkzMi5j
b25zdCA0MikKLSAgICAoZnVuYyAkZjEgKHJlc3VsdCBpMzIpIGkzMi5jb25zdCA4MykKLSAgICAo
ZWxlbSAoaTMyLmNvbnN0IDApICRmMCAkZjEpKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21v
ZHVsZXMvd2FzbS1pbXBvcnRzLWpzLWV4cG9ydHMuanMgYi9KU1Rlc3RzL3dhc20vbW9kdWxlcy93
YXNtLWltcG9ydHMtanMtZXhwb3J0cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzA5ZDBiY2FkODliNWI1Njg5ZTNiMTlkYzI5ZTM5MGE5ODc4YTFkNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNt
LWltcG9ydHMtanMtZXhwb3J0cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotaW1w
b3J0IHsgYWRkT25lIH0gZnJvbSAiLi93YXNtLWltcG9ydHMtanMtZXhwb3J0cy9pbXBvcnRzLndh
c20iCi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKLQotYXNzZXJ0Lmlz
RnVuY3Rpb24oYWRkT25lKTsKLWFzc2VydC5lcShhZGRPbmUoMzIpLCAzMyk7Ci1hc3NlcnQuZXEo
YWRkT25lKC0yKSwgLTEpOwotYXNzZXJ0LmVxKGFkZE9uZSgweDdmZmZmZmZmKSwgLTIxNDc0ODM2
NDgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1pbXBvcnRzLWpzLWV4
cG9ydHMvaW1wb3J0cy53YXNtIGIvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1pbXBvcnRzLWpz
LWV4cG9ydHMvaW1wb3J0cy53YXNtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWQ4
N2U2MThmYjE2NmQ3MzVhM2FhMTU3NjlmZmI0NjM4NTQ4MWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpsaXRlcmFsIDY4CnpjbVpRYkVZNCtRVXw/WTZWTTxgRVhSSj9Qc3QxeHgwKm9BYmBvKlFX
ZFJmS0hLI0dCcG5UZTVzb3J7cXpGKHQpNgpVRk9gOWppO0l6aSFJNHBjTDRiaTkwTDdGRyN7ZDhU
CgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1pbXBvcnRzLWpzLWV4cG9y
dHMvaW1wb3J0cy53YXQgYi9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNtLWltcG9ydHMtanMtZXhw
b3J0cy9pbXBvcnRzLndhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzUxMTJlMGU0
NTJhMjA5ZDZlODI3NmM0YWM1ZjhlNWJjOWYzYTJhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNtLWltcG9ydHMt
anMtZXhwb3J0cy9pbXBvcnRzLndhdAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotKG1v
ZHVsZQotICAgIChpbXBvcnQgIi4vc3VtLmpzIiAic3VtIiAoZnVuYyAkc3VtIChwYXJhbSBpMzIg
aTMyKSAocmVzdWx0IGkzMikpKQotICAgICh0eXBlICR0MCAoZnVuYyAocGFyYW0gaTMyKSAocmVz
dWx0IGkzMikpKQotICAgIChmdW5jICRhZGRPbmUgKGV4cG9ydCAiYWRkT25lIikgKHR5cGUgJHQw
KSAocGFyYW0gJHAwIGkzMikgKHJlc3VsdCBpMzIpCi0gICAgICAgIGkzMi5jb25zdCAxCi0gICAg
ICAgIGdldF9sb2NhbCAkcDAKLSAgICAgICAgY2FsbCAkc3VtKSkKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy1qcy1leHBvcnRzL3N1bS5qcyBiL0pTVGVzdHMv
d2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy1qcy1leHBvcnRzL3N1bS5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYWQ4M2I2NzM5Y2VlNGZhYjEzODE2ZjdkNGFlYWRhZGMxYjUwZmVi
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3Rz
L3dhc20vbW9kdWxlcy93YXNtLWltcG9ydHMtanMtZXhwb3J0cy9zdW0uanMKKysrIC9kZXYvbnVs
bApAQCAtMSw0ICswLDAgQEAKLWV4cG9ydCBmdW5jdGlvbiBzdW0oYXJnMCwgYXJnMSkKLXsKLSAg
ICByZXR1cm4gYXJnMCArIGFyZzE7Ci19CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxl
cy93YXNtLWltcG9ydHMtanMtcmUtZXhwb3J0cy13YXNtLWV4cG9ydHMuanMgYi9KU1Rlc3RzL3dh
c20vbW9kdWxlcy93YXNtLWltcG9ydHMtanMtcmUtZXhwb3J0cy13YXNtLWV4cG9ydHMuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzOWMyMzQ2NTE5NWQyZDM4ZjUyZWJiNTBlZWFj
YWFlNzFhZjQ2NDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1pbXBvcnRzLWpzLXJlLWV4cG9ydHMtd2FzbS1l
eHBvcnRzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1pbXBvcnQgeyBhZGRPbmUg
fSBmcm9tICIuL3dhc20taW1wb3J0cy1qcy1yZS1leHBvcnRzLXdhc20tZXhwb3J0cy9pbXBvcnRz
Lndhc20iCi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKLQotYXNzZXJ0
LmlzRnVuY3Rpb24oYWRkT25lKTsKLWFzc2VydC5lcShhZGRPbmUoMzIpLCAzMyk7Ci1hc3NlcnQu
ZXEoYWRkT25lKC0yKSwgLTEpOwotYXNzZXJ0LmVxKGFkZE9uZSgweDdmZmZmZmZmKSwgLTIxNDc0
ODM2NDgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1pbXBvcnRzLWpz
LXJlLWV4cG9ydHMtd2FzbS1leHBvcnRzL2ltcG9ydHMud2FzbSBiL0pTVGVzdHMvd2FzbS9tb2R1
bGVzL3dhc20taW1wb3J0cy1qcy1yZS1leHBvcnRzLXdhc20tZXhwb3J0cy9pbXBvcnRzLndhc20K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1YjY1MjIyZmZlYTc5MGZmMGM5NWZlZmY2
YWZkY2I0OGI0MjI3YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNzQKemNtWlFi
RVk0K1FVfD9ZNlZNPGBFWFJKP1BzdDF4eFZ2S3h4YGJEWF9zVEJxSk1KME0hI212UX14ZVNjVk9w
RlpkCmJUI1JncURKbE1Xc1NKITxUI090SGoqSlFuMHUwOyRPMXVzdgoKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvd2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy1qcy1yZS1leHBvcnRzLXdhc20tZXhwb3J0
cy9pbXBvcnRzLndhdCBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy1qcy1yZS1l
eHBvcnRzLXdhc20tZXhwb3J0cy9pbXBvcnRzLndhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTRlOTY3ZGMzZDg3ODliN2FkZTQwNmE2MGNkZGEzMTViMWVkOGJiOC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxl
cy93YXNtLWltcG9ydHMtanMtcmUtZXhwb3J0cy13YXNtLWV4cG9ydHMvaW1wb3J0cy53YXQKKysr
IC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLShtb2R1bGUKLSAgICAoaW1wb3J0ICIuL3JlLWV4
cG9ydC5qcyIgInN1bSIgKGZ1bmMgJHN1bSAocGFyYW0gaTMyIGkzMikgKHJlc3VsdCBpMzIpKSkK
LSAgICAodHlwZSAkdDAgKGZ1bmMgKHBhcmFtIGkzMikgKHJlc3VsdCBpMzIpKSkKLSAgICAoZnVu
YyAkYWRkT25lIChleHBvcnQgImFkZE9uZSIpICh0eXBlICR0MCkgKHBhcmFtICRwMCBpMzIpIChy
ZXN1bHQgaTMyKQotICAgICAgICBpMzIuY29uc3QgMQotICAgICAgICBnZXRfbG9jYWwgJHAwCi0g
ICAgICAgIGNhbGwgJHN1bSkpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNt
LWltcG9ydHMtanMtcmUtZXhwb3J0cy13YXNtLWV4cG9ydHMvcmUtZXhwb3J0LmpzIGIvSlNUZXN0
cy93YXNtL21vZHVsZXMvd2FzbS1pbXBvcnRzLWpzLXJlLWV4cG9ydHMtd2FzbS1leHBvcnRzL3Jl
LWV4cG9ydC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE2YmExYzAzNzMzZjFm
NTlmMDcxMDk1NzkzMzQ3YTdmNGYwZTgxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNtLWltcG9ydHMtanMtcmUt
ZXhwb3J0cy13YXNtLWV4cG9ydHMvcmUtZXhwb3J0LmpzCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotZXhwb3J0IHsgc3VtIH0gZnJvbSAiLi9zdW0ud2FzbSIKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy1qcy1yZS1leHBvcnRzLXdhc20tZXhwb3J0cy9z
dW0ud2FzbSBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy1qcy1yZS1leHBvcnRz
LXdhc20tZXhwb3J0cy9zdW0ud2FzbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM3
MjJhN2MzYjdmZTIxMDM5YzQ4NDYzNDFhYjE0ZGZhOWE0OTljZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKbGl0ZXJhbCA0MQp3Y21aUWJFWTQrUVV8P1dtWEd+ekt1VjxgaFdAMlB1WEo9JENGM258
TjtOb090WEhafk5WOTRTSTBEaGVYWTUpS0wKCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9k
dWxlcy93YXNtLWltcG9ydHMtanMtcmUtZXhwb3J0cy13YXNtLWV4cG9ydHMvc3VtLndhdCBiL0pT
VGVzdHMvd2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy1qcy1yZS1leHBvcnRzLXdhc20tZXhwb3J0
cy9zdW0ud2F0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTNmMmEzNTkzODMwODEz
YzQxM2EwYTEzNjI1OGMwMGI0ZDU2OTM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy1qcy1yZS1l
eHBvcnRzLXdhc20tZXhwb3J0cy9zdW0ud2F0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBA
Ci0obW9kdWxlCi0gICAgKHR5cGUgJHQwIChmdW5jIChwYXJhbSBpMzIgaTMyKSAocmVzdWx0IGkz
MikpKQotICAgIChmdW5jICRzdW0gKGV4cG9ydCAic3VtIikgKHR5cGUgJHQwKSAocGFyYW0gJHAw
IGkzMikgKHBhcmFtICRwMSBpMzIpIChyZXN1bHQgaTMyKQotICAgICAgICBnZXRfbG9jYWwgJHAx
Ci0gICAgICAgIGdldF9sb2NhbCAkcDAKLSAgICAgICAgaTMyLmFkZCkpCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3dhc20vbW9kdWxlcy93YXNtLWltcG9ydHMtd2FzbS1leHBvcnRzLmpzIGIvSlNUZXN0
cy93YXNtL21vZHVsZXMvd2FzbS1pbXBvcnRzLXdhc20tZXhwb3J0cy5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzA5ZDBiY2FkODliNWI1Njg5ZTNiMTlkYzI5ZTM5MGE5ODc4YTFk
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3Rz
L3dhc20vbW9kdWxlcy93YXNtLWltcG9ydHMtd2FzbS1leHBvcnRzLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsNyArMCwwIEBACi1pbXBvcnQgeyBhZGRPbmUgfSBmcm9tICIuL3dhc20taW1wb3J0cy1q
cy1leHBvcnRzL2ltcG9ydHMud2FzbSIKLWltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3Nl
cnQuanMnOwotCi1hc3NlcnQuaXNGdW5jdGlvbihhZGRPbmUpOwotYXNzZXJ0LmVxKGFkZE9uZSgz
MiksIDMzKTsKLWFzc2VydC5lcShhZGRPbmUoLTIpLCAtMSk7Ci1hc3NlcnQuZXEoYWRkT25lKDB4
N2ZmZmZmZmYpLCAtMjE0NzQ4MzY0OCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxl
cy93YXNtLWltcG9ydHMtd2FzbS1leHBvcnRzL2ltcG9ydHMud2FzbSBiL0pTVGVzdHMvd2FzbS9t
b2R1bGVzL3dhc20taW1wb3J0cy13YXNtLWV4cG9ydHMvaW1wb3J0cy53YXNtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwZmU3OWUzYTlhNzViMTJiZGIyNmQ4YmE0NDVhNzk5OGJkNjUy
NzI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDcwCnpjbVpRYkVZNCtRVXw/WTZW
TTxgRVhSSj9Qc3QxeHhMWDJFYGBvKlFXZGdWWlFXKn4hc2socjUrZnRgenlFaW9tPApWS1FFUG1r
JkJDd2dUYXdlZmtBK1E4dnlmJTQ1azE4CgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVs
ZXMvd2FzbS1pbXBvcnRzLXdhc20tZXhwb3J0cy9pbXBvcnRzLndhdCBiL0pTVGVzdHMvd2FzbS9t
b2R1bGVzL3dhc20taW1wb3J0cy13YXNtLWV4cG9ydHMvaW1wb3J0cy53YXQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE2MDI5ZTdkNmUxMzIwZWFiYTViMjg4NmVkMzc2ZTJmMTNmZjc3
YmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0
cy93YXNtL21vZHVsZXMvd2FzbS1pbXBvcnRzLXdhc20tZXhwb3J0cy9pbXBvcnRzLndhdAorKysg
L2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotKG1vZHVsZQotICAgIChpbXBvcnQgIi4vc3VtLndh
c20iICJzdW0iIChmdW5jICRzdW0gKHBhcmFtIGkzMiBpMzIpIChyZXN1bHQgaTMyKSkpCi0gICAg
KHR5cGUgJHQwIChmdW5jIChwYXJhbSBpMzIpIChyZXN1bHQgaTMyKSkpCi0gICAgKGZ1bmMgJGFk
ZE9uZSAoZXhwb3J0ICJhZGRPbmUiKSAodHlwZSAkdDApIChwYXJhbSAkcDAgaTMyKSAocmVzdWx0
IGkzMikKLSAgICAgICAgaTMyLmNvbnN0IDEKLSAgICAgICAgZ2V0X2xvY2FsICRwMAotICAgICAg
ICBjYWxsICRzdW0pKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1pbXBv
cnRzLXdhc20tZXhwb3J0cy9zdW0ud2FzbSBiL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3dhc20taW1w
b3J0cy13YXNtLWV4cG9ydHMvc3VtLndhc20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRjNzIyYTdjM2I3ZmUyMTAzOWM0ODQ2MzQxYWIxNGRmYTlhNDk5Y2YuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmxpdGVyYWwgNDEKd2NtWlFiRVk0K1FVfD9XbVhHfnpLdVY8YGhXQDJQdVhKPSRD
RjNufE47Tm9PdFhIWn5OVjk0U0kwRGhlWFk1KUtMCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNt
L21vZHVsZXMvd2FzbS1pbXBvcnRzLXdhc20tZXhwb3J0cy9zdW0ud2F0IGIvSlNUZXN0cy93YXNt
L21vZHVsZXMvd2FzbS1pbXBvcnRzLXdhc20tZXhwb3J0cy9zdW0ud2F0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiYTNmMmEzNTkzODMwODEzYzQxM2EwYTEzNjI1OGMwMGI0ZDU2OTM4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMv
d2FzbS9tb2R1bGVzL3dhc20taW1wb3J0cy13YXNtLWV4cG9ydHMvc3VtLndhdAorKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotKG1vZHVsZQotICAgICh0eXBlICR0MCAoZnVuYyAocGFyYW0g
aTMyIGkzMikgKHJlc3VsdCBpMzIpKSkKLSAgICAoZnVuYyAkc3VtIChleHBvcnQgInN1bSIpICh0
eXBlICR0MCkgKHBhcmFtICRwMCBpMzIpIChwYXJhbSAkcDEgaTMyKSAocmVzdWx0IGkzMikKLSAg
ICAgICAgZ2V0X2xvY2FsICRwMQotICAgICAgICBnZXRfbG9jYWwgJHAwCi0gICAgICAgIGkzMi5h
ZGQpKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1qcy1jeWNsZS5qcyBi
L0pTVGVzdHMvd2FzbS9tb2R1bGVzL3dhc20tanMtY3ljbGUuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDNjY2RiZDNlMGQ0ZDNjOGI2ZTYzNDg5ZjM3OTgzZjIyYjUzZjFmNmMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNt
L21vZHVsZXMvd2FzbS1qcy1jeWNsZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAot
aW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcycKLWltcG9ydCB7IHJldHVybjQy
IH0gZnJvbSAiLi93YXNtLWpzLWN5Y2xlL2VudHJ5Lndhc20iCi0KLWFzc2VydC5lcShyZXR1cm40
MigpLCA0Mik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNtLWpzLWN5Y2xl
L2VudHJ5Lndhc20gYi9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNtLWpzLWN5Y2xlL2VudHJ5Lndh
c20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NDliZDVmNDEyZmY4ZDc1MzNiM2U4
NzdlZmNmM2IxMzNkMzJlNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNjkKemNt
WlFiRVk0K1FVfD9ZNlc9ZGRTdFdSTDd1VjxgaDVANillKD1SVH4peXBibzIydT0rJXVJfDc+XnpK
ZE1YNHBGCldNUl9KaDQyKWJ7ajJzTShqRTxURDRCUDxBKGhOQGsKCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vbW9kdWxlcy93YXNtLWpzLWN5Y2xlL2VudHJ5LndhdCBiL0pTVGVzdHMvd2FzbS9t
b2R1bGVzL3dhc20tanMtY3ljbGUvZW50cnkud2F0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5OWNjMTFjODUwOTlkNGNkMTNlNTExOTJmY2VkZmZjNzRlZThiZDFmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVz
L3dhc20tanMtY3ljbGUvZW50cnkud2F0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0o
bW9kdWxlCi0gICAgKGltcG9ydCAiLi9zdW0uanMiICJzdW0iIChmdW5jICRzdW0gKHBhcmFtIGkz
MikgKHBhcmFtIGkzMikgKHJlc3VsdCBpMzIpKSkKLSAgICAodHlwZSAkdDAgKGZ1bmMgKHJlc3Vs
dCBpMzIpKSkKLSAgICAoZnVuYyAkcmV0dXJuNDIgKGV4cG9ydCAicmV0dXJuNDIiKSAodHlwZSAk
dDApIChyZXN1bHQgaTMyKQotICAgICAgICBpMzIuY29uc3QgMQotICAgICAgICBpMzIuY29uc3Qg
NDEKLSAgICAgICAgY2FsbCAkc3VtKSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9tb2R1bGVz
L3dhc20tanMtY3ljbGUvc3VtLmpzIGIvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1qcy1jeWNs
ZS9zdW0uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzZjc1MzcwZmQyY2EzYTQ5
NzVhMTQzY2NlYTIzMzBiNGQ3YzE3NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS1qcy1jeWNsZS9zdW0uanMK
KysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLWltcG9ydCB7IHJldHVybjQyIH0gZnJvbSAi
Li9lbnRyeS53YXNtIgotZXhwb3J0IGZ1bmN0aW9uIHN1bShhLCBiKSB7Ci0gICAgcmV0dXJuIGEg
KyBiOwotfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS13YXNtLWN5Y2xl
LmpzIGIvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS13YXNtLWN5Y2xlLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMWE1MDRlYTljZGVmNzI2Y2M3NmYxZTRhNGE1MzVkYTY4Yzdk
ZjY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVz
dHMvd2FzbS9tb2R1bGVzL3dhc20td2FzbS1jeWNsZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDQg
KzAsMCBAQAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7Ci1pbXBvcnQo
Ii4vd2FzbS13YXNtLWN5Y2xlL2VudHJ5Lndhc20iKS50aGVuKCR2bS5hYm9ydCwgZnVuY3Rpb24g
KGVycm9yKSB7Ci0gICAgYXNzZXJ0LmVxKFN0cmluZyhlcnJvciksIGBFcnJvcjogaW1wb3J0IGZ1
bmN0aW9uIC4vZW50cnkud2FzbTpyZXR1cm40MiBtdXN0IGJlIGNhbGxhYmxlYCk7Ci19KS50aGVu
KGZ1bmN0aW9uICgpIHsgfSwgJHZtLmFib3J0KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9t
b2R1bGVzL3dhc20td2FzbS1jeWNsZS9lbnRyeS53YXNtIGIvSlNUZXN0cy93YXNtL21vZHVsZXMv
d2FzbS13YXNtLWN5Y2xlL2VudHJ5Lndhc20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNkZjdjOTJhN2QzYTY4OTU5NDA3NzkwYzMzNWNkNzM4MDIwOTRmOTAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmxpdGVyYWwgNzEKemNtWlFiRVk0K1FVfD9ZNlc9ZGRTdFdSTDd1VjxgaDVAT2Bp
KD1SVH4paGg9fEdYb2g2akxifW80RDM5Tjk3VS1tClhyQTJ1ck1odUt4VCNPdEhqKk8wKTB1MDsk
YGhnOEQKCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNtLXdhc20tY3ljbGUv
ZW50cnkud2F0IGIvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS13YXNtLWN5Y2xlL2VudHJ5Lndh
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEyYjAzNzc5NzdkODZmZDg4MTk4Yzdi
NzcyMjc0NjMxODA4ODZiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9KU1Rlc3RzL3dhc20vbW9kdWxlcy93YXNtLXdhc20tY3ljbGUvZW50cnkud2F0Cisr
KyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0obW9kdWxlCi0gICAgKGltcG9ydCAiLi9zdW0u
d2FzbSIgInN1bSIgKGZ1bmMgJHN1bSAocGFyYW0gaTMyKSAocGFyYW0gaTMyKSAocmVzdWx0IGkz
MikpKQotICAgICh0eXBlICR0MCAoZnVuYyAocmVzdWx0IGkzMikpKQotICAgIChmdW5jICRyZXR1
cm40MiAoZXhwb3J0ICJyZXR1cm40MiIpICh0eXBlICR0MCkgKHJlc3VsdCBpMzIpCi0gICAgICAg
IGkzMi5jb25zdCAxCi0gICAgICAgIGkzMi5jb25zdCA0MQotICAgICAgICBjYWxsICRzdW0pKQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS13YXNtLWN5Y2xlL3N1bS53YXNt
IGIvSlNUZXN0cy93YXNtL21vZHVsZXMvd2FzbS13YXNtLWN5Y2xlL3N1bS53YXNtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGVlMDUxMWM5ODZlNTE5ZTQxNTU5YzA1NDg5NDViNDJl
MjcyMDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDcyCnpjbVpRYkVZNCtRVXw/
WTZXPWRlSHVWPGBKVXxfNmdsNFJ1MyhAKUpTRFhQPmYyUCl0d04tWmZaJH09JXlVfVI9dQphV01G
NCFXRypodldua3B1V01wU2hVe3FrcDtzeVhOTD1GNF4KCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dh
c20vbW9kdWxlcy93YXNtLXdhc20tY3ljbGUvc3VtLndhdCBiL0pTVGVzdHMvd2FzbS9tb2R1bGVz
L3dhc20td2FzbS1jeWNsZS9zdW0ud2F0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
MWQ4ZGE5MWM0NTEzYTZhZmU3OTRhY2UyNzViNWE2MmZiYzgyNDczLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvd2FzbS9tb2R1bGVzL3dhc20t
d2FzbS1jeWNsZS9zdW0ud2F0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0obW9kdWxl
Ci0gICAgKGltcG9ydCAiLi9lbnRyeS53YXNtIiAicmV0dXJuNDIiIChmdW5jICRyZXR1cm40MiAo
cmVzdWx0IGkzMikpKQotICAgICh0eXBlICR0MCAoZnVuYyAocGFyYW0gaTMyIGkzMikgKHJlc3Vs
dCBpMzIpKSkKLSAgICAoZnVuYyAkc3VtIChleHBvcnQgInN1bSIpICh0eXBlICR0MCkgKHBhcmFt
ICRwMCBpMzIpIChwYXJhbSAkcDEgaTMyKSAocmVzdWx0IGkzMikKLSAgICAgICAgZ2V0X2xvY2Fs
ICRwMQotICAgICAgICBnZXRfbG9jYWwgJHAwCi0gICAgICAgIGkzMi5hZGQpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>