<?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>158453</bug_id>
          
          <creation_ts>2016-06-06 17:32:21 -0700</creation_ts>
          <short_desc>REGRESSION(r201730): This change caused existing LayoutTests to crash (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2016-06-06 17:35:24 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149466</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1199796</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-06 17:32:21 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/201730 broke the build:
This change caused existing LayoutTests to crash (Requested by ryanhaddad 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>1199798</commentid>
    <comment_count>1</comment_count>
      <attachid>280653</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-06 17:33:02 -0700</bug_when>
    <thetext>Created attachment 280653
ROLLOUT of r201730

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>1199799</commentid>
    <comment_count>2</comment_count>
      <attachid>280653</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-06 17:35:20 -0700</bug_when>
    <thetext>Comment on attachment 280653
ROLLOUT of r201730

Clearing flags on attachment: 280653

Committed r201734: &lt;http://trac.webkit.org/changeset/201734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199800</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-06 17:35:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280653</attachid>
            <date>2016-06-06 17:33:02 -0700</date>
            <delta_ts>2016-06-06 17:35:20 -0700</delta_ts>
            <desc>ROLLOUT of r201730</desc>
            <filename>bug-158453-20160606173427.patch</filename>
            <type>text/plain</type>
            <size>73093</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyMDE4NTE3Njg4YWYz
OTYwODhhZmE4NGYyYTk3YzczM2U1YmRhOC4uYWY0ZWM3MjUwOGJkNDBhNGE2N2YxNmQzMzg4Njhl
NjZhMmViN2VlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA2LTA2ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjAxNzMwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4NDUzCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgY2F1c2VkIGV4aXN0
aW5nIExheW91dFRlc3RzIHRvIGNyYXNoIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgcnlhbmhhZGRh
ZCBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAg
IkltcGxlbWVudCBFdmVudExpc3RlbmVyT3B0aW9ucyBhcmd1bWVudCB0byBhZGRFdmVudExpc3Rl
bmVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5
NDY2CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIwMTczMAorCiAy
MDE2LTA2LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1w
bGVtZW50IEV2ZW50TGlzdGVuZXJPcHRpb25zIGFyZ3VtZW50IHRvIGFkZEV2ZW50TGlzdGVuZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVs
ZWRTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlLmNwcAppbmRleCAzNGQ1ZDBmMjczN2NkNzE1MjI0MzU0OGFlODI3
NGZkYjQ0MjNmM2UzLi40Y2E2YTA0NDJmZDNhOTMxNTdjNzI1MTRmMzQ3YTFmYWM3ODM2NGE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCkBAIC0yMDEsMTcgKzIwMSwxNyBAQCB2b2lkIEF1ZGlv
U2NoZWR1bGVkU291cmNlTm9kZTo6ZmluaXNoKCkKICAgICB9CiB9CiAKLWJvb2wgQXVkaW9TY2hl
ZHVsZWRTb3VyY2VOb2RlOjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgY29uc3QgQWRkRXZlbnRMaXN0
ZW5lck9wdGlvbnMmIG9wdGlvbnMpCitib29sIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6YWRk
RXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlz
dGVuZXI+JiYgbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKLSAgICBib29sIHN1Y2Nlc3Mg
PSBBdWRpb05vZGU6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3RlbmVy
KSwgb3B0aW9ucyk7CisgICAgYm9vbCBzdWNjZXNzID0gQXVkaW9Ob2RlOjphZGRFdmVudExpc3Rl
bmVyKGV2ZW50VHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHVzZUNhcHR1cmUpOwogICAgIGlmIChz
dWNjZXNzICYmIGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZW5kZWRFdmVudCkKICAgICAgICAg
bV9oYXNFbmRlZExpc3RlbmVyID0gaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmVuZGVk
RXZlbnQpOwogICAgIHJldHVybiBzdWNjZXNzOwogfQogCi1ib29sIEF1ZGlvU2NoZWR1bGVkU291
cmNlTm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYgb3B0aW9u
cykKK2Jvb2wgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9v
bCB1c2VDYXB0dXJlKQogewotICAgIGJvb2wgc3VjY2VzcyA9IEF1ZGlvTm9kZTo6cmVtb3ZlRXZl
bnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKTsKKyAgICBib29sIHN1Y2Nl
c3MgPSBBdWRpb05vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwg
dXNlQ2FwdHVyZSk7CiAgICAgaWYgKHN1Y2Nlc3MgJiYgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5lbmRlZEV2ZW50KQogICAgICAgICBtX2hhc0VuZGVkTGlzdGVuZXIgPSBoYXNFdmVudExpc3Rl
bmVycyhldmVudE5hbWVzKCkuZW5kZWRFdmVudCk7CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291
cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuaAppbmRleCBkNWJjNjk2ZjVjMjE0M2QzNDE3OTYwZmEyOTQ1MGIyOWM3YmE2
NjgxLi5jYjRkZDNjZGU4MjE3NWNkMTY1NjNkMGQ4OGZmY2MxMTdjYTFkMDk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlLmgKQEAgLTEwMSw4ICsxMDEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNv
bnN0IGRvdWJsZSBVbmtub3duVGltZTsKIAogcHJpdmF0ZToKLSAgICBib29sIGFkZEV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYm
LCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0
ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIGJvb2wgYWRkRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVu
ZXI+JiYsIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CisgICAgYm9vbCByZW1vdmVFdmVudExp
c3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9v
bCB1c2VDYXB0dXJlKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJz
KCkgb3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCA4YmNjYmJjMWNmMzNkMmZhMTdi
MmY1NzczN2MxYTJlNDY2OGYzODBiLi4wY2M0MWI3NTY4YmIwNTEwZTE1NWVlOWNlYzEwMDU2MWVi
NzRiYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Njcmlw
dFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
U2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTI3MywxNyArMjczLDE3IEBAIGRvdWJsZSBTY3Jp
cHRQcm9jZXNzb3JOb2RlOjpsYXRlbmN5VGltZSgpIGNvbnN0CiAgICAgcmV0dXJuIHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKTsKIH0KIAotYm9vbCBTY3JpcHRQcm9jZXNz
b3JOb2RlOjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBS
ZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlv
bnMmIG9wdGlvbnMpCitib29sIFNjcmlwdFByb2Nlc3Nvck5vZGU6OmFkZEV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3Rl
bmVyLCBib29sIHVzZUNhcHR1cmUpCiB7Ci0gICAgYm9vbCBzdWNjZXNzID0gQXVkaW9Ob2RlOjph
ZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIG9wdGlvbnMpOwor
ICAgIGJvb2wgc3VjY2VzcyA9IEF1ZGlvTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUs
IFdURk1vdmUobGlzdGVuZXIpLCB1c2VDYXB0dXJlKTsKICAgICBpZiAoc3VjY2VzcyAmJiBldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLmF1ZGlvcHJvY2Vzc0V2ZW50KQogICAgICAgICBtX2hhc0F1
ZGlvUHJvY2Vzc0xpc3RlbmVyID0gaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmF1ZGlv
cHJvY2Vzc0V2ZW50KTsKICAgICByZXR1cm4gc3VjY2VzczsKIH0KIAotYm9vbCBTY3JpcHRQcm9j
ZXNzb3JOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgTGlzdGVuZXJPcHRpb25zJiBvcHRp
b25zKQorYm9vbCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9vbCB1
c2VDYXB0dXJlKQogewotICAgIGJvb2wgc3VjY2VzcyA9IEF1ZGlvTm9kZTo6cmVtb3ZlRXZlbnRM
aXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKTsKKyAgICBib29sIHN1Y2Nlc3Mg
PSBBdWRpb05vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgdXNl
Q2FwdHVyZSk7CiAgICAgaWYgKHN1Y2Nlc3MgJiYgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5h
dWRpb3Byb2Nlc3NFdmVudCkKICAgICAgICAgbV9oYXNBdWRpb1Byb2Nlc3NMaXN0ZW5lciA9IGhh
c0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5hdWRpb3Byb2Nlc3NFdmVudCk7CiAgICAgcmV0
dXJuIHN1Y2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
U2NyaXB0UHJvY2Vzc29yTm9kZS5oCmluZGV4IGI0YzczYmI5Y2MyYjgyODljZTM5NjEyYTU0MmVm
MjJjMmM2YTdiZmMuLjEzMDYyNTkwOTBhZDQzYjJhZjVkNjM3MjJkNTVlMjQzM2Q4M2JiMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vz
c29yTm9kZS5oCkBAIC03Myw4ICs3Myw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGZpcmVQcm9j
ZXNzRXZlbnQoKTsKIAotICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2ZW50TGlzdGVu
ZXJPcHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgY29uc3QgTGlzdGVuZXJP
cHRpb25zJikgb3ZlcnJpZGU7CisgICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgYm9vbCB1c2VDYXB0dXJl
KSBvdmVycmlkZTsKKyAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIHVzZUNhcHR1cmUpIG92ZXJyaWRl
OwogICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBvdmVycmlkZTsKIAogICAgIC8v
IERvdWJsZSBidWZmZXJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNmYxYThjMTZjYjBmMjhlMmZiNTk1NWE1YzIwNjAy
ZDFlYzBiZmIzYi4uMzU1ZTc5NjExNDRhYzc3NjMxZmY1MGE0NDViNjNhNzFhZDkyNmZjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTE2NzgsMTAgKzE2NzgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2tFeHBy
ZXNzaW9uCiAgICAgICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS5p
c051bGwoKSB8fCAke3ZhbHVlfS5pc09iamVjdCgpKSIpOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgJHVzZWRBcmd1bWVudHN7JHBhcmFtZXRlckluZGV4fSA9IDE7Ci0gICAgICAgIH0gZWxz
aWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCRwYXJhbWV0ZXItPnR5cGUpKSB7
Ci0gICAgICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LmlzVW5kZWZpbmVk
T3JOdWxsKCkgfHwgJHt2YWx1ZX0uaXNPYmplY3QoKSkiKTsKLSAgICAgICAgICAgICR1c2VkQXJn
dW1lbnRzeyRwYXJhbWV0ZXJJbmRleH0gPSAxOwotICAgICAgICB9IGVsc2lmICgoJGNvZGVHZW5l
cmF0b3ItPkdldEFycmF5T3JTZXF1ZW5jZVR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5J
c1R5cGVkQXJyYXlUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgk
dHlwZSkpICYmICR0eXBlIG5lICJFdmVudExpc3RlbmVyIikgeworICAgICAgICB9IGVsc2lmICgk
Y29kZUdlbmVyYXRvci0+R2V0QXJyYXlPclNlcXVlbmNlVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5l
cmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBw
ZXJUeXBlKCR0eXBlKSkgewogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbiA9ICIiOwogCiAgICAg
ICAgICAgICBpZiAoJHBhcmFtZXRlci0+aXNOdWxsYWJsZSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRleCBl
ODFmZmM0ZWQ5NTkzM2M4ZDk0M2UyOWUzZmVkY2RiMTljOGVjMzgzLi4xNWMzMzVkNzQ3NGU4MTFm
MmVjZTQwZmNkMmU4YzRiNTEzNTFjMzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaApAQCAtMTcyLDcgKzE3Miw3
IEBAIHB1YmxpYzoKICAgICBib29sIGRlZmF1bHRQcmV2ZW50ZWQoKSBjb25zdCB7IHJldHVybiBt
X2RlZmF1bHRQcmV2ZW50ZWQ7IH0KICAgICB2b2lkIHByZXZlbnREZWZhdWx0KCkKICAgICB7Ci0g
ICAgICAgIGlmIChtX2NhbmNlbGFibGUgJiYgIW1faXNFeGVjdXRpbmdQYXNzaXZlRXZlbnRMaXN0
ZW5lcikKKyAgICAgICAgaWYgKG1fY2FuY2VsYWJsZSkKICAgICAgICAgICAgIG1fZGVmYXVsdFBy
ZXZlbnRlZCA9IHRydWU7CiAgICAgfQogICAgIHZvaWQgc2V0RGVmYXVsdFByZXZlbnRlZChib29s
IGRlZmF1bHRQcmV2ZW50ZWQpIHsgbV9kZWZhdWx0UHJldmVudGVkID0gZGVmYXVsdFByZXZlbnRl
ZDsgfQpAQCAtMTgwLDggKzE4MCw2IEBAIHB1YmxpYzoKICAgICBib29sIGRlZmF1bHRIYW5kbGVk
KCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0SGFuZGxlZDsgfQogICAgIHZvaWQgc2V0RGVmYXVs
dEhhbmRsZWQoKSB7IG1fZGVmYXVsdEhhbmRsZWQgPSB0cnVlOyB9CiAKLSAgICB2b2lkIHNldElu
UGFzc2l2ZUxpc3RlbmVyKGJvb2wgdmFsdWUpIHsgbV9pc0V4ZWN1dGluZ1Bhc3NpdmVFdmVudExp
c3RlbmVyID0gdmFsdWU7IH0KLQogICAgIGJvb2wgY2FuY2VsQnViYmxlKCkgY29uc3QgeyByZXR1
cm4gbV9jYW5jZWxCdWJibGU7IH0KICAgICB2b2lkIHNldENhbmNlbEJ1YmJsZShib29sIGNhbmNl
bCkgeyBtX2NhbmNlbEJ1YmJsZSA9IGNhbmNlbDsgfQogCkBAIC0yMTksNyArMjE3LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fZGVmYXVsdEhhbmRsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9j
YW5jZWxCdWJibGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1RydXN0ZWQgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9pc0V4ZWN1dGluZ1Bhc3NpdmVFdmVudExpc3RlbmVyIHsgZmFsc2UgfTsKIAog
ICAgIHVuc2lnbmVkIHNob3J0IG1fZXZlbnRQaGFzZSB7IDAgfTsKICAgICBFdmVudFRhcmdldCog
bV9jdXJyZW50VGFyZ2V0IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVu
ZXJNYXAuY3BwCmluZGV4IDVhNTE1NmY4NWI2YzE2YTRlMmNjNzZhM2YzNzAyNDY1MjRkMjU3ZTku
LmIwNGUxMjEzYTU1Y2I2NWMyZjJlNTIzODllZTQ2NGQ3Zjg0NWVlZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5jcHAKQEAgLTk1LDkgKzk1LDkgQEAgVmVjdG9yPEF0b21p
Y1N0cmluZz4gRXZlbnRMaXN0ZW5lck1hcDo6ZXZlbnRUeXBlcygpIGNvbnN0CiAgICAgcmV0dXJu
IHR5cGVzOwogfQogCi1zdGF0aWMgYm9vbCBhZGRMaXN0ZW5lclRvVmVjdG9yKEV2ZW50TGlzdGVu
ZXJWZWN0b3IqIHZlY3RvciwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0IFJl
Z2lzdGVyZWRFdmVudExpc3RlbmVyOjpPcHRpb25zJiBvcHRpb25zKQorc3RhdGljIGJvb2wgYWRk
TGlzdGVuZXJUb1ZlY3RvcihFdmVudExpc3RlbmVyVmVjdG9yKiB2ZWN0b3IsIFJlZjxFdmVudExp
c3RlbmVyPiYmIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7Ci0gICAgUmVnaXN0ZXJlZEV2
ZW50TGlzdGVuZXIgcmVnaXN0ZXJlZExpc3RlbmVyKFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25z
KTsKKyAgICBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciByZWdpc3RlcmVkTGlzdGVuZXIoV1RGTW92
ZShsaXN0ZW5lciksIHVzZUNhcHR1cmUpOwogCiAgICAgaWYgKHZlY3Rvci0+ZmluZChyZWdpc3Rl
cmVkTGlzdGVuZXIpICE9IG5vdEZvdW5kKQogICAgICAgICByZXR1cm4gZmFsc2U7IC8vIER1cGxp
Y2F0ZSBsaXN0ZW5lci4KQEAgLTEwNiwxNyArMTA2LDE3IEBAIHN0YXRpYyBib29sIGFkZExpc3Rl
bmVyVG9WZWN0b3IoRXZlbnRMaXN0ZW5lclZlY3RvciogdmVjdG9yLCBSZWY8RXZlbnRMaXN0ZW5l
cj4mCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRXZlbnRMaXN0ZW5lck1hcDo6YWRkKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5l
ciwgY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXI6Ok9wdGlvbnMmIG9wdGlvbnMpCitib29s
IEV2ZW50TGlzdGVuZXJNYXA6OmFkZChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVm
PEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKICAgICBhc3Nl
cnROb0FjdGl2ZUl0ZXJhdG9ycygpOwogCiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fZW50cmll
cykgewogICAgICAgICBpZiAoZW50cnkuZmlyc3QgPT0gZXZlbnRUeXBlKQotICAgICAgICAgICAg
cmV0dXJuIGFkZExpc3RlbmVyVG9WZWN0b3IoZW50cnkuc2Vjb25kLmdldCgpLCBXVEZNb3ZlKGxp
c3RlbmVyKSwgb3B0aW9ucyk7CisgICAgICAgICAgICByZXR1cm4gYWRkTGlzdGVuZXJUb1ZlY3Rv
cihlbnRyeS5zZWNvbmQuZ2V0KCksIFdURk1vdmUobGlzdGVuZXIpLCB1c2VDYXB0dXJlKTsKICAg
ICB9CiAKICAgICBtX2VudHJpZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGV2ZW50VHlwZSwgc3Rk
OjptYWtlX3VuaXF1ZTxFdmVudExpc3RlbmVyVmVjdG9yPigpKSk7Ci0gICAgcmV0dXJuIGFkZExp
c3RlbmVyVG9WZWN0b3IobV9lbnRyaWVzLmxhc3QoKS5zZWNvbmQuZ2V0KCksIFdURk1vdmUobGlz
dGVuZXIpLCBvcHRpb25zKTsKKyAgICByZXR1cm4gYWRkTGlzdGVuZXJUb1ZlY3RvcihtX2VudHJp
ZXMubGFzdCgpLnNlY29uZC5nZXQoKSwgV1RGTW92ZShsaXN0ZW5lciksIHVzZUNhcHR1cmUpOwog
fQogCiBzdGF0aWMgYm9vbCByZW1vdmVMaXN0ZW5lckZyb21WZWN0b3IoRXZlbnRMaXN0ZW5lclZl
Y3RvciogbGlzdGVuZXJWZWN0b3IsIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBib29sIHVzZUNh
cHR1cmUsIHNpemVfdCYgaW5kZXhPZlJlbW92ZWRMaXN0ZW5lcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRMaXN0ZW5lck1hcC5oCmluZGV4IGQ0MzRiZDdiODgxNTI3NmJjNDY0NzAxNzY4NWExMmU3ZGFh
OTQ3NDMuLjFlZmU2YWJmOGNlZWQyZDk2M2FjNzYzMTkxYzBhMmE4ZmY5YjYzMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuaApAQCAtNTQsOCArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBjb250YWluc0NhcHR1cmluZyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkg
Y29uc3Q7CiAKICAgICB2b2lkIGNsZWFyKCk7Ci0KLSAgICBib29sIGFkZChjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IFJlZ2lzdGVyZWRF
dmVudExpc3RlbmVyOjpPcHRpb25zJik7CisgICAgYm9vbCBhZGQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBib29sIHVzZUNhcHR1cmUpOwogICAg
IGJvb2wgcmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVy
JiwgYm9vbCB1c2VDYXB0dXJlLCBzaXplX3QmIGluZGV4T2ZSZW1vdmVkTGlzdGVuZXIpOwogICAg
IEV2ZW50TGlzdGVuZXJWZWN0b3IqIGZpbmQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUp
OwogICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IGV2ZW50VHlwZXMoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnRUYXJnZXQuY3BwCmluZGV4IDJjOTRhZDA1ZTI3MzA1MDBjZTdjMTY2YmNjYzc0NjM0
NDU1ZmRmNDcuLmQyNDgzODU5M2QxN2Y2YWI1NmQ2ZDkwOTk1ODU5MjkwNTZiMGUwNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtNzUsMjYgKzc1LDI4IEBAIGJvb2wgRXZlbnRU
YXJnZXQ6OmlzTWVzc2FnZVBvcnQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9v
bCBFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0IEFkZEV2ZW50TGlzdGVu
ZXJPcHRpb25zJiBvcHRpb25zKQorYm9vbCBFdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVu
ZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKLSAgICByZXR1cm4gZW5zdXJlRXZlbnRUYXJnZXREYXRh
KCkuZXZlbnRMaXN0ZW5lck1hcC5hZGQoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgeyBv
cHRpb25zLmNhcHR1cmUsIG9wdGlvbnMucGFzc2l2ZSwgb3B0aW9ucy5vbmNlIH0pOworICAgIHJl
dHVybiBlbnN1cmVFdmVudFRhcmdldERhdGEoKS5ldmVudExpc3RlbmVyTWFwLmFkZChldmVudFR5
cGUsIFdURk1vdmUobGlzdGVuZXIpLCB1c2VDYXB0dXJlKTsKIH0KIAotdm9pZCBFdmVudFRhcmdl
dDo6YWRkRXZlbnRMaXN0ZW5lckZvckJpbmRpbmdzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgY29uc3QgQWRkRXZlbnRMaXN0
ZW5lck9wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVy
Rm9yQmluZGluZ3MoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFdmVudExp
c3RlbmVyPiYmIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7CisgICAgLy8gRklYTUU6IGxp
c3RlbmVyIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBudWxsYWJsZS4KICAgICBpZiAoIWxpc3RlbmVy
KQogICAgICAgICByZXR1cm47Ci0gICAgYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3Rl
bmVyLnJlbGVhc2VOb25OdWxsKCksIG9wdGlvbnMpOworICAgIGFkZEV2ZW50TGlzdGVuZXIoZXZl
bnRUeXBlLCBsaXN0ZW5lci5yZWxlYXNlTm9uTnVsbCgpLCB1c2VDYXB0dXJlKTsKIH0KIAotdm9p
ZCBFdmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0ZW5lckZvckJpbmRpbmdzKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgY29u
c3QgTGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQordm9pZCBFdmVudFRhcmdldDo6cmVtb3ZlRXZl
bnRMaXN0ZW5lckZvckJpbmRpbmdzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWZQ
dHI8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogeworICAgIC8v
IEZJWE1FOiBsaXN0ZW5lciBpcyBub3Qgc3VwcG9zZWQgdG8gYmUgbnVsbGFibGUuCiAgICAgaWYg
KCFsaXN0ZW5lcikKICAgICAgICAgcmV0dXJuOwotICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZl
bnRUeXBlLCAqbGlzdGVuZXIsIG9wdGlvbnMpOworICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZl
bnRUeXBlLCAqbGlzdGVuZXIsIHVzZUNhcHR1cmUpOwogfQogCi1ib29sIEV2ZW50VGFyZ2V0Ojpy
ZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExp
c3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgTGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQorYm9vbCBF
dmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKICAgICBF
dmVudFRhcmdldERhdGEqIGQgPSBldmVudFRhcmdldERhdGEoKTsKICAgICBpZiAoIWQpCkBAIC0x
MDIsNyArMTA0LDcgQEAgYm9vbCBFdmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW4KIAogICAgIHNpemVfdCBpbmRl
eE9mUmVtb3ZlZExpc3RlbmVyOwogCi0gICAgaWYgKCFkLT5ldmVudExpc3RlbmVyTWFwLnJlbW92
ZShldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zLmNhcHR1cmUsIGluZGV4T2ZSZW1vdmVkTGlz
dGVuZXIpKQorICAgIGlmICghZC0+ZXZlbnRMaXN0ZW5lck1hcC5yZW1vdmUoZXZlbnRUeXBlLCBs
aXN0ZW5lciwgdXNlQ2FwdHVyZSwgaW5kZXhPZlJlbW92ZWRMaXN0ZW5lcikpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vIE5vdGlmeSBmaXJpbmcgZXZlbnRzIHBsYW5uaW5nIHRvIGlu
dm9rZSB0aGUgbGlzdGVuZXIgYXQgJ2luZGV4JyB0aGF0CkBAIC0xMjksNyArMTMxLDcgQEAgYm9v
bCBFdmVudFRhcmdldDo6c2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgUmVmUHQKICAgICBjbGVhckF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZl
bnRUeXBlKTsKICAgICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
cmV0dXJuIGFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lci5yZWxlYXNlTm9uTnVs
bCgpKTsKKyAgICByZXR1cm4gYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLnJl
bGVhc2VOb25OdWxsKCksIGZhbHNlKTsKIH0KIAogRXZlbnRMaXN0ZW5lciogRXZlbnRUYXJnZXQ6
OmdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUp
CkBAIC0yNTgsMTAgKzI2MCw2IEBAIHZvaWQgRXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVy
cyhFdmVudCYgZXZlbnQsIEV2ZW50VGFyZ2V0RGF0YSogZCwgRXZlbnRMaXN0CiAKICAgICBmb3Ig
KDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgcmVn
aXN0ZXJlZExpc3RlbmVyID0gZW50cnlbaV07Ci0KLSAgICAgICAgaWYgKHJlZ2lzdGVyZWRMaXN0
ZW5lci5pc01hcmtlZEZvclJlbW92YWwpCi0gICAgICAgICAgICBjb250aW51ZTsKLQogICAgICAg
ICBpZiAoZXZlbnQuZXZlbnRQaGFzZSgpID09IEV2ZW50OjpDQVBUVVJJTkdfUEhBU0UgJiYgIXJl
Z2lzdGVyZWRMaXN0ZW5lci51c2VDYXB0dXJlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGlmIChldmVudC5ldmVudFBoYXNlKCkgPT0gRXZlbnQ6OkJVQkJMSU5HX1BIQVNFICYmIHJl
Z2lzdGVyZWRMaXN0ZW5lci51c2VDYXB0dXJlKQpAQCAtMjcyLDI3ICsyNzAsMTIgQEAgdm9pZCBF
dmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXRE
YXRhKiBkLCBFdmVudExpc3QKICAgICAgICAgaWYgKGV2ZW50LmltbWVkaWF0ZVByb3BhZ2F0aW9u
U3RvcHBlZCgpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgaWYgKHJlZ2lzdGVyZWRM
aXN0ZW5lci5pc1Bhc3NpdmUpCi0gICAgICAgICAgICBldmVudC5zZXRJblBhc3NpdmVMaXN0ZW5l
cih0cnVlKTsKLQotICAgICAgICAvLyBNYXJrIGxpc3RlbmVyIGZvciByZW1vdmFsIGJlZm9yZSBl
eGVjdXRpbmcgdGhlIGxpc3RlbmVyLCBpbiBjYXNlIHRoZSBsaXN0ZW5lciB0cmllcyB0bwotICAg
ICAgICAvLyBkaXNwYXRjaCBhbiBldmVudCB0aGF0IHdvdWxkIGNhdXNlIGl0IHRvIGdldCBleGVj
dXRlZCBhZ2Fpbi4KLSAgICAgICAgaWYgKHJlZ2lzdGVyZWRMaXN0ZW5lci5pc09uY2UpCi0gICAg
ICAgICAgICByZWdpc3RlcmVkTGlzdGVuZXIuaXNNYXJrZWRGb3JSZW1vdmFsID0gdHJ1ZTsKLQog
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsSGFuZGxlRXZlbnQoY29udGV4dCwgZXZlbnQpOwogICAgICAg
ICAvLyBUbyBtYXRjaCBNb3ppbGxhLCB0aGUgQVRfVEFSR0VUIHBoYXNlIGZpcmVzIGJvdGggY2Fw
dHVyaW5nIGFuZCBidWJibGluZwogICAgICAgICAvLyBldmVudCBsaXN0ZW5lcnMsIGV2ZW4gdGhv
dWdoIHRoYXQgdmlvbGF0ZXMgc29tZSB2ZXJzaW9ucyBvZiB0aGUgRE9NIHNwZWMuCiAgICAgICAg
IHJlZ2lzdGVyZWRMaXN0ZW5lci5saXN0ZW5lci0+aGFuZGxlRXZlbnQoY29udGV4dCwgJmV2ZW50
KTsKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRIYW5kbGVFdmVudChjb29r
aWUpOwotCi0gICAgICAgIGlmIChyZWdpc3RlcmVkTGlzdGVuZXIuaXNQYXNzaXZlKQotICAgICAg
ICAgICAgZXZlbnQuc2V0SW5QYXNzaXZlTGlzdGVuZXIoZmFsc2UpOwotCi0gICAgICAgIGlmIChy
ZWdpc3RlcmVkTGlzdGVuZXIuaXNPbmNlKQotICAgICAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudC50eXBlKCksICpyZWdpc3RlcmVkTGlzdGVuZXIubGlzdGVuZXIsIExpc3RlbmVyT3B0
aW9ucyhyZWdpc3RlcmVkTGlzdGVuZXIudXNlQ2FwdHVyZSkpOwogICAgIH0KLQogICAgIGQtPmZp
cmluZ0V2ZW50SXRlcmF0b3JzLT5yZW1vdmVMYXN0KCk7CiAKICAgICBpZiAoZG9jdW1lbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5oCmluZGV4IGI2NWExNDQ4ZDJkZjJiMGYzZGViODBmMGQ5MTMy
MmNkM2I5Zjg1MDMuLjFiMWRlZDE5YTVkOWNhNTY2NGU1MGE5OTlkNmMzZWZiOTJhN2VlOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCkBAIC0xMjEsMzEgKzEyMSwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBET01XaW5kb3cqIHRvRE9NV2luZG93KCk7CiAgICAgdmlydHVhbCBib29sIGlz
TWVzc2FnZVBvcnQoKSBjb25zdDsKIAotICAgIHN0cnVjdCBMaXN0ZW5lck9wdGlvbnMgewotICAg
ICAgICBMaXN0ZW5lck9wdGlvbnMoYm9vbCBjYXB0dXJlID0gZmFsc2UpCi0gICAgICAgICAgICA6
IGNhcHR1cmUoY2FwdHVyZSkKLSAgICAgICAgeyB9Ci0KLSAgICAgICAgYm9vbCBjYXB0dXJlOwot
ICAgIH07Ci0KLSAgICBzdHJ1Y3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgOiBwdWJsaWMgTGlz
dGVuZXJPcHRpb25zIHsKLSAgICAgICAgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMoYm9vbCBjYXB0
dXJlID0gZmFsc2UsIGJvb2wgcGFzc2l2ZSA9IGZhbHNlLCBib29sIG9uY2UgPSBmYWxzZSkKLSAg
ICAgICAgICAgIDogTGlzdGVuZXJPcHRpb25zKGNhcHR1cmUpCi0gICAgICAgICAgICAsIHBhc3Np
dmUocGFzc2l2ZSkKLSAgICAgICAgICAgICwgb25jZShvbmNlKQotICAgICAgICB7IH0KLQotICAg
ICAgICBib29sIHBhc3NpdmU7Ci0gICAgICAgIGJvb2wgb25jZTsKLSAgICB9OwotCiAgICAgdm9p
ZCBhZGRFdmVudExpc3RlbmVyRm9yQmluZGluZ3MoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIFJlZlB0cjxFdmVudExpc3RlbmVyPiYmLCBib29sIHVzZUNhcHR1cmUpOwogICAgIHZvaWQg
cmVtb3ZlRXZlbnRMaXN0ZW5lckZvckJpbmRpbmdzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiwgYm9vbCB1c2VDYXB0dXJlKTsKLSAgICB2b2lk
IGFkZEV2ZW50TGlzdGVuZXJGb3JCaW5kaW5ncyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgUmVmUHRyPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25z
Jik7Ci0gICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyRm9yQmluZGluZ3MoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBMaXN0ZW5l
ck9wdGlvbnMmKTsKLSAgICB2aXJ0dWFsIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2ZW50
TGlzdGVuZXJPcHRpb25zJiA9IHsgfSk7Ci0gICAgdmlydHVhbCBib29sIHJlbW92ZUV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25z
dCBMaXN0ZW5lck9wdGlvbnMmKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGJvb2wg
dXNlQ2FwdHVyZSk7CisgICAgdmlydHVhbCBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIHVzZUNhcHR1cmUp
OwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAgICAgdmly
dHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnQmKTsKQEAgLTIzMCwxNiArMjA5LDYgQEAgaW5s
aW5lIGJvb2wgRXZlbnRUYXJnZXQ6Omhhc0NhcHR1cmluZ0V2ZW50TGlzdGVuZXJzKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXAKICAgICByZXR1cm4gZC0+ZXZlbnRMaXN0ZW5lck1hcC5jb250
YWluc0NhcHR1cmluZyhldmVudFR5cGUpOwogfQogCi1pbmxpbmUgdm9pZCBFdmVudFRhcmdldDo6
YWRkRXZlbnRMaXN0ZW5lckZvckJpbmRpbmdzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQotewot
ICAgIGFkZEV2ZW50TGlzdGVuZXJGb3JCaW5kaW5ncyhldmVudFR5cGUsIFdURk1vdmUobGlzdGVu
ZXIpLCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyh1c2VDYXB0dXJlKSk7Ci19Ci0KLWlubGluZSB2
b2lkIEV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyRm9yQmluZGluZ3MoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBi
b29sIHVzZUNhcHR1cmUpCi17Ci0gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lckZvckJpbmRpbmdzKGV2
ZW50VHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIExpc3RlbmVyT3B0aW9ucyh1c2VDYXB0dXJlKSk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEV2ZW50VGFyZ2V0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaWRsCmluZGV4IDlkOTAxNmYzOWFjOWUxOTM4NDEyZDM2
Mzk3OWViOTEzYWNlMDc3MWEuLmM1OTQ1ODk2ZTAwYTY2NzU2MzkwMzlhMDg2MWZmNjY1NzVlZGJl
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmlkbApAQCAtMjUsMTEgKzI1LDYgQEAKICAg
ICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAogICAgIE9iakNQcm90b2NvbCwKIF0gaW50ZXJmYWNl
IEV2ZW50VGFyZ2V0IHsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdV
QUdFX0pBVkFTQ1JJUFQKLSAgICBbSW1wbGVtZW50ZWRBcz1hZGRFdmVudExpc3RlbmVyRm9yQmlu
ZGluZ3NdIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihbQXRvbWljU3RyaW5nXSBET01TdHJpbmcgdHlw
ZSwgRXZlbnRMaXN0ZW5lcj8gbGlzdGVuZXIsIG9wdGlvbmFsIEFkZEV2ZW50TGlzdGVuZXJPcHRp
b25zIG9wdGlvbnMpOwotICAgIFtJbXBsZW1lbnRlZEFzPXJlbW92ZUV2ZW50TGlzdGVuZXJGb3JC
aW5kaW5nc10gdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKFtBdG9taWNTdHJpbmddIERPTVN0cmlu
ZyB0eXBlLCBFdmVudExpc3RlbmVyPyBsaXN0ZW5lciwgb3B0aW9uYWwgRXZlbnRMaXN0ZW5lck9w
dGlvbnMgb3B0aW9ucyk7Ci0jZW5kaWYKLQogICAgIC8vIEZJWE1FOiBUaGUgJ3R5cGUnIGFuZCAn
bGlzdGVuZXInIHBhcmFtZXRlcnMgc2hvdWxkIG5vdCBiZSBvcHRpb25hbC4KICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBJbXBsZW1lbnRlZEFzPWFkZEV2ZW50TGlzdGVuZXJGb3JC
aW5kaW5nc10gdm9pZCBhZGRFdmVudExpc3RlbmVyKFtBdG9taWNTdHJpbmddIG9wdGlvbmFsIERP
TVN0cmluZyB0eXBlID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIEV2ZW50TGlzdGVuZXI/IGxpc3Rl
bmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUgPSBmYWxzZSk7CiAgICAgW09iakNMZWdh
Y3lVbm5hbWVkUGFyYW1ldGVycywgSW1wbGVtZW50ZWRBcz1yZW1vdmVFdmVudExpc3RlbmVyRm9y
QmluZGluZ3NdIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihbQXRvbWljU3RyaW5nXSBvcHRpb25h
bCBET01TdHJpbmcgdHlwZSA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBFdmVudExpc3RlbmVyPyBs
aXN0ZW5lciwgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlID0gZmFsc2UpOwpAQCAtMzcsMTMg
KzMyLDMgQEAKICAgICAvLyBGSVhNRTogZXZlbnQgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KICAg
ICBbSW1wbGVtZW50ZWRBcz1kaXNwYXRjaEV2ZW50Rm9yQmluZGluZ3MsIFJhaXNlc0V4Y2VwdGlv
bl0gYm9vbGVhbiBkaXNwYXRjaEV2ZW50KEV2ZW50PyBldmVudCk7CiB9OwotCi1kaWN0aW9uYXJ5
IEV2ZW50TGlzdGVuZXJPcHRpb25zIHsKLSAgICBib29sZWFuIGNhcHR1cmUgPSBmYWxzZTsKLX07
Ci0KLWRpY3Rpb25hcnkgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgewotICAgIGJvb2xlYW4gY2Fw
dHVyZSA9IGZhbHNlOwotICAgIGJvb2xlYW4gcGFzc2l2ZSA9IGZhbHNlOwotICAgIGJvb2xlYW4g
b25jZSA9IGZhbHNlOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
UG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCmluZGV4IGZkZTJj
OTI1MTYzNzlhZDg2MzkyOWJmYjllMjkwMTliOTVkMDZhMTMuLjNkNzg0N2NhZWRiMjkyMGUzYjI2
NGI2NTJiYzU0Y2JjMzQ3OGEzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNz
YWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAt
MjIxLDExICsyMjEsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0QXJyYXk+IE1lc3Nh
Z2VQb3J0OjplbnRhbmdsZVBvcnRzKFNjcmlwdEV4ZWN1dGlvbkNvbnQKICAgICByZXR1cm4gcG9y
dEFycmF5OwogfQogCi1ib29sIE1lc3NhZ2VQb3J0OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgY29u
c3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmIG9wdGlvbnMpCitib29sIE1lc3NhZ2VQb3J0Ojph
ZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRM
aXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewogICAgIGlmIChsaXN0ZW5l
ci0+aXNBdHRyaWJ1dGUoKSAmJiBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLm1lc3NhZ2VFdmVu
dCkKICAgICAgICAgc3RhcnQoKTsKLSAgICByZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25z
KTsKKyAgICByZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YTo6YWRkRXZlbnRMaXN0ZW5l
cihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCB1c2VDYXB0dXJlKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQ
b3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAppbmRleCA2MzE4YWE0MTBh
YmVkMjA1YzczODMzYTFlNmZmMDVlZDkzNzYzZDQ4Li45Y2ExMjRmNGEyZWZjOTgxZGY1NTYzYmJi
Yjc1MDQ2Zjc5Y2ZjZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBv
cnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaApAQCAtOTIsNyArOTIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIEEgcG9ydCBnZXRzIG5ldXRlcmVk
IHdoZW4gaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSBuZXcgb3duZXIgdmlhIHBvc3RNZXNzYWdlKCku
CiAgICAgICAgIGJvb2wgaXNOZXV0ZXJlZCgpIHsgcmV0dXJuICFtX2VudGFuZ2xlZENoYW5uZWw7
IH0KIAotICAgICAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0
aW9ucyYpIG92ZXJyaWRlOworICAgICAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBib29sIHVzZUNhcHR1
cmUpIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgTWVzc2FnZVBv
cnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDRmODE0NWI5
MzU4MTk2ZDZlNjM3Y2MxOTJkOTlhNDUzNjkxYzNkOWIuLmY2ZjA5ZTgwNDEzYTdhMGYyMjIyNjU2
ZDFiZWIyMTFmYzgxZTM4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE5MDcsOSArMTkwNyw5IEBA
IHZvaWQgTm9kZTo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQog
ICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyeUFkZEV2ZW50TGlzdGVuZXIoTm9kZSog
dGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3Rl
bmVyPiYmIGxpc3RlbmVyLCBjb25zdCBFdmVudFRhcmdldDo6QWRkRXZlbnRMaXN0ZW5lck9wdGlv
bnMmIG9wdGlvbnMpCitzdGF0aWMgaW5saW5lIGJvb2wgdHJ5QWRkRXZlbnRMaXN0ZW5lcihOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlz
dGVuZXI+JiYgbGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKLSAgICBpZiAoIXRhcmdldE5v
ZGUtPkV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIuY29w
eVJlZigpLCBvcHRpb25zKSkKKyAgICBpZiAoIXRhcmdldE5vZGUtPkV2ZW50VGFyZ2V0OjphZGRF
dmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIuY29weVJlZigpLCB1c2VDYXB0dXJlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKS5hZGRM
aXN0ZW5lclR5cGVJZk5lZWRlZChldmVudFR5cGUpOwpAQCAtMTkyNyw3ICsxOTI3LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHRyeUFkZEV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29u
c3QgQXRvbWljU3RyaW5nJiBldmUKICAgICAvLyBUaGlzIGNvZGUgd2FzIGFkZGVkIHRvIGFkZHJl
c3MgPHJkYXI6Ly9wcm9ibGVtLzU4NDY0OTI+IE9ub3JpZW50YXRpb25jaGFuZ2UgZXZlbnQgbm90
IHdvcmtpbmcgZm9yIGRvY3VtZW50LmJvZHkuCiAgICAgLy8gRm9yd2FyZCB0aGlzIGNhbGwgdG8g
YWRkRXZlbnRMaXN0ZW5lcigpIHRvIHRoZSB3aW5kb3cgc2luY2UgdGhlc2UgYXJlIHdpbmRvdy1v
bmx5IGV2ZW50cy4KICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5vcmllbnRhdGlv
bmNoYW5nZUV2ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkucmVzaXplRXZlbnQpCi0g
ICAgICAgIHRhcmdldE5vZGUtPmRvY3VtZW50KCkuZG9tV2luZG93KCktPmFkZEV2ZW50TGlzdGVu
ZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgb3B0aW9ucyk7CisgICAgICAgIHRhcmdl
dE5vZGUtPmRvY3VtZW50KCkuZG9tV2luZG93KCktPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBl
LCBXVEZNb3ZlKGxpc3RlbmVyKSwgdXNlQ2FwdHVyZSk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQogICAgIGlmIChldmVudE5hbWVzKCkuaXNUb3VjaEV2ZW50VHlwZShldmVudFR5cGUpKQpA
QCAtMTk0MywxNCArMTk0MywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdHJ5QWRkRXZlbnRMaXN0
ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZQogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIE5vZGU6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBjb25zdCBBZGRF
dmVudExpc3RlbmVyT3B0aW9ucyYgb3B0aW9ucykKK2Jvb2wgTm9kZTo6YWRkRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlz
dGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKLSAgICByZXR1cm4gdHJ5QWRkRXZlbnRMaXN0ZW5l
cih0aGlzLCBldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25zKTsKKyAgICByZXR1
cm4gdHJ5QWRkRXZlbnRMaXN0ZW5lcih0aGlzLCBldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIp
LCB1c2VDYXB0dXJlKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHRyeVJlbW92ZUV2ZW50TGlz
dGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2
ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBjb25zdCBFdmVudFRhcmdldDo6TGlzdGVuZXJPcHRpb25z
JiBvcHRpb25zKQorc3RhdGljIGlubGluZSBib29sIHRyeVJlbW92ZUV2ZW50TGlzdGVuZXIoTm9k
ZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVu
ZXImIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7Ci0gICAgaWYgKCF0YXJnZXROb2RlLT5F
dmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRp
b25zKSkKKyAgICBpZiAoIXRhcmdldE5vZGUtPkV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3Rl
bmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAvLyBGSVhNRTogTm90aWZ5IERvY3VtZW50IHRoYXQgdGhlIGxpc3RlbmVyIGhh
cyB2YW5pc2hlZC4gV2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIGEgbnVtYmVyIG9mCkBAIC0xOTY4
LDcgKzE5NjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcihO
b2RlKiB0YXJnZXROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgLy8gVGhpcyBjb2RlIHdh
cyBhZGRlZCB0byBhZGRyZXNzIDxyZGFyOi8vcHJvYmxlbS81ODQ2NDkyPiBPbm9yaWVudGF0aW9u
Y2hhbmdlIGV2ZW50IG5vdCB3b3JraW5nIGZvciBkb2N1bWVudC5ib2R5LgogICAgIC8vIEZvcndh
cmQgdGhpcyBjYWxsIHRvIHJlbW92ZUV2ZW50TGlzdGVuZXIoKSB0byB0aGUgd2luZG93IHNpbmNl
IHRoZXNlIGFyZSB3aW5kb3ctb25seSBldmVudHMuCiAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLnJlc2l6ZUV2ZW50KQotICAgICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmRvbVdpbmRv
dygpLT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpOwor
ICAgICAgICB0YXJnZXROb2RlLT5kb2N1bWVudCgpLmRvbVdpbmRvdygpLT5yZW1vdmVFdmVudExp
c3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOwogCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICAgICBpZiAoZXZlbnROYW1lcygpLmlzVG91Y2hFdmVudFR5cGUoZXZlbnRU
eXBlKSkKQEAgLTE5ODQsOSArMTk4NCw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlSZW1vdmVF
dmVudExpc3RlbmVyKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgY29uc3QgTGlz
dGVuZXJPcHRpb25zJiBvcHRpb25zKQorYm9vbCBOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9v
bCB1c2VDYXB0dXJlKQogewotICAgIHJldHVybiB0cnlSZW1vdmVFdmVudExpc3RlbmVyKHRoaXMs
IGV2ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpOworICAgIHJldHVybiB0cnlSZW1vdmVFdmVu
dExpc3RlbmVyKHRoaXMsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOwogfQogCiB0
eXBlZGVmIEhhc2hNYXA8Tm9kZSosIHN0ZDo6dW5pcXVlX3B0cjxFdmVudFRhcmdldERhdGE+PiBF
dmVudFRhcmdldERhdGFNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBmOGQxMjJkMzIyOTcxMzk1Zjc1NGM5
YjE5YmEwZTU0ZTNkNTNlZGE4Li4zZjQ4ZmM1MjZhZmEzNWU0Y2I0MzRlODIwZGJlNzhhMjc5YzUy
YzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTUwNyw4ICs1MDcsOCBAQCBwdWJsaWM6CiAgICAgRXZlbnRU
YXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qg
ZmluYWw7IC8vIEltcGxlbWVudGVkIGluIERvY3VtZW50LmgKIAotICAgIGJvb2wgYWRkRXZlbnRM
aXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+
JiYsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBy
ZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExp
c3RlbmVyJiwgY29uc3QgTGlzdGVuZXJPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgYm9vbCBhZGRF
dmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0
ZW5lcj4mJiwgYm9vbCB1c2VDYXB0dXJlKSBvdmVycmlkZTsKKyAgICBib29sIHJlbW92ZUV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBi
b29sIHVzZUNhcHR1cmUpIG92ZXJyaWRlOwogCiAgICAgdXNpbmcgRXZlbnRUYXJnZXQ6OmRpc3Bh
dGNoRXZlbnQ7CiAgICAgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oCmluZGV4IGUyYjRlOWQ2
YzZlNWVkYWI2MDdhMDkwMmIyNjM4ZjA0YTQ1MzAyZDMuLjNmMjIyNjQ0NzgyMzFiMWRhZDUyZWFm
NWNiMWY4ODAxODIwZjRkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWdpc3Rl
cmVkRXZlbnRMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVkRXZl
bnRMaXN0ZW5lci5oCkBAIC0zMSwyNiArMzEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgotICAgICAgICBz
dHJ1Y3QgT3B0aW9ucyB7Ci0gICAgICAgICAgICBPcHRpb25zKGJvb2wgY2FwdHVyZSA9IGZhbHNl
LCBib29sIHBhc3NpdmUgPSBmYWxzZSwgYm9vbCBvbmNlID0gZmFsc2UpCi0gICAgICAgICAgICAg
ICAgOiBjYXB0dXJlKGNhcHR1cmUpCi0gICAgICAgICAgICAgICAgLCBwYXNzaXZlKHBhc3NpdmUp
Ci0gICAgICAgICAgICAgICAgLCBvbmNlKG9uY2UpCi0gICAgICAgICAgICB7IH0KLQotICAgICAg
ICAgICAgYm9vbCBjYXB0dXJlOwotICAgICAgICAgICAgYm9vbCBwYXNzaXZlOwotICAgICAgICAg
ICAgYm9vbCBvbmNlOwotICAgICAgICB9OwotCi0gICAgICAgIFJlZ2lzdGVyZWRFdmVudExpc3Rl
bmVyKFJlZjxFdmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBjb25zdCBPcHRpb25zJiBvcHRpb25z
KQotICAgICAgICAgICAgOiBsaXN0ZW5lcihXVEZNb3ZlKGxpc3RlbmVyKSkKLSAgICAgICAgICAg
ICwgdXNlQ2FwdHVyZShvcHRpb25zLmNhcHR1cmUpCi0gICAgICAgICAgICAsIGlzUGFzc2l2ZShv
cHRpb25zLnBhc3NpdmUpCi0gICAgICAgICAgICAsIGlzT25jZShvcHRpb25zLm9uY2UpCi0gICAg
ICAgIHsKLSAgICAgICAgfQotCiAgICAgICAgIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyKFJlZjxF
dmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiAgICAgICAgICAgICA6
IGxpc3RlbmVyKFdURk1vdmUobGlzdGVuZXIpKQogICAgICAgICAgICAgLCB1c2VDYXB0dXJlKHVz
ZUNhcHR1cmUpCkBAIC01OCwxNiArMzgsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB9CiAKICAgICAgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyOwotICAgICAgICBi
b29sIHVzZUNhcHR1cmUgeyBmYWxzZSB9OwotICAgICAgICBib29sIGlzUGFzc2l2ZSB7IGZhbHNl
IH07Ci0gICAgICAgIGJvb2wgaXNPbmNlIHsgZmFsc2UgfTsKLSAgICAgICAgYm9vbCBpc01hcmtl
ZEZvclJlbW92YWwgeyBmYWxzZSB9OworICAgICAgICBib29sIHVzZUNhcHR1cmU7CiAgICAgfTsK
ICAgICAKICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZ2lzdGVyZWRFdmVudExp
c3RlbmVyJiBhLCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgYikKICAgICB7Ci0gICAg
ICAgIC8vIE90aGVyIGRhdGEgbWVtYmVycyBhcmUgcHVycG9zZWZ1bGx5IG5vdCBjaGVja2VkLiBU
aGUgRE9NIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IHVwb24gYWRkaW5nIC8gcmVtb3ZpbmcKLSAg
ICAgICAgLy8gRXZlbnRMaXN0ZW5lcnMsIHdlIHNob3VsZCBvbmx5IGNoZWNrIHRoZSB0eXBlIGFu
ZCB0aGUgY2FwdHVyZSBmbGFnLgogICAgICAgICByZXR1cm4gKmEubGlzdGVuZXIgPT0gKmIubGlz
dGVuZXIgJiYgYS51c2VDYXB0dXJlID09IGIudXNlQ2FwdHVyZTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGExYTYwZmMxYzYyYzNiNzBlYjhm
ZTQ4ODUwZGM3NGU1NzVjYWRiMWUuLjg5M2NlMDZlYWViMjZiNzc5YTNmMTdhMDUyNGZmYWFmMDY3
MmI4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNTIy
OCwxMyArNTIyOCwxMyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQoRXZl
bnQmIGV2ZW50KQogICAgIHJldHVybiBIVE1MRWxlbWVudDo6ZGlzcGF0Y2hFdmVudChldmVudCk7
CiB9CiAKLWJvb2wgSFRNTE1lZGlhRWxlbWVudDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0
IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQorYm9vbCBIVE1MTWVkaWFFbGVtZW50
OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZl
bnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogewogICAgIGlmIChldmVu
dFR5cGUgIT0gZXZlbnROYW1lcygpLndlYmtpdHBsYXliYWNrdGFyZ2V0YXZhaWxhYmlsaXR5Y2hh
bmdlZEV2ZW50KQotICAgICAgICByZXR1cm4gTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5
cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIE5vZGU6OmFk
ZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGxpc3RlbmVyKSwgdXNlQ2FwdHVyZSk7
CiAKICAgICBib29sIGlzRmlyc3RBdmFpbGFiaWxpdHlDaGFuZ2VkTGlzdGVuZXIgPSAhaGFzRXZl
bnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLndlYmtpdHBsYXliYWNrdGFyZ2V0YXZhaWxhYmlsaXR5
Y2hhbmdlZEV2ZW50KTsKLSAgICBpZiAoIU5vZGU6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBl
LCBXVEZNb3ZlKGxpc3RlbmVyKSwgb3B0aW9ucykpCisgICAgaWYgKCFOb2RlOjphZGRFdmVudExp
c3RlbmVyKGV2ZW50VHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHVzZUNhcHR1cmUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoaXNGaXJzdEF2YWlsYWJpbGl0eUNoYW5nZWRMaXN0
ZW5lcikgewpAQCAtNTI0OCwxMiArNTI0OCwxMiBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmFk
ZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImIGxp
c3RlbmVyLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmIG9wdGlvbnMpCitib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7CiAgICAgaWYgKGV2
ZW50VHlwZSAhPSBldmVudE5hbWVzKCkud2Via2l0cGxheWJhY2t0YXJnZXRhdmFpbGFiaWxpdHlj
aGFuZ2VkRXZlbnQpCi0gICAgICAgIHJldHVybiBOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKGV2
ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpOworICAgICAgICByZXR1cm4gTm9kZTo6cmVtb3Zl
RXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKIAotICAgIGlm
ICghTm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25z
KSkKKyAgICBpZiAoIU5vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5l
ciwgdXNlQ2FwdHVyZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgZGlkUmVt
b3ZlTGFzdEF2YWlsYWJpbGl0eUNoYW5nZWRMaXN0ZW5lciA9ICFoYXNFdmVudExpc3RlbmVycyhl
dmVudE5hbWVzKCkud2Via2l0cGxheWJhY2t0YXJnZXRhdmFpbGFiaWxpdHljaGFuZ2VkRXZlbnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBiYjNkNGFhY2Q5MDVh
YWQwNDJjMzVjMThmNTQ2YWI1YTAyNWIzNjZlLi43OTI3ODA3NTY3MGJlZjE5MzAzNDU0ODJkZmY1
MmUxY2RlODExYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAt
MzQyLDggKzM0Miw4IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCiAgICAgdm9pZCB3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKTsKLSAgICBi
b29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxF
dmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRl
OwotICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwor
ICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
UmVmPEV2ZW50TGlzdGVuZXI+JiYsIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CisgICAgYm9v
bCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVu
dExpc3RlbmVyJiwgYm9vbCB1c2VDYXB0dXJlKSBvdmVycmlkZTsKIAogICAgIHZvaWQgd2lyZWxl
c3NSb3V0ZXNBdmFpbGFibGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICBib29sIGNhblBsYXlU
b1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAppbmRleCBmZjU3MDBjNmE5ODg4Yzc2MWE0ZjVlM2VlMjI0ZWVjYWEyYTM4OGRm
Li5mYjMwNGI0ZDUzODMxYzUzZDE2MTA4NzA4MDVmY2EyOTdlMWY0OTcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCkBAIC0xNzIyLDkgKzE3MjIsOSBAQCBib29sIERPTVdpbmRvdzo6aXNT
YW1lU2VjdXJpdHlPcmlnaW5Bc01haW5GcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1ib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNvbnN0IEFkZEV2ZW50
TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQorYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVu
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmIGxp
c3RlbmVyLCBib29sIHVzZUNhcHR1cmUpCiB7Ci0gICAgaWYgKCFFdmVudFRhcmdldDo6YWRkRXZl
bnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBvcHRpb25zKSkKKyAgICBp
ZiAoIUV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgV1RGTW92ZShsaXN0
ZW5lciksIHVzZUNhcHR1cmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoRG9j
dW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewpAQCAtMTgyNSw5ICsxODI1LDkg
QEAgdm9pZCBET01XaW5kb3c6OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCkKICNlbmRp
ZgogfQogCi1ib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGNvbnN0IExpc3RlbmVy
T3B0aW9ucyYgb3B0aW9ucykKK2Jvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciwgYm9v
bCB1c2VDYXB0dXJlKQogewotICAgIGlmICghRXZlbnRUYXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVu
ZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0aW9ucy5jYXB0dXJlKSkKKyAgICBpZiAoIUV2ZW50
VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1
cmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50
ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggOWI3Yjdm
ODFjNWM5ZjM2NTUyYTg5YjNjMGNhM2VhMjVhOTkzNzdlOC4uMDE1OGUxNDA2NjI3NDhmYzg5NGY5
MjU4MTRkNDYyNDgxYmZhZjQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0yNzksOCAr
Mjc5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIEV2ZW50cwogICAgICAg
ICAvLyBFdmVudFRhcmdldCBBUEkKLSAgICAgICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRk
RXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKLSAgICAgICAgYm9vbCByZW1vdmVFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwg
Y29uc3QgTGlzdGVuZXJPcHRpb25zJikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgYWRkRXZlbnRM
aXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+
JiYsIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgcmVtb3ZlRXZlbnRM
aXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGJv
b2wgdXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnMoKSBvdmVycmlkZTsKIAogICAgICAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hF
dmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCA1YWE5MTdlYzBmYjQwNTA2NWEy
Mzk0YWE1N2FkMmNiOWIwMDRkNDhlLi5hYjI0NWQ1N2Y1ODliZGJkMDU0MTRhNzg4NDI5N2I4MjJk
MGNkNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC01MjgsMTAgKzUyOCwxMCBA
QCBib29sIFNWR0VsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgU1ZHRWxlbWVudDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIGNv
bnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJiBvcHRpb25zKQorYm9vbCBTVkdFbGVtZW50Ojph
ZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRM
aXN0ZW5lcj4mJiBsaXN0ZW5lciwgYm9vbCB1c2VDYXB0dXJlKQogeyAgIAogICAgIC8vIEFkZCBl
dmVudCBsaXN0ZW5lciB0byByZWd1bGFyIERPTSBlbGVtZW50Ci0gICAgaWYgKCFOb2RlOjphZGRF
dmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIuY29weVJlZigpLCBvcHRpb25zKSkKKyAg
ICBpZiAoIU5vZGU6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lci5jb3B5UmVm
KCksIHVzZUNhcHR1cmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoY29udGFp
bmluZ1NoYWRvd1Jvb3QoKSkKQEAgLTU0MSwxNyArNTQxLDE3IEBAIGJvb2wgU1ZHRWxlbWVudDo6
YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50
TGlzdGVuCiAgICAgQVNTRVJUKCFpbnN0YW5jZVVwZGF0ZXNCbG9ja2VkKCkpOwogICAgIGZvciAo
YXV0byogaW5zdGFuY2UgOiBpbnN0YW5jZXMoKSkgewogICAgICAgICBBU1NFUlQoaW5zdGFuY2Ut
PmNvcnJlc3BvbmRpbmdFbGVtZW50KCkgPT0gdGhpcyk7Ci0gICAgICAgIGJvb2wgcmVzdWx0ID0g
aW5zdGFuY2UtPk5vZGU6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lci5jb3B5
UmVmKCksIG9wdGlvbnMpOworICAgICAgICBib29sIHJlc3VsdCA9IGluc3RhbmNlLT5Ob2RlOjph
ZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIuY29weVJlZigpLCB1c2VDYXB0dXJl
KTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU1ZHRWxlbWVudDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIsIGNv
bnN0IExpc3RlbmVyT3B0aW9ucyYgb3B0aW9ucykKK2Jvb2wgU1ZHRWxlbWVudDo6cmVtb3ZlRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYg
bGlzdGVuZXIsIGJvb2wgdXNlQ2FwdHVyZSkKIHsKICAgICBpZiAoY29udGFpbmluZ1NoYWRvd1Jv
b3QoKSkKLSAgICAgICAgcmV0dXJuIE5vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBl
LCBsaXN0ZW5lciwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBOb2RlOjpyZW1vdmVFdmVudExp
c3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOwogCiAgICAgLy8gRXZlbnRU
YXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIgY3JlYXRlcyBhIFBhc3NSZWZQdHIgYXJvdW5kIHRo
ZSBnaXZlbiBFdmVudExpc3RlbmVyCiAgICAgLy8gb2JqZWN0IHdoZW4gY3JlYXRpbmcgYSB0ZW1w
b3JhcnkgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIgb2JqZWN0IHVzZWQgdG8gbG9vayB1cCB0aGUK
QEAgLTU2MSw3ICs1NjEsNyBAQCBib29sIFNWR0VsZW1lbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZQogICAgIFJlZjxFdmVu
dExpc3RlbmVyPiBwcm90ZWN0b3IobGlzdGVuZXIpOwogCiAgICAgLy8gUmVtb3ZlIGV2ZW50IGxp
c3RlbmVyIGZyb20gcmVndWxhciBET00gZWxlbWVudAotICAgIGlmICghTm9kZTo6cmVtb3ZlRXZl
bnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSkKKyAgICBpZiAoIU5vZGU6
OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFJlbW92ZSBldmVudCBsaXN0ZW5lciBmcm9t
IGFsbCBzaGFkb3cgdHJlZSBET00gZWxlbWVudCBpbnN0YW5jZXMKQEAgLTU2OSw3ICs1NjksNyBA
QCBib29sIFNWR0VsZW1lbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZQogICAgIGZvciAoYXV0byYgaW5zdGFuY2UgOiBpbnN0
YW5jZXMoKSkgewogICAgICAgICBBU1NFUlQoaW5zdGFuY2UtPmNvcnJlc3BvbmRpbmdFbGVtZW50
KCkgPT0gdGhpcyk7CiAKLSAgICAgICAgaWYgKGluc3RhbmNlLT5Ob2RlOjpyZW1vdmVFdmVudExp
c3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpKQorICAgICAgICBpZiAoaW5zdGFu
Y2UtPk5vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgdXNlQ2Fw
dHVyZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAvLyBUaGlzIGNhc2UgY2Fu
IG9ubHkgYmUgaGl0IGZvciBldmVudCBsaXN0ZW5lcnMgY3JlYXRlZCBmcm9tIG1hcmt1cApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggMWVmNjhiMGJiNDQ1N2FjMTdiZmFmYTJiOTE1Mjk1MTc0
YTFkYThkZC4uOTZkNmM5MDQ2MzFhYjA5NDg4ZmI1YjZhYWJhZWUyMGZjNjJjMzdiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC0xMzMsOCArMTMzLDggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpOwogCi0gICAgYm9vbCBhZGRF
dmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0
ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKLSAgICBi
b29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2
ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKKyAgICBib29s
IGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVu
dExpc3RlbmVyPiYmLCBib29sIHVzZUNhcHR1cmUpIG92ZXJyaWRlOworICAgIGJvb2wgcmVtb3Zl
RXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5l
ciYsIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNGb2N1c0V2ZW50TGlz
dGVuZXJzKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmQwOWE3
MTZjZDE2NDk5ZGFmYTc5Y2IyOTRmMTQyMWYyNzE5ZWFhZC4uNmM3NzEyY2VlMzBjMDUzYjhmYTEz
M2FkODFiNmFhMzAwNzMzYzkyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA2LTA2ICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjAxNzMwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDUzCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgY2F1c2VkIGV4
aXN0aW5nIExheW91dFRlc3RzIHRvIGNyYXNoIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgcnlhbmhh
ZGRhZCBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAg
ICAgIkltcGxlbWVudCBFdmVudExpc3RlbmVyT3B0aW9ucyBhcmd1bWVudCB0byBhZGRFdmVudExp
c3RlbmVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ5NDY2CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIwMTczMAor
CiAyMDE2LTA2LTAyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1hcmtpbmcgaHR0cC90ZXN0cy9taXNjL3Nsb3ctbG9hZGluZy1hbmltYXRlZC1pbWFnZS5o
dG1sIGFzIGZsYWt5IG9uIGlvcy1zaW11bGF0b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDQxY2I0YmRlNTQwOTYyODhjOGU5Mjg1NmM4OGZjN2EwYWQ0NGU3MTQuLmRhODVmYjA5
ZWE3YTJjZDgyOWE4NDEwODk4NjE4NDNjNTMwZjEzZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA2LTA2ICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjAxNzMwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU4NDUzCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgY2F1c2VkIGV4aXN0aW5nIExheW91dFRlc3Rz
IHRvIGNyYXNoIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgcnlhbmhhZGRhZCBvbiAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkltcGxlbWVudCBFdmVu
dExpc3RlbmVyT3B0aW9ucyBhcmd1bWVudCB0byBhZGRFdmVudExpc3RlbmVyIgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NDY2CisgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIwMTczMAorCiAyMDE2LTA2LTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IEV2ZW50TGlz
dGVuZXJPcHRpb25zIGFyZ3VtZW50IHRvIGFkZEV2ZW50TGlzdGVuZXIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLW9uY2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMt
b25jZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwMDI5YWZj
ZjA3YjZkOGIyMGFkMDRhMDU3MDkxZTgwZDM4NWNhZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRM
aXN0ZW5lck9wdGlvbnMtb25jZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSAr
MCwwIEBACi1UZXN0cyBzdXBwb3J0IGZvciAnb25jZScgbWVtYmVyIGluIEFkZEV2ZW50TGlzdGVu
ZXJPcHRpb25zLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotZG9jdW1lbnQuYm9k
eS5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgbGlzdGVuZXJGdW5jdGlvbiwgeyAnb25jZSc6IHRy
dWUgfSkKLVBBU1MgbGlzdGVuZXJDYWxsQ291bnQgaXMgMAotZG9jdW1lbnQuYm9keS5kaXNwYXRj
aEV2ZW50KG5ldyBFdmVudCgndGVzdCcpKQotUEFTUyBsaXN0ZW5lckNhbGxDb3VudCBpcyAxCi1k
b2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0ZXN0JykpCi1QQVNTIGxpc3Rl
bmVyQ2FsbENvdW50IGlzIDEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9BZGRFdmVu
dExpc3RlbmVyT3B0aW9ucy1vbmNlLXJlY3Vyc2l2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy1vbmNlLXJlY3Vyc2l2ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwMDI5YWZjZjA3YjZkOGIy
MGFkMDRhMDU3MDkxZTgwZDM4NWNhZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9w
dGlvbnMtb25jZS1yZWN1cnNpdmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUg
KzAsMCBAQAotVGVzdHMgc3VwcG9ydCBmb3IgJ29uY2UnIG1lbWJlciBpbiBBZGRFdmVudExpc3Rl
bmVyT3B0aW9ucy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLWRvY3VtZW50LmJv
ZHkuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIGxpc3RlbmVyRnVuY3Rpb24sIHsgJ29uY2UnOiB0
cnVlIH0pCi1QQVNTIGxpc3RlbmVyQ2FsbENvdW50IGlzIDAKLWRvY3VtZW50LmJvZHkuZGlzcGF0
Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnKSkKLVBBU1MgbGlzdGVuZXJDYWxsQ291bnQgaXMgMQot
ZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcpKQotUEFTUyBsaXN0
ZW5lckNhbGxDb3VudCBpcyAxCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZl
bnRMaXN0ZW5lck9wdGlvbnMtb25jZS1yZWN1cnNpdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLW9uY2UtcmVjdXJzaXZlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjMmZiNGU5YTlmM2IwZTUwZTQ1MmNjNzdlZDdhZjVj
MjEzMjI1OGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtb25jZS1yZWN1
cnNpdmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBzdXBwb3J0IGZv
ciAnb25jZScgbWVtYmVyIGluIEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zLiIpOwotCi12YXIgbGlz
dGVuZXJDYWxsQ291bnQgPSAwOwotZnVuY3Rpb24gbGlzdGVuZXJGdW5jdGlvbigpCi17Ci0gICAg
KytsaXN0ZW5lckNhbGxDb3VudDsKLQotICAgIGlmIChsaXN0ZW5lckNhbGxDb3VudCA9PSAxKQot
ICAgICAgICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0ZXN0JykpOwot
fQotCi1ldmFsQW5kTG9nKCJkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBs
aXN0ZW5lckZ1bmN0aW9uLCB7ICdvbmNlJzogdHJ1ZSB9KSIpOwotc2hvdWxkQmUoImxpc3RlbmVy
Q2FsbENvdW50IiwgIjAiKTsKLWV2YWxBbmRMb2coImRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVu
dChuZXcgRXZlbnQoJ3Rlc3QnKSkiKTsKLXNob3VsZEJlKCJsaXN0ZW5lckNhbGxDb3VudCIsICIx
Iik7Ci1ldmFsQW5kTG9nKCJkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0
ZXN0JykpIik7Ci1zaG91bGRCZSgibGlzdGVuZXJDYWxsQ291bnQiLCAiMSIpOwotCi08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLW9uY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLW9uY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTY2NDI3YmM5ZmI4MmUyOThmNDZkMjQwNjY5YjhiYmFkOThlZDAxMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy1vbmNlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgc3VwcG9ydCBmb3IgJ29uY2UnIG1lbWJlciBpbiBBZGRF
dmVudExpc3RlbmVyT3B0aW9ucy4iKTsKLQotdmFyIGxpc3RlbmVyQ2FsbENvdW50ID0gMDsKLWZ1
bmN0aW9uIGxpc3RlbmVyRnVuY3Rpb24oKQotewotICAgICsrbGlzdGVuZXJDYWxsQ291bnQ7Ci19
Ci0KLWV2YWxBbmRMb2coImRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIGxp
c3RlbmVyRnVuY3Rpb24sIHsgJ29uY2UnOiB0cnVlIH0pIik7Ci1zaG91bGRCZSgibGlzdGVuZXJD
YWxsQ291bnQiLCAiMCIpOwotZXZhbEFuZExvZygiZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50
KG5ldyBFdmVudCgndGVzdCcpKSIpOwotc2hvdWxkQmUoImxpc3RlbmVyQ2FsbENvdW50IiwgIjEi
KTsKLWV2YWxBbmRMb2coImRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rl
c3QnKSkiKTsKLXNob3VsZEJlKCJsaXN0ZW5lckNhbGxDb3VudCIsICIxIik7Ci0KLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtcGFzc2l2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy1wYXNzaXZlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTc2MDhjM2U3OTgxNDAyZGFmMGQ3MjVj
MzZiNzA5NDBlNzIzZjEzNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy1w
YXNzaXZlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRlc3Rz
IHN1cHBvcnQgZm9yICdwYXNzaXZlJyBtZW1iZXIgaW4gQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1kb2N1bWVudC5ib2R5LmFkZEV2ZW50
TGlzdGVuZXIoJ3Rlc3QnLCBwYXNzaXZlTGlzdGVuZXJGdW5jdGlvbiwgeyAncGFzc2l2ZSc6IHRy
dWUgfSkKLWRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudCh0ZXN0RXZlbnQxKQotUEFTUyBsaXN0
ZW5lckNhbGxDb3VudCBpcyAxCi1QQVNTIHRlc3RFdmVudDEuZGVmYXVsdFByZXZlbnRlZCBpcyBm
YWxzZQotCi1kb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBhY3RpdmVMaXN0
ZW5lckZ1bmN0aW9uLCB7IH0pCi1kb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQodGVzdEV2ZW50
MikKLVBBU1MgbGlzdGVuZXJDYWxsQ291bnQgaXMgMgotUEFTUyB0ZXN0RXZlbnQyLmRlZmF1bHRQ
cmV2ZW50ZWQgaXMgdHJ1ZQotCi1kb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3Qn
LCBhY3RpdmVMaXN0ZW5lckZ1bmN0aW9uLCB7ICdwYXNzaXZlJzogZmFsc2UgfSkKLWRvY3VtZW50
LmJvZHkuZGlzcGF0Y2hFdmVudCh0ZXN0RXZlbnQyKQotUEFTUyBsaXN0ZW5lckNhbGxDb3VudCBp
cyAyCi1QQVNTIHRlc3RFdmVudDIuZGVmYXVsdFByZXZlbnRlZCBpcyB0cnVlCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtcGFzc2l2ZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtcGFzc2l2
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGI2MDYxOTg1NzMyN2FlMDgx
YzM3NjQxNGE0ZGRhM2U2N2RjMGRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL0FkZEV2ZW50TGlzdGVuZXJPcHRp
b25zLXBhc3NpdmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBzdXBw
b3J0IGZvciAncGFzc2l2ZScgbWVtYmVyIGluIEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zLiIpOwot
Ci12YXIgbGlzdGVuZXJDYWxsQ291bnQgPSAwOwotZnVuY3Rpb24gcGFzc2l2ZUxpc3RlbmVyRnVu
Y3Rpb24oZXYpCi17Ci0gICAgKytsaXN0ZW5lckNhbGxDb3VudDsKLSAgICBldi5wcmV2ZW50RGVm
YXVsdCgpOwotfQotCi1mdW5jdGlvbiBhY3RpdmVMaXN0ZW5lckZ1bmN0aW9uKGV2KQotewotICAg
ICsrbGlzdGVuZXJDYWxsQ291bnQ7Ci0gICAgZXYucHJldmVudERlZmF1bHQoKTsKLX0KLQotZXZh
bEFuZExvZygiZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgcGFzc2l2ZUxp
c3RlbmVyRnVuY3Rpb24sIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pIik7Ci12YXIgdGVzdEV2ZW50MSA9
IG5ldyBFdmVudCgndGVzdCcsIHsgJ2NhbmNlbGFibGUnOiB0cnVlIH0pOwotZXZhbEFuZExvZygi
ZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KHRlc3RFdmVudDEpIik7Ci1zaG91bGRCZSgibGlz
dGVuZXJDYWxsQ291bnQiLCAiMSIpOwotc2hvdWxkQmVGYWxzZSgidGVzdEV2ZW50MS5kZWZhdWx0
UHJldmVudGVkIik7Ci0KLWRlYnVnKCIiKTsKLWxpc3RlbmVyQ2FsbENvdW50ID0gMDsKLS8vICdw
YXNzaXZlIHNob3VsZCBiZSBmYWxzZSBieSBkZWZhdWx0LgotZXZhbEFuZExvZygiZG9jdW1lbnQu
Ym9keS5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgYWN0aXZlTGlzdGVuZXJGdW5jdGlvbiwgeyB9
KSIpOwotdmFyIHRlc3RFdmVudDIgPSBuZXcgRXZlbnQoJ3Rlc3QnLCB7ICdjYW5jZWxhYmxlJzog
dHJ1ZSB9KTsKLWV2YWxBbmRMb2coImRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudCh0ZXN0RXZl
bnQyKSIpOwotc2hvdWxkQmUoImxpc3RlbmVyQ2FsbENvdW50IiwgIjIiKTsKLXNob3VsZEJlVHJ1
ZSgidGVzdEV2ZW50Mi5kZWZhdWx0UHJldmVudGVkIik7Ci1kb2N1bWVudC5ib2R5LnJlbW92ZUV2
ZW50TGlzdGVuZXIoJ3Rlc3QnLCBhY3RpdmVMaXN0ZW5lckZ1bmN0aW9uKTsKLQotZGVidWcoIiIp
OwotbGlzdGVuZXJDYWxsQ291bnQgPSAwOwotZXZhbEFuZExvZygiZG9jdW1lbnQuYm9keS5hZGRF
dmVudExpc3RlbmVyKCd0ZXN0JywgYWN0aXZlTGlzdGVuZXJGdW5jdGlvbiwgeyAncGFzc2l2ZSc6
IGZhbHNlIH0pIik7Ci12YXIgdGVzdEV2ZW50MiA9IG5ldyBFdmVudCgndGVzdCcsIHsgJ2NhbmNl
bGFibGUnOiB0cnVlIH0pOwotZXZhbEFuZExvZygiZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50
KHRlc3RFdmVudDIpIik7Ci1zaG91bGRCZSgibGlzdGVuZXJDYWxsQ291bnQiLCAiMiIpOwotc2hv
dWxkQmVUcnVlKCJ0ZXN0RXZlbnQyLmRlZmF1bHRQcmV2ZW50ZWQiKTsKLQotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1v
dmVFdmVudExpc3RlbmVyLUV2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVtb3ZlRXZlbnRMaXN0ZW5lci1FdmVudExpc3Rl
bmVyT3B0aW9ucy1jYXB0dXJlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDRmZDA3NmRjNjJkYjljNjk1MmE4OTUxZjhkM2YwYzQ3ZmU3ZWU3NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9yZW1vdmVFdmVudExpc3RlbmVyLUV2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotVGVzdHMgc3VwcG9ydCBm
b3IgY2FsbGluZyByZW1vdmVFdmVudExpc3RlbmVyKCkgd2l0aCBhbiBFdmVudExpc3RlbmVyT3B0
aW9ucyBkaWN0aW9uYXJ5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHRl
c3RBZGRUaGVuUmVtb3ZlKHVuZGVmaW5lZCwgZmFsc2UpIGlzIHRydWUKLVBBU1MgdGVzdEFkZFRo
ZW5SZW1vdmUodW5kZWZpbmVkLCB7ICdjYXB0dXJlJzogZmFsc2UgfSkgaXMgdHJ1ZQotUEFTUyB0
ZXN0QWRkVGhlblJlbW92ZSh1bmRlZmluZWQsIHsgfSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhl
blJlbW92ZSh1bmRlZmluZWQsIHVuZGVmaW5lZCkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJl
bW92ZSh1bmRlZmluZWQsIHRydWUpIGlzIGZhbHNlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHVu
ZGVmaW5lZCwgeyAnY2FwdHVyZSc6IHRydWUgfSkgaXMgZmFsc2UKLQotUEFTUyB0ZXN0QWRkVGhl
blJlbW92ZShmYWxzZSwgZmFsc2UpIGlzIHRydWUKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoZmFs
c2UsIHsgJ2NhcHR1cmUnOiBmYWxzZSB9KSBpcyB0cnVlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3Zl
KGZhbHNlLCB7IH0pIGlzIHRydWUKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoZmFsc2UsIHVuZGVm
aW5lZCkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZShmYWxzZSwgdHJ1ZSkgaXMgZmFs
c2UKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoZmFsc2UsIHsgJ2NhcHR1cmUnOiB0cnVlIH0pIGlz
IGZhbHNlCi0KLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IGZhbHNlIH0sIGZh
bHNlKSBpcyB0cnVlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiBmYWxzZSB9
LCB7ICdjYXB0dXJlJzogZmFsc2UgfSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7
ICdjYXB0dXJlJzogZmFsc2UgfSwgeyB9KSBpcyB0cnVlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3Zl
KHsgJ2NhcHR1cmUnOiBmYWxzZSB9LCB1bmRlZmluZWQpIGlzIHRydWUKLVBBU1MgdGVzdEFkZFRo
ZW5SZW1vdmUoeyAnY2FwdHVyZSc6IGZhbHNlIH0sIHRydWUpIGlzIGZhbHNlCi1QQVNTIHRlc3RB
ZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiBmYWxzZSB9LCB7ICdjYXB0dXJlJzogdHJ1ZSB9KSBp
cyBmYWxzZQotCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHsgfSwgZmFsc2UpIGlzIHRydWUKLVBB
U1MgdGVzdEFkZFRoZW5SZW1vdmUoeyB9LCB7ICdjYXB0dXJlJzogZmFsc2UgfSkgaXMgdHJ1ZQot
UEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHsgfSkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhl
blJlbW92ZSh7IH0sIHVuZGVmaW5lZCkgaXMgdHJ1ZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7
IH0sIHRydWUpIGlzIGZhbHNlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHsgfSwgeyAnY2FwdHVy
ZSc6IHRydWUgfSkgaXMgZmFsc2UKLQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh0cnVlLCB0cnVl
KSBpcyB0cnVlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHRydWUsIHsgJ2NhcHR1cmUnOiB0cnVl
IH0pIGlzIHRydWUKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUodHJ1ZSwgeyB9KSBpcyBmYWxzZQot
UEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh0cnVlLCB1bmRlZmluZWQpIGlzIGZhbHNlCi1QQVNTIHRl
c3RBZGRUaGVuUmVtb3ZlKHRydWUsIGZhbHNlKSBpcyBmYWxzZQotUEFTUyB0ZXN0QWRkVGhlblJl
bW92ZSh0cnVlLCB7ICdjYXB0dXJlJzogZmFsc2UgfSkgaXMgZmFsc2UKLQotUEFTUyB0ZXN0QWRk
VGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1ZSB9ICwgdHJ1ZSkgaXMgdHJ1ZQotUEFTUyB0ZXN0
QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1ZSB9LCB7ICdjYXB0dXJlJzogdHJ1ZSB9KSBp
cyB0cnVlCi1QQVNTIHRlc3RBZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiB0cnVlIH0sIHsgfSkg
aXMgZmFsc2UKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IHRydWUgfSwgdW5k
ZWZpbmVkKSBpcyBmYWxzZQotUEFTUyB0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1
ZSB9LCBmYWxzZSkgaXMgZmFsc2UKLVBBU1MgdGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6
IHRydWUgfSwgeyAnY2FwdHVyZSc6IGZhbHNlIH0pIGlzIGZhbHNlCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvcmVtb3ZlRXZlbnRMaXN0ZW5lci1FdmVudExpc3RlbmVyT3B0aW9ucy1j
YXB0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZW1vdmVFdmVudExpc3RlbmVy
LUV2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjM4ZDNiNTRhNWEzYzc5OWUyNzE4OWI5YjYxYzY1NWUwYThlZGVlNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9yZW1vdmVFdmVudExpc3RlbmVyLUV2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBzdXBwb3J0IGZvciBjYWxs
aW5nIHJlbW92ZUV2ZW50TGlzdGVuZXIoKSB3aXRoIGFuIEV2ZW50TGlzdGVuZXJPcHRpb25zIGRp
Y3Rpb25hcnkiKTsKLQotdmFyIHdhc0xpc3RlbmVyQ2FsbGVkID0gZmFsc2U7Ci1mdW5jdGlvbiBs
aXN0ZW5lckZ1bmN0aW9uKGV2KQotewotICAgIHdhc0xpc3RlbmVyQ2FsbGVkID0gdHJ1ZTsKLX0K
LQotZnVuY3Rpb24gaXNMaXN0ZW5lclJlZ2lzdGVyZWQoKQotewotICAgIGRvY3VtZW50LmJvZHku
ZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnKSk7Ci0gICAgdmFyIHJlc3VsdCA9IHdhc0xp
c3RlbmVyQ2FsbGVkOwotICAgIHdhc0xpc3RlbmVyQ2FsbGVkID0gZmFsc2U7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotZnVuY3Rpb24gdGVzdEFkZFRoZW5SZW1vdmUoYWRkT3B0aW9ucywgcmVt
b3ZlT3B0aW9ucykKLXsKLSAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3Qn
LCBsaXN0ZW5lckZ1bmN0aW9uLCBhZGRPcHRpb25zKTsKLSAgICBpZiAoIWlzTGlzdGVuZXJSZWdp
c3RlcmVkKCkpCi0gICAgICAgIHRlc3RGYWlsZWQoIkZhaWxlZCB0byBhZGQgZXZlbnQgbGlzdGVu
ZXIgd2l0aCBnaXZlbiBvcHRpb25zIik7Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExp
c3RlbmVyKCd0ZXN0JywgbGlzdGVuZXJGdW5jdGlvbiwgcmVtb3ZlT3B0aW9ucyk7Ci0gICAgdmFy
IHJlc3VsdCA9ICFpc0xpc3RlbmVyUmVnaXN0ZXJlZCgpOwotCi0gICAgLy8gY2xlYW4gdXAuCi0g
ICAgY2FwdHVyZSA9IGZhbHNlOwotICAgIGlmICh0eXBlb2YoYWRkT3B0aW9ucykgPT09ICJib29s
ZWFuIikKLSAgICAgICAgY2FwdHVyZSA9IGFkZE9wdGlvbnM7Ci0gICAgZWxzZSBpZiAodHlwZW9m
KGFkZE9wdGlvbnMpID09PSAib2JqZWN0IikKLSAgICAgICAgY2FwdHVyZSA9IGFkZE9wdGlvbnMu
Y2FwdHVyZTsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBs
aXN0ZW5lckZ1bmN0aW9uLCBjYXB0dXJlKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXRl
c3RBZGRUaGVuUmVtb3ZlKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0cnVlKTsKLQotLy8gY2FwdHVy
ZSBpcyBmYWxzZSBieSBkZWZhdWx0Lgotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh1
bmRlZmluZWQsIGZhbHNlKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92ZSh1bmRl
ZmluZWQsIHsgJ2NhcHR1cmUnOiBmYWxzZSB9KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhl
blJlbW92ZSh1bmRlZmluZWQsIHsgfSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1v
dmUodW5kZWZpbmVkLCB1bmRlZmluZWQpIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJl
bW92ZSh1bmRlZmluZWQsIHRydWUpIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92
ZSh1bmRlZmluZWQsIHsgJ2NhcHR1cmUnOiB0cnVlIH0pIik7Ci0KLWRlYnVnKCIiKTsKLXNob3Vs
ZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUoZmFsc2UsIGZhbHNlKSIpOwotc2hvdWxkQmVUcnVl
KCJ0ZXN0QWRkVGhlblJlbW92ZShmYWxzZSwgeyAnY2FwdHVyZSc6IGZhbHNlIH0pIik7Ci1zaG91
bGRCZVRydWUoInRlc3RBZGRUaGVuUmVtb3ZlKGZhbHNlLCB7IH0pIik7Ci1zaG91bGRCZVRydWUo
InRlc3RBZGRUaGVuUmVtb3ZlKGZhbHNlLCB1bmRlZmluZWQpIik7Ci1zaG91bGRCZUZhbHNlKCJ0
ZXN0QWRkVGhlblJlbW92ZShmYWxzZSwgdHJ1ZSkiKTsKLXNob3VsZEJlRmFsc2UoInRlc3RBZGRU
aGVuUmVtb3ZlKGZhbHNlLCB7ICdjYXB0dXJlJzogdHJ1ZSB9KSIpOwotCi1kZWJ1ZygiIik7Ci1z
aG91bGRCZVRydWUoInRlc3RBZGRUaGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiBmYWxzZSB9LCBmYWxz
ZSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IGZhbHNl
IH0sIHsgJ2NhcHR1cmUnOiBmYWxzZSB9KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJl
bW92ZSh7ICdjYXB0dXJlJzogZmFsc2UgfSwgeyB9KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRk
VGhlblJlbW92ZSh7ICdjYXB0dXJlJzogZmFsc2UgfSwgdW5kZWZpbmVkKSIpOwotc2hvdWxkQmVG
YWxzZSgidGVzdEFkZFRoZW5SZW1vdmUoeyAnY2FwdHVyZSc6IGZhbHNlIH0sIHRydWUpIik7Ci1z
aG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogZmFsc2UgfSwgeyAn
Y2FwdHVyZSc6IHRydWUgfSkiKTsKLQotZGVidWcoIiIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRk
VGhlblJlbW92ZSh7IH0sIGZhbHNlKSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhlblJlbW92
ZSh7IH0sIHsgJ2NhcHR1cmUnOiBmYWxzZSB9KSIpOwotc2hvdWxkQmVUcnVlKCJ0ZXN0QWRkVGhl
blJlbW92ZSh7IH0sIHsgfSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUoeyB9
LCB1bmRlZmluZWQpIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHRy
dWUpIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7IH0sIHsgJ2NhcHR1cmUn
OiB0cnVlIH0pIik7Ci0KLWRlYnVnKCIiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1v
dmUodHJ1ZSwgdHJ1ZSkiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1vdmUodHJ1ZSwg
eyAnY2FwdHVyZSc6IHRydWUgfSkiKTsKLXNob3VsZEJlRmFsc2UoInRlc3RBZGRUaGVuUmVtb3Zl
KHRydWUsIHsgfSkiKTsKLXNob3VsZEJlRmFsc2UoInRlc3RBZGRUaGVuUmVtb3ZlKHRydWUsIHVu
ZGVmaW5lZCkiKTsKLXNob3VsZEJlRmFsc2UoInRlc3RBZGRUaGVuUmVtb3ZlKHRydWUsIGZhbHNl
KSIpOwotc2hvdWxkQmVGYWxzZSgidGVzdEFkZFRoZW5SZW1vdmUodHJ1ZSwgeyAnY2FwdHVyZSc6
IGZhbHNlIH0pIik7Ci0KLWRlYnVnKCIiKTsKLXNob3VsZEJlVHJ1ZSgidGVzdEFkZFRoZW5SZW1v
dmUoeyAnY2FwdHVyZSc6IHRydWUgfSAsIHRydWUpIik7Ci1zaG91bGRCZVRydWUoInRlc3RBZGRU
aGVuUmVtb3ZlKHsgJ2NhcHR1cmUnOiB0cnVlIH0sIHsgJ2NhcHR1cmUnOiB0cnVlIH0pIik7Ci1z
aG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1ZSB9LCB7IH0p
Iik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0dXJlJzogdHJ1ZSB9
LCB1bmRlZmluZWQpIik7Ci1zaG91bGRCZUZhbHNlKCJ0ZXN0QWRkVGhlblJlbW92ZSh7ICdjYXB0
dXJlJzogdHJ1ZSB9LCBmYWxzZSkiKTsKLXNob3VsZEJlRmFsc2UoInRlc3RBZGRUaGVuUmVtb3Zl
KHsgJ2NhcHR1cmUnOiB0cnVlIH0sIHsgJ2NhcHR1cmUnOiBmYWxzZSB9KSIpOwotPC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGlu
ay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJlX2RlZmF1bHQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0
ZW5lcm9wdGlvbnMvY2FwdHVyZV9kZWZhdWx0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMjhiZjFlODE2YjFlMWVhODM0NDUzNzg0Y2I1OWFiZjM4M2VhNzQwZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJl
X2RlZmF1bHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotCi1Q
QVNTIFRydWUgdmFsdWUgCi1QQVNTIEZhbHNlIHZhbHVlIAotUEFTUyBFbXB0eSBvYmplY3QgCi1Q
QVNTIE51bGwgb2JqZWN0IAotUEFTUyBVbmRlZmluZWQgb2JqZWN0IAotUEFTUyBQb3NpdGl2ZSB2
YWx1ZSAKLVBBU1MgTmVnYXRpdmUgdmFsdWUgCi1QQVNTIE5hTiB2YWx1ZSAKLVBBU1MgUG9zdGl2
ZSB6ZXJvIHZhbHVlIAotUEFTUyBOZWdhdGl2ZSB6ZXJvIHZhbHVlIAotUEFTUyBFbXB0eSBzdHJp
bmcgdmFsdWUgCi1QQVNTIE5vbiBlbXB0eSBzdHJpbmcgdmFsdWUgCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25z
L2NhcHR1cmVfZGVmYXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9l
dmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvY2FwdHVyZV9kZWZhdWx0Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyOTRmODQ1MTFjZGU4Yjc5Y2I4ZDIwMTBiZDUxNTNlZTJh
NDk2MGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMv
Y2FwdHVyZV9kZWZhdWx0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08IURP
Q1RZUEUgSFRNTD4KLTxib2R5Lz4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3RDYXB0dXJlVmFsdWUoY2FwdHVyZVZhbHVlLCBleHBlY3RlZFZhbHVlLCB0
ZXN0KSB7Ci0gIHZhciBoYW5kbGVyUGhhc2UgPSB1bmRlZmluZWQ7Ci0gIHZhciBoYW5kbGVyID0g
ZnVuY3Rpb24gaGFuZGxlcihlKSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGhhbmRsZXJQaGFzZSwg
dW5kZWZpbmVkKTsKLSAgICAgIGhhbmRsZXJQaGFzZSA9IGUuZXZlbnRQaGFzZTsKLSAgfQotICBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgaGFuZGxlciwgY2FwdHVyZVZhbHVlKTsK
LSAgZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcsIHsnYnViYmxl
cyc6IHRydWV9KSk7Ci0gIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5k
bGVyLCBjYXB0dXJlVmFsdWUpOwotICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQobmV3IEV2
ZW50KCd0ZXN0JywgeydidWJibGVzJzogdHJ1ZX0pKTsKLSAgYXNzZXJ0X2VxdWFscyhoYW5kbGVy
UGhhc2UsIGV4cGVjdGVkVmFsdWUpOwotICB0ZXN0LmRvbmUoKTsKLX0KLQotdGVzdChmdW5jdGlv
bih0KSB7IHRlc3RDYXB0dXJlVmFsdWUodHJ1ZSwgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFLCB0KTsg
fSwgIlRydWUgdmFsdWUiKTsKLXRlc3QoZnVuY3Rpb24odCkgeyB0ZXN0Q2FwdHVyZVZhbHVlKGZh
bHNlLCBFdmVudC5CVUJCTElOR19QSEFTRSwgdCk7IH0sICJGYWxzZSB2YWx1ZSIpOwotdGVzdChm
dW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFsdWUoe30sIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCB0
KTsgfSwgIkVtcHR5IG9iamVjdCIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFs
dWUobnVsbCwgRXZlbnQuQlVCQkxJTkdfUEhBU0UsIHQpOyB9LCAiTnVsbCBvYmplY3QiKTsKLXRl
c3QoZnVuY3Rpb24odCkgeyB0ZXN0Q2FwdHVyZVZhbHVlKHVuZGVmaW5lZCwgRXZlbnQuQlVCQkxJ
TkdfUEhBU0UsIHQpOyB9LCAiVW5kZWZpbmVkIG9iamVjdCIpOwotdGVzdChmdW5jdGlvbih0KSB7
IHRlc3RDYXB0dXJlVmFsdWUoMi4zLCBFdmVudC5DQVBUVVJJTkdfUEhBU0UsIHQpOyB9LCAiUG9z
aXRpdmUgdmFsdWUiKTsKLXRlc3QoZnVuY3Rpb24odCkgeyB0ZXN0Q2FwdHVyZVZhbHVlKC0xMDAw
LjMsIEV2ZW50LkNBUFRVUklOR19QSEFTRSwgdCk7IH0sICJOZWdhdGl2ZSB2YWx1ZSIpOwotdGVz
dChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFsdWUoTmFOLCBFdmVudC5CVUJCTElOR19QSEFT
RSwgdCk7IH0sICJOYU4gdmFsdWUiKTsKLXRlc3QoZnVuY3Rpb24odCkgeyB0ZXN0Q2FwdHVyZVZh
bHVlKCswLjAsIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCB0KTsgfSwgIlBvc3RpdmUgemVybyB2YWx1
ZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFsdWUoLTAuMCwgRXZlbnQuQlVC
QkxJTkdfUEhBU0UsIHQpOyB9LCAiTmVnYXRpdmUgemVybyB2YWx1ZSIpOwotdGVzdChmdW5jdGlv
bih0KSB7IHRlc3RDYXB0dXJlVmFsdWUoIiIsIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCB0KTsgfSwg
IkVtcHR5IHN0cmluZyB2YWx1ZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RDYXB0dXJlVmFs
dWUoIkFBQUEiLCBFdmVudC5DQVBUVVJJTkdfUEhBU0UsIHQpOyB9LCAiTm9uIGVtcHR5IHN0cmlu
ZyB2YWx1ZSIpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9i
bGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJlX2VxdWFsaXR5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50
bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVfZXF1YWxpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyMmNmYWMyNzE3Njk1NmFiN2U1Zjk4MDhmYzNlNzAwZDMwZGJl
ZTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2Nh
cHR1cmVfZXF1YWxpdHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBA
Ci0KLVBBU1MgRW1wdHkgb2JqZWN0IAotUEFTUyBDYXB0dXJlIGZhbHNlIAotUEFTUyBDYXB0dXJl
IHRydWUgCi1QQVNTIE5vbi1lbXB0eSBvYmplY3QgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVf
ZXF1YWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2
ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVfZXF1YWxpdHkuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNWMzZmYxMTEzMzE4OTc0ZmIwYTAyNWU2NWIyNDEwNGE1NGUzNWJmNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJl
X2VxdWFsaXR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUg
SFRNTD4KLTxib2R5Lz4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlv
biB0ZXN0T3B0aW9uRXF1YWxpdHkoYWRkT3B0aW9uVmFsdWUsIHJlbW92ZU9wdGlvblZhbHVlLCB0
ZXN0KSB7Ci0gIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihlKSB7Ci0gICAgICBhc3Nl
cnRfdW5yZWFjaGVkKCJkdW1teSB2YWx1ZSBnZXR0ZXIgaW52b2tlZCIpOwotICB9Ci0gIGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCBhZGRPcHRpb25WYWx1ZSk7Ci0g
IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCByZW1vdmVPcHRp
b25WYWx1ZSk7Ci0gIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3Qn
LCB7J2J1YmJsZXMnOiB0cnVlfSkpOwotICB0ZXN0LmRvbmUoKTsKLX0KLQotdGVzdChmdW5jdGlv
bih0KSB7IHRlc3RPcHRpb25FcXVhbGl0eSh7fSwgZmFsc2UsIHQpOyB9LCAiRW1wdHkgb2JqZWN0
Iik7Ci10ZXN0KGZ1bmN0aW9uKHQpIHsgdGVzdE9wdGlvbkVxdWFsaXR5KHsnY2FwdHVyZSc6IGZh
bHNlfSwgZmFsc2UsIHQpOyB9LCAiQ2FwdHVyZSBmYWxzZSIpOwotdGVzdChmdW5jdGlvbih0KSB7
IHRlc3RPcHRpb25FcXVhbGl0eSh7J2NhcHR1cmUnOiB0cnVlfSwgdHJ1ZSwgdCk7IH0sICJDYXB0
dXJlIHRydWUiKTsKLXRlc3QoZnVuY3Rpb24odCkgeyB0ZXN0T3B0aW9uRXF1YWxpdHkoeydkdW1t
eSc6IHRydWV9LCBmYWxzZSwgdCk7IH0sICJOb24tZW1wdHkgb2JqZWN0Iik7Ci0KLTwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZl
bnRsaXN0ZW5lcm9wdGlvbnMvY2FwdHVyZV9xdWVyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJl
X3F1ZXJ5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFhM2M2
ODE5NjVhMDcxMTk2MDgxMjcwMWY0ZjVmZTFmMDgwYTZlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0
L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9jYXB0dXJlX3F1ZXJ5LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIFN1cHBvcnRzIENhcHR1cmUgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50
bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVfcXVlcnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL2NhcHR1cmVfcXVlcnkuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjM3YWMxMzI2M2QwYjViMjU4Y2FjMzAy
MDE2ZGNkMTZmMTYwYzA5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3Rl
bmVyb3B0aW9ucy9jYXB0dXJlX3F1ZXJ5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCww
IEBACi08IURPQ1RZUEUgSFRNTD4KLTxib2R5Lz4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQ+Ci10ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc3VwcG9ydHNDYXB0dXJlID0gZmFs
c2U7Ci0gICAgdmFyIHF1ZXJ5X2Z1bmN0aW9uID0gZnVuY3Rpb24oZSkge307Ci0gICAgdmFyIHF1
ZXJ5X29wdGlvbnMgPSB7Ci0gICAgICAgIGdldCBjYXB0dXJlKCkgewotICAgICAgICAgICAgc3Vw
cG9ydHNDYXB0dXJlID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
fSwKLSAgICAgICAgZ2V0IGR1bW15KCkgewotICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgi
ZHVtbXkgdmFsdWUgZ2V0dGVyIGludm9rZWQiKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgfQotICAgIH07Ci0KLSAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0
X2V2ZW50JywgcXVlcnlfZnVuY3Rpb24sIHF1ZXJ5X29wdGlvbnMpOwotICAgIGFzc2VydF90cnVl
KHN1cHBvcnRzQ2FwdHVyZSk7Ci0gICAgc3VwcG9ydHNDYXB0dXJlID0gZmFsc2U7Ci0gICAgZG9j
dW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndGVzdF9ldmVudCcsIHF1ZXJ5X2Z1bmN0aW9uLCBx
dWVyeV9vcHRpb25zKTsKLSAgICBhc3NlcnRfdHJ1ZShzdXBwb3J0c0NhcHR1cmUpOwotICAgIHQu
ZG9uZSgpOwotfSwgIlN1cHBvcnRzIENhcHR1cmUiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlv
bnMvcGFzc2l2ZV9kaXNwYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9i
bGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9wYXNzaXZlX2Rpc3BhdGNoLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI0N2JjZWE3ODUwOGYx
M2E1OGE0NDBlZWY3YmM3NDljMGQ4MWY4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9l
dmVudGxpc3RlbmVyb3B0aW9ucy9wYXNzaXZlX2Rpc3BhdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDkgKzAsMCBAQAotCi1QQVNTIFR3byBhcmd1bWVudCByZWdpc3RlciAKLVBB
U1MgUHJldmVudCBkZWZhdWx0IGNhcHR1cmUgZmFsc2UgCi1QQVNTIFByZXZlbnQgZGVmYXVsdCBj
YXB0dXJlIHRydWUgCi1QQVNTIFByZXZlbnQgZGVmYXVsdCB3aXRoIGVtcHR5IG9iamVjdCAKLVBB
U1MgUHJldmVudCBkZWZhdWx0IHdpdGggcGFzc2l2ZSBmYWxzZSAKLVBBU1MgUHJldmVudCBkZWZh
dWx0IHdpdGggcGFzc2l2ZSB0cnVlICAKLVBBU1MgUGFzc2l2ZSBhbmQgQmxvY2tpbmcgUmVnaXN0
ZXJlZCBIYW5kbGVycyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsv
ZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvcGFzc2l2ZV9kaXNwYXRjaC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlv
bnMvcGFzc2l2ZV9kaXNwYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
YWVmOWVjZjc2MTFlZWU4N2I5ZTVlYjYwZjEwYzZiMDgxYjhkMzMxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5r
L2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL3Bhc3NpdmVfZGlzcGF0Y2guaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MPgotPGJvZHkvPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLQotPCEtLSBUaGlzIHRlc3QgaXMgcnVuIHdpdGggbm9ybWFs
IGxheW91dCB0ZXN0cyB3aXRoIHBhc3NpdmVFdmVudExpc3RlbmVycwotICAgICBlbmFibGVkIGFu
ZCBpbiB2aXJ0dWFsL3N0YWJsZSB3aXRoIHBhc3NpdmVFdmVudExpc3RlbmVycyBkaXNhYmxlZCAt
LT4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3RUd29Bcmd1bWVudFJlZ2lzdGVyKCkgewotICB2
YXIgaGFuZGxlciA9IGZ1bmN0aW9uIGhhbmRsZXIoZSkgewotICAgIGUucHJldmVudERlZmF1bHQo
KTsKLSAgfQotICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgaGFuZGxlcik7Ci0g
IGFzc2VydF9lcXVhbHMoZmFsc2UsIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZl
bnQoJ3Rlc3QnLCB7J2J1YmJsZXMnOiB0cnVlLCAnY2FuY2VsYWJsZSc6IHRydWV9KSkpOwotICBk
b2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0JywgaGFuZGxlcik7Ci0gIGFzc2VydF9l
cXVhbHModHJ1ZSwgZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcs
IHsnYnViYmxlcyc6IHRydWUsICdjYW5jZWxhYmxlJzogdHJ1ZX0pKSk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RQYXNzaXZlVmFsdWUocmVnaXN0ZXJWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdGVzdCkgewot
ICB2YXIgaGFuZGxlciA9IGZ1bmN0aW9uIGhhbmRsZXIoZSkgewotICAgIGUucHJldmVudERlZmF1
bHQoKTsKLSAgfQotICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgaGFuZGxlciwg
cmVnaXN0ZXJWYWx1ZSk7Ci0gIHZhciBldmVudCA9IG5ldyBFdmVudCgndGVzdCcsIHsnYnViYmxl
cyc6IHRydWUsICdjYW5jZWxhYmxlJzogdHJ1ZX0pOwotICBhc3NlcnRfZXF1YWxzKGV4cGVjdGVk
VmFsdWUsIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChldmVudCkpOwotICBhc3NlcnRfZXF1
YWxzKCFleHBlY3RlZFZhbHVlLCBldmVudC5kZWZhdWx0UHJldmVudGVkKTsKLSAgZG9jdW1lbnQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigndGVzdCcsIGhhbmRsZXIsIHJlZ2lzdGVyVmFsdWUpOwotICBh
c3NlcnRfZXF1YWxzKHRydWUsIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQo
J3Rlc3QnLCB7J2J1YmJsZXMnOiB0cnVlLCAnY2FuY2VsYWJsZSc6IHRydWV9KSkpOwotICB0ZXN0
LmRvbmUoKTsKLX0KLQotZnVuY3Rpb24gdGVzdFR3b0hhbmRsZXJzKCkgewotICB2YXIgcGFzc2l2
ZV9jYWxsZWQgPSB1bmRlZmluZWQ7Ci0gIHZhciBibG9ja2luZ19jYWxsZWQgPSB1bmRlZmluZWQ7
Ci0gIHZhciBwYXNzaXZlX2hhbmRsZXIgPSBmdW5jdGlvbiBoYW5kbGVyKGUpIHsKLSAgICBwYXNz
aXZlX2NhbGxlZCA9IHRydWU7Ci0gIH0KLSAgdmFyIGJsb2NraW5nX2hhbmRsZXIgPSBmdW5jdGlv
biBoYW5kbGVyKGUpIHsKLSAgICBibG9ja2luZ19jYWxsZWQgPSB0cnVlOwotICAgIGUucHJldmVu
dERlZmF1bHQoKTsKLSAgfQotICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgcGFz
c2l2ZV9oYW5kbGVyLCB7InBhc3NpdmUiIDogdHJ1ZX0pOwotICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCd0ZXN0JywgYmxvY2tpbmdfaGFuZGxlciwgeyJwYXNzaXZlIiA6IGZhbHNlfSk7Ci0g
IHZhciBldmVudCA9IG5ldyBFdmVudCgndGVzdCcsIHsnYnViYmxlcyc6IHRydWUsICdjYW5jZWxh
YmxlJzogdHJ1ZX0pOwotICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICBh
c3NlcnRfdHJ1ZShwYXNzaXZlX2NhbGxlZCk7Ci0gIGFzc2VydF90cnVlKGJsb2NraW5nX2NhbGxl
ZCk7Ci0gIGFzc2VydF90cnVlKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpOwotICBkb2N1bWVudC5y
ZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0JywgcGFzc2l2ZV9oYW5kbGVyLCB7fSk7Ci0gIGRvY3Vt
ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBibG9ja2luZ19oYW5kbGVyLCB7fSk7Ci19
Ci0KLXRlc3QodGVzdFR3b0FyZ3VtZW50UmVnaXN0ZXIsICJUd28gYXJndW1lbnQgcmVnaXN0ZXIi
KTsKLXRlc3QoZnVuY3Rpb24odCkgeyB0ZXN0UGFzc2l2ZVZhbHVlKGZhbHNlLCBmYWxzZSwgdCk7
IH0sICJQcmV2ZW50IGRlZmF1bHQgY2FwdHVyZSBmYWxzZSIpOwotdGVzdChmdW5jdGlvbih0KSB7
IHRlc3RQYXNzaXZlVmFsdWUodHJ1ZSwgZmFsc2UsIHQpOyB9LCAiUHJldmVudCBkZWZhdWx0IGNh
cHR1cmUgdHJ1ZSIpOwotdGVzdChmdW5jdGlvbih0KSB7IHRlc3RQYXNzaXZlVmFsdWUoe30sIGZh
bHNlLCB0KTsgfSwgIlByZXZlbnQgZGVmYXVsdCB3aXRoIGVtcHR5IG9iamVjdCIpOwotdGVzdChm
dW5jdGlvbih0KSB7IHRlc3RQYXNzaXZlVmFsdWUoe3Bhc3NpdmU6IGZhbHNlfSwgZmFsc2UsIHQp
OyB9LCAiUHJldmVudCBkZWZhdWx0IHdpdGggcGFzc2l2ZSBmYWxzZSIpOwotdGVzdChmdW5jdGlv
bih0KSB7IHRlc3RQYXNzaXZlVmFsdWUoe3Bhc3NpdmU6IHRydWV9LCB0cnVlLCB0KTsgfSwgIlBy
ZXZlbnQgZGVmYXVsdCB3aXRoIHBhc3NpdmUgdHJ1ZSAiKTsKLXRlc3QodGVzdFR3b0hhbmRsZXJz
LCAiUGFzc2l2ZSBhbmQgQmxvY2tpbmcgUmVnaXN0ZXJlZCBIYW5kbGVycyIpOwotCi08L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2
ZW50bGlzdGVuZXJvcHRpb25zL3Bhc3NpdmVfaW5lcXVhbGl0eS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9w
YXNzaXZlX2luZXF1YWxpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiMDQ1MzQyMWNhNjk4MDlkMjcxY2Y2MTA1YjE0MjNiYzU0N2YwYWQ2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL3Bhc3NpdmVfaW5lcXVhbGl0
eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotUEFTUyBQYXNz
aXZlIEhhbmRsZXIgCi1QQVNTIE5vbiBQYXNzaXZlIEhhbmRsZXIgCi1QQVNTIFBhc3NpdmUgSGFu
ZGxlciBBbmQgTm9uIFBhc3NpdmUgQ2FwdHVyaW5nIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9wYXNzaXZl
X2luZXF1YWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRz
L2V2ZW50bGlzdGVuZXJvcHRpb25zL3Bhc3NpdmVfaW5lcXVhbGl0eS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhODlmMzE1YzVlMTU3ZTRhNWRhNmIxY2MyMmIzNWQxZmFlZjBh
ZDBiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL3Bh
c3NpdmVfaW5lcXVhbGl0eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPCFE
T0NUWVBFIEhUTUw+Ci08Ym9keS8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0Pgot
Ci1mdW5jdGlvbiBwYXNzaXZlSGFuZGxlckFkZE5vblBhc3NpdmUoKSB7Ci0gIHZhciBoYW5kbGVy
ID0gZnVuY3Rpb24gaGFuZGxlcihlKSB7Ci0gICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIGFz
c2VydF9mYWxzZShlLmRlZmF1bHRQcmV2ZW50ZWQpOwotICB9Ci0gIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCB7InBhc3NpdmUiOiB0cnVlfSk7Ci0gIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCB7InBhc3NpdmUiOiBmYWxzZX0pOwot
ICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0ZXN0JywgeydidWJibGVz
JzogdHJ1ZSwgJ2NhbmNlbGFibGUnOiB0cnVlfSkpOwotfQotCi1mdW5jdGlvbiBub25QYXNzaXZl
SGFuZGxlckFkZFBhc3NpdmUoKSB7Ci0gIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihl
KSB7Ci0gICAgZS5wcmV2ZW50RGVmYXVsdCgpOwotICAgIGFzc2VydF90cnVlKGUuZGVmYXVsdFBy
ZXZlbnRlZCk7Ci0gIH0KLSAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIGhhbmRs
ZXIsIHsicGFzc2l2ZSI6IGZhbHNlfSk7Ci0gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rl
c3QnLCBoYW5kbGVyLCB7InBhc3NpdmUiOiB0cnVlfSk7Ci0gIGRvY3VtZW50LmJvZHkuZGlzcGF0
Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnLCB7J2J1YmJsZXMnOiB0cnVlLCAnY2FuY2VsYWJsZSc6
IHRydWV9KSk7Ci19Ci0KLWZ1bmN0aW9uIHBhc3NpdmVIYW5kbGVyQWRkTm9uUGFzc2l2ZUNhcHR1
cmluZygpIHsKLSAgdmFyIGhhbmRsZXJzQ2FsbGVkID0gMDsKLSAgdmFyIGhhbmRsZXIgPSBmdW5j
dGlvbiBoYW5kbGVyKGUpIHsKLSAgICBoYW5kbGVyc0NhbGxlZCsrOwotICB9Ci0gIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCB7InBhc3NpdmUiOiB0cnVlfSk7Ci0g
IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCB7InBhc3NpdmUiOiBm
YWxzZSwgImNhcHR1cmUiOiB0cnVlfSk7Ci0gIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChu
ZXcgRXZlbnQoJ3Rlc3QnLCB7J2J1YmJsZXMnOiB0cnVlLCAnY2FuY2VsYWJsZSc6IHRydWV9KSk7
Ci0gIGFzc2VydF9lcXVhbHMoaGFuZGxlcnNDYWxsZWQsIDIsICJIYW5kbGVycyBjYWxsZWQgY29y
cmVjdCBudW1iZXIgb2YgdGltZXMiKTsKLX0KLQotdGVzdChwYXNzaXZlSGFuZGxlckFkZE5vblBh
c3NpdmUsICJQYXNzaXZlIEhhbmRsZXIiKTsKLXRlc3Qobm9uUGFzc2l2ZUhhbmRsZXJBZGRQYXNz
aXZlLCAiTm9uIFBhc3NpdmUgSGFuZGxlciIpOwotdGVzdChwYXNzaXZlSGFuZGxlckFkZE5vblBh
c3NpdmVDYXB0dXJpbmcsICJQYXNzaXZlIEhhbmRsZXIgQW5kIE5vbiBQYXNzaXZlIENhcHR1cmlu
ZyIpOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5r
L2Zhc3QvZXZlbnRzL2V2ZW50bGlzdGVuZXJvcHRpb25zL3Bhc3NpdmVfcXVlcnktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5l
cm9wdGlvbnMvcGFzc2l2ZV9xdWVyeS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNiOTFkOGQ0OGJkMmZlM2FlNmY3N2MwOWNmNjdhOTZiZWUzZGJiNDIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvYmxpbmsvZmFzdC9ldmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvcGFzc2l2ZV9xdWVy
eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBTdXBw
b3J0cyBQYXNzaXZlIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9m
YXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9wYXNzaXZlX3F1ZXJ5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC9ibGluay9mYXN0L2V2ZW50cy9ldmVudGxpc3RlbmVyb3B0aW9ucy9w
YXNzaXZlX3F1ZXJ5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMzc5MDdh
ZDRiM2Q0NWU4MTZlNTczMDZiMDc2YTcxZjFjMTcxZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZmFzdC9l
dmVudHMvZXZlbnRsaXN0ZW5lcm9wdGlvbnMvcGFzc2l2ZV9xdWVyeS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08Ym9keS8+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotCi08IS0tIFRoaXMgdGVzdCBpcyBydW4gd2l0aCBub3JtYWwgbGF5b3V0IHRl
c3RzIHdpdGggcGFzc2l2ZUV2ZW50TGlzdGVuZXJzCi0gICAgIGVuYWJsZWQgYW5kIGluIHZpcnR1
YWwvc3RhYmxlIHdpdGggcGFzc2l2ZUV2ZW50TGlzdGVuZXJzIGRpc2FibGVkIC0tPgotPHNjcmlw
dD4KLXRlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBzdXBwb3J0c1Bhc3NpdmUgPSBmYWxzZTsK
LSAgICB2YXIgcXVlcnlfZnVuY3Rpb24gPSBmdW5jdGlvbihlKSB7fTsKLSAgICB2YXIgcXVlcnlf
b3B0aW9ucyA9IHsKLSAgICAgICAgZ2V0IHBhc3NpdmUoKSB7Ci0gICAgICAgICAgICBzdXBwb3J0
c1Bhc3NpdmUgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9LAot
ICAgICAgICBnZXQgZHVtbXkoKSB7Ci0gICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJkdW1t
eSB2YWx1ZSBnZXR0ZXIgaW52b2tlZCIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfTsKLQotICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3RfZXZl
bnQnLCBxdWVyeV9mdW5jdGlvbiwgcXVlcnlfb3B0aW9ucyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhz
dXBwb3J0c1Bhc3NpdmUsIHRydWUpOwotICAgIHQuZG9uZSgpOwotfSwgIlN1cHBvcnRzIFBhc3Np
dmUiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL0V2ZW50TGlzdGVuZXJPcHRpb25zLWNhcHR1cmUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmZhNDdjMmZmMGJhMTUyY2FhOWMyZTQ3YmFj
NDJlY2RkMjVhOTA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudExpc3RlbmVyT3B0aW9ucy1jYXB0dXJlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIENhcHR1cmUgYm9vbGVhbiBzaG91bGQgYmUgaG9ub3Jl
ZCBjb3JyZWN0bHkgCi1QQVNTIENhcHR1cmUgb3B0aW9uIHNob3VsZCBiZSBob25vcmVkIGNvcnJl
Y3RseSAKLVBBU1MgU3VwcG9ydHMgY2FwdHVyZSBvcHRpb24gCi1QQVNTIEVxdWl2YWxlbmNlIG9m
IG9wdGlvbiB2YWx1ZXMgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudExpc3RlbmVyT3B0aW9ucy1jYXB0dXJl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvRXZlbnRMaXN0ZW5lck9wdGlvbnMtY2FwdHVyZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzNzdiNmM3N2UzMTc3NWZiNTA4YzhlODcxMzU2NjA5MzRlNzZjYzkyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudExpc3RlbmVy
T3B0aW9ucy1jYXB0dXJlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi08IURP
Q1RZUEUgSFRNTD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTx0aXRsZT5FdmVudExpc3RlbmVy
T3B0aW9ucy5jYXB0dXJlPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUmljayBC
eWVycyIgaHJlZj0ibWFpbHRvOnJieWVyc0BjaHJvbWl1bS5vcmciPgotPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1ldmVudGxpc3RlbmVyb3B0
aW9ucy1jYXB0dXJlIj4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxkaXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRl
c3RDYXB0dXJlVmFsdWUoY2FwdHVyZVZhbHVlLCBleHBlY3RlZFZhbHVlKSB7Ci0gIHZhciBoYW5k
bGVyUGhhc2UgPSB1bmRlZmluZWQ7Ci0gIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihl
KSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhoYW5kbGVyUGhhc2UsIHVuZGVmaW5lZCwgIkhhbmRsZXIg
aW52b2tlZCBhZnRlciByZW1vdmUiKTsKLSAgICBoYW5kbGVyUGhhc2UgPSBlLmV2ZW50UGhhc2U7
Ci0gIH0KLSAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIGhhbmRsZXIsIGNhcHR1
cmVWYWx1ZSk7Ci0gIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3Qn
LCB7J2J1YmJsZXMnOiB0cnVlfSkpOwotICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0
ZXN0JywgaGFuZGxlciwgY2FwdHVyZVZhbHVlKTsKLSAgZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2
ZW50KG5ldyBFdmVudCgndGVzdCcsIHsnYnViYmxlcyc6IHRydWV9KSk7Ci0gIGFzc2VydF9lcXVh
bHMoaGFuZGxlclBoYXNlLCBleHBlY3RlZFZhbHVlLCAiSW5jb3JyZWN0IGV2ZW50IHBoYXNlIGZv
ciB2YWx1ZTogIiArIEpTT04uc3RyaW5naWZ5KGNhcHR1cmVWYWx1ZSkpOwotfQotCi10ZXN0KGZ1
bmN0aW9uKCkgewotICB0ZXN0Q2FwdHVyZVZhbHVlKHRydWUsIEV2ZW50LkNBUFRVUklOR19QSEFT
RSk7Ci0gIHRlc3RDYXB0dXJlVmFsdWUoZmFsc2UsIEV2ZW50LkJVQkJMSU5HX1BIQVNFKTsKLSAg
dGVzdENhcHR1cmVWYWx1ZShudWxsLCBFdmVudC5CVUJCTElOR19QSEFTRSk7Ci0gIHRlc3RDYXB0
dXJlVmFsdWUodW5kZWZpbmVkLCBFdmVudC5CVUJCTElOR19QSEFTRSk7Ci0gIHRlc3RDYXB0dXJl
VmFsdWUoMi4zLCBFdmVudC5DQVBUVVJJTkdfUEhBU0UpOwotICB0ZXN0Q2FwdHVyZVZhbHVlKC0x
MDAwLjMsIEV2ZW50LkNBUFRVUklOR19QSEFTRSk7Ci0gIHRlc3RDYXB0dXJlVmFsdWUoTmFOLCBF
dmVudC5CVUJCTElOR19QSEFTRSk7Ci0gIHRlc3RDYXB0dXJlVmFsdWUoKzAuMCwgRXZlbnQuQlVC
QkxJTkdfUEhBU0UpOwotICB0ZXN0Q2FwdHVyZVZhbHVlKC0wLjAsIEV2ZW50LkJVQkJMSU5HX1BI
QVNFKTsKLSAgdGVzdENhcHR1cmVWYWx1ZSgiIiwgRXZlbnQuQlVCQkxJTkdfUEhBU0UpOwotICB0
ZXN0Q2FwdHVyZVZhbHVlKCJBQUFBIiwgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFKTsKLX0sICJDYXB0
dXJlIGJvb2xlYW4gc2hvdWxkIGJlIGhvbm9yZWQgY29ycmVjdGx5Iik7Ci0KLXRlc3QoZnVuY3Rp
b24oKSB7Ci0gIHRlc3RDYXB0dXJlVmFsdWUoe30sIEV2ZW50LkJVQkJMSU5HX1BIQVNFKTsKLSAg
dGVzdENhcHR1cmVWYWx1ZSh7Y2FwdHVyZTp0cnVlfSwgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFKTsK
LSAgdGVzdENhcHR1cmVWYWx1ZSh7Y2FwdHVyZTpmYWxzZX0sIEV2ZW50LkJVQkJMSU5HX1BIQVNF
KTsKLSAgdGVzdENhcHR1cmVWYWx1ZSh7Y2FwdHVyZToyfSwgRXZlbnQuQ0FQVFVSSU5HX1BIQVNF
KTsKLSAgdGVzdENhcHR1cmVWYWx1ZSh7Y2FwdHVyZTowfSwgRXZlbnQuQlVCQkxJTkdfUEhBU0Up
OwotfSwgIkNhcHR1cmUgb3B0aW9uIHNob3VsZCBiZSBob25vcmVkIGNvcnJlY3RseSIpOwotCi10
ZXN0KGZ1bmN0aW9uKCkgewotICB2YXIgc3VwcG9ydHNDYXB0dXJlID0gZmFsc2U7Ci0gIHZhciBx
dWVyeV9vcHRpb25zID0gewotICAgIGdldCBjYXB0dXJlKCkgewotICAgICAgc3VwcG9ydHNDYXB0
dXJlID0gdHJ1ZTsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9LAotICAgIGdldCBkdW1teSgp
IHsKLSAgICAgIGFzc2VydF91bnJlYWNoZWQoImR1bW15IHZhbHVlIGdldHRlciBpbnZva2VkIik7
Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICB9OwotCi0gIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoJ3Rlc3RfZXZlbnQnLCBudWxsLCBxdWVyeV9vcHRpb25zKTsKLSAgYXNzZXJ0X3Ry
dWUoc3VwcG9ydHNDYXB0dXJlLCAiYWRkRXZlbnRMaXN0ZW5lciBkb2Vzbid0IHN1cHBvcnQgdGhl
IGNhcHR1cmUgb3B0aW9uIik7Ci0gIHN1cHBvcnRzQ2FwdHVyZSA9IGZhbHNlOwotICBkb2N1bWVu
dC5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0X2V2ZW50JywgbnVsbCwgcXVlcnlfb3B0aW9ucyk7
Ci0gIGFzc2VydF90cnVlKHN1cHBvcnRzQ2FwdHVyZSwgInJlbW92ZUV2ZW50TGlzdGVuZXIgZG9l
c24ndCBzdXBwb3J0IHRoZSBjYXB0dXJlIG9wdGlvbiIpOwotfSwgIlN1cHBvcnRzIGNhcHR1cmUg
b3B0aW9uIik7Ci0KLWZ1bmN0aW9uIHRlc3RPcHRpb25FcXVhbGl0eShhZGRPcHRpb25WYWx1ZSwg
cmVtb3ZlT3B0aW9uVmFsdWUsIGV4cGVjdGVkRXF1YWxpdHkpIHsKLSAgdmFyIGhhbmRsZXJJbnZv
a2VkID0gZmFsc2U7Ci0gIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gaGFuZGxlcihlKSB7Ci0gICAg
YXNzZXJ0X2VxdWFscyhoYW5kbGVySW52b2tlZCwgZmFsc2UsICJIYW5kbGVyIGludm9rZWQgbXVs
dGlwbGUgdGltZXMiKTsKLSAgICBoYW5kbGVySW52b2tlZCA9IHRydWU7Ci0gIH0KLSAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIGhhbmRsZXIsIGFkZE9wdGlvblZhbHVlKTsKLSAg
ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndGVzdCcsIGhhbmRsZXIsIHJlbW92ZU9wdGlv
blZhbHVlKTsKLSAgZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndGVzdCcs
IHsnYnViYmxlcyc6IHRydWV9KSk7Ci0gIGFzc2VydF9lcXVhbHMoIWhhbmRsZXJJbnZva2VkLCBl
eHBlY3RlZEVxdWFsaXR5LCAiZXF1aXZhbGVuY2Ugb2Ygb3B0aW9ucyAiICsKLSAgICBKU09OLnN0
cmluZ2lmeShhZGRPcHRpb25WYWx1ZSkgKyAiIGFuZCAiICsgSlNPTi5zdHJpbmdpZnkocmVtb3Zl
T3B0aW9uVmFsdWUpKTsKLSAgaWYgKGhhbmRsZXJJbnZva2VkKQotICAgIGRvY3VtZW50LnJlbW92
ZUV2ZW50TGlzdGVuZXIoJ3Rlc3QnLCBoYW5kbGVyLCBhZGRPcHRpb25WYWx1ZSk7Ci19Ci0KLXRl
c3QoZnVuY3Rpb24oKSB7Ci0gIC8vIE9wdGlvbiB2YWx1ZXMgdGhhdCBzaG91bGQgYmUgdHJlYXRl
ZCBhcyBlcXVpdmFsZW50Ci0gIHRlc3RPcHRpb25FcXVhbGl0eSh7fSwgZmFsc2UsIHRydWUpOwot
ICB0ZXN0T3B0aW9uRXF1YWxpdHkoe2NhcHR1cmU6IGZhbHNlfSwgZmFsc2UsIHRydWUpOwotICB0
ZXN0T3B0aW9uRXF1YWxpdHkodHJ1ZSwge2NhcHR1cmU6IHRydWV9LCB0cnVlKTsKLSAgdGVzdE9w
dGlvbkVxdWFsaXR5KHtjYXB0dXJlOiBudWxsfSwgdW5kZWZpbmVkLCB0cnVlKTsKLSAgdGVzdE9w
dGlvbkVxdWFsaXR5KHtjYXB0dXJlOiB0cnVlfSwge2R1bW15OiBmYWxzZSwgY2FwdHVyZTogMX0s
IHRydWUpOwotICB0ZXN0T3B0aW9uRXF1YWxpdHkoe2R1bW15OiB0cnVlfSwgZmFsc2UsIHRydWUp
OwotCi0gIC8vIE9wdGlvbiB2YWx1ZXMgdGhhdCBzaG91bGQgYmUgdHJlYXRlZCBhcyBkaXN0aW5j
dAotICB0ZXN0T3B0aW9uRXF1YWxpdHkodHJ1ZSwgZmFsc2UsIGZhbHNlKTsKLSAgdGVzdE9wdGlv
bkVxdWFsaXR5KHRydWUsIHtjYXB0dXJlOmZhbHNlfSwgZmFsc2UpOwotICB0ZXN0T3B0aW9uRXF1
YWxpdHkoe30sIHRydWUsIGZhbHNlKTsKLQotfSwgIkVxdWl2YWxlbmNlIG9mIG9wdGlvbiB2YWx1
ZXMiKTsKLQotPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>