<?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>237491</bug_id>
          
          <creation_ts>2022-03-04 18:12:07 -0800</creation_ts>
          <short_desc>Remove unnecessary Async attribute in .messages.in files</short_desc>
          <delta_ts>2022-03-07 13:01:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>pascoe</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1848468</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-04 18:12:07 -0800</bug_when>
    <thetext>Remove unnecessary Async attribute in .messages.in files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848469</commentid>
    <comment_count>1</comment_count>
      <attachid>453885</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-04 18:13:01 -0800</bug_when>
    <thetext>Created attachment 453885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848507</commentid>
    <comment_count>2</comment_count>
      <attachid>453885</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-04 22:04:31 -0800</bug_when>
    <thetext>Comment on attachment 453885
Patch

r- because EWS failures look real.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848804</commentid>
    <comment_count>3</comment_count>
      <attachid>453996</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-07 09:39:30 -0800</bug_when>
    <thetext>Created attachment 453996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848844</commentid>
    <comment_count>4</comment_count>
      <attachid>454004</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-07 11:08:45 -0800</bug_when>
    <thetext>Created attachment 454004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848861</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-07 11:34:31 -0800</bug_when>
    <thetext>The test expectations change because there are some test messages.in files that contained unannotated messages with replies, such as TestWithLegacyReceiver.CreatePlugin, which were assumed to be synchronous and now are assumed to be async.  I programmatically verified that no non-test message receivers were like this, and I verified that the output is binary equal before and after this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848882</commentid>
    <comment_count>6</comment_count>
      <attachid>454004</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-07 12:12:46 -0800</bug_when>
    <thetext>Comment on attachment 454004
Patch

r=me assuming the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848911</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-07 13:00:16 -0800</bug_when>
    <thetext>Committed r290903 (248134@main): &lt;https://commits.webkit.org/248134@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454004.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848913</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-07 13:01:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89924967&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453885</attachid>
            <date>2022-03-04 18:13:01 -0800</date>
            <delta_ts>2022-03-07 09:39:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237491-20220304181300.patch</filename>
            <type>text/plain</type>
            <size>223925</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI4ZGJmMTVhODEwOTYxMjQ2
ZjFjZDViYTE0ZDI1NmU5Nzg3MzYxNTQuLmZmMDgzMjNmMTY2N2FlNzI5ZTdlMWU0YzBkNjk3YWM3
YjY0MjhmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjItMDMtMDQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdW5u
ZWNlc3NhcnkgQXN5bmMgYXR0cmlidXRlIGluIC5tZXNzYWdlcy5pbiBmaWxlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NDkxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgYSByZXBs
eSBhbmQgbm8gIlN5bmNocm9ub3VzIiB0aGVuIHdlIGNhbiBpbmZlciB0aGF0IGl0IGlzIGFzeW5j
aHJvbm91cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUZhY3RvcnlQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5z
dGFuY2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFu
YWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1NvY2tldENoYW5uZWwubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
bWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAg
ICAgIChtZXNzYWdlX3RvX3JlcGx5X2ZvcndhcmRfZGVjbGFyYXRpb24pOgorICAgICAgICAobWVz
c2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24pOgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlv
bnNfYW5kX2hlYWRlcnNfZm9yX3JlcGxpZXMpOgorICAgICAgICAoYXN5bmNfbWVzc2FnZV9zdGF0
ZW1lbnQpOgorICAgICAgICAoc3luY19tZXNzYWdlX3N0YXRlbWVudCk6CisgICAgICAgIChnZW5l
cmF0ZV9tZXNzYWdlX2hhbmRsZXIpOgorICAgICAgICAoZ2VuZXJhdGVfbWVzc2FnZV9hcmd1bWVu
dF9kZXNjcmlwdGlvbl9pbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQv
bW9kZWwucHk6CisgICAgICAgIChnZW5lcmF0ZV9nbG9iYWxfbW9kZWwpOgorICAgICAgICAqIFNo
YXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBT
aGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhuUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJT
eXN0ZW0ubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNz
L1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNl
c3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46
CisKIDIwMjItMDMtMDMgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRW5m
b3JjZSBzaWxlbnQgcHVzaCBxdW90YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CmluZGV4IDdmODYwNzM1NDM4NDEyZTRiMzRiZmM1YjBiYjRhNWY3YTAz
ZDA1ZWQuLmVlOGI4ZGRlYmZkOGMzMTI1MTMyM2Y3Zjk4NzgwMGRmZDBhOWQ4M2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE1Niw3ICsx
NTYsNiBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4KLSQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
blByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMzRlZjkyOWY3ODM5
ZDcxZDE4OTMyNTU1ZmIwYTNiNWM3MGQ0MTE2OS4uNzg3YmRkY2E1Mjg5MzRhNDI2OTNmMWFlZGZi
MDdiOWU1Yjg5YWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC00ODUsOSArNDg1LDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXNSZXAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQXV0aG5Qcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdC9XZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzc01lc3NhZ2VzUmVwbGllcy5o
Ci0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC9XZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VzLmgKLSQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdC9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQXV0b21hdGlvblNlc3Npb25NZXNz
YWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkF1
dG9tYXRpb25TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBiOTc1MWJkMDUwYTcwNTcyYzg3MjY3NTAxOTU3OWM2MTUwODcxNDYxLi5mMDdkZDkz
MGMzZGE2MmY2YWU5ZDkzMDE1NDQxODg4NWY4NDBmYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0xNTgsNyArMTU4LDYgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKIAlV
SVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eSBcCiAJVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5IFwKLQlVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkgXAogCVVJUHJvY2Vzcy9XZWJQYXN0ZWJv
YXJkUHJveHkgXAogCVVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eSBcCiAJVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5IFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
OGU5OTI5YTUzNWI0MWUyZDE2N2YyMWU1YjNlZjMyNWJkNWM4MjNjZC4uMDk2MWU5YmUwMmJhNDBm
NGNmN2VlYzQ5YmVmOTRiNWY3ODhmZTVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDkgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+
IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVHUFVQcm9jZXNzKHN0
cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycykKIAotICAgIENyZWF0ZUdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgc3RydWN0IFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHBh
cmFtZXRlcnMpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklk
ZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIEFzeW5jCisgICAgQ3JlYXRlR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllciwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpBdHRhY2ht
ZW50PiBjb25uZWN0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25Jbml0aWFsaXphdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVycykKIAotICAgIFByZXBhcmVU
b1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkgQXN5bmMKKyAgICBQcmVw
YXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCiAgICAgUHJvY2Vz
c0RpZFJlc3VtZSgpCiAKICAgICBBZGRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
c3RydWN0IFdlYktpdDo6R1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnMpCkBA
IC0zNyw3ICszNyw3IEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIFNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCiAgICAgU2V0
T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pOwogICAgIFVw
ZGF0ZVNhbmRib3hBY2Nlc3MoVmVjdG9yPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBleHRlbnNpb25zKTsKLSAgICBVcGRhdGVDYXB0dXJlQWNjZXNzKGJvb2wgYWxsb3dBdWRpb0Nh
cHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1cmUsIGJvb2wgYWxsb3dEaXNwbGF5Q2FwdHVyZSwg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lEKSAtPiAoKSBBc3luYworICAgIFVw
ZGF0ZUNhcHR1cmVBY2Nlc3MoYm9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGVv
Q2FwdHVyZSwgYm9vbCBhbGxvd0Rpc3BsYXlDYXB0dXJlLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBwcm9jZXNzSUQpIC0+ICgpCiAgICAgVXBkYXRlQ2FwdHVyZU9yaWdpbihzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGEsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyIHByb2Nlc3NJRCkKICAgICBBZGRNb2NrTWVkaWFEZXZpY2Uoc3RydWN0IFdlYkNvcmU6
Ok1vY2tNZWRpYURldmljZSBkZXZpY2UpOwogICAgIENsZWFyTW9ja01lZGlhRGV2aWNlcygpOwpA
QCAtNTMsOCArNTMsOCBAQCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICNlbmRpZgogCiAjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKLSAgICBTaG93
V2luZG93UGlja2VyKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4g
ZGV2aWNlKSBBc3luYwotICAgIFNob3dTY3JlZW5QaWNrZXIoKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBkZXZpY2UpIEFzeW5jCisgICAgU2hvd1dpbmRvd1BpY2tl
cigpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZSkKKyAg
ICBTaG93U2NyZWVuUGlja2VyKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4gZGV2aWNlKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtODUs
MTMgKzg1LDEzIEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFNldFNhbXBsZUJ1ZmZlckNvbnRlbnRLZXlTZXNzaW9uU3VwcG9ydEVuYWJsZWQoYm9vbCBlbmFi
bGVkKTsKICNlbmRpZgogCi0gICAgUmVxdWVzdEJpdG1hcEltYWdlRm9yQ3VycmVudFRpbWUoV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
UGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSBoYW5kbGUpIEFzeW5jCisgICAgUmVxdWVzdEJpdG1hcEltYWdlRm9yQ3Vy
cmVudFRpbWUoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyKSAtPiAoV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGUpCiAKICNpZiBFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwg
U3RyaW5nIGtleSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkKICNlbmRpZgog
Ci0gICAgV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoKSAtPiAodWludDY0X3Qg
Y291bnQpIEFzeW5jCisgICAgV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoKSAt
PiAodWludDY0X3QgY291bnQpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggN2ZkMjIy
OGRkMzA4NDc3ZmFkZjY5ZDQ3MGQ1ZmQ1ZTFjOTkxYjRlNC4uNWU2MjVkYmE5NzUyNDBkYmI3ZmVi
YTIyODM4NzUxZjNkMDUzNzNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbgpAQCAtMjYsMTAgKzI2LDEwIEBACiBtZXNzYWdlcyAtPiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKFN0cmluZyBpbnB1dERldmljZUlkLCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgSVBDOjpTZW1hcGhvcmUgcmVuZGVyU2VtYXBob3JlKSAt
PiAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSBT
eW5jaHJvbm91cwogCi0gICAgRGVsZXRlQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgpIEFzeW5jCisgICAgRGVs
ZXRlQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIpIC0+ICgpCiAKLSAgICBTdGFydEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoYm9vbCBp
c1BsYXlpbmcpIEFzeW5jCi0gICAgU3RvcEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoYm9vbCBpc1BsYXlpbmcp
IEFzeW5jCisgICAgU3RhcnRBdWRpb0Rlc3RpbmF0aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKGJvb2wgaXNQbGF5aW5nKQorICAgIFN0
b3BBdWRpb0Rlc3RpbmF0aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKGJvb2wgaXNQbGF5aW5nKQogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIEF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRs
ZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3Jp
cHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmgKaW5kZXgg
MDllYTgzODhjNGQwODIwZTFjNDM4M2VlNWNlZjRlOWU3OGUyM2ZhYS4uYTA1ZmVjYTFlZTcyNDA5
NmU1ZDNkMjllMWRkNmRiYjk0ODU4OWM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuaApAQCAtODAsNyArODAsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlv
bjsKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWwgeyB9CisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
ICAgICBib29sIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2Fn
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzc2YzE1M2YxMDA5MTc5
ZDVhY2Q4ZDY5NGI1N2Q5OGJlZTQ2MWFlOS4uOTk0OTY4YjFmMmJlNWEwY2U5NDRiMjljNDc4MmE3
ZTQ3OGRjZjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI3LDgg
KzI3LDggQEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eSBOb3RSZWZDb3Vu
dGVkIHsKICAgICBDcmVhdGVTZXNzaW9uKHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIpIC0+IChXZWJL
aXQ6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcikgU3luY2hy
b25vdXMKLSAgICBJbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oc3RydWN0IFdlYkNvcmU6OkNE
TUtleVN5c3RlbUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgZW51bTpib29sIFdlYkNvcmU6
OkNETUluc3RhbmNlOjpBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3RpdmVJZGVu
dGlmaWVyc0FsbG93ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1JbnN0YW5jZTo6QWxsb3dQZXJz
aXN0ZW50U3RhdGUgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCkgLT4gKGVudW06Ym9vbCBXZWJDb3Jl
OjpDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpIEFzeW5jCi0gICAgU2V0U2VydmVy
Q2VydGlmaWNhdGUoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGNlcnRpZmljYXRlKSAtPiAoZW51bTpi
b29sIFdlYkNvcmU6OkNETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VzcykgQXN5bmMKKyAg
ICBJbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oc3RydWN0IFdlYkNvcmU6OkNETUtleVN5c3Rl
bUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgZW51bTpib29sIFdlYkNvcmU6OkNETUluc3Rh
bmNlOjpBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3RpdmVJZGVudGlmaWVyc0Fs
bG93ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1JbnN0YW5jZTo6QWxsb3dQZXJzaXN0ZW50U3Rh
dGUgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpDRE1JbnN0
YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpCisgICAgU2V0U2VydmVyQ2VydGlmaWNhdGUoSVBD
OjpTaGFyZWRCdWZmZXJDb3B5IGNlcnRpZmljYXRlKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OkNE
TUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VzcykKICAgICBTZXRTdG9yYWdlRGlyZWN0b3J5
KFN0cmluZyBkaXJlY3RvcnkpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94
eS5tZXNzYWdlcy5pbgppbmRleCA4YWQ2ODI2OWNkN2UwYTY2YTNlNWZlNzUyMWIwYTNmYWVhYzgw
YTVhLi40NzNhMzYxMmViMmM1Y2UzMjI3ZTEyOGZhMDg2NGI5OTdjMjc1NDE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNywxMSArMjcsMTEg
QEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkgTm90UmVmQ291
bnRlZCB7CiAgICAgU2V0TG9nSWRlbnRpZmllcih1aW50NjRfdCBsb2dJZGVudGlmaWVyKQotICAg
IFJlcXVlc3RMaWNlbnNlKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TGljZW5zZVR5cGUg
dHlwZSwgQXRvbVN0cmluZyBpbml0RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBpbml0
RGF0YSkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBtZXNzYWdlLCBTdHJpbmcgc2Vzc2lvbklk
LCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBBc3luYwotICAg
IFVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNz
aW9uOjpMaWNlbnNlVHlwZSB0eXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgcmVzcG9uc2UpIC0+
IChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRLZXlzLCBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29sIHN1Y2NlZWRlZCkgQXN5bmMKLSAgICBM
b2FkU2Vzc2lvbihXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUs
IFN0cmluZyBzZXNzaW9uSWQsIFN0cmluZyBvcmlnaW4pIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yPiBjaGFuZ2VkS2V5cywgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IGNoYW5nZWRFeHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVzc2FnZSwgYm9vbCBzdWNjZWVkZWQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OlNlc3Npb25Mb2FkRmFp
bHVyZSBsb2FkRmFpbHVyZSkgQXN5bmMKLSAgICBDbG9zZVNlc3Npb24oU3RyaW5nIHNlc3Npb25J
ZCkgLT4gKCkgQXN5bmMKLSAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lvbklkLCBX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChXZWJDb3Jl
OjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywgc3RkOjpv
cHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBB
c3luYworICAgIFJlcXVlc3RMaWNlbnNlKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TGlj
ZW5zZVR5cGUgdHlwZSwgQXRvbVN0cmluZyBpbml0RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVy
Q29weSBpbml0RGF0YSkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBtZXNzYWdlLCBTdHJpbmcg
c2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKQor
ICAgIFVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgV2ViQ29yZTo6Q0RNSW5zdGFuY2VT
ZXNzaW9uOjpMaWNlbnNlVHlwZSB0eXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgcmVzcG9uc2Up
IC0+IChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRLZXlzLCBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29sIHN1Y2NlZWRlZCkKKyAgICBMb2Fk
U2Vzc2lvbihXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUsIFN0
cmluZyBzZXNzaW9uSWQsIFN0cmluZyBvcmlnaW4pIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yPiBjaGFuZ2VkS2V5cywgc3RkOjpv
cHRpb25hbDxkb3VibGU+IGNoYW5nZWRFeHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVzc2FnZSwgYm9vbCBzdWNjZWVkZWQsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OlNlc3Npb25Mb2FkRmFpbHVy
ZSBsb2FkRmFpbHVyZSkKKyAgICBDbG9zZVNlc3Npb24oU3RyaW5nIHNlc3Npb25JZCkgLT4gKCkK
KyAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lvbklkLCBXZWJDb3JlOjpDRE1JbnN0
YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxJUEM6OlNo
YXJlZEJ1ZmZlckNvcHk+IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKQogICAgIFN0b3JlUmVjb3Jk
T2ZLZXlVc2FnZShTdHJpbmcgc2Vzc2lvbklkKQogICAgIERpc3BsYXlJRENoYW5nZWQodWludDMy
X3QgZGlzcGxheUlEKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU3OGMyNDk5N2UzYTFhYjY3
N2JjNjJlZWM3ODhkYjBmODZmOTlhYTQuLjlkYTcyMjVlNWQzNTM3YzQxNjhhMWJhY2IyNzBiMmU2
ZTRiODZjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQ0RNUHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcgQEAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAKIG1lc3NhZ2VzIC0+
IFJlbW90ZUNETVByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIEdldFN1cHBvcnRlZENvbmZpZ3Vy
YXRpb24oc3RydWN0IFdlYkNvcmU6OkNETUtleVN5c3RlbUNvbmZpZ3VyYXRpb24gY2FuZGlkYXRl
Q29uZmlndXJhdGlvbiwgZW51bTpib29sIFdlYkNvcmU6OkNETVByaXZhdGU6OkxvY2FsU3RvcmFn
ZUFjY2VzcyBhY2Nlc3MpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNETUtleVN5c3RlbUNv
bmZpZ3VyYXRpb24+IGFjY3VtdWxhdGVkQ29uZmlndXJhdGlvbikgQXN5bmMKKyAgICBHZXRTdXBw
b3J0ZWRDb25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpDRE1LZXlTeXN0ZW1Db25maWd1cmF0
aW9uIGNhbmRpZGF0ZUNvbmZpZ3VyYXRpb24sIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1Qcml2YXRl
OjpMb2NhbFN0b3JhZ2VBY2Nlc3MgYWNjZXNzKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpD
RE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uPiBhY2N1bXVsYXRlZENvbmZpZ3VyYXRpb24pCiAgICAg
Q3JlYXRlSW5zdGFuY2UoKSAtPiAoV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pIFN5bmNocm9ub3VzCiAgICAgTG9hZEFuZEluaXRpYWxpemUoKQogICAg
IFNldExvZ0lkZW50aWZpZXIodWludDY0X3QgbG9nSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHkuaAppbmRleCAzYTE3ZDQxNTYwYjEyMjFmZDc1YjUyYzExOGJlOTRhYjhhYWQ4YmI5Li45
NWVhNTM1MmNjNGU5ZDRhZTM2YzRmMWIzZjBiYmQyOTMxNjIyY2NhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3Rv
cnlQcm94eS5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOwogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVy
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIGJvb2wgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+
JikgZmluYWw7CiAKICAgICAvLyBNZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KaW5kZXggNTZhMWU3
NDRiOWVmMWE5ODEwZjMxOTJkYmE2MjlhNTNjOTllN2FiMS4uZjcwNzI1ODVmMTFjNDkwMjNhMmZj
ZTkyOGExODhiMjZiMDIwYjcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFFbmdp
bmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw4ICsyNCw4IEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYUVuZ2lu
ZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlRGVj
b2RpbmdDb25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpNZWRpYURlY29kaW5nQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ2FwYWJpbGl0aWVz
RGVjb2RpbmdJbmZvIGRlY29kaW5nSW5mbykgQXN5bmMKLSAgICBDcmVhdGVFbmNvZGluZ0NvbmZp
Z3VyYXRpb24oc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5jb2RpbmdDb25maWd1cmF0aW9uIGNvbmZp
Z3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0lu
Zm8gZGVjb2RpbmdJbmZvKSBBc3luYworICAgIENyZWF0ZURlY29kaW5nQ29uZmlndXJhdGlvbihz
dHJ1Y3QgV2ViQ29yZTo6TWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikg
LT4gKHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNhcGFiaWxpdGllc0RlY29kaW5nSW5mbyBkZWNvZGlu
Z0luZm8pCisgICAgQ3JlYXRlRW5jb2RpbmdDb25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpN
ZWRpYUVuY29kaW5nQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ2FwYWJpbGl0aWVzRW5jb2RpbmdJbmZvIGRlY29kaW5nSW5mbykKIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGRhNzFkZTVlMWZjZWQ4
YmQ5OTA5NmFhYzk1ZWZjZTMyMzdjZjU4MWIuLjJjZjRkMzE1MzkzODMyZGJhYTBiOWQ3YjQwMDM5
ZjEyZmJkNjhmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCwx
MSArMjQsMTEgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90
ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgUHJlcGFyZUZvclBsYXliYWNr
KGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJl
bmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpE
eW5hbWljUmFuZ2VNb2RlIG1vZGUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0
aW5nQ29udGV4dElEPiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCisgICAgUHJl
cGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJv
b2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlIG1vZGUpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQp
CiAKLSAgICBMb2FkKFVSTCB1cmwsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+IHNhbmRib3hFeHRlbnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRl
bnRUeXBlLCBTdHJpbmcga2V5U3lzdGVtKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCisgICAgTG9hZChV
UkwgdXJsLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBz
YW5kYm94RXh0ZW5zaW9uLCBXZWJDb3JlOjpDb250ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5n
IGtleVN5c3RlbSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAg
TG9hZE1lZGlhU291cmNlKFVSTCB1cmwsIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBl
LCBib29sIHdlYk1QYXJzZXJFbmFibGVkLCBXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlSWRlbnRp
ZmllciBtZWRpYVNvdXJjZUlkZW50aWZpZXIpIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKKyAgICBMb2Fk
TWVkaWFTb3VyY2UoVVJMIHVybCwgV2ViQ29yZTo6Q29udGVudFR5cGUgY29udGVudFR5cGUsIGJv
b2wgd2ViTVBhcnNlckVuYWJsZWQsIFdlYktpdDo6UmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVy
IG1lZGlhU291cmNlSWRlbnRpZmllcikgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKQogI2VuZGlmCiAgICAgQ2FuY2Vs
TG9hZCgpCiAKQEAgLTU0LDcgKzU0LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBBY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdl
ZChib29sIGNhbkJlQWNjZWxlcmF0ZWQpCiAgICAgU2V0U2hvdWxkRGlzYWJsZVNsZWVwKGJvb2wg
ZGlzYWJsZSkKICAgICBTZXRSYXRlKGRvdWJsZSByYXRlKQotICAgIERpZExvYWRpbmdQcm9ncmVz
cygpIC0+IChib29sIGZsYWcpIEFzeW5jCisgICAgRGlkTG9hZGluZ1Byb2dyZXNzKCkgLT4gKGJv
b2wgZmxhZykKIAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBVcGRh
dGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpCkBAIC0xMDUsNyArMTA1LDcgQEAgbWVzc2Fn
ZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBWaWRlb1Ry
YWNrU2V0U2VsZWN0ZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGJvb2wgc2VsZWN0ZWQpCiAgICAgVGV4dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUgbW9kZSkKIAotICAgIFBlcmZvcm1UYXNrQXRN
ZWRpYVRpbWUoTWVkaWFUaW1lIG1lZGlhVGltZSwgTW9ub3RvbmljVGltZSBtZXNzYWdlVGltZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8TWVkaWFUaW1lPiBtZWRpYVRpbWUsIHN0ZDo6b3B0aW9uYWw8TW9u
b3RvbmljVGltZT4gbW9ub3RvbmljVGltZSkgQXN5bmMKKyAgICBQZXJmb3JtVGFza0F0TWVkaWFU
aW1lKE1lZGlhVGltZSBtZWRpYVRpbWUsIE1vbm90b25pY1RpbWUgbWVzc2FnZVRpbWUpIC0+IChz
dGQ6Om9wdGlvbmFsPE1lZGlhVGltZT4gbWVkaWFUaW1lLCBzdGQ6Om9wdGlvbmFsPE1vbm90b25p
Y1RpbWU+IG1vbm90b25pY1RpbWUpCiAgICAgV291bGRUYWludE9yaWdpbihzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbikgLT4gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gd291
bGRUYWludCkgU3luY2hyb25vdXMKIAogICAgIFNldFZpZGVvUGxheWJhY2tNZXRyaWNzVXBkYXRl
SW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1l
c3NhZ2VzLmluCmluZGV4IGRlZDk4MDUzNjQyYTY4ZmJmYmM1ZTc0NzViZjE2YWIwZTk3ODQ3OWEu
LmE3MmI0MTFmOWY0N2RkN2NmNzViYWY4ZTQ1NWZjN2IzYzIwMDA3MzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI2LDggKzI2LDggQEAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
IE5vdFJlZkNvdW50ZWQgewotICAgIFJlc3BvbnNlUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2spIC0+IChlbnVtOmJvb2wg
V2ViQ29yZTo6U2hvdWxkQ29udGludWVQb2xpY3lDaGVjayBzaG91bGRDb250aW51ZSkgQXN5bmMK
LSAgICBSZWRpcmVjdFJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmV0dXJuUmVxdWVzdCkgQXN5bmMKKyAgICBSZXNwb25zZVJlY2VpdmVkKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKSAtPiAoZW51bTpi
b29sIFdlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgc2hvdWxkQ29udGludWUpCisg
ICAgUmVkaXJlY3RSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
dHVyblJlcXVlc3QpCiAgICAgRGF0YVNlbnQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNUb0JlU2VudCkKICAgICBEYXRhUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGRh
dGEpCiAgICAgQWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VC
dWZmZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4ZjYyMGJhMmU5NmZmZjYz
MmVmM2QwMzJhNWIwYzQ3ODQ5OGZlMjM0Li4xNDdjNTM1MTFhZDg3MzFiNjM2YjQzZDZkMDFmZWUz
N2JhZjBiYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlU291cmNlQnVmZmVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC00MSw3
ICs0MSw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5IE5vdFJlZkNvdW50
ZWQgewogICAgIFJlc2V0VHJhY2tCdWZmZXJzKCkKICAgICBDbGVhclRyYWNrQnVmZmVycygpCiAg
ICAgU2V0QWxsVHJhY2tCdWZmZXJzTmVlZFJhbmRvbUFjY2VzcygpCi0gICAgUmVtb3ZlQ29kZWRG
cmFtZXMoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBNZWRpYVRpbWUgY3VycmVudFRp
bWUsIGJvb2wgaXNFbmRlZCkgLT4gKFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcyBidWZmZXJl
ZCwgdWludDY0X3QgdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKSBBc3luYworICAgIFJlbW92
ZUNvZGVkRnJhbWVzKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgTWVkaWFUaW1lIGN1
cnJlbnRUaW1lLCBib29sIGlzRW5kZWQpIC0+IChXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXMg
YnVmZmVyZWQsIHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcykKICAgICBFdmlj
dENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0RhdGFTaXplLCB1aW50NjRfdCBtYXhpbXVtQnVmZmVy
U2l6ZSwgTWVkaWFUaW1lIGN1cnJlbnRUaW1lLCBNZWRpYVRpbWUgZHVyYXRpb24sIGJvb2wgaXNF
bmRlZCkgLT4gKHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcykgU3luY2hyb25v
dXMKICAgICBSZWVucXVldWVNZWRpYUlmTmVlZGVkKE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1l
KQogICAgIFNldEdyb3VwU3RhcnRUaW1lc3RhbXAoTWVkaWFUaW1lIHRpbWVzdGFtcCkKQEAgLTUz
LDggKzUzLDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlU291cmNlQnVmZmVyUHJveHkgTm90UmVmQ291
bnRlZCB7CiAgICAgU2V0QXBwZW5kV2luZG93RW5kKE1lZGlhVGltZSBhcHBlbmRXaW5kb3dFbmQp
CiAgICAgU2Vla1RvVGltZShNZWRpYVRpbWUgbWVkaWFUaW1lKQogICAgIFVwZGF0ZVRyYWNrSWRz
KFZlY3RvcjxzdGQ6OnBhaXI8V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBX
ZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI+PiBpZGVudGlmaWVyUGFpcnMpCi0g
ICAgQnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHNhbXBsZXMpIEFz
eW5jCi0gICAgRW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHNhbXBs
ZXMpIEFzeW5jCisgICAgQnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJZChXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+
IHNhbXBsZXMpCisgICAgRW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+
IHNhbXBsZXMpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5tZXNz
YWdlcy5pbgppbmRleCAxYzMxZGI2YjE0N2VmYzUzYzdkNDUwMDZjOWEyNGYwYmVhM2VhMWU5Li5i
YTgzMWVkNDllNWM0OTNlZGQzMmJhNzJiZjE5YjUwNzgxNDI3OGEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0TWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyIE5vdFJl
ZkNvdW50ZWQgewotICAgIENyZWF0ZVVuaXQoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1lQ2h1bmtTaXpl
KSBBc3luYworICAgIENyZWF0ZVVuaXQoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1lQ2h1bmtTaXplKQog
ICAgIERlbGV0ZVVuaXQoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmllcikKIAogICAgIFN0YXJ0VW5pdChXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMsIElQQzo6U2VtYXBob3JlIHJlbmRlclNlbWFwaG9yZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5tZXNzYWdlcy5pbgppbmRleCA1MjIxMGRhZWJiMzY4Y2Y0MTczNjA4NTdmMzExNWJhZTUzZTA2
YmM4Li45YjdkOTZmNjNkZDQyOGYyYTBkY2NmYjY1OGUyZTg5YTljNmY2MDA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLm1lc3NhZ2VzLmluCkBAIC0yNywxMCArMjcsMTAgQEAgbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3VudGVkIHsKICAgICBBdWRpb1NhbXBsZXNTdG9yYWdl
Q2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMpCiAgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKICAgICBWaWRlb1NhbXBsZUF2YWlsYWJsZShzdHJ1Y3Qg
V2ViS2l0OjpTaGFyZWRWaWRlb0ZyYW1lIGZyYW1lKQotICAgIEZldGNoRGF0YSgpIC0+IChJUEM6
OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBkb3VibGUgdGltZUNvZGUpIEFzeW5jCi0gICAgU3RvcFJl
Y29yZGluZygpIC0+ICgpIEFzeW5jCi0gICAgUGF1c2UoKSAtPiAoKSBBc3luYwotICAgIFJlc3Vt
ZSgpIC0+ICgpIEFzeW5jCisgICAgRmV0Y2hEYXRhKCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSBi
dWZmZXIsIGRvdWJsZSB0aW1lQ29kZSkKKyAgICBTdG9wUmVjb3JkaW5nKCkgLT4gKCkKKyAgICBQ
YXVzZSgpIC0+ICgpCisgICAgUmVzdW1lKCkgLT4gKCkKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1l
U2VtYXBob3JlKElQQzo6U2VtYXBob3JlIHNlbWFwaG9yZSkKICAgICBTZXRTaGFyZWRWaWRlb0Zy
YW1lTWVtb3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSkK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDgyOGI4
YWE2OGU5MGE5YjI1ZTFlODcwZjZjOTBhOGZkN2M1YTcwNzAuLjAxN2E1MGU4MzIwNDcxYzI5YTRm
MzNiYjZhMjVkZGMxMTQ1ZWEyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewotICAgIENyZWF0ZVJlY29y
ZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGJv
b2wgaGFzVmlkZW8sIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMg
b3B0aW9ucykgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gY3JlYXRp
b25FcnJvciwgU3RyaW5nIG1pbWVUeXBlLCB1bnNpZ25lZCBhdWRpb0JpdFJhdGUsIHVuc2lnbmVk
IHZpZGVvQml0UmF0ZSkgQXN5bmMKKyAgICBDcmVhdGVSZWNvcmRlcihXZWJLaXQ6Ok1lZGlhUmVj
b3JkZXJJZGVudGlmaWVyIGlkLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zIG9wdGlvbnMpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGNyZWF0aW9uRXJyb3IsIFN0cmluZyBtaW1l
VHlwZSwgdW5zaWduZWQgYXVkaW9CaXRSYXRlLCB1bnNpZ25lZCB2aWRlb0JpdFJhdGUpCiAgICAg
UmVsZWFzZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQpCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgppbmRleCA5ZDFlYzc3ZjIxMWYxODZlNTg0YTIxZDYxYjRkY2Y4MTk1ZWRjMGRhLi4x
OGZiYmFjMWUyYzE0YjYyNjEyYjViOTJlNDhkMDhjZjYzN2VkMWE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0y
NCw3ICsyNCw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlciBXYW50c0FzeW5jRGlzcGF0Y2hNZXNzYWdlIHsKLSAgICBDcmVh
dGVMYXllcihXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWQsIGJv
b2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSBzaXplKSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElEKSBBc3luYworICAgIENy
ZWF0ZUxheWVyKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCwg
Ym9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplIHNpemUpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SUQpCiAgICAgUmVsZWFz
ZUxheWVyKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCkKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNv
b2tpZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA2ZmRmNTc3MmFhNmFhZTM5
NDAyYTlhODlmNTZjODRmN2JkNDM1ODVmLi40NmQ5NzA4YmRiOGVhNzQyMTNhNDYzNmNhMzE5YTA5
ZGU4N2YyNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsMTkg
KzI0LDE5IEBACiAgKi8KICAKIG1lc3NhZ2VzIC0+IFdlYkNvb2tpZU1hbmFnZXIgTm90UmVmQ291
bnRlZCB7Ci0gICAgdm9pZCBHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIC0+IChWZWN0b3I8U3RyaW5nPiBob3N0bmFtZXMpIEFzeW5jCisgICAgdm9pZCBH
ZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0
b3I8U3RyaW5nPiBob3N0bmFtZXMpCiAgICAgdm9pZCBEZWxldGVDb29raWVzRm9ySG9zdG5hbWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFN0cmluZz4gaG9zdG5hbWVzKQogICAg
IHZvaWQgRGVsZXRlQWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKLSAgICB2
b2lkIFNldENvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+IGNvb2tpZSkgLT4gKCkgQXN5bmMKLSAgICB2b2lkIFNldENvb2tpZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzLCBVUkwgdXJs
LCBVUkwgbWFpbkRvY3VtZW50VVJMKSAtPiAoKSBBc3luYwotICAgIHZvaWQgR2V0QWxsQ29va2ll
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBj
b29raWVzKSBBc3luYwotICAgIHZvaWQgR2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYwot
ICAgIHZvaWQgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdl
YkNvcmU6OkNvb2tpZSBjb29raWUpIC0+ICgpIEFzeW5jCi0gICAgdm9pZCBEZWxldGVBbGxDb29r
aWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUp
IC0+ICgpIEFzeW5jCisgICAgdm9pZCBTZXRDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWUpIC0+ICgpCisgICAgdm9pZCBTZXRDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29v
a2llcywgVVJMIHVybCwgVVJMIG1haW5Eb2N1bWVudFVSTCkgLT4gKCkKKyAgICB2b2lkIEdldEFs
bENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gY29va2llcykKKyAgICB2b2lkIEdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgdXJsKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKKyAgICB2
b2lkIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3Jl
OjpDb29raWUgY29va2llKSAtPiAoKQorICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVk
U2luY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXYWxsVGltZSB0aW1lKSAtPiAoKQogCi0g
ICAgdm9pZCBTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJDb3JlOjpI
VFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgLT4gKCkgQXN5bmMKLSAgICB2b2lkIEdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoZW51bTp1
aW50OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSBBc3luYworICAg
IHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIC0+ICgpCisgICAgdm9pZCBHZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGVudW06dWludDhfdCBX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKICAgICAKICAgICB2b2lkIFN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
dm9pZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KaW5kZXggZTVm
Y2Y5NWRhNWViNzhiMmQ0ZmY5MTBhZWVmYTkzNTNlNTY4YzU4MS4uM2RkYzkxZTgzZWQyMDdkMmNi
NTQxMDhkMmFiZmI2NGMyYzdkODE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5tZXNzYWdlcy5pbgpAQCAtMjMsNSArMjMsNSBAQAogbWVzc2FnZXMgLT4gTmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeSBOb3RSZWZDb3VudGVkIHsKICAgICBSZWdpc3RlckNoYW5u
ZWwoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lKSBXYW50
c0Nvbm5lY3Rpb24KICAgICBVbnJlZ2lzdGVyQ2hhbm5lbChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luIG9yaWdpbiwgU3RyaW5nIG5hbWUpIFdhbnRzQ29ubmVjdGlvbgotICAgIFBvc3RNZXNz
YWdlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgc3Ry
dWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UpIC0+ICgpIEFzeW5j
IFdhbnRzQ29ubmVjdGlvbgorICAgIFBvc3RNZXNzYWdlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzIG1lc3NhZ2UpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbgogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYWZlNmJiMTlmMTE3OGNjZWZmNWY5
NmExZDlhOTIwNzJmYTQxZTc2MS4uYTVhMmZkNjI4YzZkYTFmZmIwYjA0OGFhY2ZiYWUwNmFlZWY5
OTQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0z
MCw5ICszMCw5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQpCiAgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJLaXQ6OldlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCiAgICAgUHJl
ZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQotICAgIFNlbmRIMlBpbmcoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFNlbmRIMlBpbmcoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoRXhwZWN0
ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KQogICAgIFByZWNvbm5l
Y3RUbyhzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcj4gcHJl
Y29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMgbG9hZFBhcmFtZXRlcnMpOwotICAgIElzUmVzb3VyY2VMb2FkRmluaXNoZWQoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChib29s
IGlzRmluaXNoZWQpIEFzeW5jCisgICAgSXNSZXNvdXJjZUxvYWRGaW5pc2hlZChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKGJvb2wg
aXNGaW5pc2hlZCkKIAogICAgIFN0YXJ0RG93bmxvYWQoV2ViS2l0OjpEb3dubG9hZElEIGRvd25s
b2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBlbnVtOmJvb2wgc3RkOjpv
cHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLCBTdHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cklkZW50aWZpZXI+IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2Fk
SUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4pCkBAIC01NSw3ICs1NSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwg
dXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRl
bnRUeXBlKQogICAgIFVucmVnaXN0ZXJCbG9iVVJMKFVSTCB1cmwpCiAgICAgQmxvYlNpemUoVVJM
IHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNpemUpIFN5bmNocm9ub3VzCi0gICAgV3JpdGVCbG9i
c1RvVGVtcG9yYXJ5RmlsZXNGb3JJbmRleGVkREIoVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+
IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMpIEFzeW5jCisgICAgV3JpdGVCbG9ic1RvVGVtcG9y
YXJ5RmlsZXNGb3JJbmRleGVkREIoVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+IChWZWN0b3I8
U3RyaW5nPiBmaWxlTmFtZXMpCiAgICAgUmVnaXN0ZXJCbG9iVVJMSGFuZGxlKFVSTCB1cmwpOwog
ICAgIFVucmVnaXN0ZXJCbG9iVVJMSGFuZGxlKFVSTCB1cmwpOwogCkBAIC02OSw5ICs2OSw5IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBSZW1v
dmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAgICAgTG9nVXNlckludGVyYWN0aW9u
KFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKLSAgICBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gc3Rh
dGlzdGljcykgLT4gKCkgQXN5bmMKLSAgICBIYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMK
LSAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJG
cmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3
ZWJQYWdlSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwg
ZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NTY29wZSBzY29wZSkgLT4gKHN0cnVjdCBX
ZWJDb3JlOjpSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdCByZXN1bHQpIEFzeW5jCisgICAgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3M+IHN0YXRpc3RpY3MpIC0+ICgpCisgICAgSGFzU3RvcmFnZUFjY2VzcyhXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3Mp
CisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3Vi
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlELCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQs
IGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUgc2NvcGUpIC0+IChzdHJ1Y3Qg
V2ViQ29yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQgcmVzdWx0KQogICAgIFJlcXVlc3RT
dG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWlu
SW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJQYWdl
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5lckRvbWFpbikKICNlbmRpZgogCkBA
IC04NCwxNiArODQsMTYgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmlj
cyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgcmVzb3VyY2VMb2FkSWRlbnRpZmll
cikgLT4gKFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyBuZXR3b3JrTWV0cmljcykgU3luY2hy
b25vdXMKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBFc3RhYmxpc2hTV0NvbnRl
eHRDb25uZWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXIpIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKSAtPiAo
KQogICAgIENsb3NlU1dDb250ZXh0Q29ubmVjdGlvbigpCiAjZW5kaWYKIAotICAgIEVzdGFibGlz
aFNoYXJlZFdvcmtlckNvbnRleHRDb25uZWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAt
PiAoKSBBc3luYworICAgIEVzdGFibGlzaFNoYXJlZFdvcmtlckNvbnRleHRDb25uZWN0aW9uKFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoKQogICAgIENsb3NlU2hhcmVkV29ya2VyQ29udGV4
dENvbm5lY3Rpb24oKQogCi0gICAgQ3JlYXRlUlRDUHJvdmlkZXIoKSAtPiAoKSBBc3luYworICAg
IENyZWF0ZVJUQ1Byb3ZpZGVyKCkgLT4gKCkKICNpZiBFTkFCTEUoV0VCX1JUQykKLSAgICBDb25u
ZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRl
bnRpZmllciBoYW5kbGVyKSAtPiAoc3RkOjpvcHRpb25hbDxib29sPiByZXN1bHQpIEFzeW5jCisg
ICAgQ29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Uoc3RydWN0IFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaGFuZGxlcikgLT4gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcmVzdWx0KQog
I2VuZGlmCiAKICAgICBVcGRhdGVRdW90YUJhc2VkT25TcGFjZVVzYWdlRm9yVGVzdGluZyhzdHJ1
Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikKQEAgLTEwMSwxNCArMTAxLDE0IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBFbnRhbmdsZUxvY2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZShzdHJ1Y3QgV2ViQ29y
ZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIGxvY2FsLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBv
cnRJZGVudGlmaWVyIHJlbW90ZSkKICAgICBNZXNzYWdlUG9ydERpc2VudGFuZ2xlZChzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIGxvY2FsKQogICAgIE1lc3NhZ2VQb3J0Q2xv
c2VkKHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgbG9jYWwpCi0gICAgVGFr
ZUFsbE1lc3NhZ2VzRm9yUG9ydChzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVy
IHBvcnQpIC0+IChWZWN0b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+IG1lc3Nh
Z2VzLCB1aW50NjRfdCBtZXNzYWdlQmF0Y2hJZGVudGlmaWVyKSBBc3luYworICAgIFRha2VBbGxN
ZXNzYWdlc0ZvclBvcnQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0
KSAtPiAoVmVjdG9yPFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiBtZXNzYWdlcywg
dWludDY0X3QgbWVzc2FnZUJhdGNoSWRlbnRpZmllcikKICAgICBQb3N0TWVzc2FnZVRvUmVtb3Rl
KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHJlbW90ZSkKLSAgICBDaGVja1JlbW90ZVBv
cnRGb3JBY3Rpdml0eShzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQp
IC0+IChib29sIGhhc0FjdGl2aXR5KSBBc3luYworICAgIENoZWNrUmVtb3RlUG9ydEZvckFjdGl2
aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKGJvb2wg
aGFzQWN0aXZpdHkpCiAgICAgRGlkRGVsaXZlck1lc3NhZ2VQb3J0TWVzc2FnZXModWludDY0X3Qg
bWVzc2FnZUJhdGNoSWRlbnRpZmllcikKICAgICBSZWdpc3RlclVSTFNjaGVtZXNBc0NPUlNFbmFi
bGVkKFZlY3RvcjxTdHJpbmc+IHNjaGVtZXMpOwogICAgIFNldENPUlNEaXNhYmxpbmdQYXR0ZXJu
cyhXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgVmVjdG9yPFN0cmluZz4g
cGF0dGVybnMpCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIEdldFByb2Nlc3NEaXNwbGF5TmFtZShh
dWRpdF90b2tlbl90IGF1ZGl0VG9rZW4pIC0+IChTdHJpbmcgZGlzcGxheU5hbWUpIEFzeW5jCisg
ICAgR2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbikgLT4gKFN0
cmluZyBkaXNwbGF5TmFtZSkKICAgICBVcGRhdGVBY3RpdmVQYWdlcyhTdHJpbmcgbmFtZSwgVmVj
dG9yPFN0cmluZz4gYWN0aXZlUGFnZXNPcmlnaW5zLCBhdWRpdF90b2tlbl90IGF1ZGl0VG9rZW4p
CiAjZW5kaWYKICAgICBTZXRSZXNvdXJjZUxvYWRTY2hlZHVsaW5nTW9kZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpMb2FkU2NoZWR1bGlu
Z01vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDc0OTkyNTdiMzQxNDBiZTFiMjhlN2RiMDcy
MDFiYzA4Mzc2NjNkOGMuLjc4MWZjNDcyMGQ0ZjAyMTc1MjNlMTcwZDhjYTY2NzI2NmQ2ZGYyNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1By
b2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhzdHJ1
Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzKQogCi0gICAgQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiBjb25uZWN0
aW9uSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgY29va2llQWNjZXB0UG9saWN5KSBBc3luYworICAgIENyZWF0ZU5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNo
bWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSkKIAogI2lmIFVTRShTT1VQKQogICAg
IFNldElnbm9yZVRMU0Vycm9ycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgaWdub3Jl
VExTRXJyb3JzKQpAQCAtNDIsMTggKzQyLDE4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBBZGRXZWJzaXRlRGF0YVN0b3JlKHN0cnVjdCBXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKTsK
ICAgICBEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKLSAgICBGZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJz
aXRlRGF0YSB3ZWJzaXRlRGF0YSkgQXN5bmMKLSAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkgLT4gKCkgQXN5bmMKLSAgICBE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMsIFZlY3RvcjxTdHJpbmc+IGNvb2tp
ZUhvc3ROYW1lcywgVmVjdG9yPFN0cmluZz4gSFNUU0NhY2hlSG9zdE5hbWVzLCBWZWN0b3I8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IHJlZ2lzdHJhYmxlRG9tYWlucykgLT4gKCkgQXN5bmMK
LSAgICBSZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VVJMIG9sZERvbWFpbiwgVVJMIG5ld0RvbWFpbiwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKSAtPiAoKSBBc3luYworICAgIEZldGNoV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0
Y2hPcHRpb24+IGZldGNoT3B0aW9ucykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdl
YnNpdGVEYXRhKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBX
YWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4gb3JpZ2lucywgVmVjdG9yPFN0cmluZz4gY29va2llSG9zdE5hbWVzLCBWZWN0b3I8U3Ry
aW5nPiBIU1RTQ2FjaGVIb3N0TmFtZXMsIFZlY3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bj4gcmVnaXN0cmFibGVEb21haW5zKSAtPiAoKQorICAgIFJlbmFtZU9yaWdpbkluV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgb2xkRG9tYWluLCBVUkwgbmV3RG9tYWlu
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+
ICgpCiAKICAgICBEb3dubG9hZFJlcXVlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFN0cmluZyBzdWdnZXN0ZWRGaWxl
bmFtZSkKICAgICBSZXN1bWVEb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktp
dDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdW1lRGF0YSwg
U3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUsIGVudW06Ym9vbCBXZWJLaXQ6OkNhbGxEb3dubG9hZERpZFN0YXJ0IGNhbGxE
b3dubG9hZERpZFN0YXJ0KQotICAgIENhbmNlbERvd25sb2FkKFdlYktpdDo6RG93bmxvYWRJRCBk
b3dubG9hZElEKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VtZURhdGEpIEFzeW5jCisgICAg
Q2FuY2VsRG93bmxvYWQoV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQpIC0+IChJUEM6OkRh
dGFSZWZlcmVuY2UgcmVzdW1lRGF0YSkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBQdWJsaXNo
RG93bmxvYWRQcm9ncmVzcyhXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgVVJMIHVybCwg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkK
ICNlbmRpZgotICAgIERhdGFUYXNrV2l0aFJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHBhZ2VJRCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSkgLT4g
KFdlYktpdDo6RGF0YVRhc2tJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyKSBBc3luYworICAgIERh
dGFUYXNrV2l0aFJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSkgLT4gKFdlYktpdDo6RGF0YVRh
c2tJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyKQogICAgIENhbmNlbERhdGFUYXNrKFdlYktpdDo6
RGF0YVRhc2tJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiAgICAgQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQogICAgIEFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCgpCkBAIC02NSw3ICs2NSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdv
cmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogICAgIFNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgZW5hYmxlZCkgLT4gKCkgU3luY2hyb25vdXMKIAot
ICAgIEZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisg
ICAgRmx1c2hDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKIAogICAgIEFs
bG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8gY2VydGlmaWNhdGUsIFN0cmluZyBob3N0KQogICAgIEFsbG93VExTQ2VydGlmaWNhdGVDaGFp
bkZvckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSkKQEAgLTc0LDc5ICs3NCw3OSBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0Q2FjaGVNb2RlbFN5bmNo
cm9ub3VzbHlGb3JUZXN0aW5nKGVudW06dWludDhfdCBXZWJLaXQ6OkNhY2hlTW9kZWwgY2FjaGVN
b2RlbCkgLT4gKCkgU3luY2hyb25vdXMKIAogICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHlGb3JUZXN0aW5nU3luYygpIC0+ICgpIFN5bmNocm9ub3VzCi0gICAgUHJlcGFyZVRvU3VzcGVu
ZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKSBBc3luYworICAgIFByZXBhcmVUb1N1
c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkKICAgICBQcm9jZXNzRGlkUmVz
dW1lKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktp
dDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6Okxh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVk
KTsKIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIENs
ZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBDbGVhclVz
ZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIER1bXBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFN0cmluZyBkdW1wZWRT
dGF0aXN0aWNzKSBBc3luYworICAgIENsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikg
LT4gKCkKKyAgICBDbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKQorICAgIER1
bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFN0
cmluZyBkdW1wZWRTdGF0aXN0aWNzKQogICAgIFNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBlbmFibGVkKQogICAgIFNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQoYm9vbCBlbmFibGVkKQotICAgIFVwZGF0
ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFZlY3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1RvQmxvY2spIC0+
ICgpIEFzeW5jCi0gICAgSXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc0dyYW5k
ZmF0aGVyZWQpIEFzeW5jCi0gICAgSXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJv
b2wgaXNQcmV2YWxlbnQpIEFzeW5jCi0gICAgSXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21h
aW4pIC0+IChib29sIGlzVmVyeVByZXZhbGVudCkgQXN5bmMKLSAgICBTZXRBZ2VDYXBGb3JDbGll
bnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8U2Vj
b25kcz4gc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRMYXN0U2VlbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBT
ZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVz
b3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMSwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RT
ZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1Zl
cnlQcmV2YWxlbnQsIHVpbnQ2NF90IGRhdGFSZWNvcmRzUmVtb3ZlZCkgLT4gKCkgQXN5bmMKLSAg
ICBJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCB1aW50NjRfdCBu
dW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29s
IGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQp
IC0+ICgpIEFzeW5jCi0gICAgU2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKLSAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAt
PiAoKSBBc3luYwotICAgIElzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGlzRXBoZW1lcmFsKSBBc3luYwotICAgIEhhZFVz
ZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFz
eW5jCi0gICAgSXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0aW9u
KSBBc3luYwotICAgIEhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2Vy
SW50ZXJhY3Rpb24pIEFzeW5jCi0gICAgR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFN0cmluZz4gZG9tYWlucykgQXN5bmMKLSAg
ICBJc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9vbCBpc1JlZGlyZWN0
aW5nVG8pIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1
YmZyYW1lVW5kZXIpIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVz
b3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAt
PiAoYm9vbCBpc1N1YnJlc291cmNlVW5kZXIpIEFzeW5jCi0gICAgRG9tYWluSURFeGlzdHNJbkRh
dGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50IGRvbWFpbklEKSAtPiAoYm9vbCBl
eGlzdHMpIEFzeW5jCisgICAgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9y
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluPiBkb21haW5zVG9CbG9jaykgLT4gKCkKKyAgICBJc0dyYW5kZmF0aGVyZWQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4p
IC0+IChib29sIGlzR3JhbmRmYXRoZXJlZCkKKyAgICBJc1ByZXZhbGVudFJlc291cmNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9t
YWluKSAtPiAoYm9vbCBpc1ByZXZhbGVudCkKKyAgICBJc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdl
dERvbWFpbikgLT4gKGJvb2wgaXNWZXJ5UHJldmFsZW50KQorICAgIFNldEFnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNv
bmRzPiBzZWNvbmRzKSAtPiAoKQorICAgIFNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFNlY29uZHMg
c2Vjb25kcykgLT4gKCkKKyAgICBNZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4xLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFk
VXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwg
dWludDY0X3QgZGF0YVJlY29yZHNSZW1vdmVkKSAtPiAoKQorICAgIEluc2VydEV4cGlyZWRTdGF0
aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0aW5nRGF5
c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxC
dXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkKKyAgICBTZXRQcmV2
YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKQorICAgIFNldFByZXZhbGVudFJlc291cmNl
Rm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpCisgICAgSXNSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRXBoZW1lcmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgaXNFcGhlbWVy
YWwpCisgICAgSGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJ
bnRlcmFjdGlvbikKKyAgICBJc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkRvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24pCisgICAgSGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVz
ZXJJbnRlcmFjdGlvbikKKyAgICBHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8U3RyaW5nPiBkb21haW5zKQorICAgIElzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+IChib29sIGlzUmVkaXJlY3RpbmdUbykKKyAg
ICBJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzU3ViZnJhbWVVbmRlcikKKyAg
ICBJc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzU3VicmVzb3VyY2VV
bmRlcikKKyAgICBEb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBpbnQgZG9tYWluSUQpIC0+IChib29sIGV4aXN0cykKICAgICBMb2dGcmFtZU5hdmlnYXRp
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
YXJnZXREb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwg
Ym9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2Fk
LCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKQotICAgIExvZ1VzZXJJbnRlcmFj
dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFJlc2V0UGFyYW1ldGVyc1RvRGVmYXVs
dFZhbHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU2NoZWR1
bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0
ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2UsIGVudW06Ym9vbCBXZWJLaXQ6OlNo
b3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcyBzaG91bGRHcmFuZGZhdGhlcikgLT4gKCkgQXN5bmMK
LSAgICBTY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKLSAgICBTY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nl
c3NpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwotICAgIFN0YXRpc3Rp
Y3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29s
IGhhc0FsbFRhYmxlcykgQXN5bmMKLSAgICBTZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJl
c291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkg
QXN5bmMKLSAgICBTZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIGJvb2wgaXNHcmFuZGZhdGhl
cmVkKSAtPiAoKSBBc3luYwotICAgIEdldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFy
eShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhPiB0aGlyZFBhcnR5RGF0YSkgQXN5
bmMKLSAgICBTZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
ZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0TWF4U3RhdGlzdGljc0VudHJpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCkgLT4g
KCkgQXN5bmMKLSAgICBTZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAg
U2V0UHJ1bmVFbnRyaWVzRG93blRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qg
bWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCi0gICAgU2V0U2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBi
b29sIHZhbHVlKSAtPiAoKSBBc3luYwotICAgIFNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBB
c3luYwotICAgIFNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBk
ZWJ1Z01vZGUpIC0+ICgpIEFzeW5jCi0gICAgU2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VE
b21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJh
bWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAo
KSBBc3luYwotICAgIFNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5
bmMKLSAgICBTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoKSBBc3luYwot
ICAgIFNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluKSAtPiAoKSBBc3luYwot
ICAgIFNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRp
cmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRU
b0RvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFp
bikgLT4gKCkgQXN5bmMKLSAgICBSZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3Vy
Y2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBMb2dVc2VySW50
ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkKKyAgICBSZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRW
YWx1ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQorICAgIFNjaGVkdWxlQ2xlYXJJ
bk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlv
bmFsPFdhbGxUaW1lPiBtb2RpZmllZFNpbmNlLCBlbnVtOmJvb2wgV2ViS2l0OjpTaG91bGRHcmFu
ZGZhdGhlclN0YXRpc3RpY3Mgc2hvdWxkR3JhbmRmYXRoZXIpIC0+ICgpCisgICAgU2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCisgICAg
U2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgLT4gKCkKKyAgICBTdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBoYXNBbGxUYWJsZXMpCisgICAgU2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpCisgICAgU2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWlu
LCBib29sIGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkKKyAgICBHZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YVN1bW1hcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4gdGhpcmRQ
YXJ0eURhdGEpCisgICAgU2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKQorICAgIFNldE1heFN0YXRpc3RpY3NFbnRyaWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+
ICgpCisgICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKQorICAgIFNldFBydW5lRW50
cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRy
eUNvdW50KSAtPiAoKQorICAgIFNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJl
Y29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkK
KyAgICBTZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkKKyAgICBTZXRJc1J1bm5pbmdSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUp
IC0+ICgpCisgICAgU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGJvb2wgZGVidWdNb2RlKSAtPiAoKQorICAgIFNldFZlcnlQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKQorICAgIFNldFN1YmZyYW1lVW5kZXJUb3BGcmFt
ZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURv
bWFpbikgLT4gKCkKKyAgICBTZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJj
ZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgp
CisgICAgU2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkKKyAgICBTZXRT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbikgLT4gKCkKKyAgICBTZXRUaW1lVG9M
aXZlVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNv
bmRzKSAtPiAoKQorICAgIFNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpCisgICAg
U2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4pIC0+ICgpCisgICAgUmVzZXRDYWNoZU1h
eEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
ICgpCiAgICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b0RvbWFpbiwgT3B0aW9uU2V0PFdlYkNvcmU6OkNy
b3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+IG5hdmlnYXRpb25EYXRhVHJhbnNm
ZXIsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQotICAgIFNldENyb3NzU2l0ZUxvYWRXaXRoTGlu
a0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9Eb21haW4pIC0+ICgpIEFzeW5jCi0gICAgUmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVj
b3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwot
ICAgIERlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tp
ZXMpIC0+ICgpIEFzeW5jCi0gICAgSGFzSXNvbGF0ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoYm9vbCBoYXNJ
c29sYXRlZFNlc3Npb24pIEFzeW5jCi0gICAgQ2xvc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAgU2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVj
b3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b0Rv
bWFpbikgLT4gKCkKKyAgICBSZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCisgICAgRGVsZXRlQ29va2ll
c0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBkb21haW4sIGJvb2wgaW5jbHVkZUh0dHBPbmx5Q29va2llcykgLT4gKCkKKyAgICBI
YXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBkb21haW4pIC0+IChib29sIGhhc0lzb2xhdGVkU2Vzc2lvbikKKyAgICBD
bG9zZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKICNpZiBFTkFC
TEUoQVBQX0JPVU5EX0RPTUFJTlMpCi0gICAgU2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEhhc2hTZXQ8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4+IGFwcEJvdW5kRG9tYWlucykgLT4gKCkgQXN5bmMKKyAgICBTZXRB
cHBCb3VuZERvbWFpbnNGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gYXBwQm91bmREb21h
aW5zKSAtPiAoKQogI2VuZGlmCi0gICAgU2V0U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0
aW5nKGJvb2wgZW5hYmxlZCkgLT4gKCkgQXN5bmMKLSAgICBTZXRUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6
OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgYmxvY2tpbmdNb2RlKSAtPiAoKSBBc3luYwot
ICAgIFNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOmJvb2wgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCkgLT4gKCkgQXN5bmMKLSAgICBTZXRGaXJzdFBhcnR5
V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUg
bW9kZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBk
b21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZmlyc3RQYXJ0eUhvc3QsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGNuYW1lRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNl
dFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0
U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKGJvb2wgZW5hYmxlZCkgLT4gKCkKKyAg
ICBTZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgYmxv
Y2tpbmdNb2RlKSAtPiAoKQorICAgIFNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOmJvb2wgV2ViQ29y
ZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCkgLT4gKCkKKyAgICBT
ZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGUgbW9kZSkgLT4gKCkKKyAgICBTZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0Zv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBkb21haW4pIC0+ICgpCisgICAgU2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZmlyc3RQYXJ0eUhvc3QsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGNuYW1lRG9tYWluKSAtPiAoKQorICAgIFNldFRoaXJk
UGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+ICgpCiAjZW5kaWYKIAogICAgIFNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Ym9vbCBkZWJ1Z01vZGUpCkBAIC0xNTgsNTAgKzE1OCw1MCBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKFN0
cmluZyBzY2hlbWUpCiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKFN0cmluZyBzY2hl
bWUpCiAKLSAgICBTeW5jTG9jYWxTdG9yYWdlKCkgLT4gKCkgQXN5bmMKKyAgICBTeW5jTG9jYWxT
dG9yYWdlKCkgLT4gKCkKIAogICAgIFN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCkKLSAgICBEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIHByaXZhdGVDbGlja01lYXN1cmVtZW50
U3RhdGUpIEFzeW5jCi0gICAgQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wg
dmFsdWUpIC0+ICgpIEFzeW5jCi0gICAgTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkg
QXN5bmMKLSAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFz
eW5jCi0gICAgU2ltdWxhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFNlc3Npb25SZXN0YXJ0KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSAgICBTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFVSTCB1cmwpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgdXJsKSAtPiAoKSBBc3luYwotICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBz
b3VyY2VVUkwsIFVSTCBkZXN0aW5hdGlvblVSTCkgLT4gKCkgQXN5bmMKLSAgICBNYXJrUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBzZWNyZXRUb2tlbiwgU3RyaW5n
IHVubGlua2FibGVUb2tlbiwgU3RyaW5nIHNpZ25hdHVyZSwgU3RyaW5nIGtleUlEKSAtPiAoKSBB
c3luYwotICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGFwcEJ1bmRsZUlERm9yVGVzdGluZykg
LT4gKCkgQXN5bmMKLSAgICBDbG9zZVBDTURhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKKyAgICBEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIHByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGUp
CisgICAgQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpIC0+ICgpCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpCisgICAg
TWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpCisgICAgU2ltdWxhdGVQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFNlc3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKKyAgICBT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICgpCisgICAgU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVUkwgdXJsKSAtPiAoKQorICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVS
TCBzb3VyY2VVUkwsIFVSTCBkZXN0aW5hdGlvblVSTCkgLT4gKCkKKyAgICBNYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpIC0+ICgpCisgICAgU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBzZWNyZXRUb2tlbiwgU3RyaW5nIHVubGlua2Fi
bGVUb2tlbiwgU3RyaW5nIHNpZ25hdHVyZSwgU3RyaW5nIGtleUlEKSAtPiAoKQorICAgIFNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU3RyaW5nIGFwcEJ1bmRsZUlERm9yVGVzdGluZykgLT4gKCkKKyAgICBDbG9z
ZVBDTURhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKIAogICAgIFNldFNl
cnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKFNlY29uZHMgc2Vjb25kcykgLT4gKCkg
U3luY2hyb25vdXMKICAgICBSZXNldFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5n
KCkgLT4gKCkgU3luY2hyb25vdXMKIAotICAgIFJlc2V0UXVvdGEoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKSAtPiAoKSBBc3luYwotICAgIENsZWFyU3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+ICgpIEFzeW5jCisgICAgUmVzZXRRdW90YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpIC0+ICgpCisgICAgQ2xlYXJTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KCkKICAgICBEaWRJbmNyZWFzZVF1b3RhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFdlYktpdDo6UXVvdGFJbmNyZWFzZVJlcXVl
c3RJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG5ld1F1b3Rh
KQogICAgIAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKLSAgICBIYXNBcHBCb3VuZFNl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBoYXNBcHBCb3VuZFNlc3Np
b24pIEFzeW5jCi0gICAgQ2xlYXJBcHBCb3VuZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKSAtPiAoKSBBc3luYworICAgIEhhc0FwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIC0+IChib29sIGhhc0FwcEJvdW5kU2Vzc2lvbikKKyAgICBDbGVhckFwcEJvdW5k
U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBEaXNhYmxl
U2VydmljZVdvcmtlckVudGl0bGVtZW50KCkKLSAgICBDbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxl
bWVudE92ZXJyaWRlKCkgLT4gKCkgQXN5bmMKKyAgICBDbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxl
bWVudE92ZXJyaWRlKCkgLT4gKCkKICNlbmRpZgotICAgIFVwZGF0ZUJ1bmRsZUlkZW50aWZpZXIo
U3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIpIC0+ICgpIEFzeW5jCi0gICAgQ2xlYXJCdW5kbGVJZGVu
dGlmaWVyKCkgLT4gKCkgQXN5bmMKKyAgICBVcGRhdGVCdW5kbGVJZGVudGlmaWVyKFN0cmluZyBi
dW5kbGVJZGVudGlmaWVyKSAtPiAoKQorICAgIENsZWFyQnVuZGxlSWRlbnRpZmllcigpIC0+ICgp
CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGEo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoc3RydWN0IFdlYktpdDo6QXBwUHJpdmFjeVJl
cG9ydFRlc3RpbmdEYXRhIGRhdGEpIEFzeW5jCi0gICAgQ2xlYXJBcHBQcml2YWN5UmVwb3J0VGVz
dGluZ0RhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYworICAgIEFwcFBy
aXZhY3lSZXBvcnRUZXN0aW5nRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChzdHJ1
Y3QgV2ViS2l0OjpBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGEgZGF0YSkKKyAgICBDbGVhckFw
cFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgp
CiAjZW5kaWYKIAogICAgIEFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFdlYktp
dDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlV2ViUGFn
ZU5ldHdvcmtQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkKLSAgICBDb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChzaXplX3QgY291bnQpIEFzeW5jCisgICAg
Q291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAo
c2l6ZV90IGNvdW50KQogCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAgTm90
aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXksIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCkBAIC0yMTAsOSArMjEwLDkgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFRlcm1pbmF0ZVJlbW90ZVdv
cmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90
ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCAgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKLSAgICBHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNzYWdlPiBtZXNzYWdlcykgQXN5bmMKLSAgICBQ
cm9jZXNzUHVzaE1lc3NhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViS2l0
OjpXZWJQdXNoTWVzc2FnZSBwdXNoTWVzc2FnZSkgLT4gKGJvb2wgZGlkU3VjY2VlZCkgQXN5bmMK
KyAgICBHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNzYWdlPiBtZXNzYWdlcykKKyAgICBQcm9jZXNzUHVz
aE1lc3NhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViS2l0OjpXZWJQdXNo
TWVzc2FnZSBwdXNoTWVzc2FnZSkgLT4gKGJvb2wgZGlkU3VjY2VlZCkKICNlbmRpZgotICAgIERl
bGV0ZVB1c2hBbmROb3RpZmljYXRpb25SZWdpc3RyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbikgLT4gKFN0cmlu
ZyBlcnJvck1lc3NhZ2UpIEFzeW5jCi0gICAgR2V0T3JpZ2luc1dpdGhQdXNoQW5kTm90aWZpY2F0
aW9uUGVybWlzc2lvbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgQXN5bmMKKyAgICBEZWxldGVQdXNoQW5k
Tm90aWZpY2F0aW9uUmVnaXN0cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4pIC0+IChTdHJpbmcgZXJyb3JNZXNz
YWdlKQorICAgIEdldE9yaWdpbnNXaXRoUHVzaEFuZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE+IG9yaWdpbnMpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgppbmRleCBiZDAyYjkx
NTBmNDM4MmI2YWU2N2UzNWY0MGQ3NTAxYmE5ZGYxZGE0Li5mNDU5ZDVhZGE5OWExYmM4MTIxZWEy
ZjgwYmEzYzAzZTZlYjFmZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwubWVzc2FnZXMuaW4KQEAgLTIxLDcg
KzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gTmV0d29ya1NvY2tldENoYW5u
ZWwgTm90UmVmQ291bnRlZCB7Ci0gICAgU2VuZFN0cmluZyhJUEM6OkRhdGFSZWZlcmVuY2UgbWVz
c2FnZSkgLT4gKCkgQXN5bmMKLSAgICBTZW5kRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkg
LT4gKCkgQXN5bmMKKyAgICBTZW5kU3RyaW5nKElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlKSAt
PiAoKQorICAgIFNlbmREYXRhKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKSAtPiAoKQogICAgIENs
b3NlKGludDMyX3QgY29kZSwgU3RyaW5nIHJlYXNvbikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGRiODUyNDMyMDAyZTIzNGE4
YzU1OTQyYWUwNTYyY2IwYmM5NzI0N2IuLjQzZmQxMjRmMGM5M2E5ODVlZTI2OWZmZGU2NWI4MmQw
MWZlMWZlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQAogbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVzc2Fn
ZXMgY2FuIGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVj
dGlvbgogICAgIFNjaGVkdWxlSm9iSW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJKb2JEYXRhIGpvYkRhdGEpCi0gICAgU2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCisgICAg
U2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklk
ZW50aWZpZXIgam9iSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRl
bnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhPiByZXN1bHQpCiAKICAgICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVy
KHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9iRGF0YUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0
aW9uS2V5LCBzdHJ1Y3QgV2ViQ29yZTo6V29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogICAgIEFk
ZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMzUsMjcgKzM1LDI3IEBAIG1l
c3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKIAogICAgIERp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkga2V5KQogCi0gICAgTWF0Y2hSZWdpc3RyYXRpb24oc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb24p
IEFzeW5jCi0gICAgV2hlblJlZ2lzdHJhdGlvblJlYWR5KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJMKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gcmVnaXN0cmF0aW9uKSBBc3lu
YwotICAgIEdldFJlZ2lzdHJhdGlvbnMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbnMpIEFzeW5jCisgICAgTWF0Y2hSZWdp
c3RyYXRpb24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVS
TCBjbGllbnRVUkwpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb24pCisgICAgV2hlblJlZ2lzdHJhdGlvblJlYWR5KHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJM
KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YT4gcmVnaXN0cmF0aW9uKQorICAgIEdldFJlZ2lzdHJhdGlvbnMoc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+IChWZWN0b3I8V2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbnMpCiAgICAg
UmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEg
ZGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcj4gY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
U3RyaW5nIHVzZXJBZ2VudCkKICAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogCi0gICAg
VGVybWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciB3b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBBc3luYwotICAgIFdoZW5TZXJ2aWNlV29ya2VySXNU
ZXJtaW5hdGVkRm9yVGVzdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3Jr
ZXJJZGVudGlmaWVyKSAtPiAoKSBBc3luYworICAgIFRlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmllcikgLT4gKCkK
KyAgICBXaGVuU2VydmljZVdvcmtlcklzVGVybWluYXRlZEZvclRlc3RpbmcoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmllcikgLT4gKCkKIAogICAgIFNldFRo
cm90dGxlU3RhdGUoYm9vbCBpc1Rocm90dGxlYWJsZSkKLSAgICBTdG9yZVJlZ2lzdHJhdGlvbnNP
bkRpc2soKSAtPiAoKSBBc3luYworICAgIFN0b3JlUmVnaXN0cmF0aW9uc09uRGlzaygpIC0+ICgp
CiAKLSAgICBTdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIFZlY3Rvcjx1aW50OF90PiBhcHBsaWNhdGlv
blNlcnZlcktleSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCi0gICAgVW5zdWJzY3JpYmVGcm9t
UHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlB1c2hTdWJzY3Jp
cHRpb25JZGVudGlmaWVyIHB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYwotICAgIEdldFB1c2hT
dWJzY3JpcHRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
aWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNj
cmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCi0gICAg
R2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYyAKKyAgICBTdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIFZl
Y3Rvcjx1aW50OF90PiBhcHBsaWNhdGlvblNlcnZlcktleSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6
OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpCisg
ICAgVW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyIHB1c2hTdWJzY3JpcHRpb25JZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KQor
ICAgIEdldFB1c2hTdWJzY3JpcHRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQp
CisgICAgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSAKIAotICAgIEVuYWJsZU5hdmlnYXRpb25QcmVsb2Fk
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIp
IC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMK
LSAgICBEaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYwotICAgIFNldE5hdmlnYXRpb25QcmVsb2FkSGVh
ZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllciwgU3RyaW5nIHZhbHVlKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRp
b25EYXRhPiByZXN1bHQpIEFzeW5jCi0gICAgR2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8V2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSwgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YT4gcmVzdWx0KSBBc3luYworICAgIEVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkKKyAgICBEaXNhYmxl
TmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgaWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0
YT4gcmVzdWx0KQorICAgIFNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIHZh
bHVlKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpCisg
ICAgR2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6TmF2aWdh
dGlvblByZWxvYWRTdGF0ZSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KQogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggMGQ2
MTQ1MGQ0MWEzMDFmMDhmOWVjNWU2YTNhNjAwNjFmOWI2NDM3YS4uYzZiN2MwNDUwOWQ2NWYyNzU5
MGM1ZTc0MjRlNjA1MGYyM2U3YzY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMCwxMSArMzAs
MTEgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIE5vdFJlZkNv
dW50ZWQgewogICAgIERpZEZpbmlzaEluc3RhbGwoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNT
dWNjZXNzZnVsKQogICAgIERpZEZpbmlzaEFjdGl2YXRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBTZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2
ZW50cyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGhh
c1BlbmRpbmdFdmVudHMpCi0gICAgU2tpcFdhaXRpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgQXN5bmMKKyAgICBTa2lwV2FpdGluZyhXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKQogICAgIFdvcmtlclRl
cm1pbmF0ZWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAg
ICBGaW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU3RyaW5nIGNsaWVudElkZW50aWZpZXIp
IC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRh
KSBBc3luYworICAgIEZpbmRDbGllbnRCeVZpc2libGVJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTdHJpbmcgY2xpZW50
SWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dERhdGE+IGRhdGEpCiAgICAgTWF0Y2hBbGwodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRp
ZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zIG9w
dGlvbnMpOwotICAgIENsYWltKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25E
YXRhPiByZXN1bHQpIEFzeW5jCisgICAgQ2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkKICAgICBTZXRTY3JpcHRSZXNvdXJjZShXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBVUkwgc2NyaXB0VVJMLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0IHNjcmlwdCkKICAgICBQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBkZXN0aW5hdGlvbiwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNv
dXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKICAgICBEaWRGYWlsSGVhcnRCZWF0Q2hlY2soV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbgppbmRleCAwMjQ5NWQyNTY2MGRiMWYzNGY1MmE0NzA1
YzdjNGEzMDNiN2M2ZWU4Li4zN2JhNjljZGJlYzA1MjRmMzNkZDM1ZjQ4Mzk2NGU3MWUyNGI3Y2Mx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluCkBAIC0yOCw3ICsy
OCw3IEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VNYW5hZ2VyU2V0IHsKICAgICBHZXRWYWx1ZXMoV2Vi
S2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCkgLT4gKEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IHZhbHVlcykgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCiAgICAgQ2xv
bmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktp
dDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgV2Vi
S2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2Fu
dHNDb25uZWN0aW9uCiAKLSAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRp
ZmllciwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9v
bCBxdW90YUV4Y2VwdGlvbikgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlSXRlbShX
ZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VB
cmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB1cmxT
dHJpbmcpIC0+ICgpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgotICAgIENsZWFyKFdlYktpdDo6U3Rv
cmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllciBpbXBsSWRlbnRpZmllciwgU3RyaW5nIHVybFN0cmluZykgLT4gKCkgQXN5bmMgV2Fu
dHNDb25uZWN0aW9uCisgICAgU2V0SXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZp
ZXIsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgLT4gKGJvb2wg
cXVvdGFFeGNlcHRpb24pIFdhbnRzQ29ubmVjdGlvbgorICAgIFJlbW92ZUl0ZW0oV2ViS2l0OjpT
dG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBTdHJpbmcga2V5LCBTdHJpbmcgdXJsU3RyaW5nKSAt
PiAoKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBDbGVhcihXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElk
ZW50aWZpZXIsIFN0cmluZyB1cmxTdHJpbmcpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDVk
MjFlZWUzMDgxMGEwNTQ4N2YwN2EzZTAzODBhMWNlM2E3ZjI2N2EuLmY5NjYyNzIyOWE3M2E4NWZi
YTc2Njk3MTc3YWI2NTkxNGFhM2FiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI0LDE0ICsyNCwxNCBAQCBtZXNzYWdlcyAtPiBD
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uIHsKICAgICBSZWZlcmVuY2UodWludDY0X3QgY2Fj
aGVJZGVudGlmaWVyKQogICAgIERlcmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikK
IAotICAgIE9wZW4oc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBj
YWNoZU5hbWUpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyT3JF
cnJvciByZXN1bHQpIEFzeW5jCi0gICAgUmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikg
LT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJPckVycm9yIHJlc3Vs
dCkgQXN5bmMKLSAgICBDYWNoZXMoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4s
IHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2Fj
aGVJbmZvc09yRXJyb3IgcmVzdWx0KSBBc3luYworICAgIE9wZW4oc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBjYWNoZU5hbWUpIC0+IChXZWJDb3JlOjpET01DYWNo
ZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyT3JFcnJvciByZXN1bHQpCisgICAgUmVtb3ZlKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlk
ZW50aWZpZXJPckVycm9yIHJlc3VsdCkKKyAgICBDYWNoZXMoc3RydWN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIC0+IChXZWJDb3JlOjpET01D
YWNoZUVuZ2luZTo6Q2FjaGVJbmZvc09yRXJyb3IgcmVzdWx0KQogCi0gICAgUmV0cmlldmVSZWNv
cmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlJldHJpZXZlUmVj
b3Jkc09wdGlvbnMgb3B0aW9ucykgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRz
T3JFcnJvciByZXN1bHQpIEFzeW5jCi0gICAgRGVsZXRlTWF0Y2hpbmdSZWNvcmRzKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKSAtPiAoV2ViQ29yZTo6RE9NQ2Fj
aGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciByZXN1bHQpIEFzeW5jCi0gICAgUHV0
UmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNo
ZUVuZ2luZTo6UmVjb3JkPiByZWNvcmQpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVj
b3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCkgQXN5bmMKKyAgICBSZXRyaWV2ZVJlY29yZHMo
dWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRz
T3B0aW9ucyBvcHRpb25zKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNPckVy
cm9yIHJlc3VsdCkKKyAgICBEZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6
OkNhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6
UmVjb3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCkKKyAgICBQdXRSZWNvcmRzKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+
IHJlY29yZCkgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc09y
RXJyb3IgcmVzdWx0KQogCi0gICAgQ2xlYXJNZW1vcnlSZXByZXNlbnRhdGlvbihzdHJ1Y3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RE9N
Q2FjaGVFbmdpbmU6OkVycm9yPiBlcnJvcikgQXN5bmMKLSAgICBFbmdpbmVSZXByZXNlbnRhdGlv
bigpIC0+IChTdHJpbmcgcmVwcmVzZW50YXRpb24pIEFzeW5jCisgICAgQ2xlYXJNZW1vcnlSZXBy
ZXNlbnRhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkVycm9yPiBlcnJvcikKKyAgICBFbmdp
bmVSZXByZXNlbnRhdGlvbigpIC0+IChTdHJpbmcgcmVwcmVzZW50YXRpb24pCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5k
ZXggZjIxMGIwOWZiZDFlMjBlYmZjMjE2ZjIxOWEyNzYzNWQ4NzE4NDI1ZC4uNWZmMDQ5MjJkNjMy
NmQ4NWZkNWJhZmQ3MDQ0OTAwMDU5ZTU2ZWY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzQ4LDcgKzM0OCw3IEBA
IHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAgICAgICAgIGF1dG8gcmV2YWxpZGF0aW9uID0gbWFr
ZVVuaXF1ZTxBc3luY1JldmFsaWRhdGlvbj4oKnRoaXMsIGZyYW1lSUQsIHJlcXVlc3QsIFdURk1v
dmUoZW50cnkpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBbdGhpcywga2V5XShhdXRv
IHJlc3VsdCkgewogICAgICAgICAgICAgQVNTRVJUKG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9u
cy5jb250YWlucyhrZXkpKTsKICAgICAgICAgICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9u
cy5yZW1vdmUoa2V5KTsKLSAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1By
b2Nlc3MpIEFzeW5jIHJldmFsaWRhdGlvbiBjb21wbGV0ZWQgZm9yICclcycgd2l0aCByZXN1bHQg
JWQiLCBrZXkuaWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocmVz
dWx0KSk7CisgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBy
ZXZhbGlkYXRpb24gY29tcGxldGVkIGZvciAnJXMnIHdpdGggcmVzdWx0ICVkIiwga2V5LmlkZW50
aWZpZXIoKS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCkpOwogICAgICAg
ICB9KTsKICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoKnJldmFsaWRhdGlv
bik7CiAgICAgICAgIHJldHVybiByZXZhbGlkYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA0NzMwNWUwZTk4MWNhNWNmYWUwNzc0MjZiZjI0Yjc4
MTVhNGQ2NGNkLi5kOTRiNmY0ZjNiZjY2MTg2ZTkzOTE5YzIxN2ViMDVhYTA5MjIwNTgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI0LDI5ICsyNCwy
OSBAQAogICovCiAgCiAgbWVzc2FnZXMgLT4gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyIHsKLSAgICBQ
ZXJzaXN0ZWQoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChib29sIHBl
cnNpc3RlZCkgQXN5bmMKLSAgICBQZXJzaXN0KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4g
b3JpZ2luKSAtPiAoYm9vbCBwZXJzaXN0ZWQpIEFzeW5jCi0gICAgRmlsZVN5c3RlbUdldERpcmVj
dG9yeShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisgICAgUGVyc2lzdGVkKHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoYm9vbCBwZXJzaXN0ZWQpCisg
ICAgUGVyc2lzdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wg
cGVyc2lzdGVkKQorICAgIEZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkoc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBvcmlnaW4pIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIFdhbnRz
Q29ubmVjdGlvbgogICAgIENsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCi0gICAgSXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwotICAgIEdldEZp
bGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgotICAgIEdldERpcmVjdG9yeUhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVs
ZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBNb3ZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgU3RyaW5nIG5ld05h
bWUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVz
dWx0KSBBc3luYwotICAgIEdldEZpbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFN0cmluZywgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
SVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCi0gICAgQ2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBH
ZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIEdldEhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSkgLT4gKEV4cGVjdGVkPHN0
ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgYm9vbD4sIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24K
KyAgICBJc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlm
aWVyKSAtPiAoYm9vbCByZXN1bHQpCisgICAgR2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgV2FudHNDb25uZWN0
aW9uCisgICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAt
PiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBXYW50c0Nvbm5lY3Rpb24KKyAgICBSZW1v
dmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
dHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpCisgICAgUmVzb2x2ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9y
PFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KQorICAgIE1v
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBTdHJp
bmcgbmV3TmFtZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpCisgICAgR2V0RmlsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8U3RyaW5nLCBXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlc3VsdCkKKyAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxzdGQ6
OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6
OlNoYXJlZEZpbGVIYW5kbGU+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkKKyAgICBDbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KQorICAgIEdldEhhbmRsZU5hbWVzKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3Rl
ZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
CisgICAgR2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFN0cmluZyBuYW1lKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpIFdhbnRzQ29ubmVjdGlvbgogCi0gICAgQ29ubmVjdFRvU3RvcmFnZUFyZWEo
V2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElkZW50aWZp
ZXIgc291cmNlSWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBu
YW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikg
LT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgQXN5bmMgV2Fu
dHNDb25uZWN0aW9uCisgICAgQ29ubmVjdFRvU3RvcmFnZUFyZWEoV2ViQ29yZTo6U3RvcmFnZVR5
cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIgc291cmNlSWRlbnRpZmll
ciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBuYW1lc3BhY2VJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKFdlYktpdDo6U3RvcmFn
ZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1z
LCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCiAgICAgQ29ubmVj
dFRvU3RvcmFnZUFyZWFTeW5jKFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHR5cGUsIFdlYktpdDo6U3Rv
cmFnZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZU5h
bWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBvcmlnaW4pIC0+IChXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtcywgdWludDY0X3QgbWVzc2FnZUlk
ZW50aWZpZXIpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgogICAgIERpc2Nvbm5lY3RGcm9t
U3RvcmFnZUFyZWEoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllcikgV2Fu
dHNDb25uZWN0aW9uCiAgICAgQ2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShXZWJLaXQ6OlN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGZyb21TdG9yYWdlTmFtZXNwYWNlSUQsIFdlYktpdDo6
U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgdG9TdG9yYWdlTmFtZXNwYWNlSUQpIFdhbnRzQ29u
bmVjdGlvbgotICAgIFNldEl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBT
dHJpbmcga2V5LCBTdHJpbmcgdmFsdWUsIFN0cmluZyB1cmxTdHJpbmcpIC0+IChib29sIHF1b3Rh
RXhjZXB0aW9uKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBSZW1vdmVJdGVtKFdlYktpdDo6
U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBs
SWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgU3RyaW5nIGtleSwgU3RyaW5nIHVybFN0cmluZykg
LT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgQ2xlYXIoV2ViS2l0OjpTdG9yYWdlQXJl
YUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVy
IGltcGxJZGVudGlmaWVyLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5l
Y3Rpb24KKyAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgU3Ry
aW5nIGtleSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9vbCBxdW90YUV4
Y2VwdGlvbikgV2FudHNDb25uZWN0aW9uCisgICAgUmVtb3ZlSXRlbShXZWJLaXQ6OlN0b3JhZ2VB
cmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZp
ZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJpbmcpIC0+ICgpIFdh
bnRzQ29ubmVjdGlvbgorICAgIENsZWFyKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmll
ciwgU3RyaW5nIHVybFN0cmluZykgLT4gKCkgV2FudHNDb25uZWN0aW9uCiAKICAgICBPcGVuRGF0
YWJhc2UoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEpIFdhbnRzQ29ubmVjdGlv
bgogICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVx
dWVzdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA4
YzlmZjIzOWExNjUyOGNiYWRiZTUxZmIwODNhNGMxNjBiNGI0OGIxLi45NzI2YzUzZTI4NTNmZDE5
OWU0ODk4NmRlYTBiYTkyZGEzYjZlOGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTI1LDcgKzI1LDcgQEAgaW1wb3J0IHJlCiBpbXBvcnQgc3lzCiAKIGZy
b20gd2Via2l0IGltcG9ydCBwYXJzZXIKLWZyb20gd2Via2l0Lm1vZGVsIGltcG9ydCBCVUlMVElO
X0FUVFJJQlVURSwgQVNZTkNfQVRUUklCVVRFLCBTWU5DSFJPTk9VU19BVFRSSUJVVEUsIE1BSU5U
SFJFQURDQUxMQkFDS19BVFRSSUJVVEUsIFNUUkVBTV9BVFRSSUJVVEUsIFdBTlRTX0NPTk5FQ1RJ
T05fQVRUUklCVVRFLCBNZXNzYWdlUmVjZWl2ZXIsIE1lc3NhZ2UKK2Zyb20gd2Via2l0Lm1vZGVs
IGltcG9ydCBCVUlMVElOX0FUVFJJQlVURSwgU1lOQ0hST05PVVNfQVRUUklCVVRFLCBNQUlOVEhS
RUFEQ0FMTEJBQ0tfQVRUUklCVVRFLCBTVFJFQU1fQVRUUklCVVRFLCBXQU5UU19DT05ORUNUSU9O
X0FUVFJJQlVURSwgTWVzc2FnZVJlY2VpdmVyLCBNZXNzYWdlCiAKIF9saWNlbnNlX2hlYWRlciA9
ICIiIi8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgpAQCAtMTYzLDE0ICsxNjMsMTQgQEAgZGVmIHJlcGx5X2FyZ3VtZW50c190eXBlKG1lc3Nh
Z2UpOgogZGVmIG1lc3NhZ2VfdG9fcmVwbHlfZm9yd2FyZF9kZWNsYXJhdGlvbihtZXNzYWdlKToK
ICAgICByZXN1bHQgPSBbXQogCi0gICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzICE9IE5v
bmUgYW5kIChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKSBvciBt
ZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6CisgICAgaWYgbWVzc2FnZS5y
ZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lOgogICAgICAgICBzZW5kX3BhcmFtZXRlcnMgPSBb
KGZ1bmN0aW9uX3BhcmFtZXRlcl90eXBlKHgudHlwZSwgeC5raW5kKSwgeC5uYW1lKSBmb3IgeCBp
biBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCiAgICAgICAgIGNvbXBsZXRpb25faGFuZGxlcl9w
YXJhbWV0ZXJzID0gJyVzJyAlICcsICcuam9pbihbJyAnLmpvaW4oeCkgZm9yIHggaW4gc2VuZF9w
YXJhbWV0ZXJzXSkKIAotICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRU
UklCVVRFKToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3VzaW5nICVzQXN5bmNSZXBseScg
JSBtZXNzYWdlLm5hbWUpCi0gICAgICAgIGVsc2U6CisgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndXNpbmcgJXNEZWxheWVkUmVwbHknICUgbWVzc2FnZS5uYW1lKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgndXNpbmcgJXNBc3luY1JlcGx5JyAlIG1lc3NhZ2Uu
bmFtZSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgl
cyk+O1xuJyAlIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzKQogCiAgICAgaWYgbm90IHJl
c3VsdDoKQEAgLTE4OCw3ICsxODgsNyBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRp
b24ocmVjZWl2ZXIsIG1lc3NhZ2UpOgogICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBBcmd1
bWVudHMgPSAlcztcbicgJSBhcmd1bWVudHNfdHlwZShtZXNzYWdlKSkKICAgICByZXN1bHQuYXBw
ZW5kKCdcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyBJUEM6Ok1lc3NhZ2VOYW1l
IG5hbWUoKSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VOYW1lOjolc18lczsgfVxuJyAlIChyZWNlaXZl
ci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNTeW5jID0gJXM7XG4nICUgKCdmYWxzZScsICd0cnVlJylbbWVzc2FnZS5y
ZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCBub3QgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KEFTWU5DX0FUVFJJQlVURSldKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNTeW5jID0gJXM7XG4nICUgKCdmYWxzZScsICd0cnVlJylbbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hS
T05PVVNfQVRUUklCVVRFKV0pCiAgICAgaWYgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShTVFJFQU1f
QVRUUklCVVRFKToKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBpc1N0cmVhbUVuY29kYWJsZSA9ICVzO1xuJyAlICgndHJ1ZScsICdmYWxzZScpW21lc3Nh
Z2UuaGFzX2F0dHJpYnV0ZShOT1RfU1RSRUFNX0VOQ09EQUJMRV9BVFRSSUJVVEUpXSkKICAgICAg
ICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lOgpAQCAtMTk4LDE5ICsx
OTgsMTkgQEAgZGVmIG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKHJlY2VpdmVyLCBtZXNz
YWdlKToKICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgIT0gTm9uZToKICAgICAgICAg
c2VuZF9wYXJhbWV0ZXJzID0gWyhmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSh4LnR5cGUsIHgua2lu
ZCksIHgubmFtZSkgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQogICAgICAgICBj
b21wbGV0aW9uX2hhbmRsZXJfcGFyYW1ldGVycyA9ICclcycgJSAnLCAnLmpvaW4oWycgJy5qb2lu
KHgpIGZvciB4IGluIHNlbmRfcGFyYW1ldGVyc10pCi0gICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1
dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICB1c2luZyBEZWxheWVkUmVwbHkgPSAlc0RlbGF5ZWRSZXBseTtcbicgJSBtZXNzYWdlLm5hbWUp
CisgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBtb3ZlX3BhcmFtZXRlcnMgPSAnLCAnLmpvaW4o
W21vdmVfdHlwZSh4LnR5cGUpIGZvciB4IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyc10pCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6
RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPiYmKTtcbicgJSBtb3ZlX3BhcmFt
ZXRlcnMpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FuY2Vs
UmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFyYW1ldGVy
cykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgSVBDOjpNZXNzYWdlTmFt
ZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VOYW1lOjolc18l
c1JlcGx5OyB9XG4nICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgQXN5bmNSZXBseSA9ICVzQXN5bmNSZXBseTtcbicg
JSBtZXNzYWdlLm5hbWUpCi0gICAgICAgIGVsaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNI
Uk9OT1VTX0FUVFJJQlVURSk6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcg
RGVsYXllZFJlcGx5ID0gJXNEZWxheWVkUmVwbHk7XG4nICUgbWVzc2FnZS5uYW1lKQogICAgICAg
ICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoTUFJTlRIUkVBRENBTExCQUNLX0FUVFJJQlVURSk6
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNh
bGxiYWNrVGhyZWFkID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlckNhbGxUaHJlYWQ6Ok1haW5UaHJl
YWQ7XG4nKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0
YXRpYyBjb25zdGV4cHIgYXV0byBjYWxsYmFja1RocmVhZCA9IFdURjo6Q29tcGxldGlvbkhhbmRs
ZXJDYWxsVGhyZWFkOjpDb25zdHJ1Y3Rpb25UaHJlYWQ7XG4nKQotICAgICAgICBpZiAobWVzc2Fn
ZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0
cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpIGFuZCBub3QgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShT
VFJFQU1fQVRUUklCVVRFKToKKyAgICAgICAgaWYgbm90IHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUo
U1RSRUFNX0FUVFJJQlVURSk6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGlj
IHZvaWQgc2VuZChVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mJykK
ICAgICAgICAgICAgIGlmIGxlbihzZW5kX3BhcmFtZXRlcnMpOgogICAgICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJywgJXMnICUgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMpCkBAIC00
NjcsNyArNDY3LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzX2Zvcl9y
ZXBsaWVzKHJlY2VpdmVyKToKIAogICAgIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXMgPSB0
eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCkKICAgICBmb3IgbWVzc2FnZSBp
biByZWNlaXZlci5tZXNzYWdlczoKLSAgICAgICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJz
ID09IE5vbmUgb3Igbm90IChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklC
VVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6CisgICAgICAg
IGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBOb25lOgogICAgICAgICAgICAgY29udGlu
dWUKIAogICAgICAgICBmb3IgcGFyYW1ldGVyIGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyczoK
QEAgLTU4Nyw3ICs1ODcsNyBAQCBkZWYgYXN5bmNfbWVzc2FnZV9zdGF0ZW1lbnQocmVjZWl2ZXIs
IG1lc3NhZ2UpOgogICAgIGRpc3BhdGNoX2Z1bmN0aW9uX2FyZ3MgPSBbJ2RlY29kZXInLCAndGhp
cycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSldCiAKICAgICBk
aXNwYXRjaF9mdW5jdGlvbiA9ICdoYW5kbGVNZXNzYWdlJwotICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVy
cyBpcyBub3QgTm9uZSBhbmQgbm90IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19B
VFRSSUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnQXN5bmMnCiAKICAgICBp
ZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoV0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUpOgpAQCAt
NjA3LDcgKzYwNyw3IEBAIGRlZiBzeW5jX21lc3NhZ2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBtZXNz
YWdlKToKICAgICBkaXNwYXRjaF9mdW5jdGlvbiA9ICdoYW5kbGVNZXNzYWdlJwogICAgIGlmIG1l
c3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpOgogICAgICAgICBkaXNw
YXRjaF9mdW5jdGlvbiArPSAnU3luY2hyb25vdXMnCi0gICAgaWYgbWVzc2FnZS5oYXNfYXR0cmli
dXRlKEFTWU5DX0FUVFJJQlVURSk6CisgICAgZWxpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMg
aXMgbm90IE5vbmU6CiAgICAgICAgIGRpc3BhdGNoX2Z1bmN0aW9uICs9ICdBc3luYycKICAgICBp
ZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoV0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUpOgogICAg
ICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnV2FudHNDb25uZWN0aW9uJwpAQCAtNjE1LDcgKzYx
NSw3IEBAIGRlZiBzeW5jX21lc3NhZ2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBtZXNzYWdlKToKICAg
ICBtYXliZV9yZXBseV9lbmNvZGVyID0gIiwgKnJlcGx5RW5jb2RlciIKICAgICBpZiByZWNlaXZl
ci5oYXNfYXR0cmlidXRlKFNUUkVBTV9BVFRSSUJVVEUpOgogICAgICAgICBtYXliZV9yZXBseV9l
bmNvZGVyID0gJycKLSAgICBlbGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19B
VFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAg
IGVsaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lOgogICAgICAgICBtYXli
ZV9yZXBseV9lbmNvZGVyID0gJywgcmVwbHlFbmNvZGVyJwogCiAgICAgcmVzdWx0ID0gW10KQEAg
LTEwNzgsNyArMTA3OCw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIp
OgogCiAgICAgZGVsYXllZF9vcl9hc3luY19tZXNzYWdlcyA9IFtdCiAgICAgZm9yIG1lc3NhZ2Ug
aW4gcmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVy
cyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVU
RSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgorICAgICAgICBp
ZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBkZWxh
eWVkX29yX2FzeW5jX21lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgZGVsYXllZF9v
cl9hc3luY19tZXNzYWdlcyBhbmQgbm90IHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoU1RSRUFNX0FU
VFJJQlVURSk6CkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5k
bGVyKHJlY2VpdmVyKToKICAgICAgICAgICAgIGlmIG1lc3NhZ2UuY29uZGl0aW9uOgogICAgICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuXG4nICUgbWVzc2FnZS5jb25kaXRpb24p
CiAKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUp
OgorICAgICAgICAgICAgaWYgbm90IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19B
VFRSSUJVVEUpOgogICAgICAgICAgICAgICAgIG1vdmVfcGFyYW1ldGVycyA9IG1lc3NhZ2UubmFt
ZSwgJywgJy5qb2luKFttb3ZlX3R5cGUoeC50eXBlKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdKQogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmNhbGxS
ZXBseShJUEM6OkRlY29kZXImIGRlY29kZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKVxue1xuJyAlIG1vdmVfcGFyYW1ldGVycykKICAgICAgICAgICAg
ICAgICBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnM6CkBAIC0xMTI0LDkgKzExMjQs
OSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICBhc3luY19t
ZXNzYWdlcyA9IFtdCiAgICAgc3luY19tZXNzYWdlcyA9IFtdCiAgICAgZm9yIG1lc3NhZ2UgaW4g
cmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBp
cyBub3QgTm9uZSBhbmQgbm90IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUp
OgorICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRF
KToKICAgICAgICAgICAgIHN5bmNfbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCi0gICAgICAgIGVs
c2U6CisgICAgICAgIGVsaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lOgog
ICAgICAgICAgICAgYXN5bmNfbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCiAKICAgICBpZiByZWNl
aXZlci5oYXNfYXR0cmlidXRlKFNUUkVBTV9BVFRSSUJVVEUpOgpAQCAtMTE1MCw3ICsxMTUwLDcg
QEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNlaXZlcik6CiAgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicpCiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FH
RSgiVW5oYW5kbGVkIHN0cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlw
dGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7XG4n
KQogICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG4nKQotICAgIGVsaWYgYXN5bmNfbWVzc2FnZXMg
b3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19ESVNQQVRDSF9NRVNTQUdFX0FUVFJJQlVU
RSkgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19BU1lOQ19ESVNQQVRDSF9NRVNTQUdF
X0FUVFJJQlVURSk6CisgICAgZWxzZToKICAgICAgICAgcmVjZWl2ZV92YXJpYW50ID0gcmVjZWl2
ZXIubmFtZSBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKExFR0FDWV9SRUNFSVZFUl9BVFRSSUJV
VEUpIGVsc2UgJycKICAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVz
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rl
cilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZV92YXJpYW50KSkKICAgICAgICAgcmVzdWx0
LmFwcGVuZCgne1xuJykKQEAgLTEyMTIsNyArMTIxMiw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdl
X2hhbmRsZXIocmVjZWl2ZXIpOgogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1l
c3NhZ2VzOjolczo6JXM6OiVzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpO1xuJyAlIChyZWNlaXZl
ci5uYW1lLCBtZXNzYWdlLm5hbWUsICdBcmd1bWVudHMnKSkKICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnfVxuJykKLSAgICAgICAgaGFzX3JlcGx5ID0gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlz
IG5vdCBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVU
RSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpCisgICAgICAgIGhh
c19yZXBseSA9IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3QgTm9uZQogICAgICAgICBp
ZiBub3QgaGFzX3JlcGx5OgogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgcmVzdWx0LmFw
cGVuZCgndGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OiVzXyVzPihKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpXG4nICUgKHJlY2VpdmVyLm5hbWUsIG1l
c3NhZ2UubmFtZSkpCkBAIC0xNDYwLDcgKzE0NjAsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9h
cmd1bWVudF9kZXNjcmlwdGlvbl9pbXBsZW1lbnRhdGlvbihyZWNlaXZlcnMsIHJlY2VpdmVyX2hl
YQogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogCi0gICAgZ2VuZXJhdGVfanNfdmFsdWVfY29u
dmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JSZXBseUFyZ3Vt
ZW50cycsICdqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseScsICdSZXBseUFyZ3VtZW50cycs
IGxhbWJkYSBtZXNzYWdlOiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmUgYW5k
IChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKSBvciBtZXNzYWdl
Lmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSkpCisgICAgZ2VuZXJhdGVfanNfdmFsdWVf
Y29udmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JSZXBseUFy
Z3VtZW50cycsICdqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseScsICdSZXBseUFyZ3VtZW50
cycsIGxhbWJkYSBtZXNzYWdlOiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmUp
CiAKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlmIC8v
IEVOQUJMRShJUENfVEVTVElOR19BUEkpXG4nKQpAQCAtMTQ3MCw3ICsxNDcwLDcgQEAgZGVmIGdl
bmVyYXRlX21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50YXRpb24ocmVjZWl2
ZXJzLCByZWNlaXZlcl9oZWEKIAogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIAotICAgIHJlc3Vs
dCArPSBnZW5lcmF0ZV9qc19hcmd1bWVudF9kZXNjcmlwdGlvbnMocmVjZWl2ZXJzLCAnbWVzc2Fn
ZVJlcGx5QXJndW1lbnREZXNjcmlwdGlvbnMnLCBsYW1iZGEgbWVzc2FnZTogbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJV
VEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpIGVsc2UgTm9uZSkK
KyAgICByZXN1bHQgKz0gZ2VuZXJhdGVfanNfYXJndW1lbnRfZGVzY3JpcHRpb25zKHJlY2VpdmVy
cywgJ21lc3NhZ2VSZXBseUFyZ3VtZW50RGVzY3JpcHRpb25zJywgbGFtYmRhIG1lc3NhZ2U6IG1l
c3NhZ2UucmVwbHlfcGFyYW1ldGVycykKIAogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weSBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkKaW5kZXggNjlmMDE5NjMxMGNmY2I3MTI5N2Vj
ZmNiMjYyM2RmYmQ3ZTU5MmQzOS4uMDQ5NTkwY2VhOTFiNjViZjU0YWE0ZWFmNjE1MzA1ZDA1NDFl
Y2I2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CkBAIC0yNSw3ICsyNSw2
IEBAIGltcG9ydCBpdGVydG9vbHMKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IENvdW50ZXIsIGRl
ZmF1bHRkaWN0CiAKIEJVSUxUSU5fQVRUUklCVVRFID0gIkJ1aWx0aW4iCi1BU1lOQ19BVFRSSUJV
VEUgPSAiQXN5bmMiCiBNQUlOVEhSRUFEQ0FMTEJBQ0tfQVRUUklCVVRFID0gIk1haW5UaHJlYWRD
YWxsYmFjayIKIFNZTkNIUk9OT1VTX0FUVFJJQlVURSA9ICdTeW5jaHJvbm91cycKIFNUUkVBTV9B
VFRSSUJVVEUgPSAiU3RyZWFtIgpAQCAtMTExLDcgKzExMCw3IEBAIGRlZiBnZW5lcmF0ZV9nbG9i
YWxfbW9kZWwocmVjZWl2ZXJzKToKICAgICBhc3luY19yZXBseV9tZXNzYWdlcyA9IFtdCiAgICAg
Zm9yIHJlY2VpdmVyIGluIHJlY2VpdmVyczoKICAgICAgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2
ZXIubWVzc2FnZXM6Ci0gICAgICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNf
QVRUUklCVVRFKToKKyAgICAgICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBu
b3QgTm9uZSBhbmQgbm90IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJV
VEUpOgogICAgICAgICAgICAgICAgIGFzeW5jX3JlcGx5X21lc3NhZ2VzLmFwcGVuZChNZXNzYWdl
KG5hbWU9JyVzXyVzUmVwbHknICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSksIHBhcmFt
ZXRlcnM9bWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzLCByZXBseV9wYXJhbWV0ZXJzPVtdLCBhdHRy
aWJ1dGVzPU5vbmUsIGNvbmRpdGlvbj1tZXNzYWdlLmNvbmRpdGlvbikpCiAgICAgYXN5bmNfcmVw
bHlfcmVjZWl2ZXIgPSBNZXNzYWdlUmVjZWl2ZXIobmFtZT0nQXN5bmNSZXBseScsIHN1cGVyY2xh
c3M9J05vbmUnLCBhdHRyaWJ1dGVzPVtCVUlMVElOX0FUVFJJQlVURV0sIG1lc3NhZ2VzPWFzeW5j
X3JlcGx5X21lc3NhZ2VzLCBjb25kaXRpb249Tm9uZSkKICAgICByZXR1cm4gW2lwY19yZWNlaXZl
ciwgYXN5bmNfcmVwbHlfcmVjZWl2ZXJdICsgcmVjZWl2ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGZkZTJjYmYxYzM3ZjlkNTJmM2JmZjJlMzdiNjJmYWU1
OTczNTJmOGQuLjU3OTk2OWIyYjk3NjFlMDYxMTY5ODEzNmU0MTNiZDE4MDk3NDRhN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNyw4ICsyNyw4IEBACiBt
ZXNzYWdlcyAtPiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKIAog
ICAgIENhbk1ha2VQYXltZW50cygpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKLSAgICBD
YW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChTdHJpbmcgbWVyY2hhbnRJZGVudGlmaWVyLCBT
dHJpbmcgZG9tYWluTmFtZSkgLT4gKGJvb2wgY2FuTWFrZVBheW1lbnRzKSBBc3luYwotICAgIE9w
ZW5QYXltZW50U2V0dXAoU3RyaW5nIG1lcmNoYW50SWRlbnRpZmllciwgU3RyaW5nIGRvbWFpbk5h
bWUpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKyAgICBDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZl
Q2FyZChTdHJpbmcgbWVyY2hhbnRJZGVudGlmaWVyLCBTdHJpbmcgZG9tYWluTmFtZSkgLT4gKGJv
b2wgY2FuTWFrZVBheW1lbnRzKQorICAgIE9wZW5QYXltZW50U2V0dXAoU3RyaW5nIG1lcmNoYW50
SWRlbnRpZmllciwgU3RyaW5nIGRvbWFpbk5hbWUpIC0+IChib29sIHJlc3VsdCkKIAogICAgIFNo
b3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgZGVzdGluYXRpb25JRCwgV2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFN0cmluZyBv
cmlnaW5hdGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlua0ljb25VUkxTdHJpbmdzLCBX
ZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBwYXltZW50UmVxdWVzdCkgLT4g
KGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIENvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9u
KFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24gcGF5bWVudE1lcmNoYW50U2Vzc2lvbikK
QEAgLTQyLDggKzQyLDggQEAgbWVzc2FnZXMgLT4gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkg
Tm90UmVmQ291bnRlZCB7CiAgICAgQWJvcnRQYXltZW50U2Vzc2lvbigpCiAgICAgQ2FuY2VsUGF5
bWVudFNlc3Npb24oKQogCi0gICAgR2V0U2V0dXBGZWF0dXJlcyhXZWJLaXQ6OlBheW1lbnRTZXR1
cENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikgLT4gKFdlYktpdDo6UGF5bWVudFNldHVwRmVh
dHVyZXMgZmVhdHVyZXMpIEFzeW5jCi0gICAgQmVnaW5BcHBsZVBheVNldHVwKFdlYktpdDo6UGF5
bWVudFNldHVwQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBXZWJLaXQ6OlBheW1lbnRTZXR1
cEZlYXR1cmVzIGZlYXR1cmVzKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCisgICAgR2V0U2V0dXBG
ZWF0dXJlcyhXZWJLaXQ6OlBheW1lbnRTZXR1cENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikg
LT4gKFdlYktpdDo6UGF5bWVudFNldHVwRmVhdHVyZXMgZmVhdHVyZXMpCisgICAgQmVnaW5BcHBs
ZVBheVNldHVwKFdlYktpdDo6UGF5bWVudFNldHVwQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9u
LCBXZWJLaXQ6OlBheW1lbnRTZXR1cEZlYXR1cmVzIGZlYXR1cmVzKSAtPiAoYm9vbCByZXN1bHQp
CiAgICAgRW5kQXBwbGVQYXlTZXR1cCgpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXhpbGlhcnlQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDY0ODM5OWE2YzRhNzZkMmFkODlm
ZDRmNzEzYzZmNmE2YjAwYzliZmIuLjcxMzk4MjcxYTg0NDNlM2NkYWE0NDAzZWY5ZWVkNTQ2ODBj
NTE3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBBdXhpbGlhcnlQcm9jZXNz
IE5vdFJlZkNvdW50ZWQgewogICAgIFNodXREb3duKCkKICAgICBTZXRQcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkKGJvb2wgZmxhZykKIAotICAgIE1haW5UaHJlYWRQaW5nKCkgLT4gKCkgQXN5bmMK
KyAgICBNYWluVGhyZWFkUGluZygpIC0+ICgpCiAKICNpZiBPUyhMSU5VWCkKICAgICB2b2lkIERp
ZFJlY2VpdmVNZW1vcnlQcmVzc3VyZUV2ZW50KGJvb2wgaXNDcml0aWNhbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4KaW5kZXgg
MzdjY2RkZjFmYjhlMWM1MmMyYjcxMGQ0ZWYzNGZhZDBhNTVkZmVkZC4uNmFlMTkzNzc5OGE1ZDM3
YzBjZDNiOTZkOWY3YzVmYmUyZjYwMzY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5k
bGVyIE5vdFJlZkNvdW50ZWQgewotICAgIFJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNz
aW9uKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKSAtPiAoYm9vbCBhbGxvd2VkKSBBc3luYworICAg
IFJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5JZGVudGlm
aWVyKSAtPiAoYm9vbCBhbGxvd2VkKQogICAgIFNob3dOb3RpZmljYXRpb24oc3RydWN0IFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbkRhdGEgbm90aWZpY2F0aW9uRGF0YSkgV2FudHNDb25uZWN0aW9uCiAg
ICAgQ2FuY2VsTm90aWZpY2F0aW9uKFVVSUQgbm90aWZpY2F0aW9uSUQpCiAgICAgQ2xlYXJOb3Rp
ZmljYXRpb25zKFZlY3RvcjxVVUlEPiBub3RpZmljYXRpb25JRHMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3YmNhNDUzZTczNzUzNzY5YTdmYzU4ZTJl
NzA3MzJiODU3ZDliODI5Li5mZDY0ODNiMGU2ZDA0NmQ0MDZjMzZiZjExMzZjMTdmMDcwZWRhOTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcg
KzI0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIENyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmlu
ZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMs
IGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcykgLT4gKGJvb2wgc3VjY2Vzcywg
U3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
IGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywg
V2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKSBBc3luYworICAgIENyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZp
Y2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29u
c3RyYWludHMsIGJvb2wgc2hvdWxkVXNlR1BVUHJvY2Vzc1JlbW90ZUZyYW1lcykgLT4gKGJvb2wg
c3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4g
cHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUgZnJhbWVSYXRlKQogICAgIFN0
YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNGYx
Mzk2YmVjZjUzYjdkZGIxOTM5NGRkM2VmZDI0ZjI4NjgzNDE5YS4uMTcwOTMzMzdjNjg1OWMxOTgw
ZTlkODU2Mzc4NzVkYzQ3M2JhMTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjksNyArMjksNyBAQCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkgewogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIEVudGVyRnVsbHNj
cmVlbihXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkK
ICNlbmRpZgotICAgIEV4aXRGdWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgZmluYWxSZWN0KSAtPiAo
Ym9vbCBzdWNjZXNzKSBBc3luYworICAgIEV4aXRGdWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgZmlu
YWxSZWN0KSAtPiAoYm9vbCBzdWNjZXNzKQogICAgIFNldElubGluZVJlY3QoV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVj
dCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCiAgICAgU2V0SGFzVmlkZW9Db250ZW50TGF5ZXIo
V2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wg
dmFsdWUpCiAgICAgQ2xlYW51cEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM5YWQ1
NDQxYTg5OGJkZDVkODFlNzViNWY5ODQzZTJhYmQ1OGI3M2EuLjc1OTE4NTg1NWZmMjE2MmFjZWFj
ZTJjYTkxNjA5OTMyYzIzYjIyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsy
NCw3IEBAIG1lc3NhZ2VzIC0+IERvd25sb2FkUHJveHkgewogICAgIERpZFN0YXJ0KFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBBdG9tU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKQog
ICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VJ
ZGVudGlmaWVyIGNoYWxsZW5nZUlEKQogICAgIFdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
ZGlyZWN0UmVzcG9uc2UpKQotICAgIERlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVu
YW1lKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFN0cmluZyBzdWdnZXN0ZWRG
aWxlbmFtZSkgLT4gKFN0cmluZyBmaWxlbmFtZSwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgaGFuZGxlLCBlbnVtOmJvb2wgV2ViS2l0OjpBbGxvd092ZXJ3cml0ZSBhbGxvd092ZXJ3
cml0ZSkgQXN5bmMKKyAgICBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5h
bWUpIC0+IChTdHJpbmcgZmlsZW5hbWUsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGhhbmRsZSwgZW51bTpib29sIFdlYktpdDo6QWxsb3dPdmVyd3JpdGUgYWxsb3dPdmVyd3JpdGUp
CiAKICAgICBEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBieXRlc1dyaXR0ZW4sIHVpbnQ2NF90IHRv
dGFsQnl0ZXNXcml0dGVuLCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlKQogICAg
IERpZENyZWF0ZURlc3RpbmF0aW9uKFN0cmluZyBwYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNWNjOTk0MWQyYWJmYTA3YmMz
MTc4NjllNzgyMGQ3MWQ1MDE0MmZmYi4uZTgyZWZhYzA0MmQ1ZDlhNTI1MjA1Y2ZlZjViMTc0NmFj
ZTM5NGFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBACiAKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJB
VElPTikKIG1lc3NhZ2VzIC0+IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgTm90
UmVmQ291bnRlZCB7Ci0gICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoZW51
bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KSAt
PiAoZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJLaXQ6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZGVmYXVs
dFJvdXRlQ2hhbmdlZCkgQXN5bmMKKyAgICBCZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRl
Z29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0
ZWdvcnkpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJvciwgZW51bTpib29sIFdlYktp
dDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6RGVmYXVsdFJvdXRlQ2hhbmdl
ZCBkZWZhdWx0Um91dGVDaGFuZ2VkKQogICAgIEVuZFJvdXRpbmdBcmJpdHJhdGlvbigpOwogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA0NTk1M2JlOGQyYTc5OTIxZjdlYTFiMjU3MzU0MzI4OGQ3YTgyOWNlLi4xZmJk
YzcxZTQ0MGNlYmY0NTExOTkyNDRiN2ZiZDQ4NTYxM2Q4YWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDE3ICsyNiwxNyBA
QAogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5IE5vdFJl
ZkNvdW50ZWQgewogCi0gICAgSm9pbigpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2Vw
dGlvbkRhdGE+IGVycm9yKSBBc3luYworICAgIEpvaW4oKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikKIAogICAgIExlYXZlKCkKIAotICAgIENvb3JkaW5h
dGVTZWVrVG8oZG91YmxlIHRpbWUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+IGVycm9yKSBBc3luYworICAgIENvb3JkaW5hdGVTZWVrVG8oZG91YmxlIHRpbWUpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKQogCi0gICAgQ29v
cmRpbmF0ZVBsYXkoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBl
cnJvcikgQXN5bmMKKyAgICBDb29yZGluYXRlUGxheSgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKQogCi0gICAgQ29vcmRpbmF0ZVBhdXNlKCkgLT4gKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gZXJyb3IpIEFzeW5jCisgICAgQ29v
cmRpbmF0ZVBhdXNlKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4g
ZXJyb3IpCiAKLSAgICBDb29yZGluYXRlU2V0VHJhY2soU3RyaW5nIHRyYWNrSWRlbnRpZmllcikg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gZXJyb3IpIEFzeW5jCisg
ICAgQ29vcmRpbmF0ZVNldFRyYWNrKFN0cmluZyB0cmFja0lkZW50aWZpZXIpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKQogCiAgICAgUG9zaXRpb25TdGF0
ZUNoYW5nZWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+IHN0YXRl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU0ZTQ2M2NhODlmNWVhODE4
ODQ2YjJiYTAxMDBmZWQxMThmZWNjZjEuLmVkN2U2YTgxODc1Yzg5NDc3YmZmY2M1ODE1ZmMzMzBk
MDZlNTdhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTM4LDE3ICszOCwx
NyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCkKICAgICBOb3RpZnlXZWJz
aXRlRGF0YURlbGV0aW9uRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNoZWQoKQogICAgIE5vdGlm
eVdlYnNpdGVEYXRhU2NhbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKLSAgICBSZXF1
ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BG
cmFtZURvbWFpbikgLT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3luYwotICAgIERlbGV0
ZVdlYnNpdGVEYXRhSW5VSVByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBl
cywgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25z
LCBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpIC0+IChIYXNoU2V0
PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zV2l0aE1hdGNoaW5nRGF0YVJlY29y
ZHMpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYktpdDo6V2ViUGFn
ZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2Vz
cykKKyAgICBEZWxldGVXZWJzaXRlRGF0YUluVUlQcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW5z
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFU
eXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
IGZldGNoT3B0aW9ucywgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5z
KSAtPiAoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhNYXRj
aGluZ0RhdGFSZWNvcmRzKQogICAgIERpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5z
ZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBw
YWdlSUQpCiAgICAgU2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykKLSAgICBTZXREb21haW5zV2l0aENyb3NzUGFn
ZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpIC0+ICgpIEFzeW5jCisgICAgU2V0RG9tYWlu
c1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSAtPiAoKQogI2VuZGlm
CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBDb250ZW50RXh0ZW5zaW9uUnVs
ZXMoV2ViS2l0OjpVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAj
ZW5kaWYKIAotICAgIFJldHJpZXZlQ2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpIEFzeW5jCisgICAgUmV0cmlldmVDYWNoZVN0
b3JhZ2VQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFN0cmluZyBjYWNo
ZVN0b3JhZ2VEaXJlY3RvcnksIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRs
ZSkKIAogICAgIFRlcm1pbmF0ZVdlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
d2ViUHJvY2Vzc0lkZW50aWZpZXIpCiAKQEAgLTU2LDcgKzU2LDcgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU3RhcnRTZXJ2aWNlV29ya2Vy
QmFja2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdv
cmtlclByb2Nlc3NJZGVudGlmaWVyKQogICAgIEVuZFNlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kUHJv
Y2Vzc2luZyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lk
ZW50aWZpZXIpCiAjZW5kaWYKLSAgICBFc3RhYmxpc2hSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvTmV0d29ya1Byb2Nlc3MoZW51bTpib29sIFdlYktpdDo6UmVtb3RlV29ya2VyVHlwZSB3
b3JrZXJUeXBlLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbiwg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gcmVxdWVzdGluZ1Byb2Nl
c3NJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBFc3RhYmxpc2hSZW1vdGVXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoZW51bTpib29sIFdlYktpdDo6UmVtb3RlV29ya2Vy
VHlwZSB3b3JrZXJUeXBlLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURv
bWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gcmVxdWVzdGlu
Z1Byb2Nlc3NJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKCkKICAgICBSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlv
bk5vTG9uZ2VyTmVlZGVkKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90ZVdvcmtlclR5cGUgd29ya2Vy
VHlwZSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBSZWdpc3Rl
clJlbW90ZVdvcmtlckNsaWVudFByb2Nlc3MoZW51bTpib29sIFdlYktpdDo6UmVtb3RlV29ya2Vy
VHlwZSB3b3JrZXJUeXBlLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRl
bnRpZmllciwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcmVtb3RlV29ya2VyUHJvY2Vzc0lk
ZW50aWZpZXIpOwogICAgIFVucmVnaXN0ZXJSZW1vdGVXb3JrZXJDbGllbnRQcm9jZXNzKGVudW06
Ym9vbCBXZWJLaXQ6OlJlbW90ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIHJlbW90ZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKTsKQEAgLTY0LDEwICs2NCwxMCBAQCBt
ZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRX
ZWJQcm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQs
IGJvb2wgaGFzVXBsb2FkKQogCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotICAgIEdl
dEFwcEJvdW5kRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChIYXNoU2V0PFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBhcHBCb3VuZERvbWFpbnMpIEFzeW5jCisgICAgR2V0
QXBwQm91bmREb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IGFwcEJvdW5kRG9tYWlucykKICNlbmRpZgogCi0gICAg
UmVxdWVzdFN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVu
dFNpemUsIHVpbnQ2NF90IHNwYWNlUmVxdWlyZWQpIC0+IChzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBuZXdRdW90YSkgQXN5bmMKKyAgICBSZXF1ZXN0U3RvcmFnZVNwYWNlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIHVpbnQ2NF90
IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCkgLT4g
KHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG5ld1F1b3RhKQogICAgIEluY3JlYXNlUXVvdGEoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdp
biwgV2ViS2l0OjpRdW90YUluY3JlYXNlUmVxdWVzdElkZW50aWZpZXIgaWRlbnRpZmllciwgdWlu
dDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJlcXVlc3Rl
ZCkKICAgICAKICAgICBSZXNvdXJjZUxvYWREaWRTZW5kUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlJlc291cmNlTG9h
ZEluZm8gcmVzb3VyY2VMb2FkSW5mbywgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IHN0ZDo6b3B0aW9uYWw8SVBDOjpGb3JtRGF0YVJlZmVyZW5jZT4gaHR0cEJvZHkpCkBAIC04MCwx
OSArODAsMTkgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgUmVsb2FkQWZ0ZXJVbmJsb2NrZWRDb250ZW50RmlsdGVyKFdlYktpdDo6V2ViUGFn
ZVByb3h5SWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikKICNlbmRpZgogCi0gICAgVHJpZ2dlckJy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRm9yTmF2aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgZW51bTp1
aW50OF90IFdlYkNvcmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gYnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
cmVzcG9uc2VEb21haW4sIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIgZXhp
c3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKSAtPiAoYm9vbCBzdWNj
ZXNzKSBBc3luYworICAgIFRyaWdnZXJCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmln
YXRpb24oV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaERlY2lzaW9uIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc3BvbnNlRG9tYWluLCBXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyIGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZp
ZXJUb1Jlc3VtZSkgLT4gKGJvb2wgc3VjY2VzcykKIAogI2lmIFVTRShTT1VQKQogICAgIERpZEV4
Y2VlZE1lbW9yeUxpbWl0KCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRU1PVEVf
VUlfVVNFU19TQ0VORSkKLSAgICBHZXRXaW5kb3dTY2VuZUlkZW50aWZpZXJGb3JQYXltZW50UHJl
c2VudGF0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJZGVu
dGlmaWVyKSAtPiAoU3RyaW5nIHNjZW5lSUQpIEFzeW5jCisgICAgR2V0V2luZG93U2NlbmVJZGVu
dGlmaWVyRm9yUGF5bWVudFByZXNlbnRhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgd2ViUGFnZVByb3h5SWRlbnRpZmllcikgLT4gKFN0cmluZyBzY2VuZUlEKQogI2VuZGlmCiAK
LSAgICBEYXRhVGFza1JlY2VpdmVkQ2hhbGxlbmdlKFdlYktpdDo6RGF0YVRhc2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSkg
LT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRp
b24gZGlzcG9zaXRpb24sIFdlYkNvcmU6OkNyZWRlbnRpYWwgY3JlZGVudGlhbCkgQXN5bmMKLSAg
ICBEYXRhVGFza1dpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYktpdDo6RGF0YVRhc2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KSAtPiAoYm9vbCBhbGxvd2VkKSBBc3luYwot
ICAgIERhdGFUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktpdDo6RGF0YVRhc2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIC0+IChib29s
IGFsbG93ZWQpIEFzeW5jCisgICAgRGF0YVRhc2tSZWNlaXZlZENoYWxsZW5nZShXZWJLaXQ6OkRh
dGFUYXNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSBjaGFsbGVuZ2UpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBXZWJDb3JlOjpDcmVkZW50aWFsIGNyZWRl
bnRpYWwpCisgICAgRGF0YVRhc2tXaWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJLaXQ6OkRh
dGFUYXNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkgLT4gKGJvb2wgYWxsb3dl
ZCkKKyAgICBEYXRhVGFza0RpZFJlY2VpdmVSZXNwb25zZShXZWJLaXQ6OkRhdGFUYXNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAo
Ym9vbCBhbGxvd2VkKQogICAgIERhdGFUYXNrRGlkUmVjZWl2ZURhdGEoV2ViS2l0OjpEYXRhVGFz
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgRGF0
YVRhc2tEaWRDb21wbGV0ZVdpdGhFcnJvcihXZWJLaXQ6OkRhdGFUYXNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmZDk1ZjJmNWQy
MzliZWQyZTY3MDdkNTcyODcyNWVlZTZiNjlmZmI4Li5jN2VlNDNhMzZkZThjODc5ZDNmODI5Yjg4
OTUxMmFkNTAzNmE0OTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNSArMjQsNSBAQAogICovCiAKIG1lc3NhZ2VzIC0+
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5IHsKLURpZFBvc3RNZXNzYWdlKFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgSVBDOjpEYXRhUmVm
ZXJlbmNlIG1lc3NhZ2UpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0VmFsdWUsIFN0cmlu
ZyBlcnJvck1lc3NhZ2UpIEFzeW5jCitEaWRQb3N0TWVzc2FnZShXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5m
b0RhdGEsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNz
YWdlKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdFZhbHVlLCBTdHJpbmcgZXJyb3JNZXNz
YWdlKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNDAxYmRmNWRhOWY4YWYwODI2ZTM0OGE3
YmY3NTNhYjMwMTk0YzFlLi41MzQ3NzQ3OTAyMDkxM2EzMmY2ZTg5YmYyY2NmN2RmNmZmZDAzYjU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjYsMTAgKzI2LDEwIEBACiAKIG1lc3NhZ2VzIC0+
IFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5IE5vdFJlZkNvdW50ZWQgewogCi0gICAg
TWFrZUNyZWRlbnRpYWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3Ry
dWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucywg
Ym9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGlj
YXRvclJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0
YWNobWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRp
b24pIEFzeW5jCi0gICAgR2V0QXNzZXJ0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4
X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMgb3B0aW9ucywgZW51bTp1aW50OF90IFdlYkNvcmU6OkNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czo6TWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBib29sIHByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEs
IGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0
cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKLSAgICBpc0NvbmRp
dGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwotICAgIElz
VXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIC0+IChib29sIHJl
c3VsdCkgQXN5bmMKKyAgICBNYWtlQ3JlZGVudGlhbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1
aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBX
ZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNl
cHRpb25EYXRhIGV4Y2VwdGlvbikKKyAgICBHZXRBc3NlcnRpb24oV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBW
ZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zOjpNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIGJvb2wgcHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25z
ZURhdGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0
YWNobWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQorICAgIGlz
Q29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpCisgICAgSXNV
c2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVz
dWx0KQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBlMzkwNjU2ZDNiNDExZTgxNDQ0YWUxMjdkMTQ0MDFmZTM0Y2UzZTQxLi40ZmIxZTViZGJmNjky
YmNhMDEwYTc0ZGQ0ODMxZTAyY2NiODlmY2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNz
UHJveHkuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbkluZm8uaCIKICNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldl
YkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2Fn
ZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzZTY4NjhmYjkwZThiMmZlZmI1M2RlNjYy
MTY4ZjdhODIyZDI3MjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Q
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0j
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0j
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoV0VCX0FV
VEhOKQotCi1tZXNzYWdlcyAtPiBXZWJBdXRoblByb2Nlc3NQcm94eSBOb3RSZWZDb3VudGVkIHsK
LX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDRi
YWJjMjU0YzQxZTBlMDE5MTU2Y2E4MTJjNDZmZTc5MDMwNTE3ZTEuLjZiMzI5Nzg0ZjRkMjMxNjg4
MWUyYjY1YmJhYzgxNzM5ZTc4ZWQ4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3
IEBACiBtZXNzYWdlcyAtPiBXZWJMb2NrUmVnaXN0cnlQcm94eSBOb3RSZWZDb3VudGVkIHsKICAg
ICBSZXF1ZXN0TG9jayhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwg
V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lLCBlbnVtOmJvb2wg
V2ViQ29yZTo6V2ViTG9ja01vZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkK
ICAgICBSZWxlYXNlTG9jayhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdp
biwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKQotICAgIEFi
b3J0TG9ja1JlcXVlc3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4s
IFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSkgLT4gKGJvb2wg
d2FzQWJvcnRlZCkgQXN5bmMKLSAgICBTbmFwc2hvdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luIGNsaWVudE9yaWdpbikgLT4gKHN0cnVjdCBXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90IHNuYXBzaG90KSBBc3luYworICAgIEFib3J0TG9ja1JlcXVlc3Qoc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVu
dElELCBTdHJpbmcgbmFtZSkgLT4gKGJvb2wgd2FzQWJvcnRlZCkKKyAgICBTbmFwc2hvdChzdHJ1
Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbikgLT4gKHN0cnVjdCBXZWJDb3Jl
OjpXZWJMb2NrTWFuYWdlclNuYXBzaG90IHNuYXBzaG90KQogICAgIENsaWVudElzR29pbmdBd2F5
KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJZCkKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyMDdiYzIxZDMy
YTZmZmU2YjdlZjVmZGQwNmU2MDRlMjBhOGFhZTQ4Li45MmExYzNjY2I2MDc5YjBiYmUyNGUyZmY5
MzM2MDFlZGYzNmFlYTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC02Niw4ICs2Niw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgUGFnZURpZFNjcm9sbChXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQb3NpdGlv
bikKICAgICBTZXRIYXNBY3RpdmVBbmltYXRlZFNjcm9sbHMoYm9vbCBoYXNBY3RpdmVBbmltYXRl
ZFNjcm9sbHMpCiAgICAgUnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgc3RydWN0IFdlYkNv
cmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKLSAgICBTaG93U2hhcmVTaGVldChz
dHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEpIC0+IChib29s
IGdyYW50ZWQpIEFzeW5jCi0gICAgU2hvd0NvbnRhY3RQaWNrZXIoc3RydWN0IFdlYkNvcmU6OkNv
bnRhY3RzUmVxdWVzdERhdGEgcmVxdWVzdERhdGEpIC0+IChzdGQ6Om9wdGlvbmFsPFZlY3RvcjxX
ZWJDb3JlOjpDb250YWN0SW5mbz4+IGluZm8pIEFzeW5jCisgICAgU2hvd1NoYXJlU2hlZXQoc3Ry
dWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhKSAtPiAoYm9vbCBn
cmFudGVkKQorICAgIFNob3dDb250YWN0UGlja2VyKHN0cnVjdCBXZWJDb3JlOjpDb250YWN0c1Jl
cXVlc3REYXRhIHJlcXVlc3REYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6
Q29udGFjdEluZm8+PiBpbmZvKQogICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViQ29yZTo6RmxvYXRTaXplIHBkZkZpcnN0UGFn
ZVNpemUpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9s
bGVyVGh1bWJJc1Zpc2libGVJblJlY3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQpA
QCAtMjE2LDcgKzIxNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0SGFz
SGFkU2VsZWN0aW9uQ2hhbmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24oYm9vbCBoYXNIYWRVc2VyU2Vs
ZWN0aW9uQ2hhbmdlcykKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICBSZXF1ZXN0
VGV4dFJlY29nbml0aW9uKFVSTCBpbWFnZVVSTCwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSBpbWFnZURhdGEsIFN0cmluZyBpZGVudGlmaWVyKSAtPiAoc3RydWN0IFdlYkNvcmU6OlRl
eHRSZWNvZ25pdGlvblJlc3VsdCByZXN1bHQpIEFzeW5jCisgICAgUmVxdWVzdFRleHRSZWNvZ25p
dGlvbihVUkwgaW1hZ2VVUkwsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaW1hZ2VE
YXRhLCBTdHJpbmcgaWRlbnRpZmllcikgLT4gKHN0cnVjdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRp
b25SZXN1bHQgcmVzdWx0KQogI2VuZGlmCiAKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJ
Q0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTIyNCw3ICsyMjQsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCi0gICAgU2hvd01lZGlhQ29udHJv
bHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RnJhbWUsIFZlY3RvcjxXZWJD
b3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBpdGVtcykgLT4gKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlEKSBBc3luYworICAg
IFNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEZy
YW1lLCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4gaXRlbXMp
IC0+IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCBzZWxlY3RlZEl0
ZW1JRCkKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYg
VVNFKFVJQ09OVEVYVE1FTlUpCiAKICNpZiBIQVZFKFRPVUNIX0JBUikKQEAgLTI2OCw3ICsyNjgs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCiAgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Np
b25Gb3JGcmFtZShXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmllciB1c2VyTWVkaWFJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCi0gICAgRW51
bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+IGRldmljZXMsIFN0cmluZyBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgQXN5
bmMKKyAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpIC0+IChWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4gZGV2aWNlcywgU3RyaW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhh
c2hTYWx0KQogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNlbmRpZgogCkBA
IC0yNzcsNyArMjc3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAg
ICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlz
c2lvbihTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGJvb2wgYWxsb3dlZCkgQXN5bmMKKyAg
ICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikg
LT4gKGJvb2wgYWxsb3dlZCkKIAogICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIgbWVzc2FnZXMK
ICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQpAQCAtNDQxLDcgKzQ0MSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgRGlkU3RhcnRM
b2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShTdHJpbmcgZmlsZU5hbWUsIFN0cmlu
ZyB1dGkpCiAgICAgRGlkRmluaXNoTG9hZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUo
V2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNlKQotICAgIFJlcXVlc3RQ
YXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUoU3RyaW5nIGZpbGVOYW1lKSAt
PiAoU3RyaW5nIHBhc3N3b3JkKSBBc3luYworICAgIFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9v
a0RvY3VtZW50SW5NYWluRnJhbWUoU3RyaW5nIGZpbGVOYW1lKSAtPiAoU3RyaW5nIHBhc3N3b3Jk
KQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCkBAIC01MTMsNyArNTEz
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBMb2FkU3luY2hyb25vdXNVUkxT
Y2hlbWVUYXNrKHN0cnVjdCBXZWJLaXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFtZXRl
cnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGVycm9yLCBWZWN0b3I8dWludDhfdD4gZGF0YSkgU3luY2hyb25vdXMKIAogI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIGJvb2wgbWF5UHJvbXB0KSAtPiAo
ZW51bTp1aW50OF90IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9u
U3RhdGUgcGVybWlzc2lvblN0YXRlKSBBc3luYworICAgIFNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBib29sIG1heVByb21wdCkgLT4g
KGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlIHBlcm1pc3Npb25TdGF0ZSkKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKQEAgLTUzNywxMSArNTM3LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKICAgICBTcGVlY2hTeW50aGVzaXNWb2lj
ZUxpc3QoKSAtPiAoVmVjdG9yPFdlYktpdDo6V2ViU3BlZWNoU3ludGhlc2lzVm9pY2U+IHZvaWNl
TGlzdCkgU3luY2hyb25vdXMKLSAgICBTcGVlY2hTeW50aGVzaXNTcGVhayhTdHJpbmcgdGV4dCwg
U3RyaW5nIGxhbmcsIGZsb2F0IHZvbHVtZSwgZmxvYXQgcmF0ZSwgZmxvYXQgcGl0Y2gsIE1vbm90
b25pY1RpbWUgc3RhcnRUaW1lLCBTdHJpbmcgdm9pY2VVUkksIFN0cmluZyB2b2ljZU5hbWUsIFN0
cmluZyB2b2ljZUxhbmcsIGJvb2wgbG9jYWxTZXJ2aWNlLCBib29sIGRlZmF1bHRWb2ljZSkgLT4g
KCkgQXN5bmMKLSAgICBTcGVlY2hTeW50aGVzaXNTZXRGaW5pc2hlZENhbGxiYWNrKCkgLT4gKCkg
QXN5bmMKKyAgICBTcGVlY2hTeW50aGVzaXNTcGVhayhTdHJpbmcgdGV4dCwgU3RyaW5nIGxhbmcs
IGZsb2F0IHZvbHVtZSwgZmxvYXQgcmF0ZSwgZmxvYXQgcGl0Y2gsIE1vbm90b25pY1RpbWUgc3Rh
cnRUaW1lLCBTdHJpbmcgdm9pY2VVUkksIFN0cmluZyB2b2ljZU5hbWUsIFN0cmluZyB2b2ljZUxh
bmcsIGJvb2wgbG9jYWxTZXJ2aWNlLCBib29sIGRlZmF1bHRWb2ljZSkgLT4gKCkKKyAgICBTcGVl
Y2hTeW50aGVzaXNTZXRGaW5pc2hlZENhbGxiYWNrKCkgLT4gKCkKICAgICBTcGVlY2hTeW50aGVz
aXNDYW5jZWwoKQotICAgIFNwZWVjaFN5bnRoZXNpc1BhdXNlKCkgLT4gKCkgQXN5bmMKLSAgICBT
cGVlY2hTeW50aGVzaXNSZXN1bWUoKSAtPiAoKSBBc3luYworICAgIFNwZWVjaFN5bnRoZXNpc1Bh
dXNlKCkgLT4gKCkKKyAgICBTcGVlY2hTeW50aGVzaXNSZXN1bWUoKSAtPiAoKQogICAgIFNwZWVj
aFN5bnRoZXNpc1Jlc2V0U3RhdGUoKQogI2VuZGlmCiAKQEAgLTU1NCw3ICs1NTQsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIENvbmZpZ3VyZUxvZ2dpbmdDaGFubmVsKFN0cmlu
ZyBjaGFubmVsTmFtZSwgZW51bTp1aW50OF90IFdURkxvZ0NoYW5uZWxTdGF0ZSBzdGF0ZSwgZW51
bTp1aW50OF90IFdURkxvZ0xldmVsIGxldmVsKQogCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIFNo
b3dFbW9qaVBpY2tlcihXZWJDb3JlOjpJbnRSZWN0IGNhcmV0UmVjdCkgLT4gKFN0cmluZyByZXN1
bHQpIEFzeW5jCisgICAgU2hvd0Vtb2ppUGlja2VyKFdlYkNvcmU6OkludFJlY3QgY2FyZXRSZWN0
KSAtPiAoU3RyaW5nIHJlc3VsdCkKICNlbmRpZgogCiAjaWYgSEFWRShWSVNJQklMSVRZX1BST1BB
R0FUSU9OX1ZJRVcpCkBAIC01NjcsNyArNTY3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRNZXNzYWdl
VG9XZWJWaWV3KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQotICAgIFNl
bmRNZXNzYWdlVG9XZWJWaWV3V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVz
ZXJNZXNzYWdlKSAtPiAoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBB
c3luYworICAgIFNlbmRNZXNzYWdlVG9XZWJWaWV3V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVz
ZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVw
bHlNZXNzYWdlKQogI2VuZGlmCiAKICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlvbkl0ZW1zKFZl
Y3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uSXRl
bT4gaXRlbXMpCkBAIC01ODksMzUgKzU4OSwzNSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIE1vZGVsRWxlbWVudFNldEludGVyYWN0aW9uRW5hYmxlZChzdHJ1Y3QgV2ViS2l0OjpN
b2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBib29sIGlzSW50ZXJhY3Rpb25FbmFibGVk
KQogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKLSAgICBNb2Rl
bEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVSTCB1cmwsIFN0cmluZyB1dWlkLCBXZWJDb3JlOjpG
bG9hdFNpemUgc2l6ZSkgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90Piwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1vZGVsRWxlbWVudFNp
emVEaWRDaGFuZ2UoU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKSAtPiAoRXhw
ZWN0ZWQ8TWFjaFNlbmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3lu
YworICAgIE1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoVVJMIHVybCwgU3RyaW5nIHV1aWQs
IFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywg
dWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpCisgICAgTW9kZWxFbGVt
ZW50U2l6ZURpZENoYW5nZShTdHJpbmcgdXVpZCwgV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpIC0+
IChFeHBlY3RlZDxNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQp
CiAgICAgSGFuZGxlTW91c2VEb3duRm9yTW9kZWxFbGVtZW50KFN0cmluZyB1dWlkLCBXZWJDb3Jl
OjpMYXlvdXRQb2ludCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQsIE1vbm90b25pY1RpbWUgdGlt
ZXN0YW1wKQogICAgIEhhbmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVpZCwg
V2ViQ29yZTo6TGF5b3V0UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCkKICAgICBIYW5kbGVNb3VzZVVwRm9yTW9kZWxFbGVtZW50KFN0cmluZyB1
dWlkLCBXZWJDb3JlOjpMYXlvdXRQb2ludCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wKQogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVW
SUVXKQotICAgIE1vZGVsRWxlbWVudEdldENhbWVyYShzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50
aWZpZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6SFRNTE1vZGVsRWxl
bWVudENhbWVyYSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1v
ZGVsRWxlbWVudFNldENhbWVyYShzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJ
ZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSBjYW1lcmEp
IC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCi0gICAgTW9kZWxFbGVtZW50SXNQbGF5aW5nQW5pbWF0
aW9uKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAg
TW9kZWxFbGVtZW50U2V0QW5pbWF0aW9uSXNQbGF5aW5nKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRl
bnRpZmllciBtb2RlbElkZW50aWZpZXIsIGJvb2wgaXNQbGF5aW5nKSAtPiAoYm9vbCBzdWNjZXNz
KSBBc3luYwotICAgIE1vZGVsRWxlbWVudElzTG9vcGluZ0FuaW1hdGlvbihzdHJ1Y3QgV2ViS2l0
OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1vZGVsRWxlbWVudFNldElz
TG9vcGluZ0FuaW1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVu
dGlmaWVyLCBib29sIGlzTG9vcGluZykgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKLSAgICBNb2Rl
bEVsZW1lbnRBbmltYXRpb25EdXJhdGlvbihzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIg
bW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1vZGVsRWxlbWVudEFuaW1hdGlvbkN1cnJlbnRUaW1l
KHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChFeHBl
Y3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAg
TW9kZWxFbGVtZW50U2V0QW5pbWF0aW9uQ3VycmVudFRpbWUoc3RydWN0IFdlYktpdDo6TW9kZWxJ
ZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgU2Vjb25kcyBjdXJyZW50VGltZSkgLT4gKGJvb2wg
c3VjY2VzcykgQXN5bmMKLSAgICBNb2RlbEVsZW1lbnRIYXNBdWRpbyhzdHJ1Y3QgV2ViS2l0OjpN
b2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1vZGVsRWxlbWVudElzTXV0ZWQo
c3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVj
dGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBNb2Rl
bEVsZW1lbnRTZXRJc011dGVkKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElk
ZW50aWZpZXIsIGJvb2wgaXNNdXRlZCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKLSNlbmRpZgot
Ci0gICAgUXVlcnlQZXJtaXNzaW9uKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2lu
LCBzdHJ1Y3QgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3IgZGVzY3JpcHRvcikgLT4gKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPiBzdGF0ZSwgYm9vbCBzaG91bGRD
YWNoZSkgQXN5bmMKKyAgICBNb2RlbEVsZW1lbnRHZXRDYW1lcmEoc3RydWN0IFdlYktpdDo6TW9k
ZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkhUTUxN
b2RlbEVsZW1lbnRDYW1lcmEsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkKKyAgICBN
b2RlbEVsZW1lbnRTZXRDYW1lcmEoc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVs
SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEgY2FtZXJh
KSAtPiAoYm9vbCBzdWNjZXNzKQorICAgIE1vZGVsRWxlbWVudElzUGxheWluZ0FuaW1hdGlvbihz
dHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0
ZWQ8Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KQorICAgIE1vZGVsRWxlbWVu
dFNldEFuaW1hdGlvbklzUGxheWluZyhzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9k
ZWxJZGVudGlmaWVyLCBib29sIGlzUGxheWluZykgLT4gKGJvb2wgc3VjY2VzcykKKyAgICBNb2Rl
bEVsZW1lbnRJc0xvb3BpbmdBbmltYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVy
IG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3I+IHJlc3VsdCkKKyAgICBNb2RlbEVsZW1lbnRTZXRJc0xvb3BpbmdBbmltYXRpb24oc3RydWN0
IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc0xvb3Bpbmcp
IC0+IChib29sIHN1Y2Nlc3MpCisgICAgTW9kZWxFbGVtZW50QW5pbWF0aW9uRHVyYXRpb24oc3Ry
dWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVk
PFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkKKyAgICBNb2RlbEVsZW1l
bnRBbmltYXRpb25DdXJyZW50VGltZShzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9k
ZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
cj4gcmVzdWx0KQorICAgIE1vZGVsRWxlbWVudFNldEFuaW1hdGlvbkN1cnJlbnRUaW1lKHN0cnVj
dCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIFNlY29uZHMgY3VycmVu
dFRpbWUpIC0+IChib29sIHN1Y2Nlc3MpCisgICAgTW9kZWxFbGVtZW50SGFzQXVkaW8oc3RydWN0
IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJv
b2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkKKyAgICBNb2RlbEVsZW1lbnRJc011
dGVkKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpCisgICAgTW9kZWxF
bGVtZW50U2V0SXNNdXRlZChzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVu
dGlmaWVyLCBib29sIGlzTXV0ZWQpIC0+IChib29sIHN1Y2Nlc3MpCisjZW5kaWYKKworICAgIFF1
ZXJ5UGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0
IFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4gc3RhdGUsIGJvb2wgc2hvdWxkQ2FjaGUpCiAK
ICNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKLSAgICBTdGFydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKFVSTCBvcmlnaW5hdGluZ1VSTCwgc3RydWN0IFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlSZXF1
ZXN0IHJlcXVlc3QpIC0+IChzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlc3VsdCkgQXN5bmMKKyAgICBT
dGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKFVSTCBvcmlnaW5hdGluZ1VSTCwgc3RydWN0IFdlYkNv
cmU6OkFwcGxlUGF5QU1TVUlSZXF1ZXN0IHJlcXVlc3QpIC0+IChzdGQ6Om9wdGlvbmFsPGJvb2w+
IHJlc3VsdCkKICAgICBBYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKCkKICNlbmRpZgogCi0gICAg
UmVxdWVzdENvb2tpZUNvbnNlbnQoKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkNvb2tpZUNv
bnNlbnREZWNpc2lvblJlc3VsdCByZXN1bHQpIEFzeW5jCi0gICAgQ2xhc3NpZnlNb2RhbENvbnRh
aW5lckNvbnRyb2xzKFZlY3RvcjxTdHJpbmc+IHRleHRzKSAtPiAoVmVjdG9yPFdlYkNvcmU6Ok1v
ZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzKSBBc3luYwotICAgIERlY2lkZVBvbGljeUZv
ck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xU
eXBlPiB0eXBlcykgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lz
aW9uIGRlY2lzaW9uKSBBc3luYworICAgIFJlcXVlc3RDb29raWVDb25zZW50KCkgLT4gKGVudW06
dWludDhfdCBXZWJDb3JlOjpDb29raWVDb25zZW50RGVjaXNpb25SZXN1bHQgcmVzdWx0KQorICAg
IENsYXNzaWZ5TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiB0ZXh0cykgLT4g
KFZlY3RvcjxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0eXBlcykKKyAgICBE
ZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250
YWluZXJDb250cm9sVHlwZT4gdHlwZXMpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TW9kYWxD
b250YWluZXJEZWNpc2lvbiBkZWNpc2lvbikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiMjg5NWY5NGI2Mjc2NTZh
ZGJkZDFmZmExYWQ2ZjQzYzJkYTAyMDA2Li5iNzQ3OTYwM2FlMGI1OGY5YmJkMjVkZGU3MzBlMzhm
M2ExZjFlODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC03Miw3ICs3Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dChzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVz
c2FnZSB1c2VyTWVzc2FnZSkKLSAgICBTZW5kTWVzc2FnZVRvV2ViQ29udGV4dFdpdGhSZXBseShz
dHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4gKHN0cnVjdCBXZWJLaXQ6
OlVzZXJNZXNzYWdlIHJlcGx5TWVzc2FnZSkgQXN5bmMKKyAgICBTZW5kTWVzc2FnZVRvV2ViQ29u
dGV4dFdpdGhSZXBseShzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4g
KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHJlcGx5TWVzc2FnZSkKICNlbmRpZgogCiAgICAg
RGlkQ3JlYXRlU2xlZXBEaXNhYmxlcihXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBTdHJpbmcgcmVhc29uLCBib29sIGRpc3BsYXkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5tZXNzYWdlcy5pbgppbmRl
eCA2MDMyYjliZmQwOGExNTFlMzk1NDYzZGY2NDljZTZmYjliMWNiNjQyLi5mYWRkMWZkYTcxOGIz
ZWNjMWQxYWVjMjZhYzdkM2U3YmIxZGI2NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0ubWVzc2FnZXMuaW4KQEAgLTI2LDExICsy
NiwxMSBAQAogI2lmIEVOQUJMRShXRUJYUikKIAogbWVzc2FnZXMgLT4gUGxhdGZvcm1YUlN5c3Rl
bSBOb3RSZWZDb3VudGVkIHsKLSAgICBFbnVtZXJhdGVJbW1lcnNpdmVYUkRldmljZXMoKSAtPiAo
VmVjdG9yPFdlYktpdDo6WFJEZXZpY2VJbmZvPiBkZXZpY2VzSW5mb3MpIEFzeW5jCi0gICAgUmVx
dWVzdFBlcm1pc3Npb25PblNlc3Npb25GZWF0dXJlcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIG9yaWdpbiwgUGxhdGZvcm1YUjo6U2Vzc2lvbk1vZGUgbW9kZSwgVmVjdG9yPFBs
YXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4gZ3JhbnRlZCwgVmVjdG9yPFBsYXRmb3JtWFI6
OlJlZmVyZW5jZVNwYWNlVHlwZT4gY29uc2VudFJlcXVpcmVkLCBWZWN0b3I8UGxhdGZvcm1YUjo6
UmVmZXJlbmNlU3BhY2VUeXBlPiBjb25zZW50T3B0aW9uYWwpIC0+IChzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+PiB1c2VyR3JhbnRlZCkgQXN5bmMK
KyAgICBFbnVtZXJhdGVJbW1lcnNpdmVYUkRldmljZXMoKSAtPiAoVmVjdG9yPFdlYktpdDo6WFJE
ZXZpY2VJbmZvPiBkZXZpY2VzSW5mb3MpCisgICAgUmVxdWVzdFBlcm1pc3Npb25PblNlc3Npb25G
ZWF0dXJlcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgUGxhdGZv
cm1YUjo6U2Vzc2lvbk1vZGUgbW9kZSwgVmVjdG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNl
VHlwZT4gZ3JhbnRlZCwgVmVjdG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4gY29u
c2VudFJlcXVpcmVkLCBWZWN0b3I8UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlPiBjb25z
ZW50T3B0aW9uYWwpIC0+IChzdGQ6Om9wdGlvbmFsPFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVu
Y2VTcGFjZVR5cGU+PiB1c2VyR3JhbnRlZCkKICAgICBJbml0aWFsaXplVHJhY2tpbmdBbmRSZW5k
ZXJpbmcoKQogICAgIFNodXREb3duVHJhY2tpbmdBbmRSZW5kZXJpbmcoKQotICAgIFJlcXVlc3RG
cmFtZSgpIC0+IChzdHJ1Y3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGcmFtZURhdGEgZnJhbWVEYXRh
KSBBc3luYworICAgIFJlcXVlc3RGcmFtZSgpIC0+IChzdHJ1Y3QgUGxhdGZvcm1YUjo6RGV2aWNl
OjpGcmFtZURhdGEgZnJhbWVEYXRhKQogICAgIFN1Ym1pdEZyYW1lKCkKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdl
cy5pbgppbmRleCBkOTc1NmEzMDllYjE4NGIzYWYwNGRhNzQxM2Q1NTNhZTUwMzE2ZTZlLi41ZGRh
YmM4NTI5YTFkN2M4MTIxZDgzNDI4OWFhMGU3MGE1ZGNkN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBTZWNJdGVtU2hpbVByb3h5IHsKIAogI2lmIEVO
QUJMRShTRUNfSVRFTV9TSElNKQogICAgIFNlY0l0ZW1SZXF1ZXN0U3luYyhXZWJLaXQ6OlNlY0l0
ZW1SZXF1ZXN0RGF0YSByZXF1ZXN0KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlNlY0l0ZW1S
ZXNwb25zZURhdGE+IHJlc3BvbnNlKSBTeW5jaHJvbm91cwotICAgIFNlY0l0ZW1SZXF1ZXN0KFdl
YktpdDo6U2VjSXRlbVJlcXVlc3REYXRhIHJlcXVlc3QpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6U2VjSXRlbVJlc3BvbnNlRGF0YT4gcmVzcG9uc2UpIEFzeW5jCisgICAgU2VjSXRlbVJlcXVl
c3QoV2ViS2l0OjpTZWNJdGVtUmVxdWVzdERhdGEgcmVxdWVzdCkgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViS2l0OjpTZWNJdGVtUmVzcG9uc2VEYXRhPiByZXNwb25zZSkKICNlbmRpZgogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZTk4ZDBhNjI4
NTI0YTkwMDMwYWMzYjM0N2M0NjI1NTBmYjk0M2Y3YS4uMDlkOGViNWYwYjg1N2U4ZjNkYjBlNjBl
ODVjM2ZhNmNmMjRiNWVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nl
c3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMjQsOSArMjQsOSBAQAogCiBtZXNzYWdlcyAtPiBXZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgV2FudHNEaXNwYXRjaE1lc3NhZ2UgewogCi0gICAgTWFrZUNyZWRl
bnRpYWwoVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgZGF0YSwgZW51
bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudCwgc3RydWN0
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKSBBc3luYwotICAgIEdldEFzc2VydGlv
bihWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4g
KHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50
IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKLSAgICBJc1VzZXJWZXJpZnlpbmdQ
bGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCisg
ICAgTWFrZUNyZWRlbnRpYWwoVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURh
dGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNo
bWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQorICAgIEdldEFz
c2VydGlvbihWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVu
dW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVj
dCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKKyAgICBJc1VzZXJWZXJpZnlpbmdQ
bGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpCiAKICAgICBT
ZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IDA0YjIwN2I3MGI1ZmIxMWIwODdlZTE5MzY1YjQ2ZDFlMDc1ZTkzMDMu
LjIzZDE5YzY3MmMyY2Q4YjlhYzEzZTYyNDNkNWRmMWRkN2JmMTI4MGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTI3LDcgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViQXV0aG5Qcm9jZXNzIHsKICAg
ICBJbml0aWFsaXplV2ViQXV0aG5Qcm9jZXNzKHN0cnVjdCBXZWJLaXQ6OldlYkF1dGhuUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQogCiAgICAgIyBD
cmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2Vzcwot
ICAgIENyZWF0ZVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpBdHRh
Y2htZW50PiBjb25uZWN0aW9uSWRlbnRpZmllcikgQXN5bmMKKyAgICBDcmVhdGVXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklk
ZW50aWZpZXIpCiAKICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBOb3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc1MDI2YjU3NGU0YjkzZjQ1MmM0NTJhNDJkN2M4MzNk
MzRlZTEyM2UuLjIyNmMzNTkxOWFlOWU0NDExOGZmOWQ0MGQzMzkzYWQ3ZWJmYWE1NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEw
Nyw4ICsxMTA3LDYgQEAKIAkJNTcyRUJCQzQyNTM2QUI4NDAwMDU1MkIzIC8qIGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJDMzI1MzZBQjg0MDAwNTUyQjMgLyogY29tLmFwcGxlLldl
YktpdC5XZWJBdXRoblByb2Nlc3Muc2IgKi87IH07CiAJCTU3MkVCQkM5MjUzNkFGRDUwMDA1NTJC
MyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJv
Y2Vzc1Byb3h5LmggKi87IH07CiAJCTU3MkVCQkNDMjUzNkIwNEYwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTcyRUJCQ0IyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvLmggKi87IH07Ci0JCTU3MkVCQkNGMjUzNkJCMTEwMDA1NTJCMyAvKiBX
ZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJDRDI1MzZCQjEwMDAwNTUyQjMgLyog
V2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQk1NzJFQkJE
MDI1MzZCQjExMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQ0UyNTM2QkIx
MDAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTcy
RUJCRDUyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkQyMjUzNkM4
ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggKi87IH07CiAJCTU3MkVC
QkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNBNjgwRDMxRTY5MDRC
NTAwNzMxRDIwIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggKi87IH07CiAJCTU3MkVC
QkRBMjUzOEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDgyNTM4RjZB
MTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi87IH07CkBAIC00NzA5
LDEwICs0NzA3LDcgQEAKIAkJNTcyRUJCQzMyNTM2QUI4NDAwMDU1MkIzIC8qIGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBs
ZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzJFQkJDNTI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJDNjI1MzZBRkQ1MDAwNTUy
QjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTcyRUJCQzcyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJDQjI1MzZCMDRGMDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQ0QyNTM2QkIxMDAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQ0UyNTM2QkIxMDAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzJFQkJEMTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTcyRUJCRDIyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJEMzI1MzZDODg1MDAwNTUy
QjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkzNywxNiArNDkzMiwxNiBAQAogCQk1QzJFQkRGOTI1
NjQzNTIwMDBENTVCMDUgLyogV0tEb3dubG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0Rvd25sb2FkQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDMzU5QzBDMjE1NDczMjEwMDlFNzk0OCAvKiBXS0RlcHJlY2F0ZWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDM0FFQThFMUZFMUYxREYwMDIzMThEMyAvKiBXZWJzaXRlUG9saWNp
ZXNEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVQ
b2xpY2llc0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMUQ5QjI3
Q0VENDIwMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTIxLmNwcDsgcGF0aCA9ICJVbmlmaWVk
U291cmNlMTIxLmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExRDlDMjdD
RUQ0MjAwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTIzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjMuY3BwOyBwYXRoID0gIlVuaWZpZWRT
b3VyY2UxMjMuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEOUQyN0NF
RDQyMDAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMzAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEzMC5jcHA7IHBhdGggPSAiVW5pZmllZFNv
dXJjZTEzMC5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMUQ5RTI3Q0VE
NDIxMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTI1LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291
cmNlMTI1LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExRDlGMjdDRUQ0
MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTIyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjIuY3BwOyBwYXRoID0gIlVuaWZpZWRTb3Vy
Y2UxMjIuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEQTAyN0NFRDQy
MTAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyOC5jcHA7IHBhdGggPSAiVW5pZmllZFNvdXJj
ZTEyOC5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMURBMTI3Q0VENDIx
MDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTI2LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNl
MTI2LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExREEyMjdDRUQ0MjEw
MDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjcuY3BwOyBwYXRoID0gIlVuaWZpZWRTb3VyY2Ux
MjcuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEQTMyN0NFRDQyMjAw
NjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyOS5jcHA7IHBhdGggPSAiVW5pZmllZFNvdXJjZTEy
OS5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMURBNDI3Q0VENDIyMDA2
ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTI0LmNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNlMTI0
LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDExRDlCMjdDRUQ0MjAwMDY4
MjQxQSAvKiBVbmlmaWVkU291cmNlMTIxLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFVuaWZpZWRTb3VyY2UxMjEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1QzQxMUQ5QzI3Q0VENDIwMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNlMTIzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MTFEOUQyN0NFRDQyMDAwNjgyNDFBIC8q
IFVuaWZpZWRTb3VyY2UxMzAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVW5pZmllZFNvdXJjZTEzMC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVD
NDExRDlFMjdDRUQ0MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI1LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWZpZWRTb3VyY2UxMjUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1QzQxMUQ5RjI3Q0VENDIxMDA2ODI0MUEgLyogVW5pZmll
ZFNvdXJjZTEyMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlm
aWVkU291cmNlMTIyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MTFEQTAy
N0NFRDQyMTAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjguY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVW5pZmllZFNvdXJjZTEyOC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTVDNDExREExMjdDRUQ0MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNl
MTI2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWZpZWRTb3Vy
Y2UxMjYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzQxMURBMjI3Q0VENDIx
MDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNlMTI3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUM0MTFEQTMyN0NFRDQyMjAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pZmllZFNvdXJjZTEyOS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDExREE0MjdDRUQ0MjIwMDY4MjQx
QSAvKiBVbmlmaWVkU291cmNlMTI0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVuaWZpZWRTb3VyY2UxMjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1QzQ2MDlFMjIyNDMwRTRDMDA5OTQzQzIgLyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQ2MDlFMzIyNDMwRTREMDA5OTQz
QzIgLyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1QzQ2MDlFNDIyNDMwRTREMDA5OTQzQzIgLyogX1dLQ29udGVu
dFJ1bGVMaXN0QWN0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwMDkyLDcgKzEwMDg3LDYgQEAKIAkJCQk1NzYwODI5OTIwMkJEQUUyMDAx
MTY2NzggLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gKi8s
CiAJCQkJNTcyRUJCQzUyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmNw
cCAqLywKIAkJCQk1NzJFQkJDNjI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJv
eHkuaCAqLywKLQkJCQk1NzJFQkJDNzI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9u
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEyNDgwLDggKzEyNDc0LDYgQEAKIAkJ
CQk1NzJFQkJCQzI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCAqLywKIAkJCQk1NzJFQkJCRDI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0
aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1NzJFQkJCRTI1MzZBNjBBMDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCAqLywKLQkJCQk1NzJFQkJDRDI1MzZC
QjEwMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAotCQkJCTU3MkVCQkNFMjUzNkJCMTAwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eU1l
c3NhZ2VzLmggKi8sCiAJCQkJMUMwQTE5NTUxQzkwMDY4RjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRp
b25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQzBBMTk1NjFDOTAwNjhGMDBG
RTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlcy5oICovLAogCQkJCTFDMEExOTUx
MUM4RkZERkIwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKQEAgLTE2MTkzLDcgKzE2MTg1LDYgQEAKIAkJCQk1N0RDRUQ3MDIxNDJFRTY4
MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTcyRUJCQkYyNTM2QTYwQTAwMDU1MkIzIC8qIFdl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1NzJFQkJDMTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTU3MkVCQkNGMjUzNkJCMTEwMDA1
NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1NzVCMUJCQTIzQ0U5QzEzMDAyMDYzOUEgLyogV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkwMDY4RjAwRkUwRUJCIC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTU3NUIxQkI4MjNDRTlCRkMwMDIwNjM5QSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggYThkOWRkZTc1NTU5ZDVhODlhNWEyNmMxYTM0OWQxMDE2OWJmZDBjYi4u
MjIxMDk0MWFkODU4Nzg4MDE5ZjA1MzgwY2Q0YTRkZWQ2YjUzNTEyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMywyMSArMjMsMjEgQEAK
IG1lc3NhZ2VzIC0+IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgTm90UmVmQ291bnRlZCB7CiAg
ICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3Ry
aW5nIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxp
Y2l0Q2FsbGJhY2tBcmd1bWVudCwgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNhbGxiYWNrVGltZW91
dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIAotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4gKHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5k
bGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJp
bmc+IGVycm9yVHlwZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQpIC0+IChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlQ2hpbGRG
cmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwp
IC0+IChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhO
b2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAo
c3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBlcnJvclR5cGUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlEKQorICAgIFJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSAt
PiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCiAKLSAgICBDb21wdXRlRWxlbWVudExheW91dChX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRv
Vmlld0lmTmVlZGVkLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDb29yZGluYXRlU3lzdGVtIGNvb3Jk
aW5hdGVTeXN0ZW0pIC0+IChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3Jl
OjpJbnRSZWN0IHJlY3QsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0Nl
bnRlclBvaW50LCBib29sIGlzT2JzY3VyZWQpIEFzeW5jCisgICAgQ29tcHV0ZUVsZW1lbnRMYXlv
dXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1aW50OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbSBj
b29yZGluYXRlU3lzdGVtKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2Vi
Q29yZTo6SW50UmVjdCByZWN0LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZp
ZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVkKQogCi0gICAgU2VsZWN0T3B0aW9uRWxlbWVu
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAgU2VsZWN0T3B0aW9uRWxlbWVudChX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUpCiAKLSAgICBTZXRGaWxlc0ZvcklucHV0RmlsZVVwbG9hZChX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgVmVjdG9yPFN0cmluZz4g
ZmlsZW5hbWVzKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKKyAg
ICBTZXRGaWxlc0ZvcklucHV0RmlsZVVwbG9hZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSwgVmVjdG9yPFN0cmluZz4gZmlsZW5hbWVzKSAtPiAoc3RkOjpvcHRpb25h
bDxTdHJpbmc+IGVycm9yVHlwZSkKIAogICAgIFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQs
IGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKLSAgICBTbmFwc2hv
dFJlY3RGb3JTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFu
ZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQpIC0+
IChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3Qp
IEFzeW5jCisgICAgU25hcHNob3RSZWN0Rm9yU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29s
IGNsaXBUb1ZpZXdwb3J0KSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2Vi
Q29yZTo6SW50UmVjdCByZWN0KQogCi0gICAgR2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQpIC0+IChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYwotICAgIERlbGV0ZUNvb2tpZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSkgLT4gKHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAgR2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQpIC0+IChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiBjb29raWVzKQorICAgIERlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBl
cnJvclR5cGUpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBiYTAzZGQyNWRlNDBm
MzE0MTNiNDNlY2IyOWEwZWVmZDAwZWJkZTk3Li42MThiNDI5NzAzY2I5ZGQ2YjcwNTBjOTdjYjZi
OTEwZTVlMzNhOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcg
QEAgbWVzc2FnZXMgLT4gR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gV2FudHNEaXNwYXRjaE1lc3NhZ2Ug
ewogICAgIERpZFJlY2VpdmVSZW1vdGVDb21tYW5kKGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHR5cGUsIHN0cnVjdCBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29tbWFuZEFyZ3VtZW50IGFyZ3Vt
ZW50KQogCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCi0gICAgQmVnaW5Sb3V0aW5n
QXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJy
b3IsIGVudW06Ym9vbCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6
OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkgQXN5bmMKKyAgICBCZWdp
blJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpSb3V0aW5nQXJiaXRyYXRpb25F
cnJvciBlcnJvciwgZW51bTpib29sIFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6RGVmYXVsdFJvdXRlQ2hhbmdlZCBkZWZhdWx0Um91dGVDaGFuZ2VkKQogICAgIEVu
ZFJvdXRpbmdBcmJpdHJhdGlvbigpOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3Nh
Z2VzLmluCmluZGV4IDVlZGY3NTM4ZjVhZjY2M2JhNzhmZTljNjdlN2E2NDJhZGI2ZGRlZGIuLjVk
MWIzY2QwZTJkZWJlNzVjOWE2YjIwYjNkOGE4MjU1ZWJjZmE2NDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCkBAIC02OCw5ICs2OCw5IEBAIG1lc3NhZ2Vz
IC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKICAgICBVcGRhdGVH
ZW5lcmljQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBz
dHJ1Y3QgV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQogICAgIFJlbW92ZUdlbmVyaWNDdWUo
V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBXZWJD
b3JlOjpHZW5lcmljQ3VlRGF0YSBjdWUpCiAKLSAgICBSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+ICgp
IEFzeW5jCisgICAgUmVxdWVzdFJlc291cmNlKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKSAtPiAoKQogICAgIFJlbW92ZVJlc291cmNl
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIpCi0gICAgU2VuZEgyUGluZyhVUkwgdXJsKSAtPiAoRXhwZWN0ZWQ8U2Vjb25k
cywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFNlbmRIMlBpbmco
VVJMIHVybCkgLT4gKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJl
c3VsdCkKICAgICBSZXNvdXJjZU5vdFN1cHBvcnRlZCgpCiAKICAgICBBY3RpdmVTb3VyY2VCdWZm
ZXJzQ2hhbmdlZCgpCkBAIC04OSw3ICs4OSw3IEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBHZXRSYXdDb29raWVzKFVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29v
a2llPiByZXN1bHQpIEFzeW5jCisgICAgR2V0UmF3Q29va2llcyhVUkwgdXJsKSAtPiAoVmVjdG9y
PFdlYkNvcmU6OkNvb2tpZT4gcmVzdWx0KQogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgppbmRleCAwYTAx
MTA5YzU2OTU0YjU3NzM1NDE1MTk5MjZkZjllODUzMGQwNTU1Li5mNTFhZTczMzE0OGE1OTEyZDM0
NTg2OTM5M2QzYWUwZWI4NzIxZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlLm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiBtZXNzYWdlcyAtPiBTb3VyY2VCdWZmZXJQcml2
YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewotICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHN0cnVjdCBXZWJLaXQ6OkluaXRpYWxpemF0aW9uU2Vn
bWVudEluZm8gc2VnbWVudENvbmZpZ3VyYXRpb24pIC0+ICgpIEFzeW5jCisgICAgU291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc3RydWN0IFdlYktpdDo6
SW5pdGlhbGl6YXRpb25TZWdtZW50SW5mbyBzZWdtZW50Q29uZmlndXJhdGlvbikgLT4gKCkKICAg
ICBTb3VyY2VCdWZmZXJQcml2YXRlU3RyZWFtRW5kZWRXaXRoRGVjb2RlRXJyb3IoKQogICAgIFNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRFcnJvcihib29sIGRlY29kZUVycm9yKQogICAgIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50OjpBcHBlbmRSZXN1bHQgYXBwZW5kUmVzdWx0LCBXZWJDb3JlOjpQbGF0Zm9ybVRpbWVS
YW5nZXMgYnVmZmVyZWQsIHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcywgTWVk
aWFUaW1lIHRpbWVTdGFtcE9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4KaW5kZXggZTQ4NzJjNDdlN2I2MWI5N2YwOGIw
YTk4YjIxM2Q2M2Q5M2IwNzcxZi4uMWMyODBlYTI0YWE4NTdkMGVjNzlmZjU3MmVlMjBlMWZlMjAz
N2ZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIubWVzc2FnZXMuaW4KQEAgLTIzLDE2ICsyMywxNiBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1Jf
RVhURU5TSU9OUykKIAogbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyIE5vdFJlZkNvdW50ZWQgewotICAgIFJlZ2lzdGVyRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNp
b25JRCwgU3RyaW5nIGV4dGVuc2lvbkJ1bmRsZUlkZW50aWZpZXIsIFN0cmluZyBkaXNwbGF5TmFt
ZSkgLT4gKEV4cGVjdGVkPHZvaWQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkg
QXN5bmMKLSAgICBVbnJlZ2lzdGVyRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCkgLT4gKEV4
cGVjdGVkPHZvaWQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAg
ICBSZWdpc3RlckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0cmluZyBleHRlbnNpb25C
dW5kbGVJZGVudGlmaWVyLCBTdHJpbmcgZGlzcGxheU5hbWUpIC0+IChFeHBlY3RlZDx2b2lkLCBJ
bnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQpCisgICAgVW5yZWdpc3RlckV4dGVuc2lv
bihTdHJpbmcgZXh0ZW5zaW9uSUQpIC0+IChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVu
c2lvbkVycm9yPiByZXN1bHQpCiAKLSAgICBDcmVhdGVUYWJGb3JFeHRlbnNpb24oU3RyaW5nIGV4
dGVuc2lvbklELCBTdHJpbmcgdGFiTmFtZSwgVVJMIHRhYkljb25VUkwsIFVSTCBzb3VyY2VVUkwp
IC0+IChFeHBlY3RlZDxTdHJpbmcsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkg
QXN5bmMKLSAgICBFdmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQs
IFN0cmluZyBzY3JpcHRTb3VyY2UsIHN0ZDo6b3B0aW9uYWw8VVJMPiBmcmFtZVVSTCwgc3RkOjpv
cHRpb25hbDxVUkw+IGNvbnRleHRTZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25hbDxib29sPiB1
c2VDb250ZW50U2NyaXB0Q29udGV4dCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHREYXRh
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIHN0ZDo6
b3B0aW9uYWw8SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCi0gICAgUmVs
b2FkRm9yRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwgc3RkOjpvcHRpb25hbDxib29sPiBp
Z25vcmVDYWNoZSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHVzZXJBZ2VudCwgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IGluamVjdGVkU2NyaXB0KSAtPiAoc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OkV4
dGVuc2lvbkVycm9yPiBlcnJvcikgQXN5bmMKLSAgICBTaG93RXh0ZW5zaW9uVGFiKFN0cmluZyBl
eHRlbnNpb25UYWJJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dm9pZCwgSW5zcGVjdG9yOjpFeHRl
bnNpb25FcnJvcj4gcmVzdWx0KSBBc3luYworICAgIENyZWF0ZVRhYkZvckV4dGVuc2lvbihTdHJp
bmcgZXh0ZW5zaW9uSUQsIFN0cmluZyB0YWJOYW1lLCBVUkwgdGFiSWNvblVSTCwgVVJMIHNvdXJj
ZVVSTCkgLT4gKEV4cGVjdGVkPFN0cmluZywgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gcmVz
dWx0KQorICAgIEV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwg
U3RyaW5nIHNjcmlwdFNvdXJjZSwgc3RkOjpvcHRpb25hbDxVUkw+IGZyYW1lVVJMLCBzdGQ6Om9w
dGlvbmFsPFVSTD4gY29udGV4dFNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlvbmFsPGJvb2w+IHVz
ZUNvbnRlbnRTY3JpcHRDb250ZXh0KSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEs
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgc3RkOjpv
cHRpb25hbDxJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiBlcnJvcikKKyAgICBSZWxvYWRGb3JF
eHRlbnNpb24oU3RyaW5nIGV4dGVuc2lvbklELCBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlnbm9yZUNh
Y2hlLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gdXNlckFnZW50LCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gaW5qZWN0ZWRTY3JpcHQpIC0+IChzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9u
RXJyb3I+IGVycm9yKQorICAgIFNob3dFeHRlbnNpb25UYWIoU3RyaW5nIGV4dGVuc2lvblRhYklk
ZW50aWZpZXIpIC0+IChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiBy
ZXN1bHQpCiAgICAgCiAgICAgLy8gRm9yIHRlc3RpbmcuCi0gICAgRXZhbHVhdGVTY3JpcHRJbkV4
dGVuc2lvblRhYihTdHJpbmcgZXh0ZW5zaW9uVGFiSUQsIFN0cmluZyBzY3JpcHRTb3VyY2UpIC0+
IChJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpF
eGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5z
aW9uRXJyb3I+IGVycm9yKSBBc3luYworICAgIEV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIo
U3RyaW5nIGV4dGVuc2lvblRhYklELCBTdHJpbmcgc2NyaXB0U291cmNlKSAtPiAoSVBDOjpEYXRh
UmVmZXJlbmNlIHJlc3VsdERhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0
YWlscz4gZGV0YWlscywgc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiBl
cnJvcikKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCmlu
ZGV4IDExYjI1YmUzZjFlMzE2MGQyOGZjODA2OTE2MTAxMmIxNWQ3YWY4M2IuLmZmMzFmYjA4ZjM1
NWIxMzAwMTMwYmU3YTZlMWM2ZGJhMWQzNjFiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjcsMTMgKzI3LDEzIEBA
CiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIE5vdFJlZkNvdW50
ZWQgewogCi0gICAgU2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlIHRpbWUpIC0+IChib29sIHJlc3Vs
dCkgQXN5bmMKKyAgICBTZWVrU2Vzc2lvblRvVGltZShkb3VibGUgdGltZSkgLT4gKGJvb2wgcmVz
dWx0KQogCi0gICAgUGxheVNlc3Npb24oc3RkOjpvcHRpb25hbDxkb3VibGU+IGF0VGltZSwgc3Rk
OjpvcHRpb25hbDxNb25vdG9uaWNUaW1lPiBob3N0VGltZSkgLT4gKGJvb2wgcmVzdWx0KSBBc3lu
YworICAgIFBsYXlTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBhdFRpbWUsIHN0ZDo6b3B0
aW9uYWw8TW9ub3RvbmljVGltZT4gaG9zdFRpbWUpIC0+IChib29sIHJlc3VsdCkKIAotICAgIFBh
dXNlU2Vzc2lvbigpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKyAgICBQYXVzZVNlc3Npb24oKSAt
PiAoYm9vbCByZXN1bHQpCiAKLSAgICBTZXRTZXNzaW9uVHJhY2soU3RyaW5nIHRyYWNrSWRlbnRp
ZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworICAgIFNldFNlc3Npb25UcmFjayhTdHJpbmcg
dHJhY2tJZGVudGlmaWVyKSAtPiAoYm9vbCByZXN1bHQpCiAKICAgICBDb29yZGluYXRvclN0YXRl
Q2hhbmdlZChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0
ZSBzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5k
ZXggNmJhMzFmNTQ4YjlhYTUwMDE3ZDZhZDQ3ODI2YzczMTgyMTZhNjM2NC4uZjk2Yzg3YjU3YjA4
MmRmYWNmYjliM2VmZjUwZTg1ZmRhZjJjZjkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgpAQCAtMzgsMTAgKzM4LDEwIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShX
RUJfUlRDKQotICAgIENvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKHN0cnVjdCBX
ZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6
UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIpIC0+IChzdGQ6Om9wdGlvbmFsPGJvb2w+
IHJlc3VsdCkgQXN5bmMKKyAgICBDb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShz
dHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgc3RydWN0IFdl
YkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyKSAtPiAoc3RkOjpvcHRpb25h
bDxib29sPiByZXN1bHQpCiAjZW5kaWYKIAotICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFj
dGl2aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0
eSkgQXN5bmMKKyAgICBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQpIC0+IChXZWJDb3JlOjpNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpCiAgICAgTWVzc2FnZXNB
dmFpbGFibGVGb3JQb3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9y
dCkKIAogICAgIEJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKGVudW06dWludDhfdCBKU0M6Ok1lc3Nh
Z2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1l
c3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggMjliOGI2ZmVlMGE1YTEyMjRlNGI3MmY4YWY5NjkzMmJkMzBiMGRmMS4uYmVm
OGRhMmVlMWQwMzZmMGM3YWJkYzNiNzdjOGIwMmRhMTlhZTJjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzgsNyArMzgsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV0Ns
aWVudENvbm5lY3Rpb24gewogICAgIFNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1vcnkoV2ViS2l0
OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
ZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSBz
b3VyY2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKLSAgICBTZXREb2N1bWVudElzQ29udHJvbGxl
ZChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciB0ZW1wb3JhcnlEb2N1
bWVudElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSBkYXRhKSAtPiAoYm9vbCBpc1N1Y2Nlc3MpIEFzeW5jCisgICAgU2V0RG9jdW1lbnRJc0Nv
bnRyb2xsZWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgdGVtcG9y
YXJ5RG9jdW1lbnRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEgZGF0YSkgLT4gKGJvb2wgaXNTdWNjZXNzKQogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgppbmRleCBjNmExYThmYjM2NzZkZmNkN2YyZDhmNzQyMGExZThiY2M5MGIz
MTAzLi42ZWYyN2VmYzJhM2ExZTRiNzJiOWY2YWU1NDQzN2I1MmRhNjQ3NjNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzEsNyArMzEs
NyBAQCBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBOb3RSZWZDb3Vu
dGVkIHsKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGll
bnREYXRhIHNvdXJjZURhdGEpCiAgICAgRmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIEZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi0gICAgRmlyZVB1c2hFdmVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6Om9wdGlv
bmFsPElQQzo6RGF0YVJlZmVyZW5jZT4gZGF0YSkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworICAg
IEZpcmVQdXNoRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
ciwgc3RkOjpvcHRpb25hbDxJUEM6OkRhdGFSZWZlcmVuY2U+IGRhdGEpIC0+IChib29sIHJlc3Vs
dCkKIAogICAgIFRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyKQogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpICYmIFBMQVRGT1JN
KENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggNzIyYWUxYTMyYzkzOTUzZDk1ZThlYWY4YzU4MTAyMjcwYjUyNTdmMS4uYzI2
OWZkMjZhOTFlYmZjYjRjNTRmMGQ2YzllMGViM2U0YjBkZjYzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlv
bi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
aGFyZWRXb3JrZXJPYmplY3RDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yMSw3ICsyMSw3IEBA
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYlNoYXJlZFdvcmtlck9iamVjdENvbm5l
Y3Rpb24gewotICAgIEZldGNoU2NyaXB0SW5DbGllbnQoVVJMIHVybCwgV2ViQ29yZTo6U2hhcmVk
V29ya2VyT2JqZWN0SWRlbnRpZmllciBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6V29ya2VyT3B0aW9ucyB3b3JrZXJPcHRpb25zKSAtPiAoc3RydWN0IFdlYkNv
cmU6OldvcmtlckZldGNoUmVzdWx0IGZldGNoUmVzdWx0KSBBc3luYworICAgIEZldGNoU2NyaXB0
SW5DbGllbnQoVVJMIHVybCwgV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciBz
aGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6V29ya2VyT3B0aW9u
cyB3b3JrZXJPcHRpb25zKSAtPiAoc3RydWN0IFdlYkNvcmU6OldvcmtlckZldGNoUmVzdWx0IGZl
dGNoUmVzdWx0KQogICAgIE5vdGlmeVdvcmtlck9iamVjdE9mTG9hZENvbXBsZXRpb24oV2ViQ29y
ZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogICAgIFBvc3RFeGNlcHRpb25Ub1dv
cmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyIHNoYXJlZFdv
cmtlck9iamVjdElkZW50aWZpZXIsIFN0cmluZyBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBpbnQgY29sdW1uTnVtYmVyLCBTdHJpbmcgc291cmNlVVJMKQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KaW5kZXggNDFlZjI5
NzBjMmFjOGU4MmI4ZGE4MzJlZGM1YWRmYWUzNTRhOTI1My4uMmIwMmIzYzIwNWE3MDFmNGIzMzA0
YzYyZTY5YTdlMDgxNDcyOTQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCkBAIC0yMSw1ICsyMSw1IEBACiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSB7Ci0gICAgUG9z
dE1lc3NhZ2VUb1JlbW90ZShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgU3Ry
aW5nIG5hbWUsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdl
KSAtPiAoKSBBc3luYworICAgIFBvc3RNZXNzYWdlVG9SZW1vdGUoc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpp
bmRleCA4YjZmMzRiZWU4NTkzYmE1NDJiMGQyODQwYjZjOTRiNzkzNzRmNzAxLi4yMGViYWI3ZjJm
YzQwYjNjNzViOTQ2ZTliZDM4NzlmY2JiMjdmZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmlu
CkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBFdmVudERpc3BhdGNoZXIgewogICAgIFdo
ZWVsRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYldoZWVs
RXZlbnQgZXZlbnQsIFdlYkNvcmU6OlJlY3RFZGdlczxib29sPiBydWJiZXJCYW5kYWJsZUVkZ2Vz
KQogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIFRvdWNoRXZlbnQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQpIC0+IChi
b29sIGhhbmRsZWQpIEFzeW5jIE1haW5UaHJlYWRDYWxsYmFjaworICAgIFRvdWNoRXZlbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQp
IC0+IChib29sIGhhbmRsZWQpIE1haW5UaHJlYWRDYWxsYmFjawogICAgIFRvdWNoRXZlbnRXaXRo
b3V0Q2FsbGJhY2soV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlRv
dWNoRXZlbnQgZXZlbnQpCiAjZW5kaWYKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KaW5kZXggNmY1MjZlNDk5NThjMjZiZThkNzEyMjcwMGY4YjUzNWFjMDg0NjMwMC4uZmMy
ZDVjMjI1NDU1ODk2ZTBlN2IyZTAyOTM2MWQyNGI2ZmVmMmNlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yMSw4
ICsyMSw4IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVj
ZWl2ZXIgewotICAgIFNldEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQsIGJvb2wgaXNLZXlib2Fy
ZEV2ZW50VmFsaWQsIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCBldmVudCkgLT4gKCkgQXN5bmMK
LSAgICBTZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpG
bGFnPiBhY3Rpdml0eVN0YXRlLCBXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCBhY3Rpdml0
eVN0YXRlQ2hhbmdlSUQpIC0+ICgpIEFzeW5jCisgICAgU2V0SW5pdGlhbEZvY3VzKGJvb2wgZm9y
d2FyZCwgYm9vbCBpc0tleWJvYXJkRXZlbnRWYWxpZCwgV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
IGV2ZW50KSAtPiAoKQorICAgIFNldEFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGUsIFdlYktpdDo6QWN0aXZpdHlTdGF0ZUNo
YW5nZUlEIGFjdGl2aXR5U3RhdGVDaGFuZ2VJRCkgLT4gKCkKICAgICBTZXRMYXllckhvc3RpbmdN
b2RlKGVudW06dWludDhfdCBXZWJLaXQ6OkxheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9k
ZSkKIAogICAgIFNldEJhY2tncm91bmRDb2xvcihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNvbG9y
PiBjb2xvcikKQEAgLTQ0LDcgKzQ0LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgVmlld1dpbGxTdGFydExpdmVSZXNpemUoKQogICAgIFZpZXdXaWxsRW5kTGl2
ZVJlc2l6ZSgpCiAKLSAgICBFeGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2soU3RyaW5nIG5h
bWUsIFN0cmluZyBhcmd1bWVudCkgLT4gKCkgQXN5bmMKKyAgICBFeGVjdXRlRWRpdENvbW1hbmRX
aXRoQ2FsbGJhY2soU3RyaW5nIG5hbWUsIFN0cmluZyBhcmd1bWVudCkgLT4gKCkKICAgICBLZXlF
dmVudChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgZXZlbnQpCiAgICAgTW91c2VFdmVudChXZWJL
aXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gc2FuZGJveEV4dGVuc2lvbnMpCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTY3LDM3ICs2NywzNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBJbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKFdlYkNv
cmU6OkZsb2F0UG9pbnQgcG9pbnQpCiAgICAgSW5zcGVjdG9yTm9kZVNlYXJjaEVuZGVkQXRQb3Np
dGlvbihXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50KQogICAgIEJsdXJGb2N1c2VkRWxlbWVudCgp
Ci0gICAgU2VsZWN0V2l0aEdlc3R1cmUoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWlu
dDhfdCBXZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpHZXN0dXJlUmVjb2duaXplclN0YXRlIGdlc3R1cmVTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5n
V2l0aEZvY3VzZWRFbGVtZW50KSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWlu
dDhfdCBXZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpHZXN0dXJlUmVjb2duaXplclN0YXRlIGdlc3R1cmVTdGF0ZSwgT3B0aW9uU2V0PFdlYktpdDo6
U2VsZWN0aW9uRmxhZ3M+IGZsYWdzKSBBc3luYwotICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhUb3Vj
aGVzKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTZWxlY3Rp
b25Ub3VjaCB0b3VjaGVzLCBib29sIGJhc2VJc1N0YXJ0KSAtPiAoV2ViQ29yZTo6SW50UG9pbnQg
cG9pbnQsIGVudW06dWludDhfdCBXZWJLaXQ6OlNlbGVjdGlvblRvdWNoIHRvdWNoLCBPcHRpb25T
ZXQ8V2ViS2l0OjpTZWxlY3Rpb25GbGFncz4gc2VsZWN0aW9uRmxhZ3MpIEFzeW5jCi0gICAgU2Vs
ZWN0V2l0aFR3b1RvdWNoZXMoV2ViQ29yZTo6SW50UG9pbnQgZnJvbSwgV2ViQ29yZTo6SW50UG9p
bnQgdG8sIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplclN0YXRlIGdlc3R1cmVTdGF0ZSkgLT4g
KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlw
ZSBnZXN0dXJlVHlwZSwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0
ZSBnZXN0dXJlU3RhdGUsIE9wdGlvblNldDxXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzPiBzZWxlY3Rp
b25GbGFncykgQXN5bmMKLSAgICBFeHRlbmRTZWxlY3Rpb24oZW51bTp1aW50OF90IFdlYkNvcmU6
OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkgLT4gKCkgQXN5bmMKKyAgICBTZWxlY3RXaXRo
R2VzdHVyZShXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6R2Vz
dHVyZVR5cGUgZ2VzdHVyZVR5cGUsIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVSZWNvZ25p
emVyU3RhdGUgZ2VzdHVyZVN0YXRlLCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1l
bnQpIC0+IChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6R2Vz
dHVyZVR5cGUgZ2VzdHVyZVR5cGUsIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVSZWNvZ25p
emVyU3RhdGUgZ2VzdHVyZVN0YXRlLCBPcHRpb25TZXQ8V2ViS2l0OjpTZWxlY3Rpb25GbGFncz4g
ZmxhZ3MpCisgICAgVXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMoV2ViQ29yZTo6SW50UG9pbnQg
cG9pbnQsIGVudW06dWludDhfdCBXZWJLaXQ6OlNlbGVjdGlvblRvdWNoIHRvdWNoZXMsIGJvb2wg
YmFzZUlzU3RhcnQpIC0+IChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdl
YktpdDo6U2VsZWN0aW9uVG91Y2ggdG91Y2gsIE9wdGlvblNldDxXZWJLaXQ6OlNlbGVjdGlvbkZs
YWdzPiBzZWxlY3Rpb25GbGFncykKKyAgICBTZWxlY3RXaXRoVHdvVG91Y2hlcyhXZWJDb3JlOjpJ
bnRQb2ludCBmcm9tLCBXZWJDb3JlOjpJbnRQb2ludCB0bywgZW51bTp1aW50OF90IFdlYktpdDo6
R2VzdHVyZVR5cGUgZ2VzdHVyZVR5cGUsIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyU3RhdGUgZ2VzdHVyZVN0YXRlKSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVu
dW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3Qg
V2ViS2l0OjpHZXN0dXJlUmVjb2duaXplclN0YXRlIGdlc3R1cmVTdGF0ZSwgT3B0aW9uU2V0PFdl
YktpdDo6U2VsZWN0aW9uRmxhZ3M+IHNlbGVjdGlvbkZsYWdzKQorICAgIEV4dGVuZFNlbGVjdGlv
bihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KSAtPiAo
KQogICAgIFNlbGVjdFdvcmRCYWNrd2FyZCgpCi0gICAgTW92ZVNlbGVjdGlvbkJ5T2Zmc2V0KGlu
dDMyX3Qgb2Zmc2V0KSAtPiAoKSBBc3luYwotICAgIFNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlB
dFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVs
ZW1lbnQpIC0+ICgpIEFzeW5jCi0gICAgU2VsZWN0UG9zaXRpb25BdEJvdW5kYXJ5V2l0aERpcmVj
dGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRH
cmFudWxhcml0eSBncmFudWxhcml0eSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNlbGVjdGlvbkRp
cmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkg
LT4gKCkgQXN5bmMKLSAgICBNb3ZlU2VsZWN0aW9uQXRCb3VuZGFyeVdpdGhEaXJlY3Rpb24oZW51
bTp1aW50OF90IFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgZW51bTp1aW50
OF90IFdlYkNvcmU6OlNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pIC0+ICgpIEFzeW5jCi0g
ICAgU2VsZWN0UG9zaXRpb25BdFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBib29sIGlz
SW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+ICgpIEFzeW5jCi0gICAgQmVnaW5TZWxl
Y3Rpb25JbkRpcmVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbikgLT4gKGJvb2wgZW5kSXNNb3ZpbmcpIEFzeW5jCi0gICAgVXBkYXRlU2VsZWN0
aW9uV2l0aEV4dGVudFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBib29sIGlzSW50ZXJh
Y3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGVudW06Ym9vbCBXZWJLaXQ6OlJlc3BlY3RTZWxlY3Rp
b25BbmNob3IgcmVzcGVjdFNlbGVjdGlvbkFuY2hvcikgLT4gKGJvb2wgZW5kSXNNb3ZpbmcpIEFz
eW5jCi0gICAgVXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50QW5kQm91bmRhcnkoV2ViQ29y
ZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4gKGJv
b2wgZW5kSXNNb3ZpbmcpIEFzeW5jCi0gICAgUmVxdWVzdERpY3RhdGlvbkNvbnRleHQoKSAtPiAo
U3RyaW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIHRleHRCZWZvcmUsIFN0cmluZyB0ZXh0QWZ0ZXIp
IEFzeW5jCisgICAgTW92ZVNlbGVjdGlvbkJ5T2Zmc2V0KGludDMyX3Qgb2Zmc2V0KSAtPiAoKQor
ICAgIFNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlBdFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBv
aW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBi
b29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+ICgpCisgICAgU2VsZWN0UG9z
aXRpb25BdEJvdW5kYXJ5V2l0aERpcmVjdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51
bTp1aW50OF90IFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgZW51bTp1aW50
OF90IFdlYkNvcmU6OlNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgaXNJbnRlcmFj
dGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4gKCkKKyAgICBNb3ZlU2VsZWN0aW9uQXRCb3VuZGFy
eVdpdGhEaXJlY3Rpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rp
b24pIC0+ICgpCisgICAgU2VsZWN0UG9zaXRpb25BdFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBv
aW50LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+ICgpCisgICAgQmVn
aW5TZWxlY3Rpb25JbkRpcmVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGlvbikgLT4gKGJvb2wgZW5kSXNNb3ZpbmcpCisgICAgVXBkYXRlU2VsZWN0
aW9uV2l0aEV4dGVudFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBib29sIGlzSW50ZXJh
Y3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIGVudW06Ym9vbCBXZWJLaXQ6OlJlc3BlY3RTZWxlY3Rp
b25BbmNob3IgcmVzcGVjdFNlbGVjdGlvbkFuY2hvcikgLT4gKGJvb2wgZW5kSXNNb3ZpbmcpCisg
ICAgVXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50QW5kQm91bmRhcnkoV2ViQ29yZTo6SW50
UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4gKGJvb2wgZW5k
SXNNb3ZpbmcpCisgICAgUmVxdWVzdERpY3RhdGlvbkNvbnRleHQoKSAtPiAoU3RyaW5nIHNlbGVj
dGVkVGV4dCwgU3RyaW5nIHRleHRCZWZvcmUsIFN0cmluZyB0ZXh0QWZ0ZXIpCiAjaWYgRU5BQkxF
KFJFVkVBTCkKLSAgICBSZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSgpIC0+IChX
ZWJLaXQ6OlJldmVhbEl0ZW0gaXRlbSkgQXN5bmMKLSAgICBQcmVwYXJlU2VsZWN0aW9uRm9yQ29u
dGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpIC0+IChi
b29sIHNob3VsZFNob3dNZW51LCBXZWJLaXQ6OlJldmVhbEl0ZW0gaXRlbSkgQXN5bmMKKyAgICBS
ZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSgpIC0+IChXZWJLaXQ6OlJldmVhbEl0
ZW0gaXRlbSkKKyAgICBQcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25J
blZpZXcoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpIC0+IChib29sIHNob3VsZFNob3dNZW51LCBX
ZWJLaXQ6OlJldmVhbEl0ZW0gaXRlbSkKICNlbmRpZgogICAgIFJlcGxhY2VEaWN0YXRlZFRleHQo
U3RyaW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0KQogICAgIFJlcGxhY2VTZWxlY3RlZFRleHQo
U3RyaW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0KQotICAgIFJlcXVlc3RBdXRvY29ycmVjdGlv
bkRhdGEoU3RyaW5nIHRleHRGb3JBdXRvY29ycmVjdGlvbikgLT4gKHN0cnVjdCBXZWJLaXQ6Oldl
YkF1dG9jb3JyZWN0aW9uRGF0YSBkYXRhKSBBc3luYwotICAgIEFwcGx5QXV0b2NvcnJlY3Rpb24o
U3RyaW5nIGNvcnJlY3Rpb24sIFN0cmluZyBvcmlnaW5hbFRleHQpIC0+IChTdHJpbmcgc3RyaW5n
KSBBc3luYworICAgIFJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoU3RyaW5nIHRleHRGb3JBdXRv
Y29ycmVjdGlvbikgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uRGF0YSBkYXRh
KQorICAgIEFwcGx5QXV0b2NvcnJlY3Rpb24oU3RyaW5nIGNvcnJlY3Rpb24sIFN0cmluZyBvcmln
aW5hbFRleHQpIC0+IChTdHJpbmcgc3RyaW5nKQogICAgIFN5bmNBcHBseUF1dG9jb3JyZWN0aW9u
KFN0cmluZyBjb3JyZWN0aW9uLCBTdHJpbmcgb3JpZ2luYWxUZXh0KSAtPiAoYm9vbCBhdXRvY29y
cmVjdGlvbkFwcGxpZWQpIFN5bmNocm9ub3VzCiAgICAgSGFuZGxlQXV0b2NvcnJlY3Rpb25Db250
ZXh0UmVxdWVzdCgpCi0gICAgUmVxdWVzdEV2YXNpb25SZWN0c0Fib3ZlU2VsZWN0aW9uKCkgLT4g
KFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHJlY3RzKSBBc3luYworICAgIFJlcXVlc3RFdmFz
aW9uUmVjdHNBYm92ZVNlbGVjdGlvbigpIC0+IChWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiBy
ZWN0cykKICAgICBHZXRQb3NpdGlvbkluZm9ybWF0aW9uKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QpIC0+IChzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgU3luY2hyb25vdXMKICAgICBS
ZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdCByZXF1ZXN0KQogICAgIFN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudENv
bnRleHRPclBvc2l0aW9uKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGVs
ZW1lbnRDb250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkKICAgICBTdG9wSW50ZXJhY3Rp
b24oKQogICAgIFBlcmZvcm1BY3Rpb25PbkVsZW1lbnQodWludDMyX3QgYWN0aW9uKQotICAgIEZv
Y3VzTmV4dEZvY3VzZWRFbGVtZW50KGJvb2wgaXNGb3J3YXJkKSAtPiAoKSBBc3luYworICAgIEZv
Y3VzTmV4dEZvY3VzZWRFbGVtZW50KGJvb2wgaXNGb3J3YXJkKSAtPiAoKQogICAgIEF1dG9maWxs
TG9naW5DcmVkZW50aWFscyhTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKICAgICBT
ZXRGb2N1c2VkRWxlbWVudFZhbHVlKHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250
ZXh0LCBTdHJpbmcgdmFsdWUpCiAgICAgU2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KHN0
cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCB1aW50MzJfdCBpbmRleCwgYm9v
bCBhbGxvd011bHRpcGxlU2VsZWN0aW9uKQpAQCAtMTA5LDMwICsxMDksMzAgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgQXBwbGljYXRpb25EaWRFbnRlckJhY2tn
cm91bmRGb3JNZWRpYShib29sIGlzU3VzcGVuZGVkVW5kZXJMb2NrKQogICAgIEFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZEZvck1lZGlhKGJvb2wgaXNTdXNwZW5kZWRVbmRlckxvY2spCiAg
ICAgQ29udGVudFNpemVDYXRlZ29yeURpZENoYW5nZShTdHJpbmcgY29udGVudFNpemVDYXRlZ29y
eSkKLSAgICBHZXRTZWxlY3Rpb25Db250ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3RlZFRleHQsIFN0
cmluZyB0ZXh0QmVmb3JlLCBTdHJpbmcgdGV4dEFmdGVyKSBBc3luYworICAgIEdldFNlbGVjdGlv
bkNvbnRleHQoKSAtPiAoU3RyaW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIHRleHRCZWZvcmUsIFN0
cmluZyB0ZXh0QWZ0ZXIpCiAgICAgU2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
KGJvb2wgYWxsb3dzKQogICAgIEhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoV2ViQ29yZTo6SW50
UG9pbnQgcG9pbnQsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZp
ZXJzLCBXZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKQogICAgIFNldEZvcmNlQWx3YXlz
VXNlclNjYWxhYmxlKGJvb2wgdXNlclNjYWxhYmxlKQotICAgIEdldFJlY3RzRm9yR3JhbnVsYXJp
dHlXaXRoU2VsZWN0aW9uT2Zmc2V0KGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHksIGludDMyX3Qgb2Zmc2V0KSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlbGVj
dGlvbkdlb21ldHJ5PiByZWN0KSBBc3luYwotICAgIEdldFJlY3RzQXRTZWxlY3Rpb25PZmZzZXRX
aXRoVGV4dChpbnQzMl90IG9mZnNldCwgU3RyaW5nIHRleHQpIC0+IChWZWN0b3I8V2ViQ29yZTo6
U2VsZWN0aW9uR2VvbWV0cnk+IHJlY3QpIEFzeW5jCisgICAgR2V0UmVjdHNGb3JHcmFudWxhcml0
eVdpdGhTZWxlY3Rpb25PZmZzZXQoZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRHcmFudWxhcml0
eSBncmFudWxhcml0eSwgaW50MzJfdCBvZmZzZXQpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VsZWN0
aW9uR2VvbWV0cnk+IHJlY3QpCisgICAgR2V0UmVjdHNBdFNlbGVjdGlvbk9mZnNldFdpdGhUZXh0
KGludDMyX3Qgb2Zmc2V0LCBTdHJpbmcgdGV4dCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rp
b25HZW9tZXRyeT4gcmVjdCkKICAgICBTdG9yZVNlbGVjdGlvbkZvckFjY2Vzc2liaWxpdHkoYm9v
bCBzaG91bGRTdG9yZSkKICAgICBTdGFydEF1dG9zY3JvbGxBdFBvc2l0aW9uKFdlYkNvcmU6OkZs
b2F0UG9pbnQgcG9zaXRpb25JbldpbmRvdykKICAgICBDYW5jZWxBdXRvc2Nyb2xsKCkKLSAgICBS
ZXF1ZXN0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbigpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbj4gaW5mbykgQXN5bmMKKyAgICBSZXF1ZXN0Rm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbigpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6Rm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbj4gaW5mbykKICAgICBIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmls
aXR5Q2hhbmdlZChib29sIGtleWJvYXJkSXNBdHRhY2hlZCkKICAgICBTZXRJc1Nob3dpbmdJbnB1
dFZpZXdGb3JGb2N1c2VkRWxlbWVudChib29sIHNob3dpbmdJbnB1dFZpZXcpCi0gICAgVXBkYXRl
U2VsZWN0aW9uV2l0aERlbHRhKGludDY0X3QgbG9jYXRpb25EZWx0YSwgaW50NjRfdCBsZW5ndGhE
ZWx0YSkgLT4gKCkgQXN5bmMKLSAgICBSZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChzdHJ1
Y3QgV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCByZXF1ZXN0KSAtPiAoc3Ry
dWN0IFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dCByZXNwb25zZSkgQXN5bmMKKyAgICBV
cGRhdGVTZWxlY3Rpb25XaXRoRGVsdGEoaW50NjRfdCBsb2NhdGlvbkRlbHRhLCBpbnQ2NF90IGxl
bmd0aERlbHRhKSAtPiAoKQorICAgIFJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250ZXh0KHN0cnVj
dCBXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0IHJlcXVlc3QpIC0+IChzdHJ1
Y3QgV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0IHJlc3BvbnNlKQogR2VuZXJhdGVTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUgY29tbWFuZCkKICAgICBTZXRTaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9u
QWZ0ZXJJbnNlcnRpb24oYm9vbCBzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNl
cnRpb24pCi0gICAgSW5zZXJ0VGV4dFBsYWNlaG9sZGVyKFdlYkNvcmU6OkludFNpemUgc2l6ZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IHBsYWNlaG9sZGVyKSBB
c3luYwotICAgIFJlbW92ZVRleHRQbGFjZWhvbGRlcihzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENv
bnRleHQgcGxhY2Vob2xkZXIpIC0+ICgpIEFzeW5jCi0gICAgVGV4dElucHV0Q29udGV4dHNJblJl
Y3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpIC0+IChWZWN0b3I8c3RydWN0IFdlYkNvcmU6OkVs
ZW1lbnRDb250ZXh0PiBjb250ZXh0cykgQXN5bmMKLSAgICBGb2N1c1RleHRJbnB1dENvbnRleHRB
bmRQbGFjZUNhcmV0KHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCBXZWJD
b3JlOjpJbnRQb2ludCBwb2ludCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKLSAgICBDbGVhclNl
cnZpY2VXb3JrZXJFbnRpdGxlbWVudE92ZXJyaWRlKCkgLT4gKCkgQXN5bmMKKyAgICBJbnNlcnRU
ZXh0UGxhY2Vob2xkZXIoV2ViQ29yZTo6SW50U2l6ZSBzaXplKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dD4gcGxhY2Vob2xkZXIpCisgICAgUmVtb3ZlVGV4dFBsYWNl
aG9sZGVyKHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBwbGFjZWhvbGRlcikgLT4gKCkK
KyAgICBUZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkgLT4g
KFZlY3RvcjxzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGNvbnRleHRzKQorICAgIEZv
Y3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0IGNvbnRleHQsIFdlYkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAoYm9vbCBzdWNjZXNz
KQorICAgIENsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJpZGUoKSAtPiAoKQogI2Vu
ZGlmCiAKLSAgICBSZXF1ZXN0SW1hZ2VCaXRtYXAoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0IGVsZW1lbnRDb250ZXh0KSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBp
bWFnZSwgU3RyaW5nIHNvdXJjZU1JTUVUeXBlKSBBc3luYworICAgIFJlcXVlc3RJbWFnZUJpdG1h
cChzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudENvbnRleHQpIC0+IChXZWJL
aXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlLCBTdHJpbmcgc291cmNlTUlNRVR5cGUp
CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQogICAgIEluc3RhbGxD
cm9wcGVkSW1hZ2VPdmVybGF5KHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBlbGVtZW50
Q29udGV4dCwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBpbWFnZURhdGEsIFN0cmlu
ZyBtaW1lVHlwZSwgV2ViQ29yZTo6RmxvYXRSZWN0IG5vcm1hbGl6ZWRDcm9wUmVjdCkKQEAgLTE5
MCw3ICsxOTAsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhf
dCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIExvYWRBbHRlcm5hdGVI
VE1MKHN0cnVjdCBXZWJLaXQ6OkxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQogCiAgICAg
TmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soU3RyaW5nIHVybCwgV2ViQ29yZTo6
SW50UG9pbnQgZG9jdW1lbnRQb2ludCwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpCi0g
ICAgR2V0UERGRmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
LT4gKFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKSBBc3luYworICAgIEdldFBERkZpcnN0UGFnZVNp
emUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChXZWJDb3JlOjpGbG9hdFNp
emUgc2l6ZSkKIAogICAgIFJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJl
bG9hZE9wdGlvbnMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUpCiAgICAgU3RvcExvYWRpbmcoKQpAQCAtMjE0LDI1ICsyMTQsMjUgQEAgR2Vu
ZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBSZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFi
bGVFbGVtZW50KCkKIAogICAgICMgQ2FsbGJhY2tzLgotICAgIEdldENvbnRlbnRzQXNTdHJpbmco
ZW51bTpib29sIFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcyBpbkNo
aWxkRnJhbWVzKSAtPiAoU3RyaW5nIHN0cmluZykgQXN5bmMKLSAgICBHZXRBbGxGcmFtZXMoKSAt
PiAoc3RydWN0IFdlYktpdDo6RnJhbWVUcmVlTm9kZURhdGEgbWFpbkZyYW1lKSBBc3luYworICAg
IEdldENvbnRlbnRzQXNTdHJpbmcoZW51bTpib29sIFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5j
bHVkZXNDaGlsZEZyYW1lcyBpbkNoaWxkRnJhbWVzKSAtPiAoU3RyaW5nIHN0cmluZykKKyAgICBH
ZXRBbGxGcmFtZXMoKSAtPiAoc3RydWN0IFdlYktpdDo6RnJhbWVUcmVlTm9kZURhdGEgbWFpbkZy
YW1lKQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIEdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3Ry
aW5nKCkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nIHJlc3VsdCkgQXN5bmMK
KyAgICBHZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmluZygpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6
QXR0cmlidXRlZFN0cmluZyByZXN1bHQpCiAjZW5kaWYKICNpZiBFTkFCTEUoTUhUTUwpCi0gICAg
R2V0Q29udGVudHNBc01IVE1MRGF0YSgpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgZGF0YSkg
QXN5bmMKKyAgICBHZXRDb250ZW50c0FzTUhUTUxEYXRhKCkgLT4gKElQQzo6U2hhcmVkQnVmZmVy
Q29weSBkYXRhKQogI2VuZGlmCi0gICAgR2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6U2hhcmVk
QnVmZmVyQ29weT4gYnVmZmVyKSBBc3luYwotICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMKSAtPiAo
c3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGJ1ZmZlcikgQXN5bmMKLSAgICBH
ZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbigpIC0+IChTdHJpbmcgc3RyaW5nKSBB
c3luYwotICAgIEdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZygpIC0+IChTdHJpbmcgc3Ry
aW5nKSBBc3luYwotICAgIEdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoKSAtPiAoc3RkOjpv
cHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGRhdGEpIEFzeW5jCi0gICAgR2V0U291cmNl
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChTdHJpbmcgc3Ry
aW5nKSBBc3luYwotICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGRh
dGFSZWZlcmVuY2UpIEFzeW5jCisgICAgR2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6U2hhcmVk
QnVmZmVyQ29weT4gYnVmZmVyKQorICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMKSAtPiAoc3RkOjpv
cHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGJ1ZmZlcikKKyAgICBHZXRSZW5kZXJUcmVl
RXh0ZXJuYWxSZXByZXNlbnRhdGlvbigpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIEdldFNlbGVj
dGlvbk9yQ29udGVudHNBc1N0cmluZygpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIEdldFNlbGVj
dGlvbkFzV2ViQXJjaGl2ZURhdGEoKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZl
ckNvcHk+IGRhdGEpCisgICAgR2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIEdldFdlYkFyY2hpdmVPZkZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6
OlNoYXJlZEJ1ZmZlckNvcHk+IGRhdGFSZWZlcmVuY2UpCiAKLSAgICBSdW5KYXZhU2NyaXB0SW5G
cmFtZUluU2NyaXB0V29ybGQoc3RydWN0IFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJz
IHBhcmFtZXRlcnMsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBzdGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJpbmc+IHdv
cmxkKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscykgQXN5bmMKKyAgICBSdW5KYXZhU2NyaXB0
SW5GcmFtZUluU2NyaXB0V29ybGQoc3RydWN0IFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0
ZXJzIHBhcmFtZXRlcnMsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBzdGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJpbmc+
IHdvcmxkKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscykKIAotICAgIEZvcmNlUmVwYWludCgp
IC0+ICgpIEFzeW5jCisgICAgRm9yY2VSZXBhaW50KCkgLT4gKCkKICAgICBTZWxlY3RBbGwoKQog
ICAgIFNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCkKIApAQCAtMjQzLDggKzI0Myw4IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKLSAgICBEZXRlY3REYXRhSW5BbGxGcmFtZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkRhdGFE
ZXRlY3RvclR5cGU+IHR5cGVzKSAtPiAoc3RydWN0IFdlYktpdDo6RGF0YURldGVjdGlvblJlc3Vs
dCByZXN1bHQpIEFzeW5jCi0gICAgUmVtb3ZlRGF0YURldGVjdGVkTGlua3MoKSAtPiAoc3RydWN0
IFdlYktpdDo6RGF0YURldGVjdGlvblJlc3VsdCByZXN1bHQpIEFzeW5jCisgICAgRGV0ZWN0RGF0
YUluQWxsRnJhbWVzKE9wdGlvblNldDxXZWJDb3JlOjpEYXRhRGV0ZWN0b3JUeXBlPiB0eXBlcykg
LT4gKHN0cnVjdCBXZWJLaXQ6OkRhdGFEZXRlY3Rpb25SZXN1bHQgcmVzdWx0KQorICAgIFJlbW92
ZURhdGFEZXRlY3RlZExpbmtzKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkRhdGFEZXRlY3Rpb25SZXN1
bHQgcmVzdWx0KQogI2VuZGlmCiAKICAgICBDaGFuZ2VGb250KFdlYkNvcmU6OkZvbnRDaGFuZ2Vz
IGNoYW5nZXMpCkBAIC0yNTgsMTQgKzI1OCwxNCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
ICAgIFN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpCiAgICAgUmVzdW1lQWN0
aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKQogCi0gICAgU3VzcGVuZCgpIC0+IChib29sIHN1
Y2Nlc3MpIEFzeW5jCi0gICAgUmVzdW1lKCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKKyAgICBT
dXNwZW5kKCkgLT4gKGJvb2wgc3VjY2VzcykKKyAgICBSZXN1bWUoKSAtPiAoYm9vbCBzdWNjZXNz
KQogCiAgICAgQ2xvc2UoKQotICAgIFRyeUNsb3NlKCkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIEFz
eW5jCisgICAgVHJ5Q2xvc2UoKSAtPiAoYm9vbCBzaG91bGRDbG9zZSkKIAogICAgIFNldEVkaXRh
YmxlKGJvb2wgZWRpdGFibGUpCi0gICAgVmFsaWRhdGVDb21tYW5kKFN0cmluZyBuYW1lKSAtPiAo
Ym9vbCBpc0VuYWJsZWQsIGludDMyX3Qgc3RhdGUpIEFzeW5jCisgICAgVmFsaWRhdGVDb21tYW5k
KFN0cmluZyBuYW1lKSAtPiAoYm9vbCBpc0VuYWJsZWQsIGludDMyX3Qgc3RhdGUpCiAgICAgRXhl
Y3V0ZUVkaXRDb21tYW5kKFN0cmluZyBuYW1lLCBTdHJpbmcgYXJndW1lbnQpCiAKICAgICBJbmNy
ZWFzZUxpc3RMZXZlbCgpCkBAIC0yNzYsNyArMjc2LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKIAogICAgIFNldE5lZWRzRm9udEF0dHJpYnV0ZXMoYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVz
KQogCi0gICAgUmVxdWVzdEZvbnRBdHRyaWJ1dGVzQXRTZWxlY3Rpb25TdGFydCgpIC0+IChzdHJ1
Y3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMgYXR0cmlidXRlcykgQXN5bmMKKyAgICBSZXF1ZXN0
Rm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlvblN0YXJ0KCkgLT4gKHN0cnVjdCBXZWJDb3JlOjpGb250
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogCiAgICAgRGlkUmVtb3ZlRWRpdENvbW1hbmQodWludDY0
X3QgY29tbWFuZElEKQogICAgIFJlYXBwbHlFZGl0Q29tbWFuZCh1aW50NjRfdCBjb21tYW5kSUQp
CkBAIC0zMTIsMTkgKzMxMiwxOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFBvc3RJ
bmplY3RlZEJ1bmRsZU1lc3NhZ2UoU3RyaW5nIG1lc3NhZ2VOYW1lLCBXZWJLaXQ6OlVzZXJEYXRh
IG1lc3NhZ2VCb2R5KQogCiAgICAgIyBGaW5kLgotICAgIEZpbmRTdHJpbmcoU3RyaW5nIHN0cmlu
ZywgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBt
YXhNYXRjaENvdW50KSAtPiAoYm9vbCBmb3VuZCkgQXN5bmMKKyAgICBGaW5kU3RyaW5nKFN0cmlu
ZyBzdHJpbmcsIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiBmaW5kT3B0aW9ucywgdW5z
aWduZWQgbWF4TWF0Y2hDb3VudCkgLT4gKGJvb2wgZm91bmQpCiAgICAgRmluZFN0cmluZ01hdGNo
ZXMoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRp
b25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KQogICAgIEdldEltYWdlRm9yRmluZE1hdGNoKHVp
bnQzMl90IG1hdGNoSW5kZXgpCiAgICAgU2VsZWN0RmluZE1hdGNoKHVpbnQzMl90IG1hdGNoSW5k
ZXgpCiAgICAgSW5kaWNhdGVGaW5kTWF0Y2godWludDMyX3QgbWF0Y2hJbmRleCkKICAgICBIaWRl
RmluZFVJKCkKICAgICBDb3VudFN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0
PFdlYktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50
KQotICAgIFJlcGxhY2VNYXRjaGVzKFZlY3Rvcjx1aW50MzJfdD4gbWF0Y2hJbmRpY2VzLCBTdHJp
bmcgcmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVjdGlvbk9ubHkpIC0+ICh1aW50NjRfdCBudW1i
ZXJPZlJlcGxhY2VtZW50cykgQXN5bmMKKyAgICBSZXBsYWNlTWF0Y2hlcyhWZWN0b3I8dWludDMy
X3Q+IG1hdGNoSW5kaWNlcywgU3RyaW5nIHJlcGxhY2VtZW50VGV4dCwgYm9vbCBzZWxlY3Rpb25P
bmx5KSAtPiAodWludDY0X3QgbnVtYmVyT2ZSZXBsYWNlbWVudHMpCiAKLSAgICBGaW5kUmVjdHNG
b3JTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRp
b25zPiBmaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCkgLT4gKFZlY3RvcjxXZWJD
b3JlOjpGbG9hdFJlY3Q+IG1hdGNoZXMpIEFzeW5jCisgICAgRmluZFJlY3RzRm9yU3RyaW5nTWF0
Y2hlcyhTdHJpbmcgc3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gZmluZE9w
dGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIC0+IChWZWN0b3I8V2ViQ29yZTo6RmxvYXRS
ZWN0PiBtYXRjaGVzKQogICAgIEhpZGVGaW5kSW5kaWNhdG9yKCkKIAotICAgIEZpbmRUZXh0UmFu
Z2VzRm9yU3RyaW5nTWF0Y2hlcyhTdHJpbmcgc3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0OjpGaW5k
T3B0aW9ucz4gZmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIC0+IChWZWN0b3I8
V2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZT4gcmFuZ2VzKSBBc3luYworICAgIEZpbmRUZXh0UmFu
Z2VzRm9yU3RyaW5nTWF0Y2hlcyhTdHJpbmcgc3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0OjpGaW5k
T3B0aW9ucz4gZmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIC0+IChWZWN0b3I8
V2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZT4gcmFuZ2VzKQogICAgIFJlcGxhY2VGb3VuZFRleHRS
YW5nZVdpdGhTdHJpbmcoc3RydWN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFuZ2UsIFN0
cmluZyBzdHJpbmcpCiAgICAgRGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUoc3RydWN0IFdlYktp
dDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFuZ2UsIGVudW06dWludDhfdCBXZWJLaXQ6OkZpbmREZWNv
cmF0aW9uU3R5bGUgc3R5bGUpCiAgICAgU2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKHN0cnVjdCBX
ZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlIHJhbmdlKQpAQCAtMzMyLDcgKzMzMiw3IEBAIEdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgRGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uKCk7CiAg
ICAgRGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOwogCi0gICAgUmVxdWVzdFJlY3RGb3JGb3Vu
ZFRleHRSYW5nZShzdHJ1Y3QgV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZSByYW5nZSkgLT4gKFdl
YkNvcmU6OkZsb2F0UmVjdCByZWN0KSBBc3luYworICAgIFJlcXVlc3RSZWN0Rm9yRm91bmRUZXh0
UmFuZ2Uoc3RydWN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFuZ2UpIC0+IChXZWJDb3Jl
OjpGbG9hdFJlY3QgcmVjdCkKICAgICAKICAgICBBZGRNSU1FVHlwZVdpdGhDdXN0b21Db250ZW50
UHJvdmlkZXIoU3RyaW5nIG1pbWVUeXBlKQogCkBAIC0zNTIsNyArMzUyLDcgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogICAgIFJlcXVlc3REcmFnU3RhcnQoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9z
aXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCBPcHRpb25TZXQ8V2ViQ29y
ZTo6RHJhZ1NvdXJjZUFjdGlvbj4gYWxsb3dlZEFjdGlvbnNNYXNrKQogICAgIFJlcXVlc3RBZGRp
dGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlv
biwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIE9wdGlvblNldDxXZWJDb3JlOjpE
cmFnU291cmNlQWN0aW9uPiBhbGxvd2VkQWN0aW9uc01hc2spCi0gICAgSW5zZXJ0RHJvcHBlZElt
YWdlUGxhY2Vob2xkZXJzKFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiBpbWFnZVNpemUpIC0+IChW
ZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gZHJvcFByZXZpZXdSZWN0cywgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4gdGV4dEluZGljYXRvcikgQXN5bmMKKyAgICBJbnNl
cnREcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMoVmVjdG9yPFdlYkNvcmU6OkludFNpemU+IGltYWdl
U2l6ZSkgLT4gKFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBkcm9wUHJldmlld1JlY3RzLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yKQogICAg
IERpZENvbmNsdWRlRHJvcCgpCiAjZW5kaWYKIApAQCAtNDAyLDcgKzQwMiw3IEBAIEdlbmVyYXRl
U3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRp
dGluZ0NvbW1hbmRUeXBlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICMgTWVkaWFT
dGVhbQotICAgIFVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQoV2ViQ29yZTo6VXNlck1lZGlhUmVx
dWVzdElkZW50aWZpZXIgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgYXVkaW9E
ZXZpY2UsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgdmlkZW9EZXZpY2UsIFN0cmluZyBtZWRpYURl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSkgLT4gKCkgQXN5bmMKKyAgICBVc2VyTWVkaWFBY2Nlc3NX
YXNHcmFudGVkKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVudGlmaWVyIHVzZXJNZWRpYUlE
LCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGF1ZGlvRGV2aWNlLCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlIHZpZGVvRGV2aWNlLCBTdHJpbmcgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpIC0+
ICgpCiAgICAgVXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVl
c3RJZGVudGlmaWVyIHVzZXJNZWRpYUlELCB1aW50NjRfdCByZWFzb24sIFN0cmluZyBpbnZhbGlk
Q29uc3RyYWludCkKICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2lmIFVTRShHU1RSRUFN
RVIpCkBAIC00MTIsNDMgKzQxMiw0MyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
KGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogI2VuZGlm
CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIE1lZGlhS2V5U3lzdGVtV2FzR3Jh
bnRlZChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIG1lZGlhS2V5U3lz
dGVtSUQpIC0+ICgpIEFzeW5jCisgICAgTWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKFdlYkNvcmU6
Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXIgbWVkaWFLZXlTeXN0ZW1JRCkgLT4gKCkK
ICAgICBNZWRpYUtleVN5c3RlbVdhc0RlbmllZChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3RJZGVudGlmaWVyIG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyBtZXNzYWdlKQogI2VuZGlmCiAK
LSAgICBSZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlKCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6
Ok1lZGlhUGxheWJhY2tTdGF0ZSBzdGF0ZSkgQXN5bmMKLSAgICBQYXVzZUFsbE1lZGlhUGxheWJh
Y2soKSAtPiAoKSBBc3luYwotICAgIFN1c3BlbmRBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5
bmMKLSAgICBSZXN1bWVBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKKyAgICBSZXF1ZXN0
TWVkaWFQbGF5YmFja1N0YXRlKCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6Ok1lZGlhUGxheWJh
Y2tTdGF0ZSBzdGF0ZSkKKyAgICBQYXVzZUFsbE1lZGlhUGxheWJhY2soKSAtPiAoKQorICAgIFN1
c3BlbmRBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkKKyAgICBSZXN1bWVBbGxNZWRpYVBsYXliYWNr
KCkgLT4gKCkKIAogICAgIEZyZWV6ZUxheWVyVHJlZUR1ZVRvU3dpcGVBbmltYXRpb24oKQogICAg
IFVuZnJlZXplTGF5ZXJUcmVlRHVlVG9Td2lwZUFuaW1hdGlvbigpCi0gICAgSXNMYXllclRyZWVG
cm96ZW4oKSAtPiAoYm9vbCBpc0Zyb3plbikgQXN5bmMKKyAgICBJc0xheWVyVHJlZUZyb3plbigp
IC0+IChib29sIGlzRnJvemVuKQogCiAgICAgIyBQcmludGluZy4KICAgICBCZWdpblByaW50aW5n
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludElu
Zm8gcHJpbnRJbmZvKQogICAgIEVuZFByaW50aW5nKCkKLSAgICBDb21wdXRlUGFnZXNGb3JQcmlu
dGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJp
bnRJbmZvIHByaW50SW5mbykgLT4gKFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBwYWdlUmVjdHMs
IGRvdWJsZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIFdlYkNvcmU6OlJlY3RFZGdlczxm
bG9hdD4gY29tcHV0ZWRQYWdlTWFyZ2luKSBBc3luYworICAgIENvbXB1dGVQYWdlc0ZvclByaW50
aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmlu
dEluZm8gcHJpbnRJbmZvKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+IHBhZ2VSZWN0cywg
ZG91YmxlIHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgV2ViQ29yZTo6UmVjdEVkZ2VzPGZs
b2F0PiBjb21wdXRlZFBhZ2VNYXJnaW4pCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgRHJhd1Jl
Y3RUb0ltYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6Oklu
dFNpemUgaW1hZ2VTaXplKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFn
ZSkgQXN5bmMKLSAgICBEcmF3UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3Qs
IHVpbnQzMl90IGNvdW50KSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGRhdGEpIEFzeW5jCisg
ICAgRHJhd1JlY3RUb0ltYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdl
YkNvcmU6OkludFNpemUgaW1hZ2VTaXplKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSBpbWFnZSkKKyAgICBEcmF3UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmly
c3QsIHVpbnQzMl90IGNvdW50KSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGRhdGEpCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiAhSEFWRShVSUtJVF9CQUNLR1JPVU5EX1RIUkVBRF9Q
UklOVElORykKICAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ2lPUyhXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykgLT4g
KHNpemVfdCBwYWdlQ291bnQpIFN5bmNocm9ub3VzCiAjZW5kaWYKLSAgICBEcmF3VG9QREZpT1Mo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5m
byBwcmludEluZm8sIHNpemVfdCBwYWdlQ291bnQpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkg
ZGF0YSkgQXN5bmMKKyAgICBEcmF3VG9QREZpT1MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHNpemVfdCBwYWdlQ291
bnQpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgZGF0YSkKICNlbmRpZgotICAgIERyYXdUb1BE
RihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFJlY3Q+IHJlY3QpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgZGF0YSkgQXN5bmMK
KyAgICBEcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiByZWN0KSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJDb3B5
IGRhdGEpCiAjZW5kaWYKICNpZiBQTEFURk9STShHVEspCi0gICAgRHJhd1BhZ2VzRm9yUHJpbnRp
bmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8pIC0+IChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKSBBc3luYwor
ICAgIERyYXdQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKSAtPiAoV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBlcnJvcikKICNlbmRpZgogCiAgICAgIyBNZWRpYQogICAgIFNldE1lZGlhVm9sdW1l
KGZsb2F0IHZvbHVtZSkKLSAgICBTZXRNdXRlZChPcHRpb25TZXQ8V2ViQ29yZTo6TWVkaWFQcm9k
dWNlck11dGVkU3RhdGU+IG11dGVkKSAtPiAoKSBBc3luYworICAgIFNldE11dGVkKE9wdGlvblNl
dDxXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0ZT4gbXV0ZWQpIC0+ICgpCiAgICAgU2V0
TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCi0gICAgU3RvcE1l
ZGlhQ2FwdHVyZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVy
ZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKKyAgICBTdG9wTWVkaWFDYXB0dXJlKGVudW06dWludDhf
dCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTWVkaWFDYXB0dXJlS2luZCBraW5kKSAtPiAoKQogCiAg
ICAgU2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGJvb2wgY2FuUnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKQogICAgIFNldENhblJ1bk1vZGFsKGJvb2wgY2FuUnVuTW9kYWwpCkBA
IC00NzksMTYgKzQ3OSwxNiBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06
dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIEluc2VydFRl
eHRBc3luYyhTdHJpbmcgdGV4dCwgc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJlcGxhY2Vt
ZW50UmFuZ2UsIHN0cnVjdCBXZWJLaXQ6Okluc2VydFRleHRPcHRpb25zIG9wdGlvbnMpCiAgICAg
SW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoU3RyaW5nIHRleHQsIHN0cnVjdCBXZWJLaXQ6OkVkaXRp
bmdSYW5nZSByZXBsYWNlbWVudFJhbmdlLCBWZWN0b3I8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJu
YXRpdmU+IGRpY3RhdGlvbkFsdGVybmF0aXZlcywgc3RydWN0IFdlYktpdDo6SW5zZXJ0VGV4dE9w
dGlvbnMgb3B0aW9ucykKIAotICAgIEhhc01hcmtlZFRleHQoKSAtPiAoYm9vbCBoYXNNYXJrZWRU
ZXh0KSBBc3luYwotICAgIEdldE1hcmtlZFJhbmdlQXN5bmMoKSAtPiAoc3RydWN0IFdlYktpdDo6
RWRpdGluZ1JhbmdlIHJhbmdlKSBBc3luYwotICAgIEdldFNlbGVjdGVkUmFuZ2VBc3luYygpIC0+
IChzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmFuZ2UpIEFzeW5jCi0gICAgQ2hhcmFjdGVy
SW5kZXhGb3JQb2ludEFzeW5jKFdlYkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAodWludDY0X3Qg
bG9jYXRpb24pIEFzeW5jCi0gICAgRmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhzdHJ1
Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmFuZ2UpIC0+IChXZWJDb3JlOjpJbnRSZWN0IHJlY3Qs
IHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSBhY3R1YWxSYW5nZSkgQXN5bmMKKyAgICBIYXNN
YXJrZWRUZXh0KCkgLT4gKGJvb2wgaGFzTWFya2VkVGV4dCkKKyAgICBHZXRNYXJrZWRSYW5nZUFz
eW5jKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5nZSkKKyAgICBHZXRTZWxl
Y3RlZFJhbmdlQXN5bmMoKSAtPiAoc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKQor
ICAgIENoYXJhY3RlckluZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkg
LT4gKHVpbnQ2NF90IGxvY2F0aW9uKQorICAgIEZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5
bmMoc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKSAtPiAoV2ViQ29yZTo6SW50UmVj
dCByZWN0LCBzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgYWN0dWFsUmFuZ2UpCiAgICAgU2V0
Q29tcG9zaXRpb25Bc3luYyhTdHJpbmcgdGV4dCwgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9u
VW5kZXJsaW5lPiB1bmRlcmxpbmVzLCBWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25IaWdobGln
aHQ+IGhpZ2hsaWdodHMsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSBzZWxlY3Rpb25SYW5n
ZSwgc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCiAgICAgQ29u
ZmlybUNvbXBvc2l0aW9uQXN5bmMoKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIEF0
dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHN0cnVjdCBXZWJLaXQ6OkVk
aXRpbmdSYW5nZSByYW5nZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nIHN0
cmluZywgc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKSBBc3luYworICAgIEF0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHN0cnVjdCBXZWJLaXQ6OkVkaXRp
bmdSYW5nZSByYW5nZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nIHN0cmlu
Zywgc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKQogICAgIFJlcXVlc3RBY2NlcHRz
Rmlyc3RNb3VzZShpbnQgZXZlbnROdW1iZXIsIFdlYktpdDo6V2ViTW91c2VFdmVudCBldmVudCkK
ICNlbmRpZgogCkBAIC01MTIsMTEgKzUxMiwxMSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
ICAgIFNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcih1aW50MzJfdCBwaW5uaW5nKQogICAgIFNldFNj
cm9sbGJhck92ZXJsYXlTdHlsZShzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBzY3JvbGxiYXJTdHls
ZSkKIAotICAgIEdldEJ5dGVjb2RlUHJvZmlsZSgpIC0+IChTdHJpbmcgc3RyaW5nKSBBc3luYwor
ICAgIEdldEJ5dGVjb2RlUHJvZmlsZSgpIC0+IChTdHJpbmcgc3RyaW5nKQogCi0gICAgR2V0U2Ft
cGxpbmdQcm9maWxlck91dHB1dCgpIC0+IChTdHJpbmcgc3RyaW5nKSBBc3luYworICAgIEdldFNh
bXBsaW5nUHJvZmlsZXJPdXRwdXQoKSAtPiAoU3RyaW5nIHN0cmluZykKICAgICAKLSAgICBUYWtl
U25hcHNob3QoV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3QsIFdlYkNvcmU6OkludFNpemUg
Yml0bWFwU2l6ZSwgdWludDMyX3Qgb3B0aW9ucykgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUgaW1hZ2UpIEFzeW5jCisgICAgVGFrZVNuYXBzaG90KFdlYkNvcmU6OkludFJlY3Qg
c25hcHNob3RSZWN0LCBXZWJDb3JlOjpJbnRTaXplIGJpdG1hcFNpemUsIHVpbnQzMl90IG9wdGlv
bnMpIC0+IChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlKQogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdEF0TG9jYXRpb24oV2Vi
Q29yZTo6RmxvYXRQb2ludCBsb2NhdGlvbikKICAgICBJbW1lZGlhdGVBY3Rpb25EaWRVcGRhdGUo
KQpAQCAtNTQ0LDcgKzU0NCw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51
bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbklu
Zm8oKSAtPiAoYm9vbCBhY3RpdmUsIGJvb2wgcmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0
aW9uLCBTdHJpbmcgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRUaW1lLCB1
aW50NjRfdCB1bmlxdWVJZGVudGlmaWVyKSBBc3luYworICAgIFJlcXVlc3RBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm8oKSAtPiAoYm9vbCBhY3RpdmUsIGJvb2wgcmVnaXN0ZXJlZEFzTm93UGxh
eWluZ0FwcGxpY2F0aW9uLCBTdHJpbmcgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVs
YXBzZWRUaW1lLCB1aW50NjRfdCB1bmlxdWVJZGVudGlmaWVyKQogI2VuZGlmCiAKICAgICBTZXRT
aG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoYm9vbCBzaG91bGREaXNwYXRjaEZha2VN
b3VzZU1vdmVFdmVudHMpCkBAIC01NzEsNyArNTcxLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKIAogICAgIFNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24odWludDMyX3QgZGlyZWN0
aW9uKQogCi0gICAgRGlkR2V0TG9hZERlY2lzaW9uRm9ySWNvbihib29sIGRlY2lzaW9uLCBXZWJL
aXQ6OkNhbGxiYWNrSUQgbG9hZElkZW50aWZpZXIpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkg
aWNvbkRhdGEpIEFzeW5jCisgICAgRGlkR2V0TG9hZERlY2lzaW9uRm9ySWNvbihib29sIGRlY2lz
aW9uLCBXZWJLaXQ6OkNhbGxiYWNrSUQgbG9hZElkZW50aWZpZXIpIC0+IChJUEM6OlNoYXJlZEJ1
ZmZlckNvcHkgaWNvbkRhdGEpCiAgICAgU2V0VXNlSWNvbkxvYWRpbmdDbGllbnQoYm9vbCB1c2VJ
Y29uTG9hZGluZ0NsaWVudCkKIAogI2lmIEVOQUJMRShHQU1FUEFEKQpAQCAtNTgyLDcgKzU4Miw3
IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRs
ZXIoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmll
ciwgU3RyaW5nIHNjaGVtZSkKIAotICAgIFVSTFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0
aW9uKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcklkZW50aWZpZXIgaGFuZGxlcklkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciB0YXNrSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHByb3Bvc2VkUmVxdWVzdCkgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBhY3R1YWxSZXF1
ZXN0KSBBc3luYworICAgIFVSTFNjaGVtZVRhc2tXaWxsUGVyZm9ybVJlZGlyZWN0aW9uKFdlYktp
dDo6V2ViVVJMU2NoZW1lSGFuZGxlcklkZW50aWZpZXIgaGFuZGxlcklkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHByb3Bvc2Vk
UmVxdWVzdCkgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBhY3R1YWxSZXF1ZXN0KQogICAg
IFVSTFNjaGVtZVRhc2tEaWRQZXJmb3JtUmVkaXJlY3Rpb24oV2ViS2l0OjpXZWJVUkxTY2hlbWVI
YW5kbGVySWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
ZXJJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcHJvcG9zZWRSZXF1ZXN0KQogICAgIFVS
TFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UoV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVy
SWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVu
dGlmaWVyIHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
KQogICAgIFVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShXZWJLaXQ6OldlYlVSTFNjaGVtZUhh
bmRsZXJJZGVudGlmaWVyIGhhbmRsZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cklkZW50aWZpZXIgdGFza0lkZW50aWZpZXIsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBkYXRhKQpA
QCAtNTkxLDE0ICs1OTEsMTQgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBTZXRJc1N1
c3BlbmRlZChib29sIHN1c3BlbmRlZCkKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQp
Ci0gICAgSW5zZXJ0QXR0YWNobWVudChTdHJpbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gZmlsZVNpemUsIFN0cmluZyBmaWxlTmFtZSwgU3RyaW5nIGNvbnRlbnRUeXBlKSAt
PiAoKSBBc3luYwotICAgIFVwZGF0ZUF0dGFjaG1lbnRBdHRyaWJ1dGVzKFN0cmluZyBpZGVudGlm
aWVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6ZSwgU3RyaW5nIGNvbnRlbnRUeXBl
LCBTdHJpbmcgZmlsZU5hbWUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBlbmNsb3NpbmdJbWFnZURh
dGEpIC0+ICgpIEFzeW5jCisgICAgSW5zZXJ0QXR0YWNobWVudChTdHJpbmcgaWRlbnRpZmllciwg
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUsIFN0cmluZyBmaWxlTmFtZSwgU3RyaW5n
IGNvbnRlbnRUeXBlKSAtPiAoKQorICAgIFVwZGF0ZUF0dGFjaG1lbnRBdHRyaWJ1dGVzKFN0cmlu
ZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6ZSwgU3RyaW5nIGNv
bnRlbnRUeXBlLCBTdHJpbmcgZmlsZU5hbWUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBlbmNsb3Np
bmdJbWFnZURhdGEpIC0+ICgpCiAgICAgVXBkYXRlQXR0YWNobWVudFRodW1ibmFpbChTdHJpbmcg
aWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBxbFRodW1ibmFpbEhh
bmRsZSkKICAgICBVcGRhdGVBdHRhY2htZW50SWNvbihTdHJpbmcgaWRlbnRpZmllciwgV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpY29uLCBXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQotICAgIEdldEFwcGxp
Y2F0aW9uTWFuaWZlc3QoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpBcHBsaWNhdGlvbk1h
bmlmZXN0PiBtYW5pZmVzdCkgQXN5bmMKKyAgICBHZXRBcHBsaWNhdGlvbk1hbmlmZXN0KCkgLT4g
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdD4gbWFuaWZlc3QpCiAj
ZW5kaWYKIAogICAgIFNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQpAQCAtNjA2
LDggKzYwNiw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90
IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAjaWYgRU5BQkxFKFVJX1BST0NF
U1NfUERGX0hVRCkKICAgICBab29tUERGSW4oV2ViS2l0OjpQREZQbHVnaW5JZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiAgICAgWm9vbVBERk91dChXZWJLaXQ6OlBERlBsdWdpbklkZW50aWZpZXIgaWRl
bnRpZmllcikKLSAgICBTYXZlUERGKFdlYktpdDo6UERGUGx1Z2luSWRlbnRpZmllciBpZGVudGlm
aWVyKSAtPiAoU3RyaW5nIGZpbGVuYW1lLCBVUkwgdXJsLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0
YSkgQXN5bmMKLSAgICBPcGVuUERGV2l0aFByZXZpZXcoV2ViS2l0OjpQREZQbHVnaW5JZGVudGlm
aWVyIGlkZW50aWZpZXIpIC0+IChTdHJpbmcgZmlsZW5hbWUsIHN0cnVjdCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEgZnJhbWVJbmZvLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5nIHV1aWQp
IEFzeW5jCisgICAgU2F2ZVBERihXZWJLaXQ6OlBERlBsdWdpbklkZW50aWZpZXIgaWRlbnRpZmll
cikgLT4gKFN0cmluZyBmaWxlbmFtZSwgVVJMIHVybCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEp
CisgICAgT3BlblBERldpdGhQcmV2aWV3KFdlYktpdDo6UERGUGx1Z2luSWRlbnRpZmllciBpZGVu
dGlmaWVyKSAtPiAoU3RyaW5nIGZpbGVuYW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRh
IGZyYW1lSW5mbywgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyB1dWlkKQogI2VuZGlm
CiAKICAgICBVcGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZShPcHRpb25TZXQ8V2ViQ29yZTo6UGxh
dGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycykKQEAgLTYyNCw3ICs2MjQsNyBAQCBHZW5l
cmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kVHlwZQogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVW
RU5USU9OKQogICAgIFdhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3Vy
Y2UoKQogICAgIENsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCkKLSAgICBHZXRMb2FkZWRT
dWJyZXNvdXJjZURvbWFpbnMoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
PiBkb21haW5zKSBBc3luYworICAgIEdldExvYWRlZFN1YnJlc291cmNlRG9tYWlucygpIC0+IChW
ZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpCiAjZW5kaWYKIAogI2lm
IFVTRShTWVNURU1fUFJFVklFVykKQEAgLTYzMywxNCArNjMzLDE0IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICBTZW5k
TWVzc2FnZVRvV2ViRXh0ZW5zaW9uKHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNz
YWdlKQotICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRlbnNpb25XaXRoUmVwbHkoc3RydWN0IFdlYktp
dDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpIC0+IChzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2Fn
ZSByZXBseU1lc3NhZ2UpIEFzeW5jCisgICAgU2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbldpdGhS
ZXBseShzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4gKHN0cnVjdCBX
ZWJLaXQ6OlVzZXJNZXNzYWdlIHJlcGx5TWVzc2FnZSkKICNlbmRpZgogCi0gICAgU3RhcnRUZXh0
TWFuaXB1bGF0aW9ucyhWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6
OkV4Y2x1c2lvblJ1bGU+IGV4Y2x1c2lvblJ1bGVzKSAtPiAoKSBBc3luYwotICAgIENvbXBsZXRl
VGV4dE1hbmlwdWxhdGlvbihWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXI6Ok1hbmlwdWxhdGlvbkl0ZW0+IGl0ZW1zKSAtPiAoYm9vbCBhbGxGYWlsZWQsIFZlY3RvcjxX
ZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uRmFpbHVyZT4g
ZmFpbHVyZXMpIEFzeW5jCisgICAgU3RhcnRUZXh0TWFuaXB1bGF0aW9ucyhWZWN0b3I8V2ViQ29y
ZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6OkV4Y2x1c2lvblJ1bGU+IGV4Y2x1c2lvblJ1
bGVzKSAtPiAoKQorICAgIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbihWZWN0b3I8V2ViQ29yZTo6
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvbkl0ZW0+IGl0ZW1zKSAtPiAo
Ym9vbCBhbGxGYWlsZWQsIFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxl
cjo6TWFuaXB1bGF0aW9uRmFpbHVyZT4gZmFpbHVyZXMpCiAKICAgICBTZXRPdmVycmlkZGVuTWVk
aWFUeXBlKFN0cmluZyBtZWRpYVR5cGUpCi0gICAgR2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKCkgLT4g
KFN0cmluZyBkaXNwbGF5TmFtZSkgQXN5bmMKKyAgICBHZXRQcm9jZXNzRGlzcGxheU5hbWUoKSAt
PiAoU3RyaW5nIGRpc3BsYXlOYW1lKQogCiAgICAgVXBkYXRlQ09SU0Rpc2FibGluZ1BhdHRlcm5z
KFZlY3RvcjxTdHJpbmc+IHBhdHRlcm5zKQogCkBAIC02NTYsMjEgKzY1NiwyMSBAQCBHZW5lcmF0
ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZQogICAgIFNldEFwcEhpZ2hsaWdodHNWaXNpYmlsaXR5KGVudW06Ym9v
bCBXZWJDb3JlOjpIaWdobGlnaHRWaXNpYmlsaXR5IGhpZ2hsaWdodFZpc2liaWxpdHkpCiAjZW5k
aWYKIAotICAgIERpc3BhdGNoV2hlZWxFdmVudFdpdGhvdXRTY3JvbGxpbmcoV2ViS2l0OjpXZWJX
aGVlbEV2ZW50IGV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBBc3luYworICAgIERpc3BhdGNoV2hl
ZWxFdmVudFdpdGhvdXRTY3JvbGxpbmcoV2ViS2l0OjpXZWJXaGVlbEV2ZW50IGV2ZW50KSAtPiAo
Ym9vbCBoYW5kbGVkKQogCi0gICAgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSAtPiAo
Ym9vbCB3YXNBcHBCb3VuZCkgQXN5bmMKKyAgICBMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRl
ZCgpIC0+IChib29sIHdhc0FwcEJvdW5kKQogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCi0gICAgQ3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU3RyaW5nIGlkZW50
aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCisgICAgQ3JlYXRlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoU3RyaW5nIGlkZW50aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MpCiAgICAgSW52YWxp
ZGF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKElNQUdF
X0FOQUxZU0lTKQotICAgIFVwZGF0ZVdpdGhUZXh0UmVjb2duaXRpb25SZXN1bHQoc3RydWN0IFdl
YkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCByZXN1bHQsIHN0cnVjdCBXZWJDb3JlOjpFbGVt
ZW50Q29udGV4dCBlbGVtZW50LCBXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uKSAtPiAoZW51
bTp1aW50OF90IFdlYktpdDo6VGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IHJlc3VsdCkgQXN5
bmMKKyAgICBVcGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0KHN0cnVjdCBXZWJDb3JlOjpU
ZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0LCBzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRl
eHQgZWxlbWVudCwgV2ViQ29yZTo6RmxvYXRQb2ludCBsb2NhdGlvbikgLT4gKGVudW06dWludDhf
dCBXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCByZXN1bHQpCiAgICAgU3RhcnRJ
bWFnZUFuYWx5c2lzKFN0cmluZyBpZGVudGlmaWVyKQogI2VuZGlmCiAKICAgICBTY3JvbGxUb1Jl
Y3QoV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFJlY3QsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3Jp
Z2luKQogCi0gICAgSW50ZXJhY3RhYmxlUmVnaW9uc0luUm9vdFZpZXdDb29yZGluYXRlcyhXZWJD
b3JlOjpGbG9hdFJlY3QgcmVjdCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHJlY3Rz
KSBBc3luYworICAgIEludGVyYWN0YWJsZVJlZ2lvbnNJblJvb3RWaWV3Q29vcmRpbmF0ZXMoV2Vi
Q29yZTo6RmxvYXRSZWN0IHJlY3QpIC0+IChWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiByZWN0
cykKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggYTgzNzEzMDk0OWYxNjI3YzBmN2MxYWFlMjJlOWRkNWFmMWFkZjIwNC4uYTFjZGIz
YTdkODNmYjVmM2EzZjgwZjAxNzg5MjNlZmZjY2JiZWM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc0LDkgKzc0LDkgQEAgbWVz
c2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBT
ZXRJbmplY3RlZEJ1bmRsZVBhcmFtZXRlcnMoSVBDOjpEYXRhUmVmZXJlbmNlIHBhcmFtZXRlcnMp
OwogICAgIEhhbmRsZUluamVjdGVkQnVuZGxlTWVzc2FnZShTdHJpbmcgbWVzc2FnZU5hbWUsIFdl
YktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpOwogCi0gICAgRmV0Y2hXZWJzaXRlRGF0YShPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+IChzdHJ1
Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkgQXN5bmMKLSAgICBEZWxldGVXZWJz
aXRlRGF0YShPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlw
ZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpIC0+ICgpIEFzeW5jCi0gICAgRGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0
ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykg
LT4gKCkgQXN5bmMKKyAgICBGZXRjaFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVE
YXRhIHdlYnNpdGVEYXRhKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJLaXQ6
OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZpZWRTaW5j
ZSkgLT4gKCkKKyAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSAtPiAoKQogCiAgICAgU2V0SGlkZGVuUGFnZURPTVRp
bWVyVGhyb3R0bGluZ0luY3JlYXNlTGltaXQoaW50IG1pbGxpc2Vjb25kcykKIApAQCAtODksNyAr
ODksNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50
ZWQgewogICAgIEVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJveHkoU3RyaW5nIHNlc3Npb25JZGVu
dGlmaWVyKQogICAgIERlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KCkKIAotICAgIFByZXBh
cmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkgQXN5bmMKKyAgICBQ
cmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCiAgICAgUHJv
Y2Vzc0RpZFJlc3VtZSgpCiAKICAgICBCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5nKCkKQEAg
LTEwMCwxMiArMTAwLDEyIEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
Tm90UmVmQ291bnRlZCB7CiAgICAgR2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkK
ICNlbmRpZgogCi0gICAgRXN0YWJsaXNoUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05l
dHdvcmtQcm9jZXNzKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90ZVdvcmtlclR5cGUgd29ya2VyVHlw
ZSwgV2ViS2l0OjpQYWdlR3JvdXBJZGVudGlmaWVyIHBhZ2VHcm91cElELCBXZWJLaXQ6OldlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIs
IHN0cnVjdCBXZWJLaXQ6OlJlbW90ZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YSBpbml0aWFsaXph
dGlvbkRhdGEpIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNoUmVtb3RlV29ya2VyQ29udGV4dENv
bm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90ZVdvcmtlclR5
cGUgd29ya2VyVHlwZSwgV2ViS2l0OjpQYWdlR3JvdXBJZGVudGlmaWVyIHBhZ2VHcm91cElELCBX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBz
dG9yZSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFn
ZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZVdvcmtlckluaXRpYWxpemF0aW9uRGF0
YSBpbml0aWFsaXphdGlvbkRhdGEpIC0+ICgpCiAKICAgICBTZXRIYXNTdXNwZW5kZWRQYWdlUHJv
eHkoYm9vbCBoYXNTdXNwZW5kZWRQYWdlUHJveHkpOwogICAgIFNldElzSW5Qcm9jZXNzQ2FjaGUo
Ym9vbCBpc0luUHJvY2Vzc0NhY2hlKQogICAgIE1hcmtJc05vTG9uZ2VyUHJld2FybWVkKCkKLSAg
ICBHZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKCkgLT4gKFZlY3RvcjxTdHJpbmc+IGFj
dGl2ZU9yaWdpbnMpIEFzeW5jCisgICAgR2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZygp
IC0+IChWZWN0b3I8U3RyaW5nPiBhY3RpdmVPcmlnaW5zKQogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgU2V0U2NyZWVuUHJvcGVydGllcyhzdHJ1Y3QgV2ViQ29yZTo6U2NyZWVuUHJvcGVydGll
cyBzY3JlZW5Qcm9wZXJ0aWVzKQpAQCAtMTI3LDcgKzEyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBy
b2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgQ29sb3JQcmVmZXJlbmNl
c0RpZENoYW5nZSgpCiAjZW5kaWYKIAotICAgIElzSklURW5hYmxlZCgpIC0+IChib29sIGVuYWJs
ZWQpIEFzeW5jCisgICAgSXNKSVRFbmFibGVkKCkgLT4gKGJvb2wgZW5hYmxlZCkKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIFNldE1lZGlhTUlNRVR5cGVzKFZlY3RvcjxTdHJpbmc+IHR5cGVz
KQpAQCAtMTUxLDE4ICsxNTEsMTggQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBDbGVhckN1cnJlbnRNb2RpZmllclN0YXRlRm9yVGVz
dGluZygpCiAKICAgICBTZXRCYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHkodW5zaWduZWQgY2FwYWNp
dHkpOwotICAgIENsZWFyQ2FjaGVkUGFnZShzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCkgLT4gKCkgQXN5bmMKKyAgICBDbGVhckNhY2hl
ZFBhZ2Uoc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0Zvcndh
cmRJdGVtSUQpIC0+ICgpCiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICBTZW5kTWVzc2FnZVRvV2ViRXh0ZW5zaW9uKHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVz
ZXJNZXNzYWdlKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKLSAgICBTZWVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZvclRlc3RpbmcoV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdGhpcmRQYXJ0eURvbWFpbiwgYm9vbCBzaG91bGRTY2hlZHVsZU5vdGlmaWNhdGlv
bikgLT4gKCkgQXN5bmMKLSAgICBTZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKGVudW06
dWludDhfdCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIGJsb2NraW5nTW9k
ZSkgLT4gKCkgQXN5bmMKKyAgICBTZWVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZvclRlc3Rpbmco
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gdGhpcmRQYXJ0eURvbWFpbiwgYm9vbCBzaG91bGRTY2hlZHVsZU5vdGlm
aWNhdGlvbikgLT4gKCkKKyAgICBTZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKGVudW06
dWludDhfdCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIGJsb2NraW5nTW9k
ZSkgLT4gKCkKICAgICBTZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKQotICAgIFNldERvbWFpbnNXaXRoQ3Jvc3NQ
YWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKCkgQXN5bmMKLSAgICBTZW5kUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFJbW1lZGlhdGVseSgpIC0+ICgpIEFzeW5jCisgICAgU2V0
RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSAtPiAoKQor
ICAgIFNlbmRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YUltbWVkaWF0ZWx5KCkgLT4gKCkKICNl
bmRpZgogCiAgICAgR3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMoV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgbW9iaWxlQXNzZXRWMkhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bWVzc2FnZXMuaW4KaW5kZXggN2RlYjI1MmI4MzQyMzgzNzMxNjk0YjU1OGRhZTFmOTM4ODYyNmI5
MC4uM2E0MTZhZDA3YmUxYzdlYzFmMzRhMDdjNDdiNGNkYjQyN2YwMGU0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTM3LDYgKzM3LDYgQEAgbWVzc2FnZXMgLT4gVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlciB7CiAgICAgU2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKFdlYktp
dDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCB1bnNpZ25lZCBn
cmF2aXR5KQogICAgIEZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCiAgICAgRnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCi0gICAgUmVxdWVzdFJvdXRlU2hh
cmluZ1BvbGljeUFuZENvbnRleHRVSUQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5n
UG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSwgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKSBBc3lu
YworICAgIFJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKFdlYktpdDo6UGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKSAtPiAoZW51bTp1aW50OF90
IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3ksIFN0cmluZyBy
b3V0aW5nQ29udGV4dFVJRCkKIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453996</attachid>
            <date>2022-03-07 09:39:30 -0800</date>
            <delta_ts>2022-03-07 11:08:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237491-20220307093929.patch</filename>
            <type>text/plain</type>
            <size>223821</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI4ZGJmMTVhODEwOTYxMjQ2
ZjFjZDViYTE0ZDI1NmU5Nzg3MzYxNTQuLmZmMDgzMjNmMTY2N2FlNzI5ZTdlMWU0YzBkNjk3YWM3
YjY0MjhmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMjItMDMtMDQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdW5u
ZWNlc3NhcnkgQXN5bmMgYXR0cmlidXRlIGluIC5tZXNzYWdlcy5pbiBmaWxlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NDkxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlcmUgaXMgYSByZXBs
eSBhbmQgbm8gIlN5bmNocm9ub3VzIiB0aGVuIHdlIGNhbiBpbmZlciB0aGF0IGl0IGlzIGFzeW5j
aHJvbm91cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUZhY3RvcnlQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5z
dGFuY2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFu
YWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1NvY2tldENoYW5uZWwubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
bWVzc2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAg
ICAgIChtZXNzYWdlX3RvX3JlcGx5X2ZvcndhcmRfZGVjbGFyYXRpb24pOgorICAgICAgICAobWVz
c2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRpb24pOgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlv
bnNfYW5kX2hlYWRlcnNfZm9yX3JlcGxpZXMpOgorICAgICAgICAoYXN5bmNfbWVzc2FnZV9zdGF0
ZW1lbnQpOgorICAgICAgICAoc3luY19tZXNzYWdlX3N0YXRlbWVudCk6CisgICAgICAgIChnZW5l
cmF0ZV9tZXNzYWdlX2hhbmRsZXIpOgorICAgICAgICAoZ2VuZXJhdGVfbWVzc2FnZV9hcmd1bWVu
dF9kZXNjcmlwdGlvbl9pbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQv
bW9kZWwucHk6CisgICAgICAgIChnZW5lcmF0ZV9nbG9iYWxfbW9kZWwpOgorICAgICAgICAqIFNo
YXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBT
aGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhuUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJT
eXN0ZW0ubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNz
L1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNl
c3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46
CisKIDIwMjItMDMtMDMgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRW5m
b3JjZSBzaWxlbnQgcHVzaCBxdW90YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CmluZGV4IDdmODYwNzM1NDM4NDEyZTRiMzRiZmM1YjBiYjRhNWY3YTAz
ZDA1ZWQuLmVlOGI4ZGRlYmZkOGMzMTI1MTMyM2Y3Zjk4NzgwMGRmZDBhOWQ4M2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE1Niw3ICsx
NTYsNiBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4KLSQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
blByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMzRlZjkyOWY3ODM5
ZDcxZDE4OTMyNTU1ZmIwYTNiNWM3MGQ0MTE2OS4uNzg3YmRkY2E1Mjg5MzRhNDI2OTNmMWFlZGZi
MDdiOWU1Yjg5YWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC00ODUsOSArNDg1LDYgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXNSZXAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQXV0aG5Qcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdC9XZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzc01lc3NhZ2VzUmVwbGllcy5o
Ci0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC9XZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VzLmgKLSQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdC9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQXV0b21hdGlvblNlc3Npb25NZXNz
YWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkF1
dG9tYXRpb25TZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBiOTc1MWJkMDUwYTcwNTcyYzg3MjY3NTAxOTU3OWM2MTUwODcxNDYxLi5mMDdkZDkz
MGMzZGE2MmY2YWU5ZDkzMDE1NDQxODg4NWY4NDBmYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0xNTgsNyArMTU4LDYgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKIAlV
SVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eSBcCiAJVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5IFwKLQlVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkgXAogCVVJUHJvY2Vzcy9XZWJQYXN0ZWJv
YXJkUHJveHkgXAogCVVJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eSBcCiAJVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5IFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
OGU5OTI5YTUzNWI0MWUyZDE2N2YyMWU1YjNlZjMyNWJkNWM4MjNjZC4uMDk2MWU5YmUwMmJhNDBm
NGNmN2VlYzQ5YmVmOTRiNWY3ODhmZTVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI1LDkgKzI1LDkgQEAKIG1lc3NhZ2VzIC0+
IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVHUFVQcm9jZXNzKHN0
cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycykKIAotICAgIENyZWF0ZUdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgc3RydWN0IFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHBh
cmFtZXRlcnMpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklk
ZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIEFzeW5jCisgICAgQ3JlYXRlR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllciwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpBdHRhY2ht
ZW50PiBjb25uZWN0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25Jbml0aWFsaXphdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVycykKIAotICAgIFByZXBhcmVU
b1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkgQXN5bmMKKyAgICBQcmVw
YXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCiAgICAgUHJvY2Vz
c0RpZFJlc3VtZSgpCiAKICAgICBBZGRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
c3RydWN0IFdlYktpdDo6R1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnMpCkBA
IC0zNyw3ICszNyw3IEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIFNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCiAgICAgU2V0
T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pOwogICAgIFVw
ZGF0ZVNhbmRib3hBY2Nlc3MoVmVjdG9yPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBleHRlbnNpb25zKTsKLSAgICBVcGRhdGVDYXB0dXJlQWNjZXNzKGJvb2wgYWxsb3dBdWRpb0Nh
cHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1cmUsIGJvb2wgYWxsb3dEaXNwbGF5Q2FwdHVyZSwg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lEKSAtPiAoKSBBc3luYworICAgIFVw
ZGF0ZUNhcHR1cmVBY2Nlc3MoYm9vbCBhbGxvd0F1ZGlvQ2FwdHVyZSwgYm9vbCBhbGxvd1ZpZGVv
Q2FwdHVyZSwgYm9vbCBhbGxvd0Rpc3BsYXlDYXB0dXJlLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBwcm9jZXNzSUQpIC0+ICgpCiAgICAgVXBkYXRlQ2FwdHVyZU9yaWdpbihzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGEsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyIHByb2Nlc3NJRCkKICAgICBBZGRNb2NrTWVkaWFEZXZpY2Uoc3RydWN0IFdlYkNvcmU6
Ok1vY2tNZWRpYURldmljZSBkZXZpY2UpOwogICAgIENsZWFyTW9ja01lZGlhRGV2aWNlcygpOwpA
QCAtNTMsOCArNTMsOCBAQCBtZXNzYWdlcyAtPiBHUFVQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICNlbmRpZgogCiAjaWYgSEFWRShTQ19DT05URU5UX1NIQVJJTkdfU0VTU0lPTikKLSAgICBTaG93
V2luZG93UGlja2VyKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4g
ZGV2aWNlKSBBc3luYwotICAgIFNob3dTY3JlZW5QaWNrZXIoKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBkZXZpY2UpIEFzeW5jCisgICAgU2hvd1dpbmRvd1BpY2tl
cigpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZSkKKyAg
ICBTaG93U2NyZWVuUGlja2VyKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4gZGV2aWNlKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtODUs
MTMgKzg1LDEzIEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFNldFNhbXBsZUJ1ZmZlckNvbnRlbnRLZXlTZXNzaW9uU3VwcG9ydEVuYWJsZWQoYm9vbCBlbmFi
bGVkKTsKICNlbmRpZgogCi0gICAgUmVxdWVzdEJpdG1hcEltYWdlRm9yQ3VycmVudFRpbWUoV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
UGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSBoYW5kbGUpIEFzeW5jCisgICAgUmVxdWVzdEJpdG1hcEltYWdlRm9yQ3Vy
cmVudFRpbWUoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyKSAtPiAoV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGUpCiAKICNpZiBFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwg
U3RyaW5nIGtleSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkKICNlbmRpZgog
Ci0gICAgV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoKSAtPiAodWludDY0X3Qg
Y291bnQpIEFzeW5jCisgICAgV2ViUHJvY2Vzc0Nvbm5lY3Rpb25Db3VudEZvclRlc3RpbmcoKSAt
PiAodWludDY0X3QgY291bnQpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggN2ZkMjIy
OGRkMzA4NDc3ZmFkZjY5ZDQ3MGQ1ZmQ1ZTFjOTkxYjRlNC4uNWU2MjVkYmE5NzUyNDBkYmI3ZmVi
YTIyODM4NzUxZjNkMDUzNzNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbgpAQCAtMjYsMTAgKzI2LDEwIEBACiBtZXNzYWdlcyAtPiBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uKFN0cmluZyBpbnB1dERldmljZUlkLCB1aW50MzJfdCBudW1iZXJPZklucHV0Q2hhbm5l
bHMsIHVpbnQzMl90IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUsIGZs
b2F0IGhhcmR3YXJlU2FtcGxlUmF0ZSwgSVBDOjpTZW1hcGhvcmUgcmVuZGVyU2VtYXBob3JlKSAt
PiAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSBT
eW5jaHJvbm91cwogCi0gICAgRGVsZXRlQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgpIEFzeW5jCisgICAgRGVs
ZXRlQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIpIC0+ICgpCiAKLSAgICBTdGFydEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoYm9vbCBp
c1BsYXlpbmcpIEFzeW5jCi0gICAgU3RvcEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoYm9vbCBpc1BsYXlpbmcp
IEFzeW5jCisgICAgU3RhcnRBdWRpb0Rlc3RpbmF0aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0
aW5hdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKGJvb2wgaXNQbGF5aW5nKQorICAgIFN0
b3BBdWRpb0Rlc3RpbmF0aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKGJvb2wgaXNQbGF5aW5nKQogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIEF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRs
ZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3Jp
cHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5LmgKaW5kZXgg
MDllYTgzODhjNGQwODIwZTFjNDM4M2VlNWNlZjRlOWU3OGUyM2ZhYS4uYTA1ZmVjYTFlZTcyNDA5
NmU1ZDNkMjllMWRkNmRiYjk0ODU4OWM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuaApAQCAtODAsNyArODAsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlv
bjsKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWwgeyB9CisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
ICAgICBib29sIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2Fn
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzc2YzE1M2YxMDA5MTc5
ZDVhY2Q4ZDY5NGI1N2Q5OGJlZTQ2MWFlOS4uOTk0OTY4YjFmMmJlNWEwY2U5NDRiMjljNDc4MmE3
ZTQ3OGRjZjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI3LDgg
KzI3LDggQEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VQcm94eSBOb3RSZWZDb3Vu
dGVkIHsKICAgICBDcmVhdGVTZXNzaW9uKHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIpIC0+IChXZWJL
aXQ6OlJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcikgU3luY2hy
b25vdXMKLSAgICBJbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oc3RydWN0IFdlYkNvcmU6OkNE
TUtleVN5c3RlbUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgZW51bTpib29sIFdlYkNvcmU6
OkNETUluc3RhbmNlOjpBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3RpdmVJZGVu
dGlmaWVyc0FsbG93ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1JbnN0YW5jZTo6QWxsb3dQZXJz
aXN0ZW50U3RhdGUgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCkgLT4gKGVudW06Ym9vbCBXZWJDb3Jl
OjpDRE1JbnN0YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpIEFzeW5jCi0gICAgU2V0U2VydmVy
Q2VydGlmaWNhdGUoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGNlcnRpZmljYXRlKSAtPiAoZW51bTpi
b29sIFdlYkNvcmU6OkNETUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VzcykgQXN5bmMKKyAg
ICBJbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb24oc3RydWN0IFdlYkNvcmU6OkNETUtleVN5c3Rl
bUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgZW51bTpib29sIFdlYkNvcmU6OkNETUluc3Rh
bmNlOjpBbGxvd0Rpc3RpbmN0aXZlSWRlbnRpZmllcnMgZGlzdGluY3RpdmVJZGVudGlmaWVyc0Fs
bG93ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1JbnN0YW5jZTo6QWxsb3dQZXJzaXN0ZW50U3Rh
dGUgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpDRE1JbnN0
YW5jZTo6U3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpCisgICAgU2V0U2VydmVyQ2VydGlmaWNhdGUoSVBD
OjpTaGFyZWRCdWZmZXJDb3B5IGNlcnRpZmljYXRlKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OkNE
TUluc3RhbmNlOjpTdWNjZXNzVmFsdWUgc3VjY2VzcykKICAgICBTZXRTdG9yYWdlRGlyZWN0b3J5
KFN0cmluZyBkaXJlY3RvcnkpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94
eS5tZXNzYWdlcy5pbgppbmRleCA4YWQ2ODI2OWNkN2UwYTY2YTNlNWZlNzUyMWIwYTNmYWVhYzgw
YTVhLi40NzNhMzYxMmViMmM1Y2UzMjI3ZTEyOGZhMDg2NGI5OTdjMjc1NDE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNywxMSArMjcsMTEg
QEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHkgTm90UmVmQ291
bnRlZCB7CiAgICAgU2V0TG9nSWRlbnRpZmllcih1aW50NjRfdCBsb2dJZGVudGlmaWVyKQotICAg
IFJlcXVlc3RMaWNlbnNlKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TGljZW5zZVR5cGUg
dHlwZSwgQXRvbVN0cmluZyBpbml0RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBpbml0
RGF0YSkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBtZXNzYWdlLCBTdHJpbmcgc2Vzc2lvbklk
LCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKSBBc3luYwotICAg
IFVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNz
aW9uOjpMaWNlbnNlVHlwZSB0eXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgcmVzcG9uc2UpIC0+
IChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRLZXlzLCBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29sIHN1Y2NlZWRlZCkgQXN5bmMKLSAgICBM
b2FkU2Vzc2lvbihXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUs
IFN0cmluZyBzZXNzaW9uSWQsIFN0cmluZyBvcmlnaW4pIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yPiBjaGFuZ2VkS2V5cywgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IGNoYW5nZWRFeHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVzc2FnZSwgYm9vbCBzdWNjZWVkZWQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OlNlc3Npb25Mb2FkRmFp
bHVyZSBsb2FkRmFpbHVyZSkgQXN5bmMKLSAgICBDbG9zZVNlc3Npb24oU3RyaW5nIHNlc3Npb25J
ZCkgLT4gKCkgQXN5bmMKLSAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lvbklkLCBX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChXZWJDb3Jl
OjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywgc3RkOjpv
cHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKSBB
c3luYworICAgIFJlcXVlc3RMaWNlbnNlKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TGlj
ZW5zZVR5cGUgdHlwZSwgQXRvbVN0cmluZyBpbml0RGF0YVR5cGUsIElQQzo6U2hhcmVkQnVmZmVy
Q29weSBpbml0RGF0YSkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBtZXNzYWdlLCBTdHJpbmcg
c2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJvb2wgc3VjY2VlZGVkKQor
ICAgIFVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgV2ViQ29yZTo6Q0RNSW5zdGFuY2VT
ZXNzaW9uOjpMaWNlbnNlVHlwZSB0eXBlLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgcmVzcG9uc2Up
IC0+IChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRLZXlzLCBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29sIHN1Y2NlZWRlZCkKKyAgICBMb2Fk
U2Vzc2lvbihXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUsIFN0
cmluZyBzZXNzaW9uSWQsIFN0cmluZyBvcmlnaW4pIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yPiBjaGFuZ2VkS2V5cywgc3RkOjpv
cHRpb25hbDxkb3VibGU+IGNoYW5nZWRFeHBpcmF0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVzc2FnZSwgYm9vbCBzdWNjZWVkZWQsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OlNlc3Npb25Mb2FkRmFpbHVy
ZSBsb2FkRmFpbHVyZSkKKyAgICBDbG9zZVNlc3Npb24oU3RyaW5nIHNlc3Npb25JZCkgLT4gKCkK
KyAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lvbklkLCBXZWJDb3JlOjpDRE1JbnN0
YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxJUEM6OlNo
YXJlZEJ1ZmZlckNvcHk+IG1lc3NhZ2UsIGJvb2wgc3VjY2VlZGVkKQogICAgIFN0b3JlUmVjb3Jk
T2ZLZXlVc2FnZShTdHJpbmcgc2Vzc2lvbklkKQogICAgIERpc3BsYXlJRENoYW5nZWQodWludDMy
X3QgZGlzcGxheUlEKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU3OGMyNDk5N2UzYTFhYjY3
N2JjNjJlZWM3ODhkYjBmODZmOTlhYTQuLjlkYTcyMjVlNWQzNTM3YzQxNjhhMWJhY2IyNzBiMmU2
ZTRiODZjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVDRE1Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQ0RNUHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcgQEAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAKIG1lc3NhZ2VzIC0+
IFJlbW90ZUNETVByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIEdldFN1cHBvcnRlZENvbmZpZ3Vy
YXRpb24oc3RydWN0IFdlYkNvcmU6OkNETUtleVN5c3RlbUNvbmZpZ3VyYXRpb24gY2FuZGlkYXRl
Q29uZmlndXJhdGlvbiwgZW51bTpib29sIFdlYkNvcmU6OkNETVByaXZhdGU6OkxvY2FsU3RvcmFn
ZUFjY2VzcyBhY2Nlc3MpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNETUtleVN5c3RlbUNv
bmZpZ3VyYXRpb24+IGFjY3VtdWxhdGVkQ29uZmlndXJhdGlvbikgQXN5bmMKKyAgICBHZXRTdXBw
b3J0ZWRDb25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpDRE1LZXlTeXN0ZW1Db25maWd1cmF0
aW9uIGNhbmRpZGF0ZUNvbmZpZ3VyYXRpb24sIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1Qcml2YXRl
OjpMb2NhbFN0b3JhZ2VBY2Nlc3MgYWNjZXNzKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpD
RE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uPiBhY2N1bXVsYXRlZENvbmZpZ3VyYXRpb24pCiAgICAg
Q3JlYXRlSW5zdGFuY2UoKSAtPiAoV2ViS2l0OjpSZW1vdGVDRE1JbnN0YW5jZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFuY2VDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pIFN5bmNocm9ub3VzCiAgICAgTG9hZEFuZEluaXRpYWxpemUoKQogICAg
IFNldExvZ0lkZW50aWZpZXIodWludDY0X3QgbG9nSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHkuaAppbmRleCAzYTE3ZDQxNTYwYjEyMjFmZDc1YjUyYzExOGJlOTRhYjhhYWQ4YmI5Li45
NWVhNTM1MmNjNGU5ZDRhZTM2YzRmMWIzZjBiYmQyOTMxNjIyY2NhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3Rv
cnlQcm94eS5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOwogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVy
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIGJvb2wgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+
JikgZmluYWw7CiAKICAgICAvLyBNZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KaW5kZXggNTZhMWU3
NDRiOWVmMWE5ODEwZjMxOTJkYmE2MjlhNTNjOTllN2FiMS4uZjcwNzI1ODVmMTFjNDkwMjNhMmZj
ZTkyOGExODhiMjZiMDIwYjcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFFbmdp
bmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw4ICsyNCw4IEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYUVuZ2lu
ZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlRGVj
b2RpbmdDb25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpNZWRpYURlY29kaW5nQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ2FwYWJpbGl0aWVz
RGVjb2RpbmdJbmZvIGRlY29kaW5nSW5mbykgQXN5bmMKLSAgICBDcmVhdGVFbmNvZGluZ0NvbmZp
Z3VyYXRpb24oc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5jb2RpbmdDb25maWd1cmF0aW9uIGNvbmZp
Z3VyYXRpb24pIC0+IChzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0lu
Zm8gZGVjb2RpbmdJbmZvKSBBc3luYworICAgIENyZWF0ZURlY29kaW5nQ29uZmlndXJhdGlvbihz
dHJ1Y3QgV2ViQ29yZTo6TWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikg
LT4gKHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNhcGFiaWxpdGllc0RlY29kaW5nSW5mbyBkZWNvZGlu
Z0luZm8pCisgICAgQ3JlYXRlRW5jb2RpbmdDb25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpN
ZWRpYUVuY29kaW5nQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYkNv
cmU6Ok1lZGlhQ2FwYWJpbGl0aWVzRW5jb2RpbmdJbmZvIGRlY29kaW5nSW5mbykKIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGRhNzFkZTVlMWZjZWQ4
YmQ5OTA5NmFhYzk1ZWZjZTMyMzdjZjU4MWIuLjJjZjRkMzE1MzkzODMyZGJhYTBiOWQ3YjQwMDM5
ZjEyZmJkNjhmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCwx
MSArMjQsMTEgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90
ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgUHJlcGFyZUZvclBsYXliYWNr
KGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJl
bmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpE
eW5hbWljUmFuZ2VNb2RlIG1vZGUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0
aW5nQ29udGV4dElEPiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpIEFzeW5jCisgICAgUHJl
cGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIHByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJv
b2wgcHJlcGFyZUZvclJlbmRlcmluZywgZmxvYXQgdmlkZW9Db250ZW50U2NhbGUsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpEeW5hbWljUmFuZ2VNb2RlIG1vZGUpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQp
CiAKLSAgICBMb2FkKFVSTCB1cmwsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+IHNhbmRib3hFeHRlbnNpb24sIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRl
bnRUeXBlLCBTdHJpbmcga2V5U3lzdGVtKSAtPiAoc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCisgICAgTG9hZChV
UkwgdXJsLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBz
YW5kYm94RXh0ZW5zaW9uLCBXZWJDb3JlOjpDb250ZW50VHlwZSBjb250ZW50VHlwZSwgU3RyaW5n
IGtleVN5c3RlbSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAg
TG9hZE1lZGlhU291cmNlKFVSTCB1cmwsIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRUeXBl
LCBib29sIHdlYk1QYXJzZXJFbmFibGVkLCBXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlSWRlbnRp
ZmllciBtZWRpYVNvdXJjZUlkZW50aWZpZXIpIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikgQXN5bmMKKyAgICBMb2Fk
TWVkaWFTb3VyY2UoVVJMIHVybCwgV2ViQ29yZTo6Q29udGVudFR5cGUgY29udGVudFR5cGUsIGJv
b2wgd2ViTVBhcnNlckVuYWJsZWQsIFdlYktpdDo6UmVtb3RlTWVkaWFTb3VyY2VJZGVudGlmaWVy
IG1lZGlhU291cmNlSWRlbnRpZmllcikgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKQogI2VuZGlmCiAgICAgQ2FuY2Vs
TG9hZCgpCiAKQEAgLTU0LDcgKzU0LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBBY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdl
ZChib29sIGNhbkJlQWNjZWxlcmF0ZWQpCiAgICAgU2V0U2hvdWxkRGlzYWJsZVNsZWVwKGJvb2wg
ZGlzYWJsZSkKICAgICBTZXRSYXRlKGRvdWJsZSByYXRlKQotICAgIERpZExvYWRpbmdQcm9ncmVz
cygpIC0+IChib29sIGZsYWcpIEFzeW5jCisgICAgRGlkTG9hZGluZ1Byb2dyZXNzKCkgLT4gKGJv
b2wgZmxhZykKIAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBVcGRh
dGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpCkBAIC0xMDUsNyArMTA1LDcgQEAgbWVzc2Fn
ZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBWaWRlb1Ry
YWNrU2V0U2VsZWN0ZWQoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGJvb2wgc2VsZWN0ZWQpCiAgICAgVGV4dFRyYWNrU2V0TW9kZShXZWJLaXQ6OlRyYWNr
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUgbW9kZSkKIAotICAgIFBlcmZvcm1UYXNrQXRN
ZWRpYVRpbWUoTWVkaWFUaW1lIG1lZGlhVGltZSwgTW9ub3RvbmljVGltZSBtZXNzYWdlVGltZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8TWVkaWFUaW1lPiBtZWRpYVRpbWUsIHN0ZDo6b3B0aW9uYWw8TW9u
b3RvbmljVGltZT4gbW9ub3RvbmljVGltZSkgQXN5bmMKKyAgICBQZXJmb3JtVGFza0F0TWVkaWFU
aW1lKE1lZGlhVGltZSBtZWRpYVRpbWUsIE1vbm90b25pY1RpbWUgbWVzc2FnZVRpbWUpIC0+IChz
dGQ6Om9wdGlvbmFsPE1lZGlhVGltZT4gbWVkaWFUaW1lLCBzdGQ6Om9wdGlvbmFsPE1vbm90b25p
Y1RpbWU+IG1vbm90b25pY1RpbWUpCiAgICAgV291bGRUYWludE9yaWdpbihzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbikgLT4gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gd291
bGRUYWludCkgU3luY2hyb25vdXMKIAogICAgIFNldFZpZGVvUGxheWJhY2tNZXRyaWNzVXBkYXRl
SW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1l
c3NhZ2VzLmluCmluZGV4IGRlZDk4MDUzNjQyYTY4ZmJmYmM1ZTc0NzViZjE2YWIwZTk3ODQ3OWEu
LmE3MmI0MTFmOWY0N2RkN2NmNzViYWY4ZTQ1NWZjN2IzYzIwMDA3MzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI2LDggKzI2LDggQEAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
IE5vdFJlZkNvdW50ZWQgewotICAgIFJlc3BvbnNlUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2spIC0+IChlbnVtOmJvb2wg
V2ViQ29yZTo6U2hvdWxkQ29udGludWVQb2xpY3lDaGVjayBzaG91bGRDb250aW51ZSkgQXN5bmMK
LSAgICBSZWRpcmVjdFJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmV0dXJuUmVxdWVzdCkgQXN5bmMKKyAgICBSZXNwb25zZVJlY2VpdmVkKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKSAtPiAoZW51bTpi
b29sIFdlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2sgc2hvdWxkQ29udGludWUpCisg
ICAgUmVkaXJlY3RSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
dHVyblJlcXVlc3QpCiAgICAgRGF0YVNlbnQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNUb0JlU2VudCkKICAgICBEYXRhUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGRh
dGEpCiAgICAgQWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VC
dWZmZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4ZjYyMGJhMmU5NmZmZjYz
MmVmM2QwMzJhNWIwYzQ3ODQ5OGZlMjM0Li4xNDdjNTM1MTFhZDg3MzFiNjM2YjQzZDZkMDFmZWUz
N2JhZjBiYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlU291cmNlQnVmZmVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC00MSw3
ICs0MSw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5IE5vdFJlZkNvdW50
ZWQgewogICAgIFJlc2V0VHJhY2tCdWZmZXJzKCkKICAgICBDbGVhclRyYWNrQnVmZmVycygpCiAg
ICAgU2V0QWxsVHJhY2tCdWZmZXJzTmVlZFJhbmRvbUFjY2VzcygpCi0gICAgUmVtb3ZlQ29kZWRG
cmFtZXMoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBNZWRpYVRpbWUgY3VycmVudFRp
bWUsIGJvb2wgaXNFbmRlZCkgLT4gKFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcyBidWZmZXJl
ZCwgdWludDY0X3QgdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKSBBc3luYworICAgIFJlbW92
ZUNvZGVkRnJhbWVzKE1lZGlhVGltZSBzdGFydCwgTWVkaWFUaW1lIGVuZCwgTWVkaWFUaW1lIGN1
cnJlbnRUaW1lLCBib29sIGlzRW5kZWQpIC0+IChXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXMg
YnVmZmVyZWQsIHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcykKICAgICBFdmlj
dENvZGVkRnJhbWVzKHVpbnQ2NF90IG5ld0RhdGFTaXplLCB1aW50NjRfdCBtYXhpbXVtQnVmZmVy
U2l6ZSwgTWVkaWFUaW1lIGN1cnJlbnRUaW1lLCBNZWRpYVRpbWUgZHVyYXRpb24sIGJvb2wgaXNF
bmRlZCkgLT4gKHVpbnQ2NF90IHRvdGFsVHJhY2tCdWZmZXJTaXplSW5CeXRlcykgU3luY2hyb25v
dXMKICAgICBSZWVucXVldWVNZWRpYUlmTmVlZGVkKE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1l
KQogICAgIFNldEdyb3VwU3RhcnRUaW1lc3RhbXAoTWVkaWFUaW1lIHRpbWVzdGFtcCkKQEAgLTUz
LDggKzUzLDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlU291cmNlQnVmZmVyUHJveHkgTm90UmVmQ291
bnRlZCB7CiAgICAgU2V0QXBwZW5kV2luZG93RW5kKE1lZGlhVGltZSBhcHBlbmRXaW5kb3dFbmQp
CiAgICAgU2Vla1RvVGltZShNZWRpYVRpbWUgbWVkaWFUaW1lKQogICAgIFVwZGF0ZVRyYWNrSWRz
KFZlY3RvcjxzdGQ6OnBhaXI8V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBX
ZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXI+PiBpZGVudGlmaWVyUGFpcnMpCi0g
ICAgQnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHNhbXBsZXMpIEFz
eW5jCi0gICAgRW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHNhbXBs
ZXMpIEFzeW5jCisgICAgQnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJZChXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+
IHNhbXBsZXMpCisgICAgRW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+
IHNhbXBsZXMpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5tZXNz
YWdlcy5pbgppbmRleCAxYzMxZGI2YjE0N2VmYzUzYzdkNDUwMDZjOWEyNGYwYmVhM2VhMWU5Li5i
YTgzMWVkNDllNWM0OTNlZGQzMmJhNzJiZjE5YjUwNzgxNDI3OGEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0TWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyIE5vdFJl
ZkNvdW50ZWQgewotICAgIENyZWF0ZVVuaXQoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1lQ2h1bmtTaXpl
KSBBc3luYworICAgIENyZWF0ZVVuaXQoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1lQ2h1bmtTaXplKQog
ICAgIERlbGV0ZVVuaXQoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdElkZW50aWZpZXIgaWRlbnRpZmllcikKIAogICAgIFN0YXJ0VW5pdChXZWJLaXQ6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMsIElQQzo6U2VtYXBob3JlIHJlbmRlclNlbWFwaG9yZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5tZXNzYWdlcy5pbgppbmRleCA1MjIxMGRhZWJiMzY4Y2Y0MTczNjA4NTdmMzExNWJhZTUzZTA2
YmM4Li45YjdkOTZmNjNkZDQyOGYyYTBkY2NmYjY1OGUyZTg5YTljNmY2MDA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLm1lc3NhZ2VzLmluCkBAIC0yNywxMCArMjcsMTAgQEAgbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFSZWNvcmRlciBOb3RSZWZDb3VudGVkIHsKICAgICBBdWRpb1NhbXBsZXNTdG9yYWdl
Q2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVt
YmVyT2ZGcmFtZXMpCiAgICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1
aW50NjRfdCBudW1iZXJPZkZyYW1lcykKICAgICBWaWRlb1NhbXBsZUF2YWlsYWJsZShzdHJ1Y3Qg
V2ViS2l0OjpTaGFyZWRWaWRlb0ZyYW1lIGZyYW1lKQotICAgIEZldGNoRGF0YSgpIC0+IChJUEM6
OkRhdGFSZWZlcmVuY2UgYnVmZmVyLCBkb3VibGUgdGltZUNvZGUpIEFzeW5jCi0gICAgU3RvcFJl
Y29yZGluZygpIC0+ICgpIEFzeW5jCi0gICAgUGF1c2UoKSAtPiAoKSBBc3luYwotICAgIFJlc3Vt
ZSgpIC0+ICgpIEFzeW5jCisgICAgRmV0Y2hEYXRhKCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSBi
dWZmZXIsIGRvdWJsZSB0aW1lQ29kZSkKKyAgICBTdG9wUmVjb3JkaW5nKCkgLT4gKCkKKyAgICBQ
YXVzZSgpIC0+ICgpCisgICAgUmVzdW1lKCkgLT4gKCkKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1l
U2VtYXBob3JlKElQQzo6U2VtYXBob3JlIHNlbWFwaG9yZSkKICAgICBTZXRTaGFyZWRWaWRlb0Zy
YW1lTWVtb3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSkK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDgyOGI4
YWE2OGU5MGE5YjI1ZTFlODcwZjZjOTBhOGZkN2M1YTcwNzAuLjAxN2E1MGU4MzIwNDcxYzI5YTRm
MzNiYjZhMjVkZGMxMTQ1ZWEyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFJl
bW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewotICAgIENyZWF0ZVJlY29y
ZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGJv
b2wgaGFzVmlkZW8sIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMg
b3B0aW9ucykgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gY3JlYXRp
b25FcnJvciwgU3RyaW5nIG1pbWVUeXBlLCB1bnNpZ25lZCBhdWRpb0JpdFJhdGUsIHVuc2lnbmVk
IHZpZGVvQml0UmF0ZSkgQXN5bmMKKyAgICBDcmVhdGVSZWNvcmRlcihXZWJLaXQ6Ok1lZGlhUmVj
b3JkZXJJZGVudGlmaWVyIGlkLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zIG9wdGlvbnMpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGNyZWF0aW9uRXJyb3IsIFN0cmluZyBtaW1l
VHlwZSwgdW5zaWduZWQgYXVkaW9CaXRSYXRlLCB1bnNpZ25lZCB2aWRlb0JpdFJhdGUpCiAgICAg
UmVsZWFzZVJlY29yZGVyKFdlYktpdDo6TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQpCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgppbmRleCA5ZDFlYzc3ZjIxMWYxODZlNTg0YTIxZDYxYjRkY2Y4MTk1ZWRjMGRhLi4x
OGZiYmFjMWUyYzE0YjYyNjEyYjViOTJlNDhkMDhjZjYzN2VkMWE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0y
NCw3ICsyNCw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlciBXYW50c0FzeW5jRGlzcGF0Y2hNZXNzYWdlIHsKLSAgICBDcmVh
dGVMYXllcihXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWQsIGJv
b2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSBzaXplKSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElEKSBBc3luYworICAgIENy
ZWF0ZUxheWVyKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCwg
Ym9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplIHNpemUpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SUQpCiAgICAgUmVsZWFz
ZUxheWVyKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCkKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNv
b2tpZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA2ZmRmNTc3MmFhNmFhZTM5
NDAyYTlhODlmNTZjODRmN2JkNDM1ODVmLi40NmQ5NzA4YmRiOGVhNzQyMTNhNDYzNmNhMzE5YTA5
ZGU4N2YyNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsMTkg
KzI0LDE5IEBACiAgKi8KICAKIG1lc3NhZ2VzIC0+IFdlYkNvb2tpZU1hbmFnZXIgTm90UmVmQ291
bnRlZCB7Ci0gICAgdm9pZCBHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIC0+IChWZWN0b3I8U3RyaW5nPiBob3N0bmFtZXMpIEFzeW5jCisgICAgdm9pZCBH
ZXRIb3N0bmFtZXNXaXRoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0
b3I8U3RyaW5nPiBob3N0bmFtZXMpCiAgICAgdm9pZCBEZWxldGVDb29raWVzRm9ySG9zdG5hbWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFN0cmluZz4gaG9zdG5hbWVzKQogICAg
IHZvaWQgRGVsZXRlQWxsQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKLSAgICB2
b2lkIFNldENvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+IGNvb2tpZSkgLT4gKCkgQXN5bmMKLSAgICB2b2lkIFNldENvb2tpZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzLCBVUkwgdXJs
LCBVUkwgbWFpbkRvY3VtZW50VVJMKSAtPiAoKSBBc3luYwotICAgIHZvaWQgR2V0QWxsQ29va2ll
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBj
b29raWVzKSBBc3luYwotICAgIHZvaWQgR2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYwot
ICAgIHZvaWQgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdl
YkNvcmU6OkNvb2tpZSBjb29raWUpIC0+ICgpIEFzeW5jCi0gICAgdm9pZCBEZWxldGVBbGxDb29r
aWVzTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUp
IC0+ICgpIEFzeW5jCisgICAgdm9pZCBTZXRDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWUpIC0+ICgpCisgICAgdm9pZCBTZXRDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29v
a2llcywgVVJMIHVybCwgVVJMIG1haW5Eb2N1bWVudFVSTCkgLT4gKCkKKyAgICB2b2lkIEdldEFs
bENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gY29va2llcykKKyAgICB2b2lkIEdldENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgdXJsKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKKyAgICB2
b2lkIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3Jl
OjpDb29raWUgY29va2llKSAtPiAoKQorICAgIHZvaWQgRGVsZXRlQWxsQ29va2llc01vZGlmaWVk
U2luY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXYWxsVGltZSB0aW1lKSAtPiAoKQogCi0g
ICAgdm9pZCBTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJDb3JlOjpI
VFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgLT4gKCkgQXN5bmMKLSAgICB2b2lkIEdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoZW51bTp1
aW50OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSBBc3luYworICAg
IHZvaWQgU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRU
UENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIC0+ICgpCisgICAgdm9pZCBHZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGVudW06dWludDhfdCBX
ZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSkKICAgICAKICAgICB2b2lkIFN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
dm9pZCBTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KaW5kZXggZTVm
Y2Y5NWRhNWViNzhiMmQ0ZmY5MTBhZWVmYTkzNTNlNTY4YzU4MS4uM2RkYzkxZTgzZWQyMDdkMmNi
NTQxMDhkMmFiZmI2NGMyYzdkODE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5tZXNzYWdlcy5pbgpAQCAtMjMsNSArMjMsNSBAQAogbWVzc2FnZXMgLT4gTmV0d29ya0Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeSBOb3RSZWZDb3VudGVkIHsKICAgICBSZWdpc3RlckNoYW5u
ZWwoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lKSBXYW50
c0Nvbm5lY3Rpb24KICAgICBVbnJlZ2lzdGVyQ2hhbm5lbChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luIG9yaWdpbiwgU3RyaW5nIG5hbWUpIFdhbnRzQ29ubmVjdGlvbgotICAgIFBvc3RNZXNz
YWdlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgc3Ry
dWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UpIC0+ICgpIEFzeW5j
IFdhbnRzQ29ubmVjdGlvbgorICAgIFBvc3RNZXNzYWdlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzIG1lc3NhZ2UpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbgogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYWZlNmJiMTlmMTE3OGNjZWZmNWY5
NmExZDlhOTIwNzJmYTQxZTc2MS4uYTVhMmZkNjI4YzZkYTFmZmIwYjA0OGFhY2ZiYWUwNmFlZWY5
OTQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0z
MCw5ICszMCw5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBQYWdlTG9hZENvbXBsZXRlZChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQpCiAgICAgQnJvd3NpbmdDb250ZXh0UmVtb3ZlZChXZWJLaXQ6OldlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQpCiAgICAgUHJl
ZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQotICAgIFNlbmRIMlBpbmcoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFNlbmRIMlBpbmcoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoRXhwZWN0
ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KQogICAgIFByZWNvbm5l
Y3RUbyhzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcj4gcHJl
Y29ubmVjdGlvbklkZW50aWZpZXIsIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMgbG9hZFBhcmFtZXRlcnMpOwotICAgIElzUmVzb3VyY2VMb2FkRmluaXNoZWQoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChib29s
IGlzRmluaXNoZWQpIEFzeW5jCisgICAgSXNSZXNvdXJjZUxvYWRGaW5pc2hlZChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKGJvb2wg
aXNGaW5pc2hlZCkKIAogICAgIFN0YXJ0RG93bmxvYWQoV2ViS2l0OjpEb3dubG9hZElEIGRvd25s
b2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBlbnVtOmJvb2wgc3RkOjpv
cHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLCBTdHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cklkZW50aWZpZXI+IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2Fk
SUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4pCkBAIC01NSw3ICs1NSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZWdpc3RlckJsb2JVUkxGb3JTbGljZShVUkwg
dXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCwgU3RyaW5nIGNvbnRl
bnRUeXBlKQogICAgIFVucmVnaXN0ZXJCbG9iVVJMKFVSTCB1cmwpCiAgICAgQmxvYlNpemUoVVJM
IHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNpemUpIFN5bmNocm9ub3VzCi0gICAgV3JpdGVCbG9i
c1RvVGVtcG9yYXJ5RmlsZXNGb3JJbmRleGVkREIoVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+
IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMpIEFzeW5jCisgICAgV3JpdGVCbG9ic1RvVGVtcG9y
YXJ5RmlsZXNGb3JJbmRleGVkREIoVmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+IChWZWN0b3I8
U3RyaW5nPiBmaWxlTmFtZXMpCiAgICAgUmVnaXN0ZXJCbG9iVVJMSGFuZGxlKFVSTCB1cmwpOwog
ICAgIFVucmVnaXN0ZXJCbG9iVVJMSGFuZGxlKFVSTCB1cmwpOwogCkBAIC02OSw5ICs2OSw5IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBSZW1v
dmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAgICAgTG9nVXNlckludGVyYWN0aW9u
KFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKLSAgICBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gc3Rh
dGlzdGljcykgLT4gKCkgQXN5bmMKLSAgICBIYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMK
LSAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJG
cmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3
ZWJQYWdlSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwg
ZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NTY29wZSBzY29wZSkgLT4gKHN0cnVjdCBX
ZWJDb3JlOjpSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdCByZXN1bHQpIEFzeW5jCisgICAgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3M+IHN0YXRpc3RpY3MpIC0+ICgpCisgICAgSGFzU3RvcmFnZUFjY2VzcyhXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3Mp
CisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3Vi
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlELCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQs
IGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUgc2NvcGUpIC0+IChzdHJ1Y3Qg
V2ViQ29yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQgcmVzdWx0KQogICAgIFJlcXVlc3RT
dG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWlu
SW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJQYWdl
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5lckRvbWFpbikKICNlbmRpZgogCkBA
IC04NCwxNiArODQsMTYgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmlj
cyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgcmVzb3VyY2VMb2FkSWRlbnRpZmll
cikgLT4gKFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyBuZXR3b3JrTWV0cmljcykgU3luY2hy
b25vdXMKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBFc3RhYmxpc2hTV0NvbnRl
eHRDb25uZWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXIpIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKSAtPiAo
KQogICAgIENsb3NlU1dDb250ZXh0Q29ubmVjdGlvbigpCiAjZW5kaWYKIAotICAgIEVzdGFibGlz
aFNoYXJlZFdvcmtlckNvbnRleHRDb25uZWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAt
PiAoKSBBc3luYworICAgIEVzdGFibGlzaFNoYXJlZFdvcmtlckNvbnRleHRDb25uZWN0aW9uKFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoKQogICAgIENsb3NlU2hhcmVkV29ya2VyQ29udGV4
dENvbm5lY3Rpb24oKQogCi0gICAgQ3JlYXRlUlRDUHJvdmlkZXIoKSAtPiAoKSBBc3luYworICAg
IENyZWF0ZVJUQ1Byb3ZpZGVyKCkgLT4gKCkKICNpZiBFTkFCTEUoV0VCX1JUQykKLSAgICBDb25u
ZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNo
YW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRl
bnRpZmllciBoYW5kbGVyKSAtPiAoc3RkOjpvcHRpb25hbDxib29sPiByZXN1bHQpIEFzeW5jCisg
ICAgQ29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1vdGVTb3VyY2Uoc3RydWN0IFdlYkNvcmU6OlJU
Q0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaGFuZGxlcikgLT4gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcmVzdWx0KQog
I2VuZGlmCiAKICAgICBVcGRhdGVRdW90YUJhc2VkT25TcGFjZVVzYWdlRm9yVGVzdGluZyhzdHJ1
Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikKQEAgLTEwMSwxNCArMTAxLDE0IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBFbnRhbmdsZUxvY2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZShzdHJ1Y3QgV2ViQ29y
ZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIGxvY2FsLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBv
cnRJZGVudGlmaWVyIHJlbW90ZSkKICAgICBNZXNzYWdlUG9ydERpc2VudGFuZ2xlZChzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIGxvY2FsKQogICAgIE1lc3NhZ2VQb3J0Q2xv
c2VkKHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgbG9jYWwpCi0gICAgVGFr
ZUFsbE1lc3NhZ2VzRm9yUG9ydChzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVy
IHBvcnQpIC0+IChWZWN0b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+IG1lc3Nh
Z2VzLCB1aW50NjRfdCBtZXNzYWdlQmF0Y2hJZGVudGlmaWVyKSBBc3luYworICAgIFRha2VBbGxN
ZXNzYWdlc0ZvclBvcnQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0
KSAtPiAoVmVjdG9yPFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiBtZXNzYWdlcywg
dWludDY0X3QgbWVzc2FnZUJhdGNoSWRlbnRpZmllcikKICAgICBQb3N0TWVzc2FnZVRvUmVtb3Rl
KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHJlbW90ZSkKLSAgICBDaGVja1JlbW90ZVBv
cnRGb3JBY3Rpdml0eShzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBvcnQp
IC0+IChib29sIGhhc0FjdGl2aXR5KSBBc3luYworICAgIENoZWNrUmVtb3RlUG9ydEZvckFjdGl2
aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKGJvb2wg
aGFzQWN0aXZpdHkpCiAgICAgRGlkRGVsaXZlck1lc3NhZ2VQb3J0TWVzc2FnZXModWludDY0X3Qg
bWVzc2FnZUJhdGNoSWRlbnRpZmllcikKICAgICBSZWdpc3RlclVSTFNjaGVtZXNBc0NPUlNFbmFi
bGVkKFZlY3RvcjxTdHJpbmc+IHNjaGVtZXMpOwogICAgIFNldENPUlNEaXNhYmxpbmdQYXR0ZXJu
cyhXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgVmVjdG9yPFN0cmluZz4g
cGF0dGVybnMpCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIEdldFByb2Nlc3NEaXNwbGF5TmFtZShh
dWRpdF90b2tlbl90IGF1ZGl0VG9rZW4pIC0+IChTdHJpbmcgZGlzcGxheU5hbWUpIEFzeW5jCisg
ICAgR2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbikgLT4gKFN0
cmluZyBkaXNwbGF5TmFtZSkKICAgICBVcGRhdGVBY3RpdmVQYWdlcyhTdHJpbmcgbmFtZSwgVmVj
dG9yPFN0cmluZz4gYWN0aXZlUGFnZXNPcmlnaW5zLCBhdWRpdF90b2tlbl90IGF1ZGl0VG9rZW4p
CiAjZW5kaWYKICAgICBTZXRSZXNvdXJjZUxvYWRTY2hlZHVsaW5nTW9kZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpMb2FkU2NoZWR1bGlu
Z01vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDc0OTkyNTdiMzQxNDBiZTFiMjhlN2RiMDcy
MDFiYzA4Mzc2NjNkOGMuLjc4MWZjNDcyMGQ0ZjAyMTc1MjNlMTcwZDhjYTY2NzI2NmQ2ZGYyNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1By
b2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhzdHJ1
Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzKQogCi0gICAgQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiBjb25uZWN0
aW9uSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xp
Y3kgY29va2llQWNjZXB0UG9saWN5KSBBc3luYworICAgIENyZWF0ZU5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNo
bWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpIVFRQQ29v
a2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeSkKIAogI2lmIFVTRShTT1VQKQogICAg
IFNldElnbm9yZVRMU0Vycm9ycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgaWdub3Jl
VExTRXJyb3JzKQpAQCAtNDIsMTggKzQyLDE4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBBZGRXZWJzaXRlRGF0YVN0b3JlKHN0cnVjdCBXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKTsK
ICAgICBEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKLSAgICBGZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6
V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJz
aXRlRGF0YSB3ZWJzaXRlRGF0YSkgQXN5bmMKLSAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkgLT4gKCkgQXN5bmMKLSAgICBE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMsIFZlY3RvcjxTdHJpbmc+IGNvb2tp
ZUhvc3ROYW1lcywgVmVjdG9yPFN0cmluZz4gSFNUU0NhY2hlSG9zdE5hbWVzLCBWZWN0b3I8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IHJlZ2lzdHJhYmxlRG9tYWlucykgLT4gKCkgQXN5bmMK
LSAgICBSZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VVJMIG9sZERvbWFpbiwgVVJMIG5ld0RvbWFpbiwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKSAtPiAoKSBBc3luYworICAgIEZldGNoV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0
YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0
Y2hPcHRpb24+IGZldGNoT3B0aW9ucykgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdl
YnNpdGVEYXRhKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBX
YWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKQorICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4gb3JpZ2lucywgVmVjdG9yPFN0cmluZz4gY29va2llSG9zdE5hbWVzLCBWZWN0b3I8U3Ry
aW5nPiBIU1RTQ2FjaGVIb3N0TmFtZXMsIFZlY3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bj4gcmVnaXN0cmFibGVEb21haW5zKSAtPiAoKQorICAgIFJlbmFtZU9yaWdpbkluV2Vic2l0ZURh
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgb2xkRG9tYWluLCBVUkwgbmV3RG9tYWlu
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+
ICgpCiAKICAgICBEb3dubG9hZFJlcXVlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFN0cmluZyBzdWdnZXN0ZWRGaWxl
bmFtZSkKICAgICBSZXN1bWVEb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktp
dDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdW1lRGF0YSwg
U3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUsIGVudW06Ym9vbCBXZWJLaXQ6OkNhbGxEb3dubG9hZERpZFN0YXJ0IGNhbGxE
b3dubG9hZERpZFN0YXJ0KQotICAgIENhbmNlbERvd25sb2FkKFdlYktpdDo6RG93bmxvYWRJRCBk
b3dubG9hZElEKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VtZURhdGEpIEFzeW5jCisgICAg
Q2FuY2VsRG93bmxvYWQoV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQpIC0+IChJUEM6OkRh
dGFSZWZlcmVuY2UgcmVzdW1lRGF0YSkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBQdWJsaXNo
RG93bmxvYWRQcm9ncmVzcyhXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgVVJMIHVybCwg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkK
ICNlbmRpZgotICAgIERhdGFUYXNrV2l0aFJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHBhZ2VJRCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSkgLT4g
KFdlYktpdDo6RGF0YVRhc2tJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyKSBBc3luYworICAgIERh
dGFUYXNrV2l0aFJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSkgLT4gKFdlYktpdDo6RGF0YVRh
c2tJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyKQogICAgIENhbmNlbERhdGFUYXNrKFdlYktpdDo6
RGF0YVRhc2tJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiAgICAgQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQogICAgIEFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCgpCkBAIC02NSw3ICs2NSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdv
cmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogICAgIFNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgZW5hYmxlZCkgLT4gKCkgU3luY2hyb25vdXMKIAot
ICAgIEZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisg
ICAgRmx1c2hDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKIAogICAgIEFs
bG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8gY2VydGlmaWNhdGUsIFN0cmluZyBob3N0KQogICAgIEFsbG93VExTQ2VydGlmaWNhdGVDaGFp
bkZvckxvY2FsUENNVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSkKQEAgLTc0LDc5ICs3NCw3OSBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0Q2FjaGVNb2RlbFN5bmNo
cm9ub3VzbHlGb3JUZXN0aW5nKGVudW06dWludDhfdCBXZWJLaXQ6OkNhY2hlTW9kZWwgY2FjaGVN
b2RlbCkgLT4gKCkgU3luY2hyb25vdXMKIAogICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHlGb3JUZXN0aW5nU3luYygpIC0+ICgpIFN5bmNocm9ub3VzCi0gICAgUHJlcGFyZVRvU3VzcGVu
ZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKSBBc3luYworICAgIFByZXBhcmVUb1N1
c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkKICAgICBQcm9jZXNzRGlkUmVz
dW1lKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktp
dDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6Okxh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVk
KTsKIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIENs
ZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBDbGVhclVz
ZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIER1bXBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFN0cmluZyBkdW1wZWRT
dGF0aXN0aWNzKSBBc3luYworICAgIENsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikg
LT4gKCkKKyAgICBDbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKQorICAgIER1
bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFN0
cmluZyBkdW1wZWRTdGF0aXN0aWNzKQogICAgIFNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBlbmFibGVkKQogICAgIFNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQoYm9vbCBlbmFibGVkKQotICAgIFVwZGF0
ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFZlY3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1RvQmxvY2spIC0+
ICgpIEFzeW5jCi0gICAgSXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc0dyYW5k
ZmF0aGVyZWQpIEFzeW5jCi0gICAgSXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJv
b2wgaXNQcmV2YWxlbnQpIEFzeW5jCi0gICAgSXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21h
aW4pIC0+IChib29sIGlzVmVyeVByZXZhbGVudCkgQXN5bmMKLSAgICBTZXRBZ2VDYXBGb3JDbGll
bnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8U2Vj
b25kcz4gc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRMYXN0U2VlbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBT
ZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVz
b3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMSwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RT
ZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1Zl
cnlQcmV2YWxlbnQsIHVpbnQ2NF90IGRhdGFSZWNvcmRzUmVtb3ZlZCkgLT4gKCkgQXN5bmMKLSAg
ICBJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCB1aW50NjRfdCBu
dW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29s
IGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQp
IC0+ICgpIEFzeW5jCi0gICAgU2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKLSAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAt
PiAoKSBBc3luYwotICAgIElzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGlzRXBoZW1lcmFsKSBBc3luYwotICAgIEhhZFVz
ZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFz
eW5jCi0gICAgSXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0aW9u
KSBBc3luYwotICAgIEhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2Vy
SW50ZXJhY3Rpb24pIEFzeW5jCi0gICAgR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFN0cmluZz4gZG9tYWlucykgQXN5bmMKLSAg
ICBJc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9vbCBpc1JlZGlyZWN0
aW5nVG8pIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1
YmZyYW1lVW5kZXIpIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVz
b3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAt
PiAoYm9vbCBpc1N1YnJlc291cmNlVW5kZXIpIEFzeW5jCi0gICAgRG9tYWluSURFeGlzdHNJbkRh
dGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50IGRvbWFpbklEKSAtPiAoYm9vbCBl
eGlzdHMpIEFzeW5jCisgICAgVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9y
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluPiBkb21haW5zVG9CbG9jaykgLT4gKCkKKyAgICBJc0dyYW5kZmF0aGVyZWQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4p
IC0+IChib29sIGlzR3JhbmRmYXRoZXJlZCkKKyAgICBJc1ByZXZhbGVudFJlc291cmNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9t
YWluKSAtPiAoYm9vbCBpc1ByZXZhbGVudCkKKyAgICBJc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdl
dERvbWFpbikgLT4gKGJvb2wgaXNWZXJ5UHJldmFsZW50KQorICAgIFNldEFnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNv
bmRzPiBzZWNvbmRzKSAtPiAoKQorICAgIFNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFNlY29uZHMg
c2Vjb25kcykgLT4gKCkKKyAgICBNZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4xLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFk
VXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwg
dWludDY0X3QgZGF0YVJlY29yZHNSZW1vdmVkKSAtPiAoKQorICAgIEluc2VydEV4cGlyZWRTdGF0
aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0aW5nRGF5
c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxC
dXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkKKyAgICBTZXRQcmV2
YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKQorICAgIFNldFByZXZhbGVudFJlc291cmNl
Rm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpCisgICAgSXNSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRXBoZW1lcmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgaXNFcGhlbWVy
YWwpCisgICAgSGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJ
bnRlcmFjdGlvbikKKyAgICBJc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkRvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24pCisgICAgSGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVz
ZXJJbnRlcmFjdGlvbikKKyAgICBHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8U3RyaW5nPiBkb21haW5zKQorICAgIElzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+IChib29sIGlzUmVkaXJlY3RpbmdUbykKKyAg
ICBJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzU3ViZnJhbWVVbmRlcikKKyAg
ICBJc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzU3VicmVzb3VyY2VV
bmRlcikKKyAgICBEb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBpbnQgZG9tYWluSUQpIC0+IChib29sIGV4aXN0cykKICAgICBMb2dGcmFtZU5hdmlnYXRp
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
YXJnZXREb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwg
Ym9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2Fk
LCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKQotICAgIExvZ1VzZXJJbnRlcmFj
dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFJlc2V0UGFyYW1ldGVyc1RvRGVmYXVs
dFZhbHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU2NoZWR1
bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0
ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2UsIGVudW06Ym9vbCBXZWJLaXQ6OlNo
b3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcyBzaG91bGRHcmFuZGZhdGhlcikgLT4gKCkgQXN5bmMK
LSAgICBTY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKLSAgICBTY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nl
c3NpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwotICAgIFN0YXRpc3Rp
Y3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29s
IGhhc0FsbFRhYmxlcykgQXN5bmMKLSAgICBTZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJl
c291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkg
QXN5bmMKLSAgICBTZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIGJvb2wgaXNHcmFuZGZhdGhl
cmVkKSAtPiAoKSBBc3luYwotICAgIEdldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFy
eShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhPiB0aGlyZFBhcnR5RGF0YSkgQXN5
bmMKLSAgICBTZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
ZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0TWF4U3RhdGlzdGljc0VudHJpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCkgLT4g
KCkgQXN5bmMKLSAgICBTZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAg
U2V0UHJ1bmVFbnRyaWVzRG93blRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qg
bWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCi0gICAgU2V0U2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBi
b29sIHZhbHVlKSAtPiAoKSBBc3luYwotICAgIFNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBB
c3luYwotICAgIFNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBk
ZWJ1Z01vZGUpIC0+ICgpIEFzeW5jCi0gICAgU2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VE
b21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJh
bWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAo
KSBBc3luYwotICAgIFNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5
bmMKLSAgICBTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoKSBBc3luYwot
ICAgIFNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluKSAtPiAoKSBBc3luYwot
ICAgIFNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRp
cmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRU
b0RvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFp
bikgLT4gKCkgQXN5bmMKLSAgICBSZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3Vy
Y2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBMb2dVc2VySW50
ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkKKyAgICBSZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRW
YWx1ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQorICAgIFNjaGVkdWxlQ2xlYXJJ
bk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlv
bmFsPFdhbGxUaW1lPiBtb2RpZmllZFNpbmNlLCBlbnVtOmJvb2wgV2ViS2l0OjpTaG91bGRHcmFu
ZGZhdGhlclN0YXRpc3RpY3Mgc2hvdWxkR3JhbmRmYXRoZXIpIC0+ICgpCisgICAgU2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCisgICAg
U2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgLT4gKCkKKyAgICBTdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBoYXNBbGxUYWJsZXMpCisgICAgU2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpCisgICAgU2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWlu
LCBib29sIGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkKKyAgICBHZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YVN1bW1hcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4gdGhpcmRQ
YXJ0eURhdGEpCisgICAgU2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKQorICAgIFNldE1heFN0YXRpc3RpY3NFbnRyaWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+
ICgpCisgICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKQorICAgIFNldFBydW5lRW50
cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRy
eUNvdW50KSAtPiAoKQorICAgIFNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJl
Y29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkK
KyAgICBTZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkKKyAgICBTZXRJc1J1bm5pbmdSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUp
IC0+ICgpCisgICAgU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGJvb2wgZGVidWdNb2RlKSAtPiAoKQorICAgIFNldFZlcnlQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKQorICAgIFNldFN1YmZyYW1lVW5kZXJUb3BGcmFt
ZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURv
bWFpbikgLT4gKCkKKyAgICBTZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJj
ZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgp
CisgICAgU2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkKKyAgICBTZXRT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbikgLT4gKCkKKyAgICBTZXRUaW1lVG9M
aXZlVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNv
bmRzKSAtPiAoKQorICAgIFNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpCisgICAg
U2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4pIC0+ICgpCisgICAgUmVzZXRDYWNoZU1h
eEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
ICgpCiAgICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b0RvbWFpbiwgT3B0aW9uU2V0PFdlYkNvcmU6OkNy
b3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+IG5hdmlnYXRpb25EYXRhVHJhbnNm
ZXIsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQotICAgIFNldENyb3NzU2l0ZUxvYWRXaXRoTGlu
a0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9Eb21haW4pIC0+ICgpIEFzeW5jCi0gICAgUmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVj
b3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwot
ICAgIERlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tp
ZXMpIC0+ICgpIEFzeW5jCi0gICAgSGFzSXNvbGF0ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoYm9vbCBoYXNJ
c29sYXRlZFNlc3Npb24pIEFzeW5jCi0gICAgQ2xvc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAgU2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVj
b3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b0Rv
bWFpbikgLT4gKCkKKyAgICBSZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCisgICAgRGVsZXRlQ29va2ll
c0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBkb21haW4sIGJvb2wgaW5jbHVkZUh0dHBPbmx5Q29va2llcykgLT4gKCkKKyAgICBI
YXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBkb21haW4pIC0+IChib29sIGhhc0lzb2xhdGVkU2Vzc2lvbikKKyAgICBD
bG9zZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKICNpZiBFTkFC
TEUoQVBQX0JPVU5EX0RPTUFJTlMpCi0gICAgU2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEhhc2hTZXQ8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4+IGFwcEJvdW5kRG9tYWlucykgLT4gKCkgQXN5bmMKKyAgICBTZXRB
cHBCb3VuZERvbWFpbnNGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gYXBwQm91bmREb21h
aW5zKSAtPiAoKQogI2VuZGlmCi0gICAgU2V0U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0
aW5nKGJvb2wgZW5hYmxlZCkgLT4gKCkgQXN5bmMKLSAgICBTZXRUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6
OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgYmxvY2tpbmdNb2RlKSAtPiAoKSBBc3luYwot
ICAgIFNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOmJvb2wgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCkgLT4gKCkgQXN5bmMKLSAgICBTZXRGaXJzdFBhcnR5
V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUg
bW9kZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBk
b21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZmlyc3RQYXJ0eUhvc3QsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGNuYW1lRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNl
dFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0
U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKGJvb2wgZW5hYmxlZCkgLT4gKCkKKyAg
ICBTZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgYmxv
Y2tpbmdNb2RlKSAtPiAoKQorICAgIFNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOmJvb2wgV2ViQ29y
ZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCkgLT4gKCkKKyAgICBT
ZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGUgbW9kZSkgLT4gKCkKKyAgICBTZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0Zv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBkb21haW4pIC0+ICgpCisgICAgU2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZmlyc3RQYXJ0eUhvc3QsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGNuYW1lRG9tYWluKSAtPiAoKQorICAgIFNldFRoaXJk
UGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+ICgpCiAjZW5kaWYKIAogICAgIFNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Ym9vbCBkZWJ1Z01vZGUpCkBAIC0xNTgsNTAgKzE1OCw1MCBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKFN0
cmluZyBzY2hlbWUpCiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKFN0cmluZyBzY2hl
bWUpCiAKLSAgICBTeW5jTG9jYWxTdG9yYWdlKCkgLT4gKCkgQXN5bmMKKyAgICBTeW5jTG9jYWxT
dG9yYWdlKCkgLT4gKCkKIAogICAgIFN0b3JlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCkKLSAgICBEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIHByaXZhdGVDbGlja01lYXN1cmVtZW50
U3RhdGUpIEFzeW5jCi0gICAgQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wg
dmFsdWUpIC0+ICgpIEFzeW5jCi0gICAgTWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkg
QXN5bmMKLSAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFz
eW5jCi0gICAgU2ltdWxhdGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFNlc3Npb25SZXN0YXJ0KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSAgICBTZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFVSTCB1cmwpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgdXJsKSAtPiAoKSBBc3luYwotICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmli
dXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBz
b3VyY2VVUkwsIFVSTCBkZXN0aW5hdGlvblVSTCkgLT4gKCkgQXN5bmMKLSAgICBNYXJrUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBzZWNyZXRUb2tlbiwgU3RyaW5n
IHVubGlua2FibGVUb2tlbiwgU3RyaW5nIHNpZ25hdHVyZSwgU3RyaW5nIGtleUlEKSAtPiAoKSBB
c3luYwotICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGFwcEJ1bmRsZUlERm9yVGVzdGluZykg
LT4gKCkgQXN5bmMKLSAgICBDbG9zZVBDTURhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKKyAgICBEdW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIHByaXZhdGVDbGlja01lYXN1cmVtZW50U3RhdGUp
CisgICAgQ2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpIC0+ICgpCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRPdmVycmlkZVRpbWVyRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpCisgICAg
TWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEVwaGVtZXJhbE1lYXN1cmVtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpCisgICAgU2ltdWxhdGVQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFNlc3Npb25SZXN0YXJ0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKKyAgICBT
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICgpCisgICAgU2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb2tlblNpZ25hdHVyZVVSTEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVUkwgdXJsKSAtPiAoKQorICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVS
TCBzb3VyY2VVUkwsIFVSTCBkZXN0aW5hdGlvblVSTCkgLT4gKCkKKyAgICBNYXJrUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpIC0+ICgpCisgICAgU2V0UENNRnJhdWRQcmV2ZW50aW9uVmFsdWVzRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBzZWNyZXRUb2tlbiwgU3RyaW5nIHVubGlua2Fi
bGVUb2tlbiwgU3RyaW5nIHNpZ25hdHVyZSwgU3RyaW5nIGtleUlEKSAtPiAoKQorICAgIFNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU3RyaW5nIGFwcEJ1bmRsZUlERm9yVGVzdGluZykgLT4gKCkKKyAgICBDbG9z
ZVBDTURhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKIAogICAgIFNldFNl
cnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKFNlY29uZHMgc2Vjb25kcykgLT4gKCkg
U3luY2hyb25vdXMKICAgICBSZXNldFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5n
KCkgLT4gKCkgU3luY2hyb25vdXMKIAotICAgIFJlc2V0UXVvdGEoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKSAtPiAoKSBBc3luYwotICAgIENsZWFyU3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+ICgpIEFzeW5jCisgICAgUmVzZXRRdW90YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpIC0+ICgpCisgICAgQ2xlYXJTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KCkKICAgICBEaWRJbmNyZWFzZVF1b3RhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFdlYktpdDo6UXVvdGFJbmNyZWFzZVJlcXVl
c3RJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG5ld1F1b3Rh
KQogICAgIAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKLSAgICBIYXNBcHBCb3VuZFNl
c3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBoYXNBcHBCb3VuZFNlc3Np
b24pIEFzeW5jCi0gICAgQ2xlYXJBcHBCb3VuZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKSAtPiAoKSBBc3luYworICAgIEhhc0FwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIC0+IChib29sIGhhc0FwcEJvdW5kU2Vzc2lvbikKKyAgICBDbGVhckFwcEJvdW5k
U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBEaXNhYmxl
U2VydmljZVdvcmtlckVudGl0bGVtZW50KCkKLSAgICBDbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxl
bWVudE92ZXJyaWRlKCkgLT4gKCkgQXN5bmMKKyAgICBDbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxl
bWVudE92ZXJyaWRlKCkgLT4gKCkKICNlbmRpZgotICAgIFVwZGF0ZUJ1bmRsZUlkZW50aWZpZXIo
U3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIpIC0+ICgpIEFzeW5jCi0gICAgQ2xlYXJCdW5kbGVJZGVu
dGlmaWVyKCkgLT4gKCkgQXN5bmMKKyAgICBVcGRhdGVCdW5kbGVJZGVudGlmaWVyKFN0cmluZyBi
dW5kbGVJZGVudGlmaWVyKSAtPiAoKQorICAgIENsZWFyQnVuZGxlSWRlbnRpZmllcigpIC0+ICgp
CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGEo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoc3RydWN0IFdlYktpdDo6QXBwUHJpdmFjeVJl
cG9ydFRlc3RpbmdEYXRhIGRhdGEpIEFzeW5jCi0gICAgQ2xlYXJBcHBQcml2YWN5UmVwb3J0VGVz
dGluZ0RhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYworICAgIEFwcFBy
aXZhY3lSZXBvcnRUZXN0aW5nRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChzdHJ1
Y3QgV2ViS2l0OjpBcHBQcml2YWN5UmVwb3J0VGVzdGluZ0RhdGEgZGF0YSkKKyAgICBDbGVhckFw
cFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgp
CiAjZW5kaWYKIAogICAgIEFkZFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFdlYktp
dDo6V2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlV2ViUGFn
ZU5ldHdvcmtQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkKLSAgICBDb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChzaXplX3QgY291bnQpIEFzeW5jCisgICAg
Q291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAo
c2l6ZV90IGNvdW50KQogCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAgTm90
aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXksIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCkBAIC0yMTAsOSArMjEwLDkgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFRlcm1pbmF0ZVJlbW90ZVdv
cmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90
ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCAgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKLSAgICBHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNzYWdlPiBtZXNzYWdlcykgQXN5bmMKLSAgICBQ
cm9jZXNzUHVzaE1lc3NhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViS2l0
OjpXZWJQdXNoTWVzc2FnZSBwdXNoTWVzc2FnZSkgLT4gKGJvb2wgZGlkU3VjY2VlZCkgQXN5bmMK
KyAgICBHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNzYWdlPiBtZXNzYWdlcykKKyAgICBQcm9jZXNzUHVz
aE1lc3NhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViS2l0OjpXZWJQdXNo
TWVzc2FnZSBwdXNoTWVzc2FnZSkgLT4gKGJvb2wgZGlkU3VjY2VlZCkKICNlbmRpZgotICAgIERl
bGV0ZVB1c2hBbmROb3RpZmljYXRpb25SZWdpc3RyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbikgLT4gKFN0cmlu
ZyBlcnJvck1lc3NhZ2UpIEFzeW5jCi0gICAgR2V0T3JpZ2luc1dpdGhQdXNoQW5kTm90aWZpY2F0
aW9uUGVybWlzc2lvbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgQXN5bmMKKyAgICBEZWxldGVQdXNoQW5k
Tm90aWZpY2F0aW9uUmVnaXN0cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4pIC0+IChTdHJpbmcgZXJyb3JNZXNz
YWdlKQorICAgIEdldE9yaWdpbnNXaXRoUHVzaEFuZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE+IG9yaWdpbnMpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgppbmRleCBiZDAyYjkx
NTBmNDM4MmI2YWU2N2UzNWY0MGQ3NTAxYmE5ZGYxZGE0Li5mNDU5ZDVhZGE5OWExYmM4MTIxZWEy
ZjgwYmEzYzAzZTZlYjFmZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwubWVzc2FnZXMuaW4KQEAgLTIxLDcg
KzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gTmV0d29ya1NvY2tldENoYW5u
ZWwgTm90UmVmQ291bnRlZCB7Ci0gICAgU2VuZFN0cmluZyhJUEM6OkRhdGFSZWZlcmVuY2UgbWVz
c2FnZSkgLT4gKCkgQXN5bmMKLSAgICBTZW5kRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkg
LT4gKCkgQXN5bmMKKyAgICBTZW5kU3RyaW5nKElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlKSAt
PiAoKQorICAgIFNlbmREYXRhKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKSAtPiAoKQogICAgIENs
b3NlKGludDMyX3QgY29kZSwgU3RyaW5nIHJlYXNvbikKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGRiODUyNDMyMDAyZTIzNGE4
YzU1OTQyYWUwNTYyY2IwYmM5NzI0N2IuLjQzZmQxMjRmMGM5M2E5ODVlZTI2OWZmZGU2NWI4MmQw
MWZlMWZlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQAogbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVzc2Fn
ZXMgY2FuIGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVj
dGlvbgogICAgIFNjaGVkdWxlSm9iSW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJKb2JEYXRhIGpvYkRhdGEpCi0gICAgU2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCisgICAg
U2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklk
ZW50aWZpZXIgam9iSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRl
bnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhPiByZXN1bHQpCiAKICAgICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVy
KHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9iRGF0YUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0
aW9uS2V5LCBzdHJ1Y3QgV2ViQ29yZTo6V29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogICAgIEFk
ZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMzUsMjcgKzM1LDI3IEBAIG1l
c3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKIAogICAgIERp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkga2V5KQogCi0gICAgTWF0Y2hSZWdpc3RyYXRpb24oc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb24p
IEFzeW5jCi0gICAgV2hlblJlZ2lzdHJhdGlvblJlYWR5KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJMKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gcmVnaXN0cmF0aW9uKSBBc3lu
YwotICAgIEdldFJlZ2lzdHJhdGlvbnMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbnMpIEFzeW5jCisgICAgTWF0Y2hSZWdp
c3RyYXRpb24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVS
TCBjbGllbnRVUkwpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb24pCisgICAgV2hlblJlZ2lzdHJhdGlvblJlYWR5KHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJM
KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YT4gcmVnaXN0cmF0aW9uKQorICAgIEdldFJlZ2lzdHJhdGlvbnMoc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+IChWZWN0b3I8V2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbnMpCiAgICAg
UmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEg
ZGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcj4gY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
U3RyaW5nIHVzZXJBZ2VudCkKICAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogCi0gICAg
VGVybWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciB3b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBBc3luYwotICAgIFdoZW5TZXJ2aWNlV29ya2VySXNU
ZXJtaW5hdGVkRm9yVGVzdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3Jr
ZXJJZGVudGlmaWVyKSAtPiAoKSBBc3luYworICAgIFRlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmllcikgLT4gKCkK
KyAgICBXaGVuU2VydmljZVdvcmtlcklzVGVybWluYXRlZEZvclRlc3RpbmcoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmllcikgLT4gKCkKIAogICAgIFNldFRo
cm90dGxlU3RhdGUoYm9vbCBpc1Rocm90dGxlYWJsZSkKLSAgICBTdG9yZVJlZ2lzdHJhdGlvbnNP
bkRpc2soKSAtPiAoKSBBc3luYworICAgIFN0b3JlUmVnaXN0cmF0aW9uc09uRGlzaygpIC0+ICgp
CiAKLSAgICBTdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIFZlY3Rvcjx1aW50OF90PiBhcHBsaWNhdGlv
blNlcnZlcktleSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCi0gICAgVW5zdWJzY3JpYmVGcm9t
UHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlB1c2hTdWJzY3Jp
cHRpb25JZGVudGlmaWVyIHB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYwotICAgIEdldFB1c2hT
dWJzY3JpcHRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
aWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNj
cmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCi0gICAg
R2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYyAKKyAgICBTdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIFZl
Y3Rvcjx1aW50OF90PiBhcHBsaWNhdGlvblNlcnZlcktleSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6
OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpCisg
ICAgVW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyIHB1c2hTdWJzY3JpcHRpb25JZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KQor
ICAgIEdldFB1c2hTdWJzY3JpcHRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQp
CisgICAgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSAKIAotICAgIEVuYWJsZU5hdmlnYXRpb25QcmVsb2Fk
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIp
IC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMK
LSAgICBEaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYwotICAgIFNldE5hdmlnYXRpb25QcmVsb2FkSGVh
ZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllciwgU3RyaW5nIHZhbHVlKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRp
b25EYXRhPiByZXN1bHQpIEFzeW5jCi0gICAgR2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8V2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSwgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YT4gcmVzdWx0KSBBc3luYworICAgIEVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkKKyAgICBEaXNhYmxl
TmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgaWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0
YT4gcmVzdWx0KQorICAgIFNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIHZh
bHVlKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpCisg
ICAgR2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6TmF2aWdh
dGlvblByZWxvYWRTdGF0ZSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KQogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggMGQ2
MTQ1MGQ0MWEzMDFmMDhmOWVjNWU2YTNhNjAwNjFmOWI2NDM3YS4uYzZiN2MwNDUwOWQ2NWYyNzU5
MGM1ZTc0MjRlNjA1MGYyM2U3YzY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMCwxMSArMzAs
MTEgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIE5vdFJlZkNv
dW50ZWQgewogICAgIERpZEZpbmlzaEluc3RhbGwoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNT
dWNjZXNzZnVsKQogICAgIERpZEZpbmlzaEFjdGl2YXRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBTZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2
ZW50cyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGhh
c1BlbmRpbmdFdmVudHMpCi0gICAgU2tpcFdhaXRpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgQXN5bmMKKyAgICBTa2lwV2FpdGluZyhXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKQogICAgIFdvcmtlclRl
cm1pbmF0ZWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAg
ICBGaW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU3RyaW5nIGNsaWVudElkZW50aWZpZXIp
IC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRh
KSBBc3luYworICAgIEZpbmRDbGllbnRCeVZpc2libGVJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTdHJpbmcgY2xpZW50
SWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dERhdGE+IGRhdGEpCiAgICAgTWF0Y2hBbGwodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRp
ZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zIG9w
dGlvbnMpOwotICAgIENsYWltKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25E
YXRhPiByZXN1bHQpIEFzeW5jCisgICAgQ2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkKICAgICBTZXRTY3JpcHRSZXNvdXJjZShXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBVUkwgc2NyaXB0VVJMLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0IHNjcmlwdCkKICAgICBQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBkZXN0aW5hdGlvbiwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNv
dXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKICAgICBEaWRGYWlsSGVhcnRCZWF0Q2hlY2soV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbgppbmRleCAwMjQ5NWQyNTY2MGRiMWYzNGY1MmE0NzA1
YzdjNGEzMDNiN2M2ZWU4Li4zN2JhNjljZGJlYzA1MjRmMzNkZDM1ZjQ4Mzk2NGU3MWUyNGI3Y2Mx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluCkBAIC0yOCw3ICsy
OCw3IEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VNYW5hZ2VyU2V0IHsKICAgICBHZXRWYWx1ZXMoV2Vi
S2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCkgLT4gKEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IHZhbHVlcykgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCiAgICAgQ2xv
bmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktp
dDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgV2Vi
S2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2Fu
dHNDb25uZWN0aW9uCiAKLSAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRp
ZmllciwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9v
bCBxdW90YUV4Y2VwdGlvbikgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlSXRlbShX
ZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VB
cmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB1cmxT
dHJpbmcpIC0+ICgpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgotICAgIENsZWFyKFdlYktpdDo6U3Rv
cmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllciBpbXBsSWRlbnRpZmllciwgU3RyaW5nIHVybFN0cmluZykgLT4gKCkgQXN5bmMgV2Fu
dHNDb25uZWN0aW9uCisgICAgU2V0SXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZp
ZXIsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgLT4gKGJvb2wg
cXVvdGFFeGNlcHRpb24pIFdhbnRzQ29ubmVjdGlvbgorICAgIFJlbW92ZUl0ZW0oV2ViS2l0OjpT
dG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBTdHJpbmcga2V5LCBTdHJpbmcgdXJsU3RyaW5nKSAt
PiAoKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBDbGVhcihXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElk
ZW50aWZpZXIsIFN0cmluZyB1cmxTdHJpbmcpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDVk
MjFlZWUzMDgxMGEwNTQ4N2YwN2EzZTAzODBhMWNlM2E3ZjI2N2EuLmY5NjYyNzIyOWE3M2E4NWZi
YTc2Njk3MTc3YWI2NTkxNGFhM2FiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI0LDE0ICsyNCwxNCBAQCBtZXNzYWdlcyAtPiBD
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uIHsKICAgICBSZWZlcmVuY2UodWludDY0X3QgY2Fj
aGVJZGVudGlmaWVyKQogICAgIERlcmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikK
IAotICAgIE9wZW4oc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBj
YWNoZU5hbWUpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyT3JF
cnJvciByZXN1bHQpIEFzeW5jCi0gICAgUmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikg
LT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJPckVycm9yIHJlc3Vs
dCkgQXN5bmMKLSAgICBDYWNoZXMoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4s
IHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2Fj
aGVJbmZvc09yRXJyb3IgcmVzdWx0KSBBc3luYworICAgIE9wZW4oc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBjYWNoZU5hbWUpIC0+IChXZWJDb3JlOjpET01DYWNo
ZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyT3JFcnJvciByZXN1bHQpCisgICAgUmVtb3ZlKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllcikgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlk
ZW50aWZpZXJPckVycm9yIHJlc3VsdCkKKyAgICBDYWNoZXMoc3RydWN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIC0+IChXZWJDb3JlOjpET01D
YWNoZUVuZ2luZTo6Q2FjaGVJbmZvc09yRXJyb3IgcmVzdWx0KQogCi0gICAgUmV0cmlldmVSZWNv
cmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlJldHJpZXZlUmVj
b3Jkc09wdGlvbnMgb3B0aW9ucykgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRz
T3JFcnJvciByZXN1bHQpIEFzeW5jCi0gICAgRGVsZXRlTWF0Y2hpbmdSZWNvcmRzKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyBvcHRpb25zKSAtPiAoV2ViQ29yZTo6RE9NQ2Fj
aGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzT3JFcnJvciByZXN1bHQpIEFzeW5jCi0gICAgUHV0
UmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNo
ZUVuZ2luZTo6UmVjb3JkPiByZWNvcmQpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVj
b3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCkgQXN5bmMKKyAgICBSZXRyaWV2ZVJlY29yZHMo
dWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRz
T3B0aW9ucyBvcHRpb25zKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNPckVy
cm9yIHJlc3VsdCkKKyAgICBEZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6
OkNhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6
UmVjb3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCkKKyAgICBQdXRSZWNvcmRzKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+
IHJlY29yZCkgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc09y
RXJyb3IgcmVzdWx0KQogCi0gICAgQ2xlYXJNZW1vcnlSZXByZXNlbnRhdGlvbihzdHJ1Y3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RE9N
Q2FjaGVFbmdpbmU6OkVycm9yPiBlcnJvcikgQXN5bmMKLSAgICBFbmdpbmVSZXByZXNlbnRhdGlv
bigpIC0+IChTdHJpbmcgcmVwcmVzZW50YXRpb24pIEFzeW5jCisgICAgQ2xlYXJNZW1vcnlSZXBy
ZXNlbnRhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkVycm9yPiBlcnJvcikKKyAgICBFbmdp
bmVSZXByZXNlbnRhdGlvbigpIC0+IChTdHJpbmcgcmVwcmVzZW50YXRpb24pCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5k
ZXggZjIxMGIwOWZiZDFlMjBlYmZjMjE2ZjIxOWEyNzYzNWQ4NzE4NDI1ZC4uNWZmMDQ5MjJkNjMy
NmQ4NWZkNWJhZmQ3MDQ0OTAwMDU5ZTU2ZWY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzQ4LDcgKzM0OCw3IEBA
IHZvaWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAgICAgICAgIGF1dG8gcmV2YWxpZGF0aW9uID0gbWFr
ZVVuaXF1ZTxBc3luY1JldmFsaWRhdGlvbj4oKnRoaXMsIGZyYW1lSUQsIHJlcXVlc3QsIFdURk1v
dmUoZW50cnkpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBbdGhpcywga2V5XShhdXRv
IHJlc3VsdCkgewogICAgICAgICAgICAgQVNTRVJUKG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9u
cy5jb250YWlucyhrZXkpKTsKICAgICAgICAgICAgIG1fcGVuZGluZ0FzeW5jUmV2YWxpZGF0aW9u
cy5yZW1vdmUoa2V5KTsKLSAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1By
b2Nlc3MpIEFzeW5jIHJldmFsaWRhdGlvbiBjb21wbGV0ZWQgZm9yICclcycgd2l0aCByZXN1bHQg
JWQiLCBrZXkuaWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocmVz
dWx0KSk7CisgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSBy
ZXZhbGlkYXRpb24gY29tcGxldGVkIGZvciAnJXMnIHdpdGggcmVzdWx0ICVkIiwga2V5LmlkZW50
aWZpZXIoKS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCkpOwogICAgICAg
ICB9KTsKICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoKnJldmFsaWRhdGlv
bik7CiAgICAgICAgIHJldHVybiByZXZhbGlkYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA0NzMwNWUwZTk4MWNhNWNmYWUwNzc0MjZiZjI0Yjc4
MTVhNGQ2NGNkLi5kOTRiNmY0ZjNiZjY2MTg2ZTkzOTE5YzIxN2ViMDVhYTA5MjIwNTgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI0LDI5ICsyNCwy
OSBAQAogICovCiAgCiAgbWVzc2FnZXMgLT4gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyIHsKLSAgICBQ
ZXJzaXN0ZWQoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChib29sIHBl
cnNpc3RlZCkgQXN5bmMKLSAgICBQZXJzaXN0KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4g
b3JpZ2luKSAtPiAoYm9vbCBwZXJzaXN0ZWQpIEFzeW5jCi0gICAgRmlsZVN5c3RlbUdldERpcmVj
dG9yeShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisgICAgUGVyc2lzdGVkKHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoYm9vbCBwZXJzaXN0ZWQpCisg
ICAgUGVyc2lzdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wg
cGVyc2lzdGVkKQorICAgIEZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkoc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBvcmlnaW4pIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIFdhbnRz
Q29ubmVjdGlvbgogICAgIENsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCi0gICAgSXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwotICAgIEdldEZp
bGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgotICAgIEdldERpcmVjdG9yeUhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVs
ZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBNb3ZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgU3RyaW5nIG5ld05h
bWUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVz
dWx0KSBBc3luYwotICAgIEdldEZpbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFN0cmluZywgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
SVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCi0gICAgQ2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBH
ZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIEdldEhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSkgLT4gKEV4cGVjdGVkPHN0
ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgYm9vbD4sIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24K
KyAgICBJc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlm
aWVyKSAtPiAoYm9vbCByZXN1bHQpCisgICAgR2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgV2FudHNDb25uZWN0
aW9uCisgICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAt
PiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBXYW50c0Nvbm5lY3Rpb24KKyAgICBSZW1v
dmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
dHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpCisgICAgUmVzb2x2ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9y
PFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KQorICAgIE1v
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBTdHJp
bmcgbmV3TmFtZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpCisgICAgR2V0RmlsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8U3RyaW5nLCBXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlc3VsdCkKKyAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxzdGQ6
OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6
OlNoYXJlZEZpbGVIYW5kbGU+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkKKyAgICBDbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KQorICAgIEdldEhhbmRsZU5hbWVzKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3Rl
ZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
CisgICAgR2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFN0cmluZyBuYW1lKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpIFdhbnRzQ29ubmVjdGlvbgogCi0gICAgQ29ubmVjdFRvU3RvcmFnZUFyZWEo
V2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElkZW50aWZp
ZXIgc291cmNlSWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBu
YW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikg
LT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgQXN5bmMgV2Fu
dHNDb25uZWN0aW9uCisgICAgQ29ubmVjdFRvU3RvcmFnZUFyZWEoV2ViQ29yZTo6U3RvcmFnZVR5
cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIgc291cmNlSWRlbnRpZmll
ciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBuYW1lc3BhY2VJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKFdlYktpdDo6U3RvcmFn
ZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1z
LCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCiAgICAgQ29ubmVj
dFRvU3RvcmFnZUFyZWFTeW5jKFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHR5cGUsIFdlYktpdDo6U3Rv
cmFnZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZU5h
bWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBvcmlnaW4pIC0+IChXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtcywgdWludDY0X3QgbWVzc2FnZUlk
ZW50aWZpZXIpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgogICAgIERpc2Nvbm5lY3RGcm9t
U3RvcmFnZUFyZWEoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllcikgV2Fu
dHNDb25uZWN0aW9uCiAgICAgQ2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShXZWJLaXQ6OlN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGZyb21TdG9yYWdlTmFtZXNwYWNlSUQsIFdlYktpdDo6
U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgdG9TdG9yYWdlTmFtZXNwYWNlSUQpIFdhbnRzQ29u
bmVjdGlvbgotICAgIFNldEl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBT
dHJpbmcga2V5LCBTdHJpbmcgdmFsdWUsIFN0cmluZyB1cmxTdHJpbmcpIC0+IChib29sIHF1b3Rh
RXhjZXB0aW9uKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBSZW1vdmVJdGVtKFdlYktpdDo6
U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBs
SWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgU3RyaW5nIGtleSwgU3RyaW5nIHVybFN0cmluZykg
LT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgQ2xlYXIoV2ViS2l0OjpTdG9yYWdlQXJl
YUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVy
IGltcGxJZGVudGlmaWVyLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5l
Y3Rpb24KKyAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgU3Ry
aW5nIGtleSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9vbCBxdW90YUV4
Y2VwdGlvbikgV2FudHNDb25uZWN0aW9uCisgICAgUmVtb3ZlSXRlbShXZWJLaXQ6OlN0b3JhZ2VB
cmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZp
ZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJpbmcpIC0+ICgpIFdh
bnRzQ29ubmVjdGlvbgorICAgIENsZWFyKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmll
ciwgU3RyaW5nIHVybFN0cmluZykgLT4gKCkgV2FudHNDb25uZWN0aW9uCiAKICAgICBPcGVuRGF0
YWJhc2UoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEpIFdhbnRzQ29ubmVjdGlv
bgogICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVx
dWVzdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA4
YzlmZjIzOWExNjUyOGNiYWRiZTUxZmIwODNhNGMxNjBiNGI0OGIxLi4yZWZjZGQ4NzgzMGE1YTZj
MzEyYWUwNTZkYTJiZTFjNWMxYzdkNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKQEAgLTI1LDcgKzI1LDcgQEAgaW1wb3J0IHJlCiBpbXBvcnQgc3lzCiAKIGZy
b20gd2Via2l0IGltcG9ydCBwYXJzZXIKLWZyb20gd2Via2l0Lm1vZGVsIGltcG9ydCBCVUlMVElO
X0FUVFJJQlVURSwgQVNZTkNfQVRUUklCVVRFLCBTWU5DSFJPTk9VU19BVFRSSUJVVEUsIE1BSU5U
SFJFQURDQUxMQkFDS19BVFRSSUJVVEUsIFNUUkVBTV9BVFRSSUJVVEUsIFdBTlRTX0NPTk5FQ1RJ
T05fQVRUUklCVVRFLCBNZXNzYWdlUmVjZWl2ZXIsIE1lc3NhZ2UKK2Zyb20gd2Via2l0Lm1vZGVs
IGltcG9ydCBCVUlMVElOX0FUVFJJQlVURSwgU1lOQ0hST05PVVNfQVRUUklCVVRFLCBNQUlOVEhS
RUFEQ0FMTEJBQ0tfQVRUUklCVVRFLCBTVFJFQU1fQVRUUklCVVRFLCBXQU5UU19DT05ORUNUSU9O
X0FUVFJJQlVURSwgTWVzc2FnZVJlY2VpdmVyLCBNZXNzYWdlCiAKIF9saWNlbnNlX2hlYWRlciA9
ICIiIi8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgpAQCAtMTYzLDE0ICsxNjMsMTQgQEAgZGVmIHJlcGx5X2FyZ3VtZW50c190eXBlKG1lc3Nh
Z2UpOgogZGVmIG1lc3NhZ2VfdG9fcmVwbHlfZm9yd2FyZF9kZWNsYXJhdGlvbihtZXNzYWdlKToK
ICAgICByZXN1bHQgPSBbXQogCi0gICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzICE9IE5v
bmUgYW5kIChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKSBvciBt
ZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6CisgICAgaWYgbWVzc2FnZS5y
ZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lOgogICAgICAgICBzZW5kX3BhcmFtZXRlcnMgPSBb
KGZ1bmN0aW9uX3BhcmFtZXRlcl90eXBlKHgudHlwZSwgeC5raW5kKSwgeC5uYW1lKSBmb3IgeCBp
biBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCiAgICAgICAgIGNvbXBsZXRpb25faGFuZGxlcl9w
YXJhbWV0ZXJzID0gJyVzJyAlICcsICcuam9pbihbJyAnLmpvaW4oeCkgZm9yIHggaW4gc2VuZF9w
YXJhbWV0ZXJzXSkKIAotICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRU
UklCVVRFKToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3VzaW5nICVzQXN5bmNSZXBseScg
JSBtZXNzYWdlLm5hbWUpCi0gICAgICAgIGVsc2U6CisgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndXNpbmcgJXNEZWxheWVkUmVwbHknICUgbWVzc2FnZS5uYW1lKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgndXNpbmcgJXNBc3luY1JlcGx5JyAlIG1lc3NhZ2Uu
bmFtZSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgl
cyk+O1xuJyAlIGNvbXBsZXRpb25faGFuZGxlcl9wYXJhbWV0ZXJzKQogCiAgICAgaWYgbm90IHJl
c3VsdDoKQEAgLTE4OCw3ICsxODgsNyBAQCBkZWYgbWVzc2FnZV90b19zdHJ1Y3RfZGVjbGFyYXRp
b24ocmVjZWl2ZXIsIG1lc3NhZ2UpOgogICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBBcmd1
bWVudHMgPSAlcztcbicgJSBhcmd1bWVudHNfdHlwZShtZXNzYWdlKSkKICAgICByZXN1bHQuYXBw
ZW5kKCdcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyBJUEM6Ok1lc3NhZ2VOYW1l
IG5hbWUoKSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VOYW1lOjolc18lczsgfVxuJyAlIChyZWNlaXZl
ci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNTeW5jID0gJXM7XG4nICUgKCdmYWxzZScsICd0cnVlJylbbWVzc2FnZS5y
ZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCBub3QgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KEFTWU5DX0FUVFJJQlVURSldKQorICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNTeW5jID0gJXM7XG4nICUgKCdmYWxzZScsICd0cnVlJylbbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hS
T05PVVNfQVRUUklCVVRFKV0pCiAgICAgaWYgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShTVFJFQU1f
QVRUUklCVVRFKToKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBpc1N0cmVhbUVuY29kYWJsZSA9ICVzO1xuJyAlICgndHJ1ZScsICdmYWxzZScpW21lc3Nh
Z2UuaGFzX2F0dHJpYnV0ZShOT1RfU1RSRUFNX0VOQ09EQUJMRV9BVFRSSUJVVEUpXSkKICAgICAg
ICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lOgpAQCAtMTk4LDE5ICsx
OTgsMTkgQEAgZGVmIG1lc3NhZ2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKHJlY2VpdmVyLCBtZXNz
YWdlKToKICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgIT0gTm9uZToKICAgICAgICAg
c2VuZF9wYXJhbWV0ZXJzID0gWyhmdW5jdGlvbl9wYXJhbWV0ZXJfdHlwZSh4LnR5cGUsIHgua2lu
ZCksIHgubmFtZSkgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQogICAgICAgICBj
b21wbGV0aW9uX2hhbmRsZXJfcGFyYW1ldGVycyA9ICclcycgJSAnLCAnLmpvaW4oWycgJy5qb2lu
KHgpIGZvciB4IGluIHNlbmRfcGFyYW1ldGVyc10pCi0gICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1
dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICB1c2luZyBEZWxheWVkUmVwbHkgPSAlc0RlbGF5ZWRSZXBseTtcbicgJSBtZXNzYWdlLm5hbWUp
CisgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBtb3ZlX3BhcmFtZXRlcnMgPSAnLCAnLmpvaW4o
W21vdmVfdHlwZSh4LnR5cGUpIGZvciB4IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyc10pCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6
RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPiYmKTtcbicgJSBtb3ZlX3BhcmFt
ZXRlcnMpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FuY2Vs
UmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFyYW1ldGVy
cykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgSVBDOjpNZXNzYWdlTmFt
ZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VOYW1lOjolc18l
c1JlcGx5OyB9XG4nICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgQXN5bmNSZXBseSA9ICVzQXN5bmNSZXBseTtcbicg
JSBtZXNzYWdlLm5hbWUpCi0gICAgICAgIGVsaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNI
Uk9OT1VTX0FUVFJJQlVURSk6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcg
RGVsYXllZFJlcGx5ID0gJXNEZWxheWVkUmVwbHk7XG4nICUgbWVzc2FnZS5uYW1lKQogICAgICAg
ICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoTUFJTlRIUkVBRENBTExCQUNLX0FUVFJJQlVURSk6
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNh
bGxiYWNrVGhyZWFkID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlckNhbGxUaHJlYWQ6Ok1haW5UaHJl
YWQ7XG4nKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0
YXRpYyBjb25zdGV4cHIgYXV0byBjYWxsYmFja1RocmVhZCA9IFdURjo6Q29tcGxldGlvbkhhbmRs
ZXJDYWxsVGhyZWFkOjpDb25zdHJ1Y3Rpb25UaHJlYWQ7XG4nKQotICAgICAgICBpZiAobWVzc2Fn
ZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0
cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpIGFuZCBub3QgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShT
VFJFQU1fQVRUUklCVVRFKToKKyAgICAgICAgaWYgbm90IHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUo
U1RSRUFNX0FUVFJJQlVURSk6CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGlj
IHZvaWQgc2VuZChVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mJykK
ICAgICAgICAgICAgIGlmIGxlbihzZW5kX3BhcmFtZXRlcnMpOgogICAgICAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJywgJXMnICUgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMpCkBAIC00
NjcsNyArNDY3LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzX2Zvcl9y
ZXBsaWVzKHJlY2VpdmVyKToKIAogICAgIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXMgPSB0
eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCkKICAgICBmb3IgbWVzc2FnZSBp
biByZWNlaXZlci5tZXNzYWdlczoKLSAgICAgICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJz
ID09IE5vbmUgb3Igbm90IChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklC
VVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSk6CisgICAgICAg
IGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBOb25lOgogICAgICAgICAgICAgY29udGlu
dWUKIAogICAgICAgICBmb3IgcGFyYW1ldGVyIGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyczoK
QEAgLTU4Nyw3ICs1ODcsNyBAQCBkZWYgYXN5bmNfbWVzc2FnZV9zdGF0ZW1lbnQocmVjZWl2ZXIs
IG1lc3NhZ2UpOgogICAgIGRpc3BhdGNoX2Z1bmN0aW9uX2FyZ3MgPSBbJ2RlY29kZXInLCAndGhp
cycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSldCiAKICAgICBk
aXNwYXRjaF9mdW5jdGlvbiA9ICdoYW5kbGVNZXNzYWdlJwotICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVy
cyBpcyBub3QgTm9uZSBhbmQgbm90IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19B
VFRSSUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnQXN5bmMnCiAKICAgICBp
ZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoV0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUpOgpAQCAt
NjA3LDcgKzYwNyw3IEBAIGRlZiBzeW5jX21lc3NhZ2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBtZXNz
YWdlKToKICAgICBkaXNwYXRjaF9mdW5jdGlvbiA9ICdoYW5kbGVNZXNzYWdlJwogICAgIGlmIG1l
c3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpOgogICAgICAgICBkaXNw
YXRjaF9mdW5jdGlvbiArPSAnU3luY2hyb25vdXMnCi0gICAgaWYgbWVzc2FnZS5oYXNfYXR0cmli
dXRlKEFTWU5DX0FUVFJJQlVURSk6CisgICAgZWxpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMg
aXMgbm90IE5vbmU6CiAgICAgICAgIGRpc3BhdGNoX2Z1bmN0aW9uICs9ICdBc3luYycKICAgICBp
ZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoV0FOVFNfQ09OTkVDVElPTl9BVFRSSUJVVEUpOgogICAg
ICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnV2FudHNDb25uZWN0aW9uJwpAQCAtNjE1LDcgKzYx
NSw3IEBAIGRlZiBzeW5jX21lc3NhZ2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBtZXNzYWdlKToKICAg
ICBtYXliZV9yZXBseV9lbmNvZGVyID0gIiwgKnJlcGx5RW5jb2RlciIKICAgICBpZiByZWNlaXZl
ci5oYXNfYXR0cmlidXRlKFNUUkVBTV9BVFRSSUJVVEUpOgogICAgICAgICBtYXliZV9yZXBseV9l
bmNvZGVyID0gJycKLSAgICBlbGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19B
VFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAg
IGVsaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lOgogICAgICAgICBtYXli
ZV9yZXBseV9lbmNvZGVyID0gJywgcmVwbHlFbmNvZGVyJwogCiAgICAgcmVzdWx0ID0gW10KQEAg
LTEwNzgsNyArMTA3OCw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIp
OgogCiAgICAgZGVsYXllZF9vcl9hc3luY19tZXNzYWdlcyA9IFtdCiAgICAgZm9yIG1lc3NhZ2Ug
aW4gcmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVy
cyAhPSBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVU
RSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpOgorICAgICAgICBp
ZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBkZWxh
eWVkX29yX2FzeW5jX21lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgZGVsYXllZF9v
cl9hc3luY19tZXNzYWdlcyBhbmQgbm90IHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoU1RSRUFNX0FU
VFJJQlVURSk6CkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5k
bGVyKHJlY2VpdmVyKToKICAgICAgICAgICAgIGlmIG1lc3NhZ2UuY29uZGl0aW9uOgogICAgICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuXG4nICUgbWVzc2FnZS5jb25kaXRpb24p
CiAKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUp
OgorICAgICAgICAgICAgaWYgbm90IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19B
VFRSSUJVVEUpOgogICAgICAgICAgICAgICAgIG1vdmVfcGFyYW1ldGVycyA9IG1lc3NhZ2UubmFt
ZSwgJywgJy5qb2luKFttb3ZlX3R5cGUoeC50eXBlKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdKQogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmNhbGxS
ZXBseShJUEM6OkRlY29kZXImIGRlY29kZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoJXMpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKVxue1xuJyAlIG1vdmVfcGFyYW1ldGVycykKICAgICAgICAgICAg
ICAgICBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnM6CkBAIC0xMTI0LDcgKzExMjQs
NyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICBhc3luY19t
ZXNzYWdlcyA9IFtdCiAgICAgc3luY19tZXNzYWdlcyA9IFtdCiAgICAgZm9yIG1lc3NhZ2UgaW4g
cmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgIGlmIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBp
cyBub3QgTm9uZSBhbmQgbm90IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUp
OgorICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRF
KToKICAgICAgICAgICAgIHN5bmNfbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBhc3luY19tZXNzYWdlcy5hcHBlbmQobWVzc2FnZSkKQEAgLTExNTAs
NyArMTE1MCw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIpOgogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkp
XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9X
SVRIX01FU1NBR0UoIlVuaGFuZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQ
Qzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlv
bklEKCkpO1xuJykKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKLSAgICBlbGlmIGFzeW5j
X21lc3NhZ2VzIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfRElTUEFUQ0hfTUVTU0FH
RV9BVFRSSUJVVEUpIG9yIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoV0FOVFNfQVNZTkNfRElTUEFU
Q0hfTUVTU0FHRV9BVFRSSUJVVEUpOgorICAgIGVsc2U6CiAgICAgICAgIHJlY2VpdmVfdmFyaWFu
dCA9IHJlY2VpdmVyLm5hbWUgaWYgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShMRUdBQ1lfUkVDRUlW
RVJfQVRUUklCVVRFKSBlbHNlICcnCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRp
ZFJlY2VpdmUlc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVfdmFyaWFudCkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCkBAIC0xMjEyLDcgKzEyMTIsNyBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICAgICAgcmVzdWx0LmFwcGVuZCgne1xu
JykKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFy
Z3VtZW50czxNZXNzYWdlczo6JXM6OiVzOjolcz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTtcbicg
JSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnQXJndW1lbnRzJykpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJ31cbicpCi0gICAgICAgIGhhc19yZXBseSA9IG1lc3NhZ2UucmVwbHlfcGFy
YW1ldGVycyBpcyBub3QgTm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9V
U19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKQor
ICAgICAgICBoYXNfcmVwbHkgPSBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmUK
ICAgICAgICAgaWYgbm90IGhhc19yZXBseToKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJ3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjolc18lcz4oSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKVxuJyAlIChyZWNlaXZl
ci5uYW1lLCBtZXNzYWdlLm5hbWUpKQpAQCAtMTQ2MCw3ICsxNDYwLDcgQEAgZGVmIGdlbmVyYXRl
X21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzLCBy
ZWNlaXZlcl9oZWEKIAogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKIAotICAgIGdlbmVyYXRlX2pz
X3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsICdqc1ZhbHVlRm9y
UmVwbHlBcmd1bWVudHMnLCAnanNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHknLCAnUmVwbHlB
cmd1bWVudHMnLCBsYW1iZGEgbWVzc2FnZTogbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5v
dCBOb25lIGFuZCAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSkg
b3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkpKQorICAgIGdlbmVyYXRl
X2pzX3ZhbHVlX2NvbnZlcnNpb25fZnVuY3Rpb24ocmVzdWx0LCByZWNlaXZlcnMsICdqc1ZhbHVl
Rm9yUmVwbHlBcmd1bWVudHMnLCAnanNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHknLCAnUmVw
bHlBcmd1bWVudHMnLCBsYW1iZGEgbWVzc2FnZTogbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlz
IG5vdCBOb25lKQogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogICAgIHJlc3VsdC5hcHBlbmQo
JyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykKQEAgLTE0NzAsNyArMTQ3MCw3
IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2FyZ3VtZW50X2Rlc2NyaXB0aW9uX2ltcGxlbWVudGF0
aW9uKHJlY2VpdmVycywgcmVjZWl2ZXJfaGVhCiAKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAK
LSAgICByZXN1bHQgKz0gZ2VuZXJhdGVfanNfYXJndW1lbnRfZGVzY3JpcHRpb25zKHJlY2VpdmVy
cywgJ21lc3NhZ2VSZXBseUFyZ3VtZW50RGVzY3JpcHRpb25zJywgbGFtYmRhIG1lc3NhZ2U6IG1l
c3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05P
VVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSBl
bHNlIE5vbmUpCisgICAgcmVzdWx0ICs9IGdlbmVyYXRlX2pzX2FyZ3VtZW50X2Rlc2NyaXB0aW9u
cyhyZWNlaXZlcnMsICdtZXNzYWdlUmVwbHlBcmd1bWVudERlc2NyaXB0aW9ucycsIGxhbWJkYSBt
ZXNzYWdlOiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMpCiAKICAgICByZXN1bHQuYXBwZW5kKCdc
bicpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CmluZGV4IDY5ZjAxOTYzMTBj
ZmNiNzEyOTdlY2ZjYjI2MjNkZmJkN2U1OTJkMzkuLjA0OTU5MGNlYTkxYjY1YmY1NGFhNGVhZjYx
NTMwNWQwNTQxZWNiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bW9kZWwucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weQpAQCAt
MjUsNyArMjUsNiBAQCBpbXBvcnQgaXRlcnRvb2xzCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBD
b3VudGVyLCBkZWZhdWx0ZGljdAogCiBCVUlMVElOX0FUVFJJQlVURSA9ICJCdWlsdGluIgotQVNZ
TkNfQVRUUklCVVRFID0gIkFzeW5jIgogTUFJTlRIUkVBRENBTExCQUNLX0FUVFJJQlVURSA9ICJN
YWluVGhyZWFkQ2FsbGJhY2siCiBTWU5DSFJPTk9VU19BVFRSSUJVVEUgPSAnU3luY2hyb25vdXMn
CiBTVFJFQU1fQVRUUklCVVRFID0gIlN0cmVhbSIKQEAgLTExMSw3ICsxMTAsNyBAQCBkZWYgZ2Vu
ZXJhdGVfZ2xvYmFsX21vZGVsKHJlY2VpdmVycyk6CiAgICAgYXN5bmNfcmVwbHlfbWVzc2FnZXMg
PSBbXQogICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6CiAgICAgICAgIGZvciBtZXNzYWdl
IGluIHJlY2VpdmVyLm1lc3NhZ2VzOgotICAgICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmli
dXRlKEFTWU5DX0FUVFJJQlVURSk6CisgICAgICAgICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFt
ZXRlcnMgaXMgbm90IE5vbmUgYW5kIG5vdCBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05P
VVNfQVRUUklCVVRFKToKICAgICAgICAgICAgICAgICBhc3luY19yZXBseV9tZXNzYWdlcy5hcHBl
bmQoTWVzc2FnZShuYW1lPSclc18lc1JlcGx5JyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5h
bWUpLCBwYXJhbWV0ZXJzPW1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycywgcmVwbHlfcGFyYW1ldGVy
cz1bXSwgYXR0cmlidXRlcz1Ob25lLCBjb25kaXRpb249bWVzc2FnZS5jb25kaXRpb24pKQogICAg
IGFzeW5jX3JlcGx5X3JlY2VpdmVyID0gTWVzc2FnZVJlY2VpdmVyKG5hbWU9J0FzeW5jUmVwbHkn
LCBzdXBlcmNsYXNzPSdOb25lJywgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBtZXNz
YWdlcz1hc3luY19yZXBseV9tZXNzYWdlcywgY29uZGl0aW9uPU5vbmUpCiAgICAgcmV0dXJuIFtp
cGNfcmVjZWl2ZXIsIGFzeW5jX3JlcGx5X3JlY2VpdmVyXSArIHJlY2VpdmVycwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmZGUyY2JmMWMzN2Y5ZDUyZjNiZmYy
ZTM3YjYyZmFlNTk3MzUyZjhkLi41Nzk5NjliMmI5NzYxZTA2MTE2OTgxMzZlNDEzYmQxODA5NzQ0
YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjcsOCAr
MjcsOCBAQAogbWVzc2FnZXMgLT4gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291
bnRlZCB7CiAKICAgICBDYW5NYWtlUGF5bWVudHMoKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9u
b3VzCi0gICAgQ2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoU3RyaW5nIG1lcmNoYW50SWRl
bnRpZmllciwgU3RyaW5nIGRvbWFpbk5hbWUpIC0+IChib29sIGNhbk1ha2VQYXltZW50cykgQXN5
bmMKLSAgICBPcGVuUGF5bWVudFNldHVwKFN0cmluZyBtZXJjaGFudElkZW50aWZpZXIsIFN0cmlu
ZyBkb21haW5OYW1lKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCisgICAgQ2FuTWFrZVBheW1lbnRz
V2l0aEFjdGl2ZUNhcmQoU3RyaW5nIG1lcmNoYW50SWRlbnRpZmllciwgU3RyaW5nIGRvbWFpbk5h
bWUpIC0+IChib29sIGNhbk1ha2VQYXltZW50cykKKyAgICBPcGVuUGF5bWVudFNldHVwKFN0cmlu
ZyBtZXJjaGFudElkZW50aWZpZXIsIFN0cmluZyBkb21haW5OYW1lKSAtPiAoYm9vbCByZXN1bHQp
CiAKICAgICBTaG93UGF5bWVudFVJKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGRlc3RpbmF0aW9u
SUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJZGVudGlmaWVy
LCBTdHJpbmcgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+IGxpbmtJY29uVVJM
U3RyaW5ncywgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QgcGF5bWVudFJl
cXVlc3QpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBDb21wbGV0ZU1lcmNoYW50
VmFsaWRhdGlvbihXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uIHBheW1lbnRNZXJjaGFu
dFNlc3Npb24pCkBAIC00Miw4ICs0Miw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIEFib3J0UGF5bWVudFNlc3Npb24oKQogICAg
IENhbmNlbFBheW1lbnRTZXNzaW9uKCkKIAotICAgIEdldFNldHVwRmVhdHVyZXMoV2ViS2l0OjpQ
YXltZW50U2V0dXBDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIC0+IChXZWJLaXQ6OlBheW1l
bnRTZXR1cEZlYXR1cmVzIGZlYXR1cmVzKSBBc3luYwotICAgIEJlZ2luQXBwbGVQYXlTZXR1cChX
ZWJLaXQ6OlBheW1lbnRTZXR1cENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgV2ViS2l0OjpQ
YXltZW50U2V0dXBGZWF0dXJlcyBmZWF0dXJlcykgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworICAg
IEdldFNldHVwRmVhdHVyZXMoV2ViS2l0OjpQYXltZW50U2V0dXBDb25maWd1cmF0aW9uIGNvbmZp
Z3VyYXRpb24pIC0+IChXZWJLaXQ6OlBheW1lbnRTZXR1cEZlYXR1cmVzIGZlYXR1cmVzKQorICAg
IEJlZ2luQXBwbGVQYXlTZXR1cChXZWJLaXQ6OlBheW1lbnRTZXR1cENvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbiwgV2ViS2l0OjpQYXltZW50U2V0dXBGZWF0dXJlcyBmZWF0dXJlcykgLT4gKGJv
b2wgcmVzdWx0KQogICAgIEVuZEFwcGxlUGF5U2V0dXAoKQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA2NDgzOTlhNmM0
YTc2ZDJhZDg5ZmQ0ZjcxM2M2ZjZhNmIwMGM5YmZiLi43MTM5ODI3MWE4NDQzZTNjZGFhNDQwM2Vm
OWVlZDU0NjgwYzUxNzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlh
cnlQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFy
eVByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAgbWVzc2FnZXMgLT4gQXV4aWxp
YXJ5UHJvY2VzcyBOb3RSZWZDb3VudGVkIHsKICAgICBTaHV0RG93bigpCiAgICAgU2V0UHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZChib29sIGZsYWcpCiAKLSAgICBNYWluVGhyZWFkUGluZygpIC0+
ICgpIEFzeW5jCisgICAgTWFpblRocmVhZFBpbmcoKSAtPiAoKQogCiAjaWYgT1MoTElOVVgpCiAg
ICAgdm9pZCBEaWRSZWNlaXZlTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlzQ3JpdGljYWwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2Vz
LmluCmluZGV4IDM3Y2NkZGYxZmI4ZTFjNTJjMmI3MTBkNGVmMzRmYWQwYTU1ZGZlZGQuLjZhZTE5
Mzc3OThhNWQzN2MwY2QzYjk2ZDlmN2M1ZmJlMmY2MDM2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5k
bGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCkBAIC0yMSw3ICsy
MSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IE5vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlciBOb3RSZWZDb3VudGVkIHsKLSAgICBSZXF1ZXN0U3lzdGVtTm90aWZpY2F0
aW9uUGVybWlzc2lvbihTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGJvb2wgYWxsb3dlZCkg
QXN5bmMKKyAgICBSZXF1ZXN0U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbihTdHJpbmcgb3Jp
Z2luSWRlbnRpZmllcikgLT4gKGJvb2wgYWxsb3dlZCkKICAgICBTaG93Tm90aWZpY2F0aW9uKHN0
cnVjdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhIG5vdGlmaWNhdGlvbkRhdGEpIFdhbnRzQ29u
bmVjdGlvbgogICAgIENhbmNlbE5vdGlmaWNhdGlvbihVVUlEIG5vdGlmaWNhdGlvbklEKQogICAg
IENsZWFyTm90aWZpY2F0aW9ucyhWZWN0b3I8VVVJRD4gbm90aWZpY2F0aW9uSURzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggN2JjYTQ1M2U3Mzc1Mzc2
OWE3ZmM1OGUyZTcwNzMyYjg1N2Q5YjgyOS4uZmQ2NDgzYjBlNmQwNDZkNDA2YzM2YmYxMTM2YzE3
ZjA3MGVkYTkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMg
LT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2
aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNv
bnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMpIC0+IChib29s
IHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyBjYXBhYmlsaXRpZXMsIFZlY3RvcjxXZWJDb3JlOjpWaWRlb1ByZXNldERhdGE+
IHByZXNldHMsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgZG91YmxlIGZyYW1lUmF0ZSkgQXN5bmMK
KyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgZGV2aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzIGNvbnN0cmFpbnRzLCBib29sIHNob3VsZFVzZUdQVVByb2Nlc3NSZW1vdGVGcmFtZXMp
IC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMsIFZlY3RvcjxXZWJDb3JlOjpWaWRlb1By
ZXNldERhdGE+IHByZXNldHMsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgZG91YmxlIGZyYW1lUmF0
ZSkKICAgICBTdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgRW5kKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDRmMTM5NmJlY2Y1M2I3ZGRiMTkzOTRkZDNlZmQyNGYyODY4MzQxOWEuLjE3MDkzMzM3
YzY4NTljMTk4MGU5ZDg1NjM3ODc1ZGM0NzNiYTE2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAgbWVzc2FnZXMgLT4gVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBF
bnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWQpCiAjZW5kaWYKLSAgICBFeGl0RnVsbHNjcmVlbihXZWJLaXQ6OlBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0IGZpbmFs
UmVjdCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKKyAgICBFeGl0RnVsbHNjcmVlbihXZWJLaXQ6
OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6Rmxv
YXRSZWN0IGZpbmFsUmVjdCkgLT4gKGJvb2wgc3VjY2VzcykKICAgICBTZXRJbmxpbmVSZWN0KFdl
YktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3Jl
OjpGbG9hdFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQogICAgIFNldEhhc1ZpZGVvQ29u
dGVudExheWVyKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4
dElkLCBib29sIHZhbHVlKQogICAgIENsZWFudXBGdWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBjOWFkNTQ0MWE4OThiZGQ1ZDgxZTc1YjVmOTg0M2UyYWJkNThiNzNhLi43NTkxODU4NTVm
ZjIxNjJhY2VhY2UyY2E5MTYwOTkzMmMyM2IyMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBEb3dubG9hZFByb3h5IHsKICAgICBEaWRTdGFy
dChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgQXRvbVN0cmluZyBzdWdnZXN0ZWRG
aWxlbmFtZSkKICAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlSWRlbnRpZmllciBjaGFsbGVuZ2VJRCkKICAgICBXaWxsU2VuZFJlcXVlc3QoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlZGlyZWN0UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlKSkKLSAgICBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBTdHJpbmcg
c3VnZ2VzdGVkRmlsZW5hbWUpIC0+IChTdHJpbmcgZmlsZW5hbWUsIFdlYktpdDo6U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGhhbmRsZSwgZW51bTpib29sIFdlYktpdDo6QWxsb3dPdmVyd3JpdGUg
YWxsb3dPdmVyd3JpdGUpIEFzeW5jCisgICAgRGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWUoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgU3RyaW5nIHN1Z2dl
c3RlZEZpbGVuYW1lKSAtPiAoU3RyaW5nIGZpbGVuYW1lLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBoYW5kbGUsIGVudW06Ym9vbCBXZWJLaXQ6OkFsbG93T3ZlcndyaXRlIGFsbG93
T3ZlcndyaXRlKQogCiAgICAgRGlkUmVjZWl2ZURhdGEodWludDY0X3QgYnl0ZXNXcml0dGVuLCB1
aW50NjRfdCB0b3RhbEJ5dGVzV3JpdHRlbiwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9X
cml0ZSkKICAgICBEaWRDcmVhdGVEZXN0aW5hdGlvbihTdHJpbmcgcGF0aCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDVjYzk5NDFk
MmFiZmEwN2JjMzE3ODY5ZTc4MjBkNzFkNTAxNDJmZmIuLmU4MmVmYWMwNDJkNWQ5YTUyNTIwNWNm
ZWY1YjE3NDZhY2UzOTRhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsNyArMjIsNyBAQAogCiAjaWYgRU5BQkxFKFJPVVRJ
TkdfQVJCSVRSQVRJT04pCiBtZXNzYWdlcyAtPiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIEJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENh
dGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBj
YXRlZ29yeSkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHk6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2Vi
S2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpEZWZhdWx0Um91dGVDaGFu
Z2VkIGRlZmF1bHRSb3V0ZUNoYW5nZWQpIEFzeW5jCisgICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRp
b25XaXRoQ2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5KSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eTo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06
Ym9vbCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRS
b3V0ZUNoYW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkKICAgICBFbmRSb3V0aW5nQXJiaXRyYXRp
b24oKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggNDU5NTNiZThkMmE3OTkyMWY3ZWExYjI1NzM1NDMyODhkN2E4
MjljZS4uMWZiZGM3MWU0NDBjZWJmNDUxMTk5MjQ0YjdmYmQ0ODU2MTNkOGFhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNiwx
NyArMjYsMTcgQEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eSBOb3RSZWZDb3VudGVkIHsKIAotICAgIEpvaW4oKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKyAgICBKb2luKCkgLT4gKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gZXJyb3IpCiAKICAgICBMZWF2ZSgpCiAKLSAg
ICBDb29yZGluYXRlU2Vla1RvKGRvdWJsZSB0aW1lKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKyAgICBDb29yZGluYXRlU2Vla1RvKGRvdWJs
ZSB0aW1lKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikK
IAotICAgIENvb3JkaW5hdGVQbGF5KCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0
aW9uRGF0YT4gZXJyb3IpIEFzeW5jCisgICAgQ29vcmRpbmF0ZVBsYXkoKSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikKIAotICAgIENvb3JkaW5hdGVQYXVz
ZSgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKSBBc3lu
YworICAgIENvb3JkaW5hdGVQYXVzZSgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2Vw
dGlvbkRhdGE+IGVycm9yKQogCi0gICAgQ29vcmRpbmF0ZVNldFRyYWNrKFN0cmluZyB0cmFja0lk
ZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9y
KSBBc3luYworICAgIENvb3JkaW5hdGVTZXRUcmFjayhTdHJpbmcgdHJhY2tJZGVudGlmaWVyKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikKIAogICAgIFBv
c2l0aW9uU3RhdGVDaGFuZ2VkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0
YXRlPiBzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1NGU0NjNj
YTg5ZjVlYTgxODg0NmIyYmEwMTAwZmVkMTE4ZmVjY2YxLi5lZDdlNmE4MTg3NWM4OTQ3N2JmZmNj
NTgxNWZjMzMwZDA2ZTU3YWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0z
OCwxNyArMzgsMTcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgTm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Byb2Nlc3NlZCgpCiAgICAg
Tm90aWZ5V2Vic2l0ZURhdGFEZWxldGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkK
ICAgICBOb3RpZnlXZWJzaXRlRGF0YVNjYW5Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgp
Ci0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMK
LSAgICBEZWxldGVXZWJzaXRlRGF0YUluVUlQcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW5zKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBl
PiBkYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZl
dGNoT3B0aW9ucywgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSAt
PiAoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhNYXRjaGlu
Z0RhdGFSZWNvcmRzKSBBc3luYworICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoYm9vbCB1c2VyRGlk
R3JhbnRBY2Nlc3MpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFJblVJUHJvY2Vzc0ZvclJlZ2lzdHJh
YmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6Oldl
YnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZl
dGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZlY3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bj4gZG9tYWlucykgLT4gKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFp
bnNXaXRoTWF0Y2hpbmdEYXRhUmVjb3JkcykKICAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0
aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgcGFnZUlEKQogICAgIFNldERvbWFpbnNXaXRoVXNlckludGVyYWN0aW9uKEhhc2hT
ZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpCi0gICAgU2V0RG9tYWluc1dp
dGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSAtPiAoKSBBc3luYworICAg
IFNldERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4g
KCkKICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgQ29udGVudEV4
dGVuc2lvblJ1bGVzKFdlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBpZGVu
dGlmaWVyKQogI2VuZGlmCiAKLSAgICBSZXRyaWV2ZUNhY2hlU3RvcmFnZVBhcmFtZXRlcnMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeSwg
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlKSBBc3luYworICAgIFJldHJp
ZXZlQ2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChT
dHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBoYW5kbGUpCiAKICAgICBUZXJtaW5hdGVXZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKQogCkBAIC01Niw3ICs1Niw3IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0U2Vy
dmljZVdvcmtlckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJQcm9jZXNzSWRlbnRpZmllcikKICAgICBFbmRTZXJ2aWNlV29ya2VyQmFj
a2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtl
clByb2Nlc3NJZGVudGlmaWVyKQogI2VuZGlmCi0gICAgRXN0YWJsaXNoUmVtb3RlV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90ZVdv
cmtlclR5cGUgd29ya2VyVHlwZSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFi
bGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXI+IHJlcXVl
c3RpbmdQcm9jZXNzSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNoUmVtb3RlV29y
a2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKGVudW06Ym9vbCBXZWJLaXQ6OlJl
bW90ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVn
aXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXI+
IHJlcXVlc3RpbmdQcm9jZXNzSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCiAgICAgUmVtb3RlV29ya2VyQ29udGV4
dENvbm5lY3Rpb25Ob0xvbmdlck5lZWRlZChlbnVtOmJvb2wgV2ViS2l0OjpSZW1vdGVXb3JrZXJU
eXBlIHdvcmtlclR5cGUsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAg
ICAgUmVnaXN0ZXJSZW1vdGVXb3JrZXJDbGllbnRQcm9jZXNzKGVudW06Ym9vbCBXZWJLaXQ6OlJl
bW90ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2Vi
UHJvY2Vzc0lkZW50aWZpZXIsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHJlbW90ZVdvcmtl
clByb2Nlc3NJZGVudGlmaWVyKTsKICAgICBVbnJlZ2lzdGVyUmVtb3RlV29ya2VyQ2xpZW50UHJv
Y2VzcyhlbnVtOmJvb2wgV2ViS2l0OjpSZW1vdGVXb3JrZXJUeXBlIHdvcmtlclR5cGUsIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciByZW1vdGVXb3JrZXJQcm9jZXNzSWRlbnRpZmllcik7CkBAIC02NCwxMCAr
NjQsMTAgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7
CiAgICAgU2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
cHJvY2Vzc0lELCBib29sIGhhc1VwbG9hZCkKIAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlO
UykKLSAgICBHZXRBcHBCb3VuZERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAo
SGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gYXBwQm91bmREb21haW5zKSBBc3lu
YworICAgIEdldEFwcEJvdW5kRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChI
YXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBhcHBCb3VuZERvbWFpbnMpCiAjZW5k
aWYKIAotICAgIFJlcXVlc3RTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBz
dHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgdWludDY0X3QgcXVvdGEsIHVpbnQ2
NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJlcXVpcmVkKSAtPiAoc3RkOjpvcHRpb25h
bDx1aW50NjRfdD4gbmV3UXVvdGEpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VTcGFjZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2lu
LCB1aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVx
dWlyZWQpIC0+IChzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBuZXdRdW90YSkKICAgICBJbmNyZWFz
ZVF1b3RhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiBvcmlnaW4sIFdlYktpdDo6UXVvdGFJbmNyZWFzZVJlcXVlc3RJZGVudGlmaWVyIGlkZW50
aWZpZXIsIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3Bh
Y2VSZXF1ZXN0ZWQpCiAgICAgCiAgICAgUmVzb3VyY2VMb2FkRGlkU2VuZFJlcXVlc3QoV2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpS
ZXNvdXJjZUxvYWRJbmZvIHJlc291cmNlTG9hZEluZm8sIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBzdGQ6Om9wdGlvbmFsPElQQzo6Rm9ybURhdGFSZWZlcmVuY2U+IGh0dHBCb2R5
KQpAQCAtODAsMTkgKzgwLDE5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVn
YWN5UmVjZWl2ZXIgewogICAgIFJlbG9hZEFmdGVyVW5ibG9ja2VkQ29udGVudEZpbHRlcihXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpCiAjZW5kaWYKIAotICAg
IFRyaWdnZXJCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb24oV2ViS2l0OjpX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERlY2lz
aW9uIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc3BvbnNlRG9tYWluLCBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyIGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkgLT4g
KGJvb2wgc3VjY2VzcykgQXN5bmMKKyAgICBUcmlnZ2VyQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2hGb3JOYXZpZ2F0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6QnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2hEZWNpc2lvbiBicm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERl
Y2lzaW9uLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiwgV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllciBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxv
YWRJZGVudGlmaWVyVG9SZXN1bWUpIC0+IChib29sIHN1Y2Nlc3MpCiAKICNpZiBVU0UoU09VUCkK
ICAgICBEaWRFeGNlZWRNZW1vcnlMaW1pdCgpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUFBMRV9Q
QVlfUkVNT1RFX1VJX1VTRVNfU0NFTkUpCi0gICAgR2V0V2luZG93U2NlbmVJZGVudGlmaWVyRm9y
UGF5bWVudFByZXNlbnRhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFn
ZVByb3h5SWRlbnRpZmllcikgLT4gKFN0cmluZyBzY2VuZUlEKSBBc3luYworICAgIEdldFdpbmRv
d1NjZW5lSWRlbnRpZmllckZvclBheW1lbnRQcmVzZW50YXRpb24oV2ViS2l0OjpXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIC0+IChTdHJpbmcgc2NlbmVJRCkK
ICNlbmRpZgogCi0gICAgRGF0YVRhc2tSZWNlaXZlZENoYWxsZW5nZShXZWJLaXQ6OkRhdGFUYXNr
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBj
aGFsbGVuZ2UpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBXZWJDb3JlOjpDcmVkZW50aWFsIGNyZWRlbnRpYWwp
IEFzeW5jCi0gICAgRGF0YVRhc2tXaWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJLaXQ6OkRh
dGFUYXNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkgLT4gKGJvb2wgYWxsb3dl
ZCkgQXN5bmMKLSAgICBEYXRhVGFza0RpZFJlY2VpdmVSZXNwb25zZShXZWJLaXQ6OkRhdGFUYXNr
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
KSAtPiAoYm9vbCBhbGxvd2VkKSBBc3luYworICAgIERhdGFUYXNrUmVjZWl2ZWRDaGFsbGVuZ2Uo
V2ViS2l0OjpEYXRhVGFza0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwgV2ViQ29yZTo6Q3JlZGVu
dGlhbCBjcmVkZW50aWFsKQorICAgIERhdGFUYXNrV2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24o
V2ViS2l0OjpEYXRhVGFza0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpIC0+IChi
b29sIGFsbG93ZWQpCisgICAgRGF0YVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UoV2ViS2l0OjpEYXRh
VGFza0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSkgLT4gKGJvb2wgYWxsb3dlZCkKICAgICBEYXRhVGFza0RpZFJlY2VpdmVEYXRhKFdlYktp
dDo6RGF0YVRhc2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
KQogICAgIERhdGFUYXNrRGlkQ29tcGxldGVXaXRoRXJyb3IoV2ViS2l0OjpEYXRhVGFza0lkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
ZmQ5NWYyZjVkMjM5YmVkMmU2NzA3ZDU3Mjg3MjVlZWU2YjY5ZmZiOC4uYzdlZTQzYTM2ZGU4Yzg3
OWQzZjgyOWI4ODk1MTJhZDUwMzZhNDk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDUgKzI0LDUgQEAKICAqLwogCiBt
ZXNzYWdlcyAtPiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSB7Ci1EaWRQb3N0TWVzc2Fn
ZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2ViS2l0OjpG
cmFtZUluZm9EYXRhIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIElQ
Qzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdFZh
bHVlLCBTdHJpbmcgZXJyb3JNZXNzYWdlKSBBc3luYworRGlkUG9zdE1lc3NhZ2UoV2ViS2l0OjpX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0
YSBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBJUEM6OkRhdGFSZWZl
cmVuY2UgbWVzc2FnZSkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHRWYWx1ZSwgU3RyaW5n
IGVycm9yTWVzc2FnZSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjQwMWJkZjVkYTlmOGFm
MDgyNmUzNDhhN2JmNzUzYWIzMDE5NGMxZS4uNTM0Nzc0NzkwMjA5MTNhMzJmNmU4OWJmMmNjZjdk
ZjZmZmQwM2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDEwICsyNiwxMCBAQAogCiBt
ZXNzYWdlcyAtPiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVk
IHsKIAotICAgIE1ha2VDcmVkZW50aWFsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
IG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVu
dGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGEgZXhjZXB0aW9uKSBBc3luYwotICAgIEdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZl
Y3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zIG9wdGlvbnMsIGVudW06dWludDhfdCBXZWJDb3JlOjpDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgYm9vbCBwcm9jZXNz
aW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNl
RGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRh
Y2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pIEFzeW5jCi0g
ICAgaXNDb25kaXRpb25hbE1lZGlhdGlvbkF2YWlsYWJsZSgpIC0+IChib29sIHJlc3VsdCkgQXN5
bmMKLSAgICBJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAt
PiAoYm9vbCByZXN1bHQpIEFzeW5jCisgICAgTWFrZUNyZWRlbnRpYWwoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZv
LCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+
IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmlu
dCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCisgICAgR2V0QXNzZXJ0aW9uKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZy
YW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucywgZW51bTp1aW50OF90IFdlYkNvcmU6OkNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6TWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBi
b29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNh
dG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlv
bikKKyAgICBpc0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0
KQorICAgIElzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIC0+
IChib29sIHJlc3VsdCkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94
eS5jcHAKaW5kZXggZTM5MDY1NmQzYjQxMWU4MTQ0NGFlMTI3ZDE0NDAxZmUzNGNlM2U0MS4uNGZi
MWU1YmRiZjY5MmJjYTAxMGE3NGRkNDgzMWUwMmNjYjg5ZmNjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhuUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIldlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCIKLSNp
bmNsdWRlICJXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1M2U2ODY4ZmI5MGU4YjJm
ZWZiNTNkZTY2MjE2OGY3YTgyMmQyNzI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhuUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMjgg
KzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAot
IyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jaWYgRU5B
QkxFKFdFQl9BVVRITikKLQotbWVzc2FnZXMgLT4gV2ViQXV0aG5Qcm9jZXNzUHJveHkgTm90UmVm
Q291bnRlZCB7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA0YmFiYzI1NGM0MWUwZTAxOTE1NmNhODEyYzQ2ZmU3OTAzMDUxN2UxLi42YjMyOTc4
NGY0ZDIzMTY4ODFlMmI2NWJiYWM4MTczOWU3OGVkODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gV2ViTG9ja1JlZ2lzdHJ5UHJveHkgTm90UmVmQ291
bnRlZCB7CiAgICAgUmVxdWVzdExvY2soc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGll
bnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSwg
ZW51bTpib29sIFdlYkNvcmU6OldlYkxvY2tNb2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZB
dmFpbGFibGUpCiAgICAgUmVsZWFzZUxvY2soc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBj
bGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFt
ZSkKLSAgICBBYm9ydExvY2tSZXF1ZXN0KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xp
ZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUp
IC0+IChib29sIHdhc0Fib3J0ZWQpIEFzeW5jCi0gICAgU25hcHNob3Qoc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4pIC0+IChzdHJ1Y3QgV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXJTbmFwc2hvdCBzbmFwc2hvdCkgQXN5bmMKKyAgICBBYm9ydExvY2tSZXF1ZXN0KHN0cnVj
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUpIC0+IChib29sIHdhc0Fib3J0ZWQpCisgICAgU25h
cHNob3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4pIC0+IChzdHJ1
Y3QgV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCBzbmFwc2hvdCkKICAgICBDbGllbnRJ
c0dvaW5nQXdheShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SWQpCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
MjA3YmMyMWQzMmE2ZmZlNmI3ZWY1ZmRkMDZlNjA0ZTIwYThhYWU0OC4uOTJhMWMzY2NiNjA3OWIw
YmJlMjRlMmZmOTMzNjAxZWRmMzZhZWEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjYsOCArNjYsOCBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgIFBhZ2VEaWRTY3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgc2Ny
b2xsUG9zaXRpb24pCiAgICAgU2V0SGFzQWN0aXZlQW5pbWF0ZWRTY3JvbGxzKGJvb2wgaGFzQWN0
aXZlQW5pbWF0ZWRTY3JvbGxzKQogICAgIFJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIHN0
cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRlcnMpCi0gICAgU2hvd1No
YXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRh
KSAtPiAoYm9vbCBncmFudGVkKSBBc3luYwotICAgIFNob3dDb250YWN0UGlja2VyKHN0cnVjdCBX
ZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhIHJlcXVlc3REYXRhKSAtPiAoc3RkOjpvcHRpb25h
bDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiBpbmZvKSBBc3luYworICAgIFNob3dTaGFy
ZVNoZWV0KHN0cnVjdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNoYXJlRGF0YSkg
LT4gKGJvb2wgZ3JhbnRlZCkKKyAgICBTaG93Q29udGFjdFBpY2tlcihzdHJ1Y3QgV2ViQ29yZTo6
Q29udGFjdHNSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSkgLT4gKHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4gaW5mbykKICAgICBQcmludEZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBw
ZGZGaXJzdFBhZ2VTaXplKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFsKCkKICAgICBO
b3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xs
ZXJUaHVtYikKQEAgLTIxNiw3ICsyMTYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
ICAgIFNldEhhc0hhZFNlbGVjdGlvbkNoYW5nZXNGcm9tVXNlckludGVyYWN0aW9uKGJvb2wgaGFz
SGFkVXNlclNlbGVjdGlvbkNoYW5nZXMpCiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0g
ICAgUmVxdWVzdFRleHRSZWNvZ25pdGlvbihVUkwgaW1hZ2VVUkwsIFdlYktpdDo6U2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUgaW1hZ2VEYXRhLCBTdHJpbmcgaWRlbnRpZmllcikgLT4gKHN0cnVjdCBX
ZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0KSBBc3luYworICAgIFJlcXVlc3RU
ZXh0UmVjb2duaXRpb24oVVJMIGltYWdlVVJMLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlIGltYWdlRGF0YSwgU3RyaW5nIGlkZW50aWZpZXIpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6VGV4
dFJlY29nbml0aW9uUmVzdWx0IHJlc3VsdCkKICNlbmRpZgogCiAjaWYgSEFWRShUUkFOU0xBVElP
Tl9VSV9TRVJWSUNFUykgJiYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yMjQsNyArMjI0LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQotICAgIFNob3dN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEZyYW1lLCBW
ZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4gaXRlbXMpIC0+IChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCBzZWxlY3RlZEl0ZW1JRCkg
QXN5bmMKKyAgICBTaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVj
dCB0YXJnZXRGcmFtZSwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW0+IGl0ZW1zKSAtPiAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQg
c2VsZWN0ZWRJdGVtSUQpCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAjaWYgSEFWRShUT1VDSF9CQVIpCkBAIC0y
NjgsNyArMjY4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcwogICAgIFJlcXVlc3RVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdElkZW50aWZpZXIg
dXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0
KQotICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikgLT4gKFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiBkZXZpY2VzLCBTdHJpbmcgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQpIEFzeW5jCisgICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKSAtPiAoVmVj
dG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZXMsIFN0cmluZyBtZWRpYURldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCkKICAgICBCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpCiAj
ZW5kaWYKIApAQCAtMjc3LDcgKzI3Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAj
ZW5kaWYKIAogICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2VzCi0gICAgUmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb24oU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpIC0+IChib29sIGFsbG93ZWQp
IEFzeW5jCisgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oU3RyaW5nIG9yaWdpbklk
ZW50aWZpZXIpIC0+IChib29sIGFsbG93ZWQpCiAKICAgICAjIFNwZWxsaW5nIGFuZCBncmFtbWFy
IG1lc3NhZ2VzCiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKQEAgLTQ0MSw3ICs0NDEs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2lmIFVTRShRVUlDS19MT09LKQogICAg
IERpZFN0YXJ0TG9hZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUoU3RyaW5nIGZpbGVO
YW1lLCBTdHJpbmcgdXRpKQogICAgIERpZEZpbmlzaExvYWRGb3JRdWlja0xvb2tEb2N1bWVudElu
TWFpbkZyYW1lKFdlYktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSByZXNvdXJjZSkKLSAg
ICBSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKFN0cmluZyBm
aWxlTmFtZSkgLT4gKFN0cmluZyBwYXNzd29yZCkgQXN5bmMKKyAgICBSZXF1ZXN0UGFzc3dvcmRG
b3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKFN0cmluZyBmaWxlTmFtZSkgLT4gKFN0cmlu
ZyBwYXNzd29yZCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpAQCAt
NTEzLDcgKzUxMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTG9hZFN5bmNo
cm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEpIFN5bmNocm9u
b3VzCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIFNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBib29sIG1heVBy
b21wdCkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgQXN5bmMKKyAgICBTaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgYm9vbCBtYXlQ
cm9tcHQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShB
VFRBQ0hNRU5UX0VMRU1FTlQpCkBAIC01MzcsMTEgKzUzNywxMSBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogCiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAgICAgU3BlZWNoU3lu
dGhlc2lzVm9pY2VMaXN0KCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlNwZWVjaFN5bnRoZXNpc1Zv
aWNlPiB2b2ljZUxpc3QpIFN5bmNocm9ub3VzCi0gICAgU3BlZWNoU3ludGhlc2lzU3BlYWsoU3Ry
aW5nIHRleHQsIFN0cmluZyBsYW5nLCBmbG9hdCB2b2x1bWUsIGZsb2F0IHJhdGUsIGZsb2F0IHBp
dGNoLCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSwgU3RyaW5nIHZvaWNlVVJJLCBTdHJpbmcgdm9p
Y2VOYW1lLCBTdHJpbmcgdm9pY2VMYW5nLCBib29sIGxvY2FsU2VydmljZSwgYm9vbCBkZWZhdWx0
Vm9pY2UpIC0+ICgpIEFzeW5jCi0gICAgU3BlZWNoU3ludGhlc2lzU2V0RmluaXNoZWRDYWxsYmFj
aygpIC0+ICgpIEFzeW5jCisgICAgU3BlZWNoU3ludGhlc2lzU3BlYWsoU3RyaW5nIHRleHQsIFN0
cmluZyBsYW5nLCBmbG9hdCB2b2x1bWUsIGZsb2F0IHJhdGUsIGZsb2F0IHBpdGNoLCBNb25vdG9u
aWNUaW1lIHN0YXJ0VGltZSwgU3RyaW5nIHZvaWNlVVJJLCBTdHJpbmcgdm9pY2VOYW1lLCBTdHJp
bmcgdm9pY2VMYW5nLCBib29sIGxvY2FsU2VydmljZSwgYm9vbCBkZWZhdWx0Vm9pY2UpIC0+ICgp
CisgICAgU3BlZWNoU3ludGhlc2lzU2V0RmluaXNoZWRDYWxsYmFjaygpIC0+ICgpCiAgICAgU3Bl
ZWNoU3ludGhlc2lzQ2FuY2VsKCkKLSAgICBTcGVlY2hTeW50aGVzaXNQYXVzZSgpIC0+ICgpIEFz
eW5jCi0gICAgU3BlZWNoU3ludGhlc2lzUmVzdW1lKCkgLT4gKCkgQXN5bmMKKyAgICBTcGVlY2hT
eW50aGVzaXNQYXVzZSgpIC0+ICgpCisgICAgU3BlZWNoU3ludGhlc2lzUmVzdW1lKCkgLT4gKCkK
ICAgICBTcGVlY2hTeW50aGVzaXNSZXNldFN0YXRlKCkKICNlbmRpZgogCkBAIC01NTQsNyArNTU0
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDb25maWd1cmVMb2dnaW5nQ2hh
bm5lbChTdHJpbmcgY2hhbm5lbE5hbWUsIGVudW06dWludDhfdCBXVEZMb2dDaGFubmVsU3RhdGUg
c3RhdGUsIGVudW06dWludDhfdCBXVEZMb2dMZXZlbCBsZXZlbCkKIAogI2lmIFBMQVRGT1JNKEdU
SykKLSAgICBTaG93RW1vamlQaWNrZXIoV2ViQ29yZTo6SW50UmVjdCBjYXJldFJlY3QpIC0+IChT
dHJpbmcgcmVzdWx0KSBBc3luYworICAgIFNob3dFbW9qaVBpY2tlcihXZWJDb3JlOjpJbnRSZWN0
IGNhcmV0UmVjdCkgLT4gKFN0cmluZyByZXN1bHQpCiAjZW5kaWYKIAogI2lmIEhBVkUoVklTSUJJ
TElUWV9QUk9QQUdBVElPTl9WSUVXKQpAQCAtNTY3LDcgKzU2Nyw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICBT
ZW5kTWVzc2FnZVRvV2ViVmlldyhzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2Fn
ZSkKLSAgICBTZW5kTWVzc2FnZVRvV2ViVmlld1dpdGhSZXBseShzdHJ1Y3QgV2ViS2l0OjpVc2Vy
TWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHJlcGx5
TWVzc2FnZSkgQXN5bmMKKyAgICBTZW5kTWVzc2FnZVRvV2ViVmlld1dpdGhSZXBseShzdHJ1Y3Qg
V2ViS2l0OjpVc2VyTWVzc2FnZSB1c2VyTWVzc2FnZSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlVzZXJN
ZXNzYWdlIHJlcGx5TWVzc2FnZSkKICNlbmRpZgogCiAgICAgRGlkRmluZFRleHRNYW5pcHVsYXRp
b25JdGVtcyhWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlw
dWxhdGlvbkl0ZW0+IGl0ZW1zKQpAQCAtNTg5LDM1ICs1ODksMzUgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBNb2RlbEVsZW1lbnRTZXRJbnRlcmFjdGlvbkVuYWJsZWQoc3RydWN0
IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc0ludGVyYWN0
aW9uRW5hYmxlZCkKICNlbmRpZgogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMp
Ci0gICAgTW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkwgdXJsLCBTdHJpbmcgdXVpZCwg
V2ViQ29yZTo6RmxvYXRTaXplIHNpemUpIC0+IChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1
aW50MzJfdD4sIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBNb2Rl
bEVsZW1lbnRTaXplRGlkQ2hhbmdlKFN0cmluZyB1dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUgc2l6
ZSkgLT4gKEV4cGVjdGVkPE1hY2hTZW5kUmlnaHQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJl
c3VsdCkgQXN5bmMKKyAgICBNb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVSTCB1cmwsIFN0
cmluZyB1dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkgLT4gKEV4cGVjdGVkPHN0ZDo6cGFp
cjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KQorICAg
IE1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UoU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkZsb2F0U2l6
ZSBzaXplKSAtPiAoRXhwZWN0ZWQ8TWFjaFNlbmRSaWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
cj4gcmVzdWx0KQogICAgIEhhbmRsZU1vdXNlRG93bkZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVp
ZCwgV2ViQ29yZTo6TGF5b3V0UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBNb25vdG9u
aWNUaW1lIHRpbWVzdGFtcCkKICAgICBIYW5kbGVNb3VzZU1vdmVGb3JNb2RlbEVsZW1lbnQoU3Ry
aW5nIHV1aWQsIFdlYkNvcmU6OkxheW91dFBvaW50IGZsaXBwZWRMb2NhdGlvbkluRWxlbWVudCwg
TW9ub3RvbmljVGltZSB0aW1lc3RhbXApCiAgICAgSGFuZGxlTW91c2VVcEZvck1vZGVsRWxlbWVu
dChTdHJpbmcgdXVpZCwgV2ViQ29yZTo6TGF5b3V0UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVt
ZW50LCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKICNlbmRpZgogI2lmIEVOQUJMRShBUktJVF9J
TkxJTkVfUFJFVklFVykKLSAgICBNb2RlbEVsZW1lbnRHZXRDYW1lcmEoc3RydWN0IFdlYktpdDo6
TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkhU
TUxNb2RlbEVsZW1lbnRDYW1lcmEsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5
bmMKLSAgICBNb2RlbEVsZW1lbnRTZXRDYW1lcmEoc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlm
aWVyIG1vZGVsSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1l
cmEgY2FtZXJhKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwotICAgIE1vZGVsRWxlbWVudElzUGxh
eWluZ0FuaW1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBB
c3luYwotICAgIE1vZGVsRWxlbWVudFNldEFuaW1hdGlvbklzUGxheWluZyhzdHJ1Y3QgV2ViS2l0
OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBib29sIGlzUGxheWluZykgLT4gKGJv
b2wgc3VjY2VzcykgQXN5bmMKLSAgICBNb2RlbEVsZW1lbnRJc0xvb3BpbmdBbmltYXRpb24oc3Ry
dWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVk
PGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBNb2RlbEVs
ZW1lbnRTZXRJc0xvb3BpbmdBbmltYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVy
IG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc0xvb3BpbmcpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5j
Ci0gICAgTW9kZWxFbGVtZW50QW5pbWF0aW9uRHVyYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJ
ZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBNb2RlbEVsZW1lbnRBbmltYXRpb25D
dXJyZW50VGltZShzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVy
KSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBB
c3luYwotICAgIE1vZGVsRWxlbWVudFNldEFuaW1hdGlvbkN1cnJlbnRUaW1lKHN0cnVjdCBXZWJL
aXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIFNlY29uZHMgY3VycmVudFRpbWUp
IC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCi0gICAgTW9kZWxFbGVtZW50SGFzQXVkaW8oc3RydWN0
IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJv
b2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBNb2RlbEVsZW1l
bnRJc011dGVkKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIp
IC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5j
Ci0gICAgTW9kZWxFbGVtZW50U2V0SXNNdXRlZChzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZp
ZXIgbW9kZWxJZGVudGlmaWVyLCBib29sIGlzTXV0ZWQpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5j
Ci0jZW5kaWYKLQotICAgIFF1ZXJ5UGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luIG9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0
b3IpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4gc3RhdGUsIGJv
b2wgc2hvdWxkQ2FjaGUpIEFzeW5jCisgICAgTW9kZWxFbGVtZW50R2V0Q2FtZXJhKHN0cnVjdCBX
ZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxXZWJD
b3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1
bHQpCisgICAgTW9kZWxFbGVtZW50U2V0Q2FtZXJhKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRp
ZmllciBtb2RlbElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2Ft
ZXJhIGNhbWVyYSkgLT4gKGJvb2wgc3VjY2VzcykKKyAgICBNb2RlbEVsZW1lbnRJc1BsYXlpbmdB
bmltYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikg
LT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkKKyAgICBN
b2RlbEVsZW1lbnRTZXRBbmltYXRpb25Jc1BsYXlpbmcoc3RydWN0IFdlYktpdDo6TW9kZWxJZGVu
dGlmaWVyIG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc1BsYXlpbmcpIC0+IChib29sIHN1Y2Nlc3Mp
CisgICAgTW9kZWxFbGVtZW50SXNMb29waW5nQW5pbWF0aW9uKHN0cnVjdCBXZWJLaXQ6Ok1vZGVs
SWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yPiByZXN1bHQpCisgICAgTW9kZWxFbGVtZW50U2V0SXNMb29waW5nQW5pbWF0
aW9uKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIGJvb2wg
aXNMb29waW5nKSAtPiAoYm9vbCBzdWNjZXNzKQorICAgIE1vZGVsRWxlbWVudEFuaW1hdGlvbkR1
cmF0aW9uKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+
IChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpCisgICAg
TW9kZWxFbGVtZW50QW5pbWF0aW9uQ3VycmVudFRpbWUoc3RydWN0IFdlYktpdDo6TW9kZWxJZGVu
dGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+IHJlc3VsdCkKKyAgICBNb2RlbEVsZW1lbnRTZXRBbmltYXRpb25DdXJyZW50
VGltZShzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBTZWNv
bmRzIGN1cnJlbnRUaW1lKSAtPiAoYm9vbCBzdWNjZXNzKQorICAgIE1vZGVsRWxlbWVudEhhc0F1
ZGlvKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpCisgICAgTW9kZWxF
bGVtZW50SXNNdXRlZChzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KQor
ICAgIE1vZGVsRWxlbWVudFNldElzTXV0ZWQoc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVy
IG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc011dGVkKSAtPiAoYm9vbCBzdWNjZXNzKQorI2VuZGlm
CisKKyAgICBRdWVyeVBlcm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmln
aW4sIHN0cnVjdCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciBkZXNjcmlwdG9yKSAtPiAo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+IHN0YXRlLCBib29sIHNob3Vs
ZENhY2hlKQogCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCi0gICAgU3RhcnRBcHBsZVBh
eUFNU1VJU2Vzc2lvbihVUkwgb3JpZ2luYXRpbmdVUkwsIHN0cnVjdCBXZWJDb3JlOjpBcHBsZVBh
eUFNU1VJUmVxdWVzdCByZXF1ZXN0KSAtPiAoc3RkOjpvcHRpb25hbDxib29sPiByZXN1bHQpIEFz
eW5jCisgICAgU3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihVUkwgb3JpZ2luYXRpbmdVUkwsIHN0
cnVjdCBXZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVzdCByZXF1ZXN0KSAtPiAoc3RkOjpvcHRp
b25hbDxib29sPiByZXN1bHQpCiAgICAgQWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpCiAjZW5k
aWYKIAotICAgIFJlcXVlc3RDb29raWVDb25zZW50KCkgLT4gKGVudW06dWludDhfdCBXZWJDb3Jl
OjpDb29raWVDb25zZW50RGVjaXNpb25SZXN1bHQgcmVzdWx0KSBBc3luYwotICAgIENsYXNzaWZ5
TW9kYWxDb250YWluZXJDb250cm9scyhWZWN0b3I8U3RyaW5nPiB0ZXh0cykgLT4gKFZlY3RvcjxX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0eXBlcykgQXN5bmMKLSAgICBEZWNp
ZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8V2ViQ29yZTo6TW9kYWxDb250YWlu
ZXJDb250cm9sVHlwZT4gdHlwZXMpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TW9kYWxDb250
YWluZXJEZWNpc2lvbiBkZWNpc2lvbikgQXN5bmMKKyAgICBSZXF1ZXN0Q29va2llQ29uc2VudCgp
IC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0IHJl
c3VsdCkKKyAgICBDbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmluZz4g
dGV4dHMpIC0+IChWZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4gdHlw
ZXMpCisgICAgRGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0PFdlYkNvcmU6
Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzKSAtPiAoZW51bTp1aW50OF90IFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24gZGVjaXNpb24pCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjI4OTVm
OTRiNjI3NjU2YWRiZGQxZmZhMWFkNmY0M2MyZGEwMjAwNi4uYjc0Nzk2MDNhZTBiNThmOWJiZDI1
ZGRlNzMwZTM4ZjNhMWYxZTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNzIsNyArNzIsNyBAQCBtZXNzYWdlcyAt
PiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiAgICAgU2VuZE1lc3NhZ2VUb1dlYkNvbnRleHQoc3RydWN0IFdlYktp
dDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpCi0gICAgU2VuZE1lc3NhZ2VUb1dlYkNvbnRleHRX
aXRoUmVwbHkoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpIC0+IChzdHJ1
Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSByZXBseU1lc3NhZ2UpIEFzeW5jCisgICAgU2VuZE1lc3Nh
Z2VUb1dlYkNvbnRleHRXaXRoUmVwbHkoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1l
c3NhZ2UpIC0+IChzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSByZXBseU1lc3NhZ2UpCiAjZW5k
aWYKIAogICAgIERpZENyZWF0ZVNsZWVwRGlzYWJsZXIoV2ViQ29yZTo6U2xlZXBEaXNhYmxlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIHJlYXNvbiwgYm9vbCBkaXNwbGF5KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW0ubWVzc2Fn
ZXMuaW4KaW5kZXggNjAzMmI5YmZkMDhhMTUxZTM5NTQ2M2RmNjQ5Y2U2ZmI5YjFjYjY0Mi4uZmFk
ZDFmZGE3MThiM2VjYzFkMWFlYzI2YWM3ZDNlN2JiMWRiNjYwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLm1lc3NhZ2VzLmluCkBA
IC0yNiwxMSArMjYsMTEgQEAKICNpZiBFTkFCTEUoV0VCWFIpCiAKIG1lc3NhZ2VzIC0+IFBsYXRm
b3JtWFJTeXN0ZW0gTm90UmVmQ291bnRlZCB7Ci0gICAgRW51bWVyYXRlSW1tZXJzaXZlWFJEZXZp
Y2VzKCkgLT4gKFZlY3RvcjxXZWJLaXQ6OlhSRGV2aWNlSW5mbz4gZGV2aWNlc0luZm9zKSBBc3lu
YwotICAgIFJlcXVlc3RQZXJtaXNzaW9uT25TZXNzaW9uRmVhdHVyZXMoc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlIG1vZGUs
IFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+IGdyYW50ZWQsIFZlY3RvcjxQ
bGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+IGNvbnNlbnRSZXF1aXJlZCwgVmVjdG9yPFBs
YXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4gY29uc2VudE9wdGlvbmFsKSAtPiAoc3RkOjpv
cHRpb25hbDxWZWN0b3I8UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlPj4gdXNlckdyYW50
ZWQpIEFzeW5jCisgICAgRW51bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKCkgLT4gKFZlY3RvcjxX
ZWJLaXQ6OlhSRGV2aWNlSW5mbz4gZGV2aWNlc0luZm9zKQorICAgIFJlcXVlc3RQZXJtaXNzaW9u
T25TZXNzaW9uRmVhdHVyZXMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW4sIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlIG1vZGUsIFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZl
cmVuY2VTcGFjZVR5cGU+IGdyYW50ZWQsIFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFj
ZVR5cGU+IGNvbnNlbnRSZXF1aXJlZCwgVmVjdG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNl
VHlwZT4gY29uc2VudE9wdGlvbmFsKSAtPiAoc3RkOjpvcHRpb25hbDxWZWN0b3I8UGxhdGZvcm1Y
Ujo6UmVmZXJlbmNlU3BhY2VUeXBlPj4gdXNlckdyYW50ZWQpCiAgICAgSW5pdGlhbGl6ZVRyYWNr
aW5nQW5kUmVuZGVyaW5nKCkKICAgICBTaHV0RG93blRyYWNraW5nQW5kUmVuZGVyaW5nKCkKLSAg
ICBSZXF1ZXN0RnJhbWUoKSAtPiAoc3RydWN0IFBsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRh
IGZyYW1lRGF0YSkgQXN5bmMKKyAgICBSZXF1ZXN0RnJhbWUoKSAtPiAoc3RydWN0IFBsYXRmb3Jt
WFI6OkRldmljZTo6RnJhbWVEYXRhIGZyYW1lRGF0YSkKICAgICBTdWJtaXRGcmFtZSgpCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggZDk3NTZhMzA5ZWIxODRiM2FmMDRkYTc0MTNkNTUzYWU1MDMx
NmU2ZS4uNWRkYWJjODUyOWExZDdjODEyMWQ4MzQyODlhYTBlNzBhNWRjZDdkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkubWVz
c2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAgbWVzc2FnZXMgLT4gU2VjSXRlbVNoaW1Qcm94eSB7
CiAKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKICAgICBTZWNJdGVtUmVxdWVzdFN5bmMoV2Vi
S2l0OjpTZWNJdGVtUmVxdWVzdERhdGEgcmVxdWVzdCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpTZWNJdGVtUmVzcG9uc2VEYXRhPiByZXNwb25zZSkgU3luY2hyb25vdXMKLSAgICBTZWNJdGVt
UmVxdWVzdChXZWJLaXQ6OlNlY0l0ZW1SZXF1ZXN0RGF0YSByZXF1ZXN0KSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJLaXQ6OlNlY0l0ZW1SZXNwb25zZURhdGE+IHJlc3BvbnNlKSBBc3luYworICAgIFNl
Y0l0ZW1SZXF1ZXN0KFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRhIHJlcXVlc3QpIC0+IChzdGQ6
Om9wdGlvbmFsPFdlYktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YT4gcmVzcG9uc2UpCiAjZW5kaWYK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJBdXRo
blByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IGU5OGQwYTYyODUyNGE5MDAzMGFjM2IzNDdjNDYyNTUwZmI5NDNmN2EuLjA5ZDhlYjVmMGI4NTdl
OGYzZGIwZTYwZTg1YzNmYTZjZjI0YjVlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
QXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI0LDkgKzI0LDkgQEAKIAogbWVzc2FnZXMgLT4gV2Vi
QXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKIAotICAg
IE1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdV
c2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRh
IGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1l
bnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKLSAgICBH
ZXRBc3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRh
LCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBz
dHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pIEFzeW5jCi0gICAgSXNVc2Vy
VmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0
KSBBc3luYworICAgIE1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3Qg
V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zLCBib29s
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9y
UmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikK
KyAgICBHZXRBc3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5n
VXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0
YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2ht
ZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCisgICAgSXNVc2Vy
VmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0
KQogCiAgICAgU2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihzdHJ1Y3QgV2Vi
Q29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhu
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwNGIyMDdiNzBiNWZiMTFiMDg3ZWUxOTM2NWI0NmQx
ZTA3NWU5MzAzLi4yM2QxOWM2NzJjMmNkOGI5YWMxM2U2MjQzZDVkZjFkZDdiZjEyODBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC0yNyw3ICsyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYkF1dGhuUHJv
Y2VzcyB7CiAgICAgSW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpXZWJB
dXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycykK
IAogICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdl
YlByb2Nlc3MKLSAgICBDcmVhdGVXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFs
PElQQzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIpIEFzeW5jCisgICAgQ3JlYXRl
V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IHByb2Nlc3NJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+IGNv
bm5lY3Rpb25JZGVudGlmaWVyKQogCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAg
ICAgTm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXksIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NTAyNmI1NzRlNGI5M2Y0NTJjNDUy
YTQyZDdjODMzZDM0ZWUxMjNlLi4yMjZjMzU5MTlhZTllNDQxMThmZjlkNDBkMzM5M2FkN2ViZmFh
NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTExMDcsOCArMTEwNyw2IEBACiAJCTU3MkVCQkM0MjUzNkFCODQwMDA1NTJCMyAvKiBj
b20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQzMyNTM2QUI4NDAwMDU1MkIzIC8qIGNv
bS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiICovOyB9OwogCQk1NzJFQkJDOTI1MzZB
RkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkM2MjUzNkFGRDUwMDA1NTJCMyAvKiBX
ZWJBdXRoblByb2Nlc3NQcm94eS5oICovOyB9OwogCQk1NzJFQkJDQzI1MzZCMDRGMDAwNTUyQjMg
LyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkNCMjUzNkIwNEYwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oICovOyB9OwotCQk1NzJFQkJDRjI1MzZCQjExMDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQ0QyNTM2QkIxMDAw
MDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
LQkJNTcyRUJCRDAyNTM2QkIxMTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVC
QkNFMjUzNkJCMTAwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi87
IH07CiAJCTU3MkVCQkQ1MjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJF
QkJEMjI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oICovOyB9
OwogCQk1NzJFQkJENzI1MzdFQkFFMDAwNTUyQjMgLyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRB
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4
MEQzMUU2OTA0QjUwMDczMUQyMCAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oICovOyB9
OwogCQk1NzJFQkJEQTI1MzhGNkI0MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVC
QkQ4MjUzOEY2QTEwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tICovOyB9
OwpAQCAtNDcwOSwxMCArNDcwNyw3IEBACiAJCTU3MkVCQkMzMjUzNkFCODQwMDA1NTJCMyAvKiBj
b20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTcyRUJCQzUyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1By
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJv
Y2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQzYyNTM2
QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTU3MkVCQkM3MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQ0Iy
NTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkNEMjUzNkJCMTAwMDA1NTJC
MyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkNFMjUzNkJCMTAw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDEyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDMyNTM2
Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5MzcsMTYgKzQ5MzIsMTYgQEAKIAkJ
NUMyRUJERjkyNTY0MzUyMDAwRDU1QjA1IC8qIFdLRG93bmxvYWRDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tEb3dubG9hZENsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1QzM1OUMwQzIxNTQ3MzIxMDA5RTc5NDggLyogV0tEZXByZWNhdGVk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRGVwcmVjYXRlZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzNBRUE4RTFGRTFGMURGMDAyMzE4RDMgLyogV2Vi
c2l0ZVBvbGljaWVzRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJzaXRlUG9saWNpZXNEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NUM0MTFEOUIyN0NFRDQyMDAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyMS5jcHA7IHBhdGgg
PSAiVW5pZmllZFNvdXJjZTEyMS5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
QzQxMUQ5QzI3Q0VENDIwMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTIzLmNwcDsgcGF0aCA9
ICJVbmlmaWVkU291cmNlMTIzLmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVD
NDExRDlEMjdDRUQ0MjAwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTMwLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMzAuY3BwOyBwYXRoID0g
IlVuaWZpZWRTb3VyY2UxMzAuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0
MTFEOUUyN0NFRDQyMTAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyNS5jcHA7IHBhdGggPSAi
VW5pZmllZFNvdXJjZTEyNS5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQx
MUQ5RjI3Q0VENDIxMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTIyLmNwcDsgcGF0aCA9ICJV
bmlmaWVkU291cmNlMTIyLmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDEx
REEwMjdDRUQ0MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI4LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjguY3BwOyBwYXRoID0gIlVu
aWZpZWRTb3VyY2UxMjguY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFE
QTEyN0NFRDQyMTAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjYuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyNi5jcHA7IHBhdGggPSAiVW5p
ZmllZFNvdXJjZTEyNi5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzQxMURB
MjI3Q0VENDIxMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTI3LmNwcDsgcGF0aCA9ICJVbmlm
aWVkU291cmNlMTI3LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNDExREEz
MjdDRUQ0MjIwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMjkuY3BwOyBwYXRoID0gIlVuaWZp
ZWRTb3VyY2UxMjkuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM0MTFEQTQy
N0NFRDQyMjAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTEyNC5jcHA7IHBhdGggPSAiVW5pZmll
ZFNvdXJjZTEyNC5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzQxMUQ5QjI3
Q0VENDIwMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyMS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNlMTIxLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNUM0MTFEOUMyN0NFRDQyMDAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2Ux
MjMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pZmllZFNvdXJj
ZTEyMy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNDExRDlEMjdDRUQ0MjAw
MDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTMwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVuaWZpZWRTb3VyY2UxMzAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1QzQxMUQ5RTI3Q0VENDIxMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNlMTI1LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MTFEOUYyN0NFRDQyMTAwNjgyNDFB
IC8qIFVuaWZpZWRTb3VyY2UxMjIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVW5pZmllZFNvdXJjZTEyMi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTVDNDExREEwMjdDRUQ0MjEwMDY4MjQxQSAvKiBVbmlmaWVkU291cmNlMTI4LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWZpZWRTb3VyY2UxMjguY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzQxMURBMTI3Q0VENDIxMDA2ODI0MUEgLyogVW5p
ZmllZFNvdXJjZTEyNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBV
bmlmaWVkU291cmNlMTI2LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0MTFE
QTIyN0NFRDQyMTAwNjgyNDFBIC8qIFVuaWZpZWRTb3VyY2UxMjcuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pZmllZFNvdXJjZTEyNy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDNDExREEzMjdDRUQ0MjIwMDY4MjQxQSAvKiBVbmlmaWVkU291
cmNlMTI5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaWZpZWRT
b3VyY2UxMjkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzQxMURBNDI3Q0VE
NDIyMDA2ODI0MUEgLyogVW5pZmllZFNvdXJjZTEyNC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVbmlmaWVkU291cmNlMTI0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUM0NjA5RTIyMjQzMEU0QzAwOTk0M0MyIC8qIF9XS0NvbnRlbnRSdWxlTGlz
dEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tDb250ZW50UnVs
ZUxpc3RBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0NjA5RTMyMjQz
MEU0RDAwOTk0M0MyIC8qIF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0NjA5RTQyMjQzMEU0RDAwOTk0M0MyIC8q
IF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbkludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDA5Miw3ICsxMDA4Nyw2IEBACiAJCQkJNTc2MDgyOTky
MDJCREFFMjAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluICovLAogCQkJCTU3MkVCQkM1MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nl
c3NQcm94eS5jcHAgKi8sCiAJCQkJNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhu
UHJvY2Vzc1Byb3h5LmggKi8sCi0JCQkJNTcyRUJCQzcyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJBdXRo
ZW50aWNhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjQ4MCw4ICsxMjQ3
NCw2IEBACiAJCQkJNTcyRUJCQkMyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi8sCiAJCQkJNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIz
IC8qIFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTcyRUJCQkUy
NTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VzLmggKi8sCi0JCQkJNTcy
RUJCQ0QyNTM2QkIxMDAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKLQkJCQk1NzJFQkJDRTI1MzZCQjEwMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9j
ZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFDMEExOTU1MUM5MDA2OEYwMEZFMEVCQiAvKiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUMwQTE5NTYx
QzkwMDY4RjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZXMuaCAqLywKIAkJ
CQkxQzBBMTk1MTFDOEZGREZCMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xNjE5Myw3ICsxNjE4NSw2IEBACiAJCQkJNTdEQ0VE
NzAyMTQyRUU2ODAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MkVCQkJGMjUzNkE2MEEwMDA1
NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTcyRUJCQzEyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhu
UHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1NzJFQkJDRjI1
MzZCQjExMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1QjFCQkEyM0NFOUMxMzAwMjA2MzlBIC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMEExOTU3MUM5MDA2OEYwMEZF
MEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1NzVCMUJCODIzQ0U5QkZDMDAyMDYzOUEgLyogV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGE4ZDlkZGU3NTU1OWQ1YTg5YTVhMjZjMWEzNDlkMTAx
NjliZmQwY2IuLjIyMTA5NDFhZDg1ODc4ODAxOWYwNTM4MGNkNGE0ZGVkNmI1MzUxMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsMjEg
KzIzLDIxIEBACiBtZXNzYWdlcyAtPiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IE5vdFJlZkNv
dW50ZWQgewogICAgIEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4
cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjYWxs
YmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKLSAgICBSZXNvbHZlQ2hpbGRGcmFt
ZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwpIC0+
IChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAt
PiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZUNoaWxkRnJhbWVX
aXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIEFzeW5jCisgICAgUmVz
b2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCB1aW50MzJf
dCBvcmRpbmFsKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCisgICAgUmVzb2x2ZUNoaWxk
RnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhh
bmRsZSkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQorICAgIFJlc29sdmVDaGlsZEZyYW1l
V2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5hbWUpIC0+IChzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCkKKyAgICBSZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogCi0gICAgQ29tcHV0ZUVsZW1l
bnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wg
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1aW50OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5
c3RlbSBjb29yZGluYXRlU3lzdGVtKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlw
ZSwgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50
PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVkKSBBc3luYworICAgIENvbXB1dGVF
bGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBi
b29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVudW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5h
dGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJv
clR5cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wgaXNPYnNjdXJlZCkKIAotICAgIFNlbGVjdE9w
dGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+
IChzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIFNlbGVjdE9wdGlv
bkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKQogCi0gICAgU2V0RmlsZXNGb3JJbnB1dEZp
bGVVcGxvYWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIFZlY3Rv
cjxTdHJpbmc+IGZpbGVuYW1lcykgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUp
IEFzeW5jCisgICAgU2V0RmlsZXNGb3JJbnB1dEZpbGVVcGxvYWQoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lcykgLT4gKHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpCiAKICAgICBUYWtlU2NyZWVuc2hvdChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmll
d0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogCi0g
ICAgU25hcHNob3RSZWN0Rm9yU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1Zp
ZXdwb3J0KSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50
UmVjdCByZWN0KSBBc3luYworICAgIFNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJv
clR5cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCkKIAotICAgIEdldENvb2tpZXNGb3JGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlw
ZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5bmMKLSAgICBEZWxldGVDb29r
aWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIEdldENvb2tpZXNGb3JGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlw
ZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKKyAgICBEZWxldGVDb29raWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYmEw
M2RkMjVkZTQwZjMxNDEzYjQzZWNiMjlhMGVlZmQwMGViZGU5Ny4uNjE4YjQyOTcwM2NiOWRkNmI3
MDUwYzk3Y2I2YjkxMGU1ZTMzYTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0y
Niw3ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IEdQVVByb2Nlc3NDb25uZWN0aW9uIFdhbnRzRGlzcGF0
Y2hNZXNzYWdlIHsKICAgICBEaWRSZWNlaXZlUmVtb3RlQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSB0eXBl
LCBzdHJ1Y3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbW1hbmRBcmd1
bWVudCBhcmd1bWVudCkKIAogI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQotICAgIEJl
Z2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkgLT4gKGVudW06dWludDhfdCBXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OlJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5OjpEZWZhdWx0Um91dGVDaGFuZ2VkIGRlZmF1bHRSb3V0ZUNoYW5nZWQpIEFzeW5j
CisgICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoZW51bTp1aW50OF90IFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KSAtPiAoZW51bTp1aW50
OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6Um91dGluZ0Fy
Yml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdl
ZCkKICAgICBFbmRSb3V0aW5nQXJiaXRyYXRpb24oKTsKICNlbmRpZgogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5tZXNzYWdlcy5pbgppbmRleCA1ZWRmNzUzOGY1YWY2NjNiYTc4ZmU5YzY3ZTdhNjQyYWRi
NmRkZWRiLi41ZDFiM2NkMGUyZGViZTc1YzlhNmIyMGIzZDhhODI1NWViY2ZhNjQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpAQCAtNjgsOSArNjgsOSBA
QCBtZXNzYWdlcyAtPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVmQ291bnRlZCB7CiAg
ICAgVXBkYXRlR2VuZXJpY0N1ZShXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
dHJhY2tJRCwgc3RydWN0IFdlYkNvcmU6OkdlbmVyaWNDdWVEYXRhIGN1ZSkKICAgICBSZW1vdmVH
ZW5lcmljQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lELCBz
dHJ1Y3QgV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQogCi0gICAgUmVxdWVzdFJlc291cmNl
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRp
b25zKSAtPiAoKSBBc3luYworICAgIFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucykgLT4gKCkKICAgICBSZW1v
dmVSZXNvdXJjZShXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIFNlbmRIMlBpbmcoVVJMIHVybCkgLT4gKEV4cGVj
dGVkPFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBT
ZW5kSDJQaW5nKFVSTCB1cmwpIC0+IChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yPiByZXN1bHQpCiAgICAgUmVzb3VyY2VOb3RTdXBwb3J0ZWQoKQogCiAgICAgQWN0aXZl
U291cmNlQnVmZmVyc0NoYW5nZWQoKQpAQCAtODksNyArODksNyBAQCBtZXNzYWdlcyAtPiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUgTm90UmVmQ291bnRlZCB7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgR2V0UmF3Q29va2llcyhVUkwgdXJsKSAtPiAoVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4gcmVzdWx0KSBBc3luYworICAgIEdldFJhd0Nvb2tpZXMoVVJMIHVybCkg
LT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHJlc3VsdCkKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
aW5kZXggMGEwMTEwOWM1Njk1NGI1NzczNTQxNTE5OTI2ZGY5ZTg1MzBkMDU1NS4uZjUxYWU3MzMx
NDhhNTkxMmQzNDU4NjkzOTNkM2FlMGViODcyMWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogbWVzc2FnZXMgLT4gU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKLSAgICBTb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzdHJ1Y3QgV2ViS2l0OjpJbml0aWFs
aXphdGlvblNlZ21lbnRJbmZvIHNlZ21lbnRDb25maWd1cmF0aW9uKSAtPiAoKSBBc3luYworICAg
IFNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHN0cnVj
dCBXZWJLaXQ6OkluaXRpYWxpemF0aW9uU2VnbWVudEluZm8gc2VnbWVudENvbmZpZ3VyYXRpb24p
IC0+ICgpCiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZVN0cmVhbUVuZGVkV2l0aERlY29kZUVycm9y
KCkKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kRXJyb3IoYm9vbCBkZWNvZGVFcnJvcikK
ICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kUmVzdWx0IGFwcGVuZFJlc3VsdCwgV2ViQ29yZTo6UGxh
dGZvcm1UaW1lUmFuZ2VzIGJ1ZmZlcmVkLCB1aW50NjRfdCB0b3RhbFRyYWNrQnVmZmVyU2l6ZUlu
Qnl0ZXMsIE1lZGlhVGltZSB0aW1lU3RhbXBPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxl
ci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluCmluZGV4IGU0ODcyYzQ3ZTdi
NjFiOTdmMDhiMGE5OGIyMTNkNjNkOTNiMDc3MWYuLjFjMjgwZWEyNGFhODU3ZDBlYzc5ZmY1NzJl
ZTIwZTFmZTIwMzdmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyLm1lc3NhZ2VzLmluCkBAIC0yMywxNiArMjMsMTYgQEAKICNpZiBFTkFCTEUo
SU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlciBOb3RSZWZDb3VudGVkIHsKLSAgICBSZWdpc3RlckV4dGVuc2lvbihTdHJp
bmcgZXh0ZW5zaW9uSUQsIFN0cmluZyBleHRlbnNpb25CdW5kbGVJZGVudGlmaWVyLCBTdHJpbmcg
ZGlzcGxheU5hbWUpIC0+IChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9y
PiByZXN1bHQpIEFzeW5jCi0gICAgVW5yZWdpc3RlckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9u
SUQpIC0+IChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQp
IEFzeW5jCisgICAgUmVnaXN0ZXJFeHRlbnNpb24oU3RyaW5nIGV4dGVuc2lvbklELCBTdHJpbmcg
ZXh0ZW5zaW9uQnVuZGxlSWRlbnRpZmllciwgU3RyaW5nIGRpc3BsYXlOYW1lKSAtPiAoRXhwZWN0
ZWQ8dm9pZCwgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KQorICAgIFVucmVnaXN0
ZXJFeHRlbnNpb24oU3RyaW5nIGV4dGVuc2lvbklEKSAtPiAoRXhwZWN0ZWQ8dm9pZCwgSW5zcGVj
dG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KQogCi0gICAgQ3JlYXRlVGFiRm9yRXh0ZW5zaW9u
KFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIHRhYk5hbWUsIFVSTCB0YWJJY29uVVJMLCBVUkwg
c291cmNlVVJMKSAtPiAoRXhwZWN0ZWQ8U3RyaW5nLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9y
PiByZXN1bHQpIEFzeW5jCi0gICAgRXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24oU3RyaW5nIGV4
dGVuc2lvbklELCBTdHJpbmcgc2NyaXB0U291cmNlLCBzdGQ6Om9wdGlvbmFsPFVSTD4gZnJhbWVV
UkwsIHN0ZDo6b3B0aW9uYWw8VVJMPiBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gdXNlQ29udGVudFNjcmlwdENvbnRleHQpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2Ug
cmVzdWx0RGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiBkZXRh
aWxzLCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IGVycm9yKSBBc3lu
YwotICAgIFJlbG9hZEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gaWdub3JlQ2FjaGUsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB1c2VyQWdlbnQsIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBpbmplY3RlZFNjcmlwdCkgLT4gKHN0ZDo6b3B0aW9uYWw8SW5z
cGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCi0gICAgU2hvd0V4dGVuc2lvblRh
YihTdHJpbmcgZXh0ZW5zaW9uVGFiSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHZvaWQsIEluc3Bl
Y3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDcmVhdGVUYWJGb3JFeHRl
bnNpb24oU3RyaW5nIGV4dGVuc2lvbklELCBTdHJpbmcgdGFiTmFtZSwgVVJMIHRhYkljb25VUkws
IFVSTCBzb3VyY2VVUkwpIC0+IChFeHBlY3RlZDxTdHJpbmcsIEluc3BlY3Rvcjo6RXh0ZW5zaW9u
RXJyb3I+IHJlc3VsdCkKKyAgICBFdmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihTdHJpbmcgZXh0
ZW5zaW9uSUQsIFN0cmluZyBzY3JpcHRTb3VyY2UsIHN0ZDo6b3B0aW9uYWw8VVJMPiBmcmFtZVVS
TCwgc3RkOjpvcHRpb25hbDxVUkw+IGNvbnRleHRTZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25h
bDxib29sPiB1c2VDb250ZW50U2NyaXB0Q29udGV4dCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSBy
ZXN1bHREYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFp
bHMsIHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpCisgICAg
UmVsb2FkRm9yRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwgc3RkOjpvcHRpb25hbDxib29s
PiBpZ25vcmVDYWNoZSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHVzZXJBZ2VudCwgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IGluamVjdGVkU2NyaXB0KSAtPiAoc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6
OkV4dGVuc2lvbkVycm9yPiBlcnJvcikKKyAgICBTaG93RXh0ZW5zaW9uVGFiKFN0cmluZyBleHRl
bnNpb25UYWJJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dm9pZCwgSW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcj4gcmVzdWx0KQogICAgIAogICAgIC8vIEZvciB0ZXN0aW5nLgotICAgIEV2YWx1YXRl
U2NyaXB0SW5FeHRlbnNpb25UYWIoU3RyaW5nIGV4dGVuc2lvblRhYklELCBTdHJpbmcgc2NyaXB0
U291cmNlKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgc3RkOjpvcHRpb25hbDxJbnNwZWN0
b3I6OkV4dGVuc2lvbkVycm9yPiBlcnJvcikgQXN5bmMKKyAgICBFdmFsdWF0ZVNjcmlwdEluRXh0
ZW5zaW9uVGFiKFN0cmluZyBleHRlbnNpb25UYWJJRCwgU3RyaW5nIHNjcmlwdFNvdXJjZSkgLT4g
KElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHREYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4
Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yOjpFeHRlbnNp
b25FcnJvcj4gZXJyb3IpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lP
TlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNz
YWdlcy5pbgppbmRleCAxMWIyNWJlM2YxZTMxNjBkMjhmYzgwNjkxNjEwMTJiMTVkN2FmODNiLi5m
ZjMxZmIwOGYzNTViMTMwMDEzMGJlN2E2ZTFjNmRiYTFkMzYxYmQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNl
c3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI3LDEz
ICsyNywxMyBAQAogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvciBO
b3RSZWZDb3VudGVkIHsKIAotICAgIFNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSB0aW1lKSAtPiAo
Ym9vbCByZXN1bHQpIEFzeW5jCisgICAgU2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlIHRpbWUpIC0+
IChib29sIHJlc3VsdCkKIAotICAgIFBsYXlTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBh
dFRpbWUsIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gaG9zdFRpbWUpIC0+IChib29sIHJl
c3VsdCkgQXN5bmMKKyAgICBQbGF5U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gYXRUaW1l
LCBzdGQ6Om9wdGlvbmFsPE1vbm90b25pY1RpbWU+IGhvc3RUaW1lKSAtPiAoYm9vbCByZXN1bHQp
CiAKLSAgICBQYXVzZVNlc3Npb24oKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCisgICAgUGF1c2VT
ZXNzaW9uKCkgLT4gKGJvb2wgcmVzdWx0KQogCi0gICAgU2V0U2Vzc2lvblRyYWNrKFN0cmluZyB0
cmFja0lkZW50aWZpZXIpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKyAgICBTZXRTZXNzaW9uVHJh
Y2soU3RyaW5nIHRyYWNrSWRlbnRpZmllcikgLT4gKGJvb2wgcmVzdWx0KQogCiAgICAgQ29vcmRp
bmF0b3JTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGUgc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCmluZGV4IDZiYTMxZjU0OGI5YWE1MDAxN2Q2YWQ0NzgyNmM3MzE4MjE2YTYzNjQuLmY5
NmM4N2I1N2IwODJkZmFjZmI5YjNlZmY1MGU4NWZkYWYyY2Y5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM4LDEwICszOCwxMCBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoV0VCX1JUQykKLSAgICBDb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJj
ZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgc3RydWN0
IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyKSAtPiAoc3RkOjpvcHRp
b25hbDxib29sPiByZXN1bHQpIEFzeW5jCisgICAgQ29ubmVjdFRvUlRDRGF0YUNoYW5uZWxSZW1v
dGVTb3VyY2Uoc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBzb3VyY2Us
IHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgaGFuZGxlcikgLT4gKHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gcmVzdWx0KQogI2VuZGlmCiAKLSAgICBDaGVja1Byb2Nlc3NMb2Nh
bFBvcnRGb3JBY3Rpdml0eShzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVudGlmaWVyIHBv
cnQpIC0+IChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHkg
aGFzQWN0aXZpdHkpIEFzeW5jCisgICAgQ2hlY2tQcm9jZXNzTG9jYWxQb3J0Rm9yQWN0aXZpdHko
c3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBwb3J0KSAtPiAoV2ViQ29yZTo6
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5IGhhc0FjdGl2aXR5KQogICAg
IE1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJZGVu
dGlmaWVyIHBvcnQpCiAKICAgICBCcm9hZGNhc3RDb25zb2xlTWVzc2FnZShlbnVtOnVpbnQ4X3Qg
SlNDOjpNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3Nh
Z2VMZXZlbCBtZXNzYWdlTGV2ZWwsIFN0cmluZyBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCmluZGV4IDI5YjhiNmZlZTBhNWExMjI0ZTRiNzJmOGFmOTY5MzJiZDMw
YjBkZjEuLmJlZjhkYTJlZTFkMDM2ZjBjN2FiZGMzYjc3YzhiMDJkYTE5YWUyYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM4LDcgKzM4LDcgQEAgbWVzc2FnZXMg
LT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKICAgICBTZXRTV09yaWdpblRhYmxlU2hhcmVkTWVt
b3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFuZGxlKQogICAgIFBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckRhdGEgc291cmNlLCBTdHJpbmcgc291cmNlT3JpZ2luKQogCi0gICAgU2V0RG9jdW1lbnRJ
c0NvbnRyb2xsZWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgdGVt
cG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEgZGF0YSkgLT4gKGJvb2wgaXNTdWNjZXNzKSBBc3luYworICAgIFNldERv
Y3VtZW50SXNDb250cm9sbGVkKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIHRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEpIC0+IChib29sIGlzU3VjY2VzcykKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYzZhMWE4ZmIzNjc2ZGZjZDdmMmQ4Zjc0MjBh
MWU4YmNjOTBiMzEwMy4uNmVmMjdlZmMyYTNhMWU0YjcyYjlmNmFlNTQ0MzdiNTJkYTY0NzYzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAg
LTMxLDcgKzMxLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24g
Tm90UmVmQ291bnRlZCB7CiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdv
cmtlck9yQ2xpZW50RGF0YSBzb3VyY2VEYXRhKQogICAgIEZpcmVJbnN0YWxsRXZlbnQoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBGaXJlQWN0aXZhdGVF
dmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQotICAgIEZp
cmVQdXNoRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
c3RkOjpvcHRpb25hbDxJUEM6OkRhdGFSZWZlcmVuY2U+IGRhdGEpIC0+IChib29sIHJlc3VsdCkg
QXN5bmMKKyAgICBGaXJlUHVzaEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8SVBDOjpEYXRhUmVmZXJlbmNlPiBkYXRhKSAtPiAo
Ym9vbCByZXN1bHQpCiAKICAgICBUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKSAm
JiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJPYmplY3RDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCmluZGV4IDcyMmFlMWEzMmM5Mzk1M2Q5NWU4ZWFmOGM1ODEwMjI3MGI1
MjU3ZjEuLmMyNjlmZDI2YTkxZWJmY2I0YzU0ZjBkNmM5ZTBlYjNlNGIwZGY2MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdvcmtlck9iamVj
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjEs
NyArMjEsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJTaGFyZWRXb3JrZXJP
YmplY3RDb25uZWN0aW9uIHsKLSAgICBGZXRjaFNjcmlwdEluQ2xpZW50KFVSTCB1cmwsIFdlYkNv
cmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6Oldvcmtlck9wdGlvbnMgd29ya2VyT3B0aW9ucykgLT4gKHN0
cnVjdCBXZWJDb3JlOjpXb3JrZXJGZXRjaFJlc3VsdCBmZXRjaFJlc3VsdCkgQXN5bmMKKyAgICBG
ZXRjaFNjcmlwdEluQ2xpZW50KFVSTCB1cmwsIFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElk
ZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Oldv
cmtlck9wdGlvbnMgd29ya2VyT3B0aW9ucykgLT4gKHN0cnVjdCBXZWJDb3JlOjpXb3JrZXJGZXRj
aFJlc3VsdCBmZXRjaFJlc3VsdCkKICAgICBOb3RpZnlXb3JrZXJPYmplY3RPZkxvYWRDb21wbGV0
aW9uKFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2Jq
ZWN0SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBQb3N0RXhj
ZXB0aW9uVG9Xb3JrZXJPYmplY3QoV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmll
ciBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLCBTdHJpbmcgZXJyb3JNZXNzYWdlLCBpbnQg
bGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgU3RyaW5nIHNvdXJjZVVSTCkKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDQxZWYyOTcwYzJhYzhlODJiOGRhODMyZWRjNWFkZmFlMzU0YTkyNTMuLjJiMDJiM2MyMDVh
NzAxZjRiMzMwNGM2MmU2OWE3ZTA4MTQ3Mjk0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMjEsNSArMjEsNSBAQAog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkg
ewotICAgIFBvc3RNZXNzYWdlVG9SZW1vdGUoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBv
cmlnaW4sIFN0cmluZyBuYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMKKyAgICBQb3N0TWVzc2FnZVRvUmVtb3RlKHN0cnVjdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgc3RydWN0IFdlYkNvcmU6
Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UpIC0+ICgpCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVz
c2FnZXMuaW4KaW5kZXggOGI2ZjM0YmVlODU5M2JhNTQyYjBkMjg0MGI2Yzk0Yjc5Mzc0ZjcwMS4u
MjBlYmFiN2YyZmM0MGIzYzc1Yjk0NmU5YmQzODc5ZmNiYjI3ZmVkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gRXZlbnREaXNwYXRjaGVy
IHsKICAgICBXaGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViS2l0
OjpXZWJXaGVlbEV2ZW50IGV2ZW50LCBXZWJDb3JlOjpSZWN0RWRnZXM8Ym9vbD4gcnViYmVyQmFu
ZGFibGVFZGdlcykKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBUb3VjaEV2ZW50
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2
ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBBc3luYyBNYWluVGhyZWFkQ2FsbGJhY2sKKyAgICBUb3Vj
aEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViS2l0OjpXZWJUb3VjaEV2
ZW50IGV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKSBNYWluVGhyZWFkQ2FsbGJhY2sKICAgICBUb3Vj
aEV2ZW50V2l0aG91dENhbGxiYWNrKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
S2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KQogI2VuZGlmCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJF
X0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCmluZGV4IDZmNTI2ZTQ5OTU4YzI2YmU4ZDcxMjI3MDBmOGI1MzVhYzA4
NDYzMDAuLmZjMmQ1YzIyNTQ1NTg5NmUwZTdiMmUwMjkzNjFkMjRiNmZlZjJjZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgpAQCAtMjEsOCArMjEsOCBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJQYWdl
IExlZ2FjeVJlY2VpdmVyIHsKLSAgICBTZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBib29s
IGlzS2V5Ym9hcmRFdmVudFZhbGlkLCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgZXZlbnQpIC0+
ICgpIEFzeW5jCi0gICAgU2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZSwgV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdl
SUQgYWN0aXZpdHlTdGF0ZUNoYW5nZUlEKSAtPiAoKSBBc3luYworICAgIFNldEluaXRpYWxGb2N1
cyhib29sIGZvcndhcmQsIGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIFdlYktpdDo6V2ViS2V5
Ym9hcmRFdmVudCBldmVudCkgLT4gKCkKKyAgICBTZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxX
ZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlLCBXZWJLaXQ6OkFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCBhY3Rpdml0eVN0YXRlQ2hhbmdlSUQpIC0+ICgpCiAgICAgU2V0TGF5
ZXJIb3N0aW5nTW9kZShlbnVtOnVpbnQ4X3QgV2ViS2l0OjpMYXllckhvc3RpbmdNb2RlIGxheWVy
SG9zdGluZ01vZGUpCiAKICAgICBTZXRCYWNrZ3JvdW5kQ29sb3Ioc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpDb2xvcj4gY29sb3IpCkBAIC00NCw3ICs0NCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgIFZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCkKICAgICBWaWV3
V2lsbEVuZExpdmVSZXNpemUoKQogCi0gICAgRXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNr
KFN0cmluZyBuYW1lLCBTdHJpbmcgYXJndW1lbnQpIC0+ICgpIEFzeW5jCisgICAgRXhlY3V0ZUVk
aXRDb21tYW5kV2l0aENhbGxiYWNrKFN0cmluZyBuYW1lLCBTdHJpbmcgYXJndW1lbnQpIC0+ICgp
CiAgICAgS2V5RXZlbnQoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50IGV2ZW50KQogICAgIE1vdXNl
RXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50LCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHNhbmRib3hFeHRlbnNpb25zKQogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC02NywzNyArNjcsMzcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgSW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3Np
dGlvbihXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50KQogICAgIEluc3BlY3Rvck5vZGVTZWFyY2hF
bmRlZEF0UG9zaXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBCbHVyRm9jdXNl
ZEVsZW1lbnQoKQotICAgIFNlbGVjdFdpdGhHZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IHBvaW50
LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1aW50
OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIGJvb2wgaXNJ
bnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4gKFdlYkNvcmU6OkludFBvaW50IHBvaW50
LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1aW50
OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIE9wdGlvblNl
dDxXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzPiBmbGFncykgQXN5bmMKLSAgICBVcGRhdGVTZWxlY3Rp
b25XaXRoVG91Y2hlcyhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktp
dDo6U2VsZWN0aW9uVG91Y2ggdG91Y2hlcywgYm9vbCBiYXNlSXNTdGFydCkgLT4gKFdlYkNvcmU6
OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCB0b3Vj
aCwgT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9uRmxhZ3M+IHNlbGVjdGlvbkZsYWdzKSBBc3lu
YwotICAgIFNlbGVjdFdpdGhUd29Ub3VjaGVzKFdlYkNvcmU6OkludFBvaW50IGZyb20sIFdlYkNv
cmU6OkludFBvaW50IHRvLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJl
VHlwZSwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJl
U3RhdGUpIC0+IChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6
R2VzdHVyZVR5cGUgZ2VzdHVyZVR5cGUsIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyU3RhdGUgZ2VzdHVyZVN0YXRlLCBPcHRpb25TZXQ8V2ViS2l0OjpTZWxlY3Rpb25GbGFn
cz4gc2VsZWN0aW9uRmxhZ3MpIEFzeW5jCi0gICAgRXh0ZW5kU2VsZWN0aW9uKGVudW06dWludDhf
dCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpIC0+ICgpIEFzeW5jCisgICAg
U2VsZWN0V2l0aEdlc3R1cmUoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBX
ZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0
dXJlUmVjb2duaXplclN0YXRlIGdlc3R1cmVTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZv
Y3VzZWRFbGVtZW50KSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBX
ZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0
dXJlUmVjb2duaXplclN0YXRlIGdlc3R1cmVTdGF0ZSwgT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0
aW9uRmxhZ3M+IGZsYWdzKQorICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhUb3VjaGVzKFdlYkNvcmU6
OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCB0b3Vj
aGVzLCBib29sIGJhc2VJc1N0YXJ0KSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06
dWludDhfdCBXZWJLaXQ6OlNlbGVjdGlvblRvdWNoIHRvdWNoLCBPcHRpb25TZXQ8V2ViS2l0OjpT
ZWxlY3Rpb25GbGFncz4gc2VsZWN0aW9uRmxhZ3MpCisgICAgU2VsZWN0V2l0aFR3b1RvdWNoZXMo
V2ViQ29yZTo6SW50UG9pbnQgZnJvbSwgV2ViQ29yZTo6SW50UG9pbnQgdG8sIGVudW06dWludDhf
dCBXZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpH
ZXN0dXJlUmVjb2duaXplclN0YXRlIGdlc3R1cmVTdGF0ZSkgLT4gKFdlYkNvcmU6OkludFBvaW50
IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51
bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIE9w
dGlvblNldDxXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzPiBzZWxlY3Rpb25GbGFncykKKyAgICBFeHRl
bmRTZWxlY3Rpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSkgLT4gKCkKICAgICBTZWxlY3RXb3JkQmFja3dhcmQoKQotICAgIE1vdmVTZWxlY3Rpb25C
eU9mZnNldChpbnQzMl90IG9mZnNldCkgLT4gKCkgQXN5bmMKLSAgICBTZWxlY3RUZXh0V2l0aEdy
YW51bGFyaXR5QXRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdl
YkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0
aEZvY3VzZWRFbGVtZW50KSAtPiAoKSBBc3luYwotICAgIFNlbGVjdFBvc2l0aW9uQXRCb3VuZGFy
eVdpdGhEaXJlY3Rpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJD
b3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGVudW06dWludDhfdCBXZWJDb3JlOjpT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNl
ZEVsZW1lbnQpIC0+ICgpIEFzeW5jCi0gICAgTW92ZVNlbGVjdGlvbkF0Qm91bmRhcnlXaXRoRGly
ZWN0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IGVudW06dWludDhfdCBXZWJDb3JlOjpTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKSAtPiAo
KSBBc3luYwotICAgIFNlbGVjdFBvc2l0aW9uQXRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2lu
dCwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KSAtPiAoKSBBc3luYwotICAg
IEJlZ2luU2VsZWN0aW9uSW5EaXJlY3Rpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlNlbGVjdGlv
bkRpcmVjdGlvbiBkaXJlY3Rpb24pIC0+IChib29sIGVuZElzTW92aW5nKSBBc3luYwotICAgIFVw
ZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgYm9v
bCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBlbnVtOmJvb2wgV2ViS2l0OjpSZXNw
ZWN0U2VsZWN0aW9uQW5jaG9yIHJlc3BlY3RTZWxlY3Rpb25BbmNob3IpIC0+IChib29sIGVuZElz
TW92aW5nKSBBc3luYwotICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludEFuZEJvdW5k
YXJ5KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1l
bnQpIC0+IChib29sIGVuZElzTW92aW5nKSBBc3luYwotICAgIFJlcXVlc3REaWN0YXRpb25Db250
ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3RlZFRleHQsIFN0cmluZyB0ZXh0QmVmb3JlLCBTdHJpbmcg
dGV4dEFmdGVyKSBBc3luYworICAgIE1vdmVTZWxlY3Rpb25CeU9mZnNldChpbnQzMl90IG9mZnNl
dCkgLT4gKCkKKyAgICBTZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludChXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KSAtPiAoKQorICAg
IFNlbGVjdFBvc2l0aW9uQXRCb3VuZGFyeVdpdGhEaXJlY3Rpb24oV2ViQ29yZTo6SW50UG9pbnQg
cG9pbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IGVudW06dWludDhfdCBXZWJDb3JlOjpTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBib29s
IGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+ICgpCisgICAgTW92ZVNlbGVjdGlv
bkF0Qm91bmRhcnlXaXRoRGlyZWN0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIGVudW06dWludDhfdCBXZWJDb3JlOjpTZWxlY3Rpb25EaXJlY3Rp
b24gZGlyZWN0aW9uKSAtPiAoKQorICAgIFNlbGVjdFBvc2l0aW9uQXRQb2ludChXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KSAtPiAo
KQorICAgIEJlZ2luU2VsZWN0aW9uSW5EaXJlY3Rpb24oZW51bTp1aW50OF90IFdlYkNvcmU6OlNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pIC0+IChib29sIGVuZElzTW92aW5nKQorICAgIFVw
ZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgYm9v
bCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBlbnVtOmJvb2wgV2ViS2l0OjpSZXNw
ZWN0U2VsZWN0aW9uQW5jaG9yIHJlc3BlY3RTZWxlY3Rpb25BbmNob3IpIC0+IChib29sIGVuZElz
TW92aW5nKQorICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludEFuZEJvdW5kYXJ5KFdl
YkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+
IChib29sIGVuZElzTW92aW5nKQorICAgIFJlcXVlc3REaWN0YXRpb25Db250ZXh0KCkgLT4gKFN0
cmluZyBzZWxlY3RlZFRleHQsIFN0cmluZyB0ZXh0QmVmb3JlLCBTdHJpbmcgdGV4dEFmdGVyKQog
I2lmIEVOQUJMRShSRVZFQUwpCi0gICAgUmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFu
Z2UoKSAtPiAoV2ViS2l0OjpSZXZlYWxJdGVtIGl0ZW0pIEFzeW5jCi0gICAgUHJlcGFyZVNlbGVj
dGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KFdlYkNvcmU6OkludFBvaW50IHBv
aW50KSAtPiAoYm9vbCBzaG91bGRTaG93TWVudSwgV2ViS2l0OjpSZXZlYWxJdGVtIGl0ZW0pIEFz
eW5jCisgICAgUmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoKSAtPiAoV2ViS2l0
OjpSZXZlYWxJdGVtIGl0ZW0pCisgICAgUHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0
aExvY2F0aW9uSW5WaWV3KFdlYkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAoYm9vbCBzaG91bGRT
aG93TWVudSwgV2ViS2l0OjpSZXZlYWxJdGVtIGl0ZW0pCiAjZW5kaWYKICAgICBSZXBsYWNlRGlj
dGF0ZWRUZXh0KFN0cmluZyBvbGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKICAgICBSZXBsYWNlU2Vs
ZWN0ZWRUZXh0KFN0cmluZyBvbGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKLSAgICBSZXF1ZXN0QXV0
b2NvcnJlY3Rpb25EYXRhKFN0cmluZyB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24pIC0+IChzdHJ1Y3Qg
V2ViS2l0OjpXZWJBdXRvY29ycmVjdGlvbkRhdGEgZGF0YSkgQXN5bmMKLSAgICBBcHBseUF1dG9j
b3JyZWN0aW9uKFN0cmluZyBjb3JyZWN0aW9uLCBTdHJpbmcgb3JpZ2luYWxUZXh0KSAtPiAoU3Ry
aW5nIHN0cmluZykgQXN5bmMKKyAgICBSZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKFN0cmluZyB0
ZXh0Rm9yQXV0b2NvcnJlY3Rpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJBdXRvY29ycmVjdGlv
bkRhdGEgZGF0YSkKKyAgICBBcHBseUF1dG9jb3JyZWN0aW9uKFN0cmluZyBjb3JyZWN0aW9uLCBT
dHJpbmcgb3JpZ2luYWxUZXh0KSAtPiAoU3RyaW5nIHN0cmluZykKICAgICBTeW5jQXBwbHlBdXRv
Y29ycmVjdGlvbihTdHJpbmcgY29ycmVjdGlvbiwgU3RyaW5nIG9yaWdpbmFsVGV4dCkgLT4gKGJv
b2wgYXV0b2NvcnJlY3Rpb25BcHBsaWVkKSBTeW5jaHJvbm91cwogICAgIEhhbmRsZUF1dG9jb3Jy
ZWN0aW9uQ29udGV4dFJlcXVlc3QoKQotICAgIFJlcXVlc3RFdmFzaW9uUmVjdHNBYm92ZVNlbGVj
dGlvbigpIC0+IChWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiByZWN0cykgQXN5bmMKKyAgICBS
ZXF1ZXN0RXZhc2lvblJlY3RzQWJvdmVTZWxlY3Rpb24oKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkZs
b2F0UmVjdD4gcmVjdHMpCiAgICAgR2V0UG9zaXRpb25JbmZvcm1hdGlvbihzdHJ1Y3QgV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KSAtPiAoc3RydWN0IFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIFN5bmNocm9u
b3VzCiAgICAgUmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdCkKICAgICBTdGFydEludGVyYWN0aW9uV2l0
aEVsZW1lbnRDb250ZXh0T3JQb3NpdGlvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0PiBlbGVtZW50Q29udGV4dCwgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAgICAgU3Rv
cEludGVyYWN0aW9uKCkKICAgICBQZXJmb3JtQWN0aW9uT25FbGVtZW50KHVpbnQzMl90IGFjdGlv
bikKLSAgICBGb2N1c05leHRGb2N1c2VkRWxlbWVudChib29sIGlzRm9yd2FyZCkgLT4gKCkgQXN5
bmMKKyAgICBGb2N1c05leHRGb2N1c2VkRWxlbWVudChib29sIGlzRm9yd2FyZCkgLT4gKCkKICAg
ICBBdXRvZmlsbExvZ2luQ3JlZGVudGlhbHMoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dv
cmQpCiAgICAgU2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZShzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENv
bnRleHQgY29udGV4dCwgU3RyaW5nIHZhbHVlKQogICAgIFNldEZvY3VzZWRFbGVtZW50U2VsZWN0
ZWRJbmRleChzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgdWludDMyX3Qg
aW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikKQEAgLTEwOSwzMCArMTA5LDMwIEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIEFwcGxpY2F0aW9uRGlk
RW50ZXJCYWNrZ3JvdW5kRm9yTWVkaWEoYm9vbCBpc1N1c3BlbmRlZFVuZGVyTG9jaykKICAgICBB
cHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmRGb3JNZWRpYShib29sIGlzU3VzcGVuZGVkVW5k
ZXJMb2NrKQogICAgIENvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoU3RyaW5nIGNvbnRlbnRT
aXplQ2F0ZWdvcnkpCi0gICAgR2V0U2VsZWN0aW9uQ29udGV4dCgpIC0+IChTdHJpbmcgc2VsZWN0
ZWRUZXh0LCBTdHJpbmcgdGV4dEJlZm9yZSwgU3RyaW5nIHRleHRBZnRlcikgQXN5bmMKKyAgICBH
ZXRTZWxlY3Rpb25Db250ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3RlZFRleHQsIFN0cmluZyB0ZXh0
QmVmb3JlLCBTdHJpbmcgdGV4dEFmdGVyKQogICAgIFNldEFsbG93c01lZGlhRG9jdW1lbnRJbmxp
bmVQbGF5YmFjayhib29sIGFsbG93cykKICAgICBIYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KFdl
YkNvcmU6OkludFBvaW50IHBvaW50LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZp
ZXI+IG1vZGlmaWVycywgV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCkKICAgICBTZXRG
b3JjZUFsd2F5c1VzZXJTY2FsYWJsZShib29sIHVzZXJTY2FsYWJsZSkKLSAgICBHZXRSZWN0c0Zv
ckdyYW51bGFyaXR5V2l0aFNlbGVjdGlvbk9mZnNldChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBpbnQzMl90IG9mZnNldCkgLT4gKFZlY3RvcjxXZWJD
b3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gcmVjdCkgQXN5bmMKLSAgICBHZXRSZWN0c0F0U2VsZWN0
aW9uT2Zmc2V0V2l0aFRleHQoaW50MzJfdCBvZmZzZXQsIFN0cmluZyB0ZXh0KSAtPiAoVmVjdG9y
PFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5PiByZWN0KSBBc3luYworICAgIEdldFJlY3RzRm9y
R3JhbnVsYXJpdHlXaXRoU2VsZWN0aW9uT2Zmc2V0KGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGludDMyX3Qgb2Zmc2V0KSAtPiAoVmVjdG9yPFdlYkNv
cmU6OlNlbGVjdGlvbkdlb21ldHJ5PiByZWN0KQorICAgIEdldFJlY3RzQXRTZWxlY3Rpb25PZmZz
ZXRXaXRoVGV4dChpbnQzMl90IG9mZnNldCwgU3RyaW5nIHRleHQpIC0+IChWZWN0b3I8V2ViQ29y
ZTo6U2VsZWN0aW9uR2VvbWV0cnk+IHJlY3QpCiAgICAgU3RvcmVTZWxlY3Rpb25Gb3JBY2Nlc3Np
YmlsaXR5KGJvb2wgc2hvdWxkU3RvcmUpCiAgICAgU3RhcnRBdXRvc2Nyb2xsQXRQb3NpdGlvbihX
ZWJDb3JlOjpGbG9hdFBvaW50IHBvc2l0aW9uSW5XaW5kb3cpCiAgICAgQ2FuY2VsQXV0b3Njcm9s
bCgpCi0gICAgUmVxdWVzdEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24oKSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24+IGluZm8pIEFzeW5jCisgICAg
UmVxdWVzdEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24oKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJL
aXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24+IGluZm8pCiAgICAgSGFyZHdhcmVLZXlib2Fy
ZEF2YWlsYWJpbGl0eUNoYW5nZWQoYm9vbCBrZXlib2FyZElzQXR0YWNoZWQpCiAgICAgU2V0SXNT
aG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQoYm9vbCBzaG93aW5nSW5wdXRWaWV3KQot
ICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhEZWx0YShpbnQ2NF90IGxvY2F0aW9uRGVsdGEsIGludDY0
X3QgbGVuZ3RoRGVsdGEpIC0+ICgpIEFzeW5jCi0gICAgUmVxdWVzdERvY3VtZW50RWRpdGluZ0Nv
bnRleHQoc3RydWN0IFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVz
dCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHQgcmVzcG9uc2UpIEFz
eW5jCisgICAgVXBkYXRlU2VsZWN0aW9uV2l0aERlbHRhKGludDY0X3QgbG9jYXRpb25EZWx0YSwg
aW50NjRfdCBsZW5ndGhEZWx0YSkgLT4gKCkKKyAgICBSZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29u
dGV4dChzdHJ1Y3QgV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCByZXF1ZXN0
KSAtPiAoc3RydWN0IFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dCByZXNwb25zZSkKIEdl
bmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhl
dGljRWRpdGluZ0NvbW1hbmRUeXBlIGNvbW1hbmQpCiAgICAgU2V0U2hvdWxkUmV2ZWFsQ3VycmVu
dFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKGJvb2wgc2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlv
bkFmdGVySW5zZXJ0aW9uKQotICAgIEluc2VydFRleHRQbGFjZWhvbGRlcihXZWJDb3JlOjpJbnRT
aXplIHNpemUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBwbGFj
ZWhvbGRlcikgQXN5bmMKLSAgICBSZW1vdmVUZXh0UGxhY2Vob2xkZXIoc3RydWN0IFdlYkNvcmU6
OkVsZW1lbnRDb250ZXh0IHBsYWNlaG9sZGVyKSAtPiAoKSBBc3luYwotICAgIFRleHRJbnB1dENv
bnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KSAtPiAoVmVjdG9yPHN0cnVjdCBX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dD4gY29udGV4dHMpIEFzeW5jCi0gICAgRm9jdXNUZXh0SW5w
dXRDb250ZXh0QW5kUGxhY2VDYXJldChzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29u
dGV4dCwgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCi0g
ICAgQ2xlYXJTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnRPdmVycmlkZSgpIC0+ICgpIEFzeW5jCisg
ICAgSW5zZXJ0VGV4dFBsYWNlaG9sZGVyKFdlYkNvcmU6OkludFNpemUgc2l6ZSkgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IHBsYWNlaG9sZGVyKQorICAgIFJlbW92
ZVRleHRQbGFjZWhvbGRlcihzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgcGxhY2Vob2xk
ZXIpIC0+ICgpCisgICAgVGV4dElucHV0Q29udGV4dHNJblJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0
IHJlY3QpIC0+IChWZWN0b3I8c3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBjb250ZXh0
cykKKyAgICBGb2N1c1RleHRJbnB1dENvbnRleHRBbmRQbGFjZUNhcmV0KHN0cnVjdCBXZWJDb3Jl
OjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkgLT4gKGJv
b2wgc3VjY2VzcykKKyAgICBDbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudE92ZXJyaWRlKCkg
LT4gKCkKICNlbmRpZgogCi0gICAgUmVxdWVzdEltYWdlQml0bWFwKHN0cnVjdCBXZWJDb3JlOjpF
bGVtZW50Q29udGV4dCBlbGVtZW50Q29udGV4dCkgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUgaW1hZ2UsIFN0cmluZyBzb3VyY2VNSU1FVHlwZSkgQXN5bmMKKyAgICBSZXF1ZXN0
SW1hZ2VCaXRtYXAoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGVsZW1lbnRDb250ZXh0
KSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFnZSwgU3RyaW5nIHNvdXJj
ZU1JTUVUeXBlKQogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKICAg
ICBJbnN0YWxsQ3JvcHBlZEltYWdlT3ZlcmxheShzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRl
eHQgZWxlbWVudENvbnRleHQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaW1hZ2VE
YXRhLCBTdHJpbmcgbWltZVR5cGUsIFdlYkNvcmU6OkZsb2F0UmVjdCBub3JtYWxpemVkQ3JvcFJl
Y3QpCkBAIC0xOTAsNyArMTkwLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChl
bnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBMb2Fk
QWx0ZXJuYXRlSFRNTChzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVy
cykKIAogICAgIE5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKFN0cmluZyB1cmws
IFdlYkNvcmU6OkludFBvaW50IGRvY3VtZW50UG9pbnQsIFdlYkNvcmU6OkludFBvaW50IHNjcmVl
blBvaW50KQotICAgIEdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpIC0+IChXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkgQXN5bmMKKyAgICBHZXRQREZG
aXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoV2ViQ29y
ZTo6RmxvYXRTaXplIHNpemUpCiAKICAgICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1
aW50MzJfdCByZWxvYWRPcHRpb25zLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogICAgIFN0b3BMb2FkaW5nKCkKQEAgLTIxNCwyNSArMjE0
LDI1IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktp
dDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgUmVzdG9yZVNlbGVjdGlvbkluRm9j
dXNlZEVkaXRhYmxlRWxlbWVudCgpCiAKICAgICAjIENhbGxiYWNrcy4KLSAgICBHZXRDb250ZW50
c0FzU3RyaW5nKGVudW06Ym9vbCBXZWJLaXQ6OkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMgaW5DaGlsZEZyYW1lcykgLT4gKFN0cmluZyBzdHJpbmcpIEFzeW5jCi0gICAgR2V0QWxs
RnJhbWVzKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkZyYW1lVHJlZU5vZGVEYXRhIG1haW5GcmFtZSkg
QXN5bmMKKyAgICBHZXRDb250ZW50c0FzU3RyaW5nKGVudW06Ym9vbCBXZWJLaXQ6OkNvbnRlbnRB
c1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMgaW5DaGlsZEZyYW1lcykgLT4gKFN0cmluZyBzdHJp
bmcpCisgICAgR2V0QWxsRnJhbWVzKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkZyYW1lVHJlZU5vZGVE
YXRhIG1haW5GcmFtZSkKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBHZXRDb250ZW50c0FzQXR0
cmlidXRlZFN0cmluZygpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZyByZXN1
bHQpIEFzeW5jCisgICAgR2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmcoKSAtPiAoc3RydWN0
IFdlYkNvcmU6OkF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0KQogI2VuZGlmCiAjaWYgRU5BQkxFKE1I
VE1MKQotICAgIEdldENvbnRlbnRzQXNNSFRNTERhdGEoKSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJD
b3B5IGRhdGEpIEFzeW5jCisgICAgR2V0Q29udGVudHNBc01IVE1MRGF0YSgpIC0+IChJUEM6OlNo
YXJlZEJ1ZmZlckNvcHkgZGF0YSkKICNlbmRpZgotICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxJ
UEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGJ1ZmZlcikgQXN5bmMKLSAgICBHZXRSZXNvdXJjZURhdGFG
cm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyByZXNvdXJj
ZVVSTCkgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBidWZmZXIpIEFz
eW5jCi0gICAgR2V0UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oKSAtPiAoU3RyaW5n
IHN0cmluZykgQXN5bmMKLSAgICBHZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoKSAtPiAo
U3RyaW5nIHN0cmluZykgQXN5bmMKLSAgICBHZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKCkg
LT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBkYXRhKSBBc3luYwotICAg
IEdldFNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAo
U3RyaW5nIHN0cmluZykgQXN5bmMKLSAgICBHZXRXZWJBcmNoaXZlT2ZGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZm
ZXJDb3B5PiBkYXRhUmVmZXJlbmNlKSBBc3luYworICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxJ
UEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGJ1ZmZlcikKKyAgICBHZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyByZXNvdXJjZVVSTCkg
LT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBidWZmZXIpCisgICAgR2V0
UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oKSAtPiAoU3RyaW5nIHN0cmluZykKKyAg
ICBHZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoKSAtPiAoU3RyaW5nIHN0cmluZykKKyAg
ICBHZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKCkgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpT
aGFyZWRCdWZmZXJDb3B5PiBkYXRhKQorICAgIEdldFNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoU3RyaW5nIHN0cmluZykKKyAgICBHZXRXZWJBcmNo
aXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKHN0ZDo6b3B0
aW9uYWw8SVBDOjpTaGFyZWRCdWZmZXJDb3B5PiBkYXRhUmVmZXJlbmNlKQogCi0gICAgUnVuSmF2
YVNjcmlwdEluRnJhbWVJblNjcmlwdFdvcmxkKHN0cnVjdCBXZWJDb3JlOjpSdW5KYXZhU2NyaXB0
UGFyYW1ldGVycyBwYXJhbWV0ZXJzLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgc3RkOjpwYWlyPFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllciwg
U3RyaW5nPiB3b3JsZCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHREYXRhLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMpIEFzeW5jCisgICAgUnVu
SmF2YVNjcmlwdEluRnJhbWVJblNjcmlwdFdvcmxkKHN0cnVjdCBXZWJDb3JlOjpSdW5KYXZhU2Ny
aXB0UGFyYW1ldGVycyBwYXJhbWV0ZXJzLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCwgc3RkOjpwYWlyPFdlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmll
ciwgU3RyaW5nPiB3b3JsZCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHREYXRhLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMpCiAKLSAgICBGb3Jj
ZVJlcGFpbnQoKSAtPiAoKSBBc3luYworICAgIEZvcmNlUmVwYWludCgpIC0+ICgpCiAgICAgU2Vs
ZWN0QWxsKCkKICAgICBTY2hlZHVsZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpCiAKQEAgLTI0Myw4
ICsyNDMsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCi0gICAgRGV0ZWN0RGF0YUluQWxsRnJhbWVzKE9wdGlvblNldDxXZWJD
b3JlOjpEYXRhRGV0ZWN0b3JUeXBlPiB0eXBlcykgLT4gKHN0cnVjdCBXZWJLaXQ6OkRhdGFEZXRl
Y3Rpb25SZXN1bHQgcmVzdWx0KSBBc3luYwotICAgIFJlbW92ZURhdGFEZXRlY3RlZExpbmtzKCkg
LT4gKHN0cnVjdCBXZWJLaXQ6OkRhdGFEZXRlY3Rpb25SZXN1bHQgcmVzdWx0KSBBc3luYworICAg
IERldGVjdERhdGFJbkFsbEZyYW1lcyhPcHRpb25TZXQ8V2ViQ29yZTo6RGF0YURldGVjdG9yVHlw
ZT4gdHlwZXMpIC0+IChzdHJ1Y3QgV2ViS2l0OjpEYXRhRGV0ZWN0aW9uUmVzdWx0IHJlc3VsdCkK
KyAgICBSZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcygpIC0+IChzdHJ1Y3QgV2ViS2l0OjpEYXRhRGV0
ZWN0aW9uUmVzdWx0IHJlc3VsdCkKICNlbmRpZgogCiAgICAgQ2hhbmdlRm9udChXZWJDb3JlOjpG
b250Q2hhbmdlcyBjaGFuZ2VzKQpAQCAtMjU4LDE0ICsyNTgsMTQgQEAgR2VuZXJhdGVTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZFR5cGUKICAgICBTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKQogICAg
IFJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCkKIAotICAgIFN1c3BlbmQoKSAt
PiAoYm9vbCBzdWNjZXNzKSBBc3luYwotICAgIFJlc3VtZSgpIC0+IChib29sIHN1Y2Nlc3MpIEFz
eW5jCisgICAgU3VzcGVuZCgpIC0+IChib29sIHN1Y2Nlc3MpCisgICAgUmVzdW1lKCkgLT4gKGJv
b2wgc3VjY2VzcykKIAogICAgIENsb3NlKCkKLSAgICBUcnlDbG9zZSgpIC0+IChib29sIHNob3Vs
ZENsb3NlKSBBc3luYworICAgIFRyeUNsb3NlKCkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpCiAKICAg
ICBTZXRFZGl0YWJsZShib29sIGVkaXRhYmxlKQotICAgIFZhbGlkYXRlQ29tbWFuZChTdHJpbmcg
bmFtZSkgLT4gKGJvb2wgaXNFbmFibGVkLCBpbnQzMl90IHN0YXRlKSBBc3luYworICAgIFZhbGlk
YXRlQ29tbWFuZChTdHJpbmcgbmFtZSkgLT4gKGJvb2wgaXNFbmFibGVkLCBpbnQzMl90IHN0YXRl
KQogICAgIEV4ZWN1dGVFZGl0Q29tbWFuZChTdHJpbmcgbmFtZSwgU3RyaW5nIGFyZ3VtZW50KQog
CiAgICAgSW5jcmVhc2VMaXN0TGV2ZWwoKQpAQCAtMjc2LDcgKzI3Niw3IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAKICAgICBTZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKGJvb2wgbmVlZHNGb250
QXR0cmlidXRlcykKIAotICAgIFJlcXVlc3RGb250QXR0cmlidXRlc0F0U2VsZWN0aW9uU3RhcnQo
KSAtPiAoc3RydWN0IFdlYkNvcmU6OkZvbnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpIEFzeW5jCisg
ICAgUmVxdWVzdEZvbnRBdHRyaWJ1dGVzQXRTZWxlY3Rpb25TdGFydCgpIC0+IChzdHJ1Y3QgV2Vi
Q29yZTo6Rm9udEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKIAogICAgIERpZFJlbW92ZUVkaXRDb21t
YW5kKHVpbnQ2NF90IGNvbW1hbmRJRCkKICAgICBSZWFwcGx5RWRpdENvbW1hbmQodWludDY0X3Qg
Y29tbWFuZElEKQpAQCAtMzEyLDE5ICszMTIsMTkgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
ICAgICBQb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKFN0cmluZyBtZXNzYWdlTmFtZSwgV2ViS2l0
OjpVc2VyRGF0YSBtZXNzYWdlQm9keSkKIAogICAgICMgRmluZC4KLSAgICBGaW5kU3RyaW5nKFN0
cmluZyBzdHJpbmcsIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiBmaW5kT3B0aW9ucywg
dW5zaWduZWQgbWF4TWF0Y2hDb3VudCkgLT4gKGJvb2wgZm91bmQpIEFzeW5jCisgICAgRmluZFN0
cmluZyhTdHJpbmcgc3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gZmluZE9w
dGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIC0+IChib29sIGZvdW5kKQogICAgIEZpbmRT
dHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25z
PiBmaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCkKICAgICBHZXRJbWFnZUZvckZp
bmRNYXRjaCh1aW50MzJfdCBtYXRjaEluZGV4KQogICAgIFNlbGVjdEZpbmRNYXRjaCh1aW50MzJf
dCBtYXRjaEluZGV4KQogICAgIEluZGljYXRlRmluZE1hdGNoKHVpbnQzMl90IG1hdGNoSW5kZXgp
CiAgICAgSGlkZUZpbmRVSSgpCiAgICAgQ291bnRTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcs
IE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiBmaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4
TWF0Y2hDb3VudCkKLSAgICBSZXBsYWNlTWF0Y2hlcyhWZWN0b3I8dWludDMyX3Q+IG1hdGNoSW5k
aWNlcywgU3RyaW5nIHJlcGxhY2VtZW50VGV4dCwgYm9vbCBzZWxlY3Rpb25Pbmx5KSAtPiAodWlu
dDY0X3QgbnVtYmVyT2ZSZXBsYWNlbWVudHMpIEFzeW5jCisgICAgUmVwbGFjZU1hdGNoZXMoVmVj
dG9yPHVpbnQzMl90PiBtYXRjaEluZGljZXMsIFN0cmluZyByZXBsYWNlbWVudFRleHQsIGJvb2wg
c2VsZWN0aW9uT25seSkgLT4gKHVpbnQ2NF90IG51bWJlck9mUmVwbGFjZW1lbnRzKQogCi0gICAg
RmluZFJlY3RzRm9yU3RyaW5nTWF0Y2hlcyhTdHJpbmcgc3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0
OjpGaW5kT3B0aW9ucz4gZmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIC0+IChW
ZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiBtYXRjaGVzKSBBc3luYworICAgIEZpbmRSZWN0c0Zv
clN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlv
bnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KSAtPiAoVmVjdG9yPFdlYkNv
cmU6OkZsb2F0UmVjdD4gbWF0Y2hlcykKICAgICBIaWRlRmluZEluZGljYXRvcigpCiAKLSAgICBG
aW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0PFdl
YktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KSAt
PiAoVmVjdG9yPFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U+IHJhbmdlcykgQXN5bmMKKyAgICBG
aW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0PFdl
YktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KSAt
PiAoVmVjdG9yPFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U+IHJhbmdlcykKICAgICBSZXBsYWNl
Rm91bmRUZXh0UmFuZ2VXaXRoU3RyaW5nKHN0cnVjdCBXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdl
IHJhbmdlLCBTdHJpbmcgc3RyaW5nKQogICAgIERlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKHN0
cnVjdCBXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlIHJhbmdlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpGaW5kRGVjb3JhdGlvblN0eWxlIHN0eWxlKQogICAgIFNjcm9sbFRleHRSYW5nZVRvVmlzaWJs
ZShzdHJ1Y3QgV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZSByYW5nZSkKQEAgLTMzMiw3ICszMzIs
NyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6
OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZEJlZ2luVGV4dFNlYXJjaE9wZXJh
dGlvbigpOwogICAgIERpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKTsKIAotICAgIFJlcXVlc3RS
ZWN0Rm9yRm91bmRUZXh0UmFuZ2Uoc3RydWN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFu
Z2UpIC0+IChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkgQXN5bmMKKyAgICBSZXF1ZXN0UmVjdEZv
ckZvdW5kVGV4dFJhbmdlKHN0cnVjdCBXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlIHJhbmdlKSAt
PiAoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCiAgICAgCiAgICAgQWRkTUlNRVR5cGVXaXRoQ3Vz
dG9tQ29udGVudFByb3ZpZGVyKFN0cmluZyBtaW1lVHlwZSkKIApAQCAtMzUyLDcgKzM1Miw3IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKICAgICBSZXF1ZXN0RHJhZ1N0YXJ0KFdlYkNvcmU6OkludFBvaW50
IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgT3B0aW9u
U2V0PFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24+IGFsbG93ZWRBY3Rpb25zTWFzaykKICAgICBS
ZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oV2ViQ29yZTo6SW50UG9pbnQgY2xp
ZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCBPcHRpb25TZXQ8
V2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbj4gYWxsb3dlZEFjdGlvbnNNYXNrKQotICAgIEluc2Vy
dERyb3BwZWRJbWFnZVBsYWNlaG9sZGVycyhWZWN0b3I8V2ViQ29yZTo6SW50U2l6ZT4gaW1hZ2VT
aXplKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+IGRyb3BQcmV2aWV3UmVjdHMsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+IHRleHRJbmRpY2F0b3IpIEFzeW5j
CisgICAgSW5zZXJ0RHJvcHBlZEltYWdlUGxhY2Vob2xkZXJzKFZlY3RvcjxXZWJDb3JlOjpJbnRT
aXplPiBpbWFnZVNpemUpIC0+IChWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gZHJvcFByZXZpZXdS
ZWN0cywgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4gdGV4dEluZGlj
YXRvcikKICAgICBEaWRDb25jbHVkZURyb3AoKQogI2VuZGlmCiAKQEAgLTQwMiw3ICs0MDIsNyBA
QCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICAjIE1lZGlhU3RlYW0KLSAgICBVc2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKFdlYkNvcmU6OlVz
ZXJNZWRpYVJlcXVlc3RJZGVudGlmaWVyIHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlIGF1ZGlvRGV2aWNlLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHZpZGVvRGV2aWNlLCBTdHJp
bmcgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpIC0+ICgpIEFzeW5jCisgICAgVXNlck1l
ZGlhQWNjZXNzV2FzR3JhbnRlZChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmllciB1
c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBhdWRpb0RldmljZSwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSwgU3RyaW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhh
c2hTYWx0LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKSAtPiAoKQogICAgIFVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZChXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0SWRlbnRpZmllciB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdHJp
bmcgaW52YWxpZENvbnN0cmFpbnQpCiAgICAgQ2FwdHVyZURldmljZXNDaGFuZ2VkKCkKICNpZiBV
U0UoR1NUUkVBTUVSKQpAQCAtNDEyLDQzICs0MTIsNDMgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKICNlbmRpZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICBNZWRpYUtleVN5
c3RlbVdhc0dyYW50ZWQoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciBt
ZWRpYUtleVN5c3RlbUlEKSAtPiAoKSBBc3luYworICAgIE1lZGlhS2V5U3lzdGVtV2FzR3JhbnRl
ZChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIG1lZGlhS2V5U3lzdGVt
SUQpIC0+ICgpCiAgICAgTWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQoV2ViQ29yZTo6TWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0SWRlbnRpZmllciBtZWRpYUtleVN5c3RlbUlELCBTdHJpbmcgbWVzc2FnZSkK
ICNlbmRpZgogCi0gICAgUmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZSgpIC0+IChlbnVtOnVpbnQ4
X3QgV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgc3RhdGUpIEFzeW5jCi0gICAgUGF1c2VBbGxN
ZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKLSAgICBTdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygp
IC0+ICgpIEFzeW5jCi0gICAgUmVzdW1lQWxsTWVkaWFQbGF5YmFjaygpIC0+ICgpIEFzeW5jCisg
ICAgUmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpN
ZWRpYVBsYXliYWNrU3RhdGUgc3RhdGUpCisgICAgUGF1c2VBbGxNZWRpYVBsYXliYWNrKCkgLT4g
KCkKKyAgICBTdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpIC0+ICgpCisgICAgUmVzdW1lQWxsTWVk
aWFQbGF5YmFjaygpIC0+ICgpCiAKICAgICBGcmVlemVMYXllclRyZWVEdWVUb1N3aXBlQW5pbWF0
aW9uKCkKICAgICBVbmZyZWV6ZUxheWVyVHJlZUR1ZVRvU3dpcGVBbmltYXRpb24oKQotICAgIElz
TGF5ZXJUcmVlRnJvemVuKCkgLT4gKGJvb2wgaXNGcm96ZW4pIEFzeW5jCisgICAgSXNMYXllclRy
ZWVGcm96ZW4oKSAtPiAoYm9vbCBpc0Zyb3plbikKIAogICAgICMgUHJpbnRpbmcuCiAgICAgQmVn
aW5QcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktp
dDo6UHJpbnRJbmZvIHByaW50SW5mbykKICAgICBFbmRQcmludGluZygpCi0gICAgQ29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pIC0+IChWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4g
cGFnZVJlY3RzLCBkb3VibGUgdG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBXZWJDb3JlOjpS
ZWN0RWRnZXM8ZmxvYXQ+IGNvbXB1dGVkUGFnZU1hcmdpbikgQXN5bmMKKyAgICBDb21wdXRlUGFn
ZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdl
YktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykgLT4gKFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBw
YWdlUmVjdHMsIGRvdWJsZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIFdlYkNvcmU6OlJl
Y3RFZGdlczxmbG9hdD4gY29tcHV0ZWRQYWdlTWFyZ2luKQogI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIERyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBX
ZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSkgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUgaW1hZ2UpIEFzeW5jCi0gICAgRHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQz
Ml90IGZpcnN0LCB1aW50MzJfdCBjb3VudCkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBkYXRh
KSBBc3luYworICAgIERyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6SW50UmVj
dCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSkgLT4gKFdlYktpdDo6U2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUgaW1hZ2UpCisgICAgRHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVp
bnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBk
YXRhKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaWYgIUhBVkUoVUlLSVRfQkFDS0dST1VO
RF9USFJFQURfUFJJTlRJTkcpCiAgICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdpT1MoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmlu
dEluZm8pIC0+IChzaXplX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgRHJh
d1RvUERGaU9TKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBzaXplX3QgcGFnZUNvdW50KSAtPiAoSVBDOjpTaGFyZWRC
dWZmZXJDb3B5IGRhdGEpIEFzeW5jCisgICAgRHJhd1RvUERGaU9TKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBzaXpl
X3QgcGFnZUNvdW50KSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGRhdGEpCiAjZW5kaWYKLSAg
ICBEcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0PiByZWN0KSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGRh
dGEpIEFzeW5jCisgICAgRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gcmVjdCkgLT4gKElQQzo6U2hhcmVk
QnVmZmVyQ29weSBkYXRhKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIERyYXdQYWdl
c0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
S2l0OjpQcmludEluZm8gcHJpbnRJbmZvKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJv
cikgQXN5bmMKKyAgICBEcmF3UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykgLT4gKFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAjZW5kaWYKIAogICAgICMgTWVkaWEKICAgICBTZXRN
ZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCi0gICAgU2V0TXV0ZWQoT3B0aW9uU2V0PFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlPiBtdXRlZCkgLT4gKCkgQXN5bmMKKyAgICBTZXRNdXRl
ZChPcHRpb25TZXQ8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3RhdGU+IG11dGVkKSAtPiAo
KQogICAgIFNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCBtYXlTdGFydE1lZGlhKQot
ICAgIFN0b3BNZWRpYUNhcHR1cmUoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJN
ZWRpYUNhcHR1cmVLaW5kIGtpbmQpIC0+ICgpIEFzeW5jCisgICAgU3RvcE1lZGlhQ2FwdHVyZShl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlhQ2FwdHVyZUtpbmQga2luZCkg
LT4gKCkKIAogICAgIFNldENhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29sIGNhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICBTZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1
bk1vZGFsKQpAQCAtNDc5LDE2ICs0NzksMTYgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAg
ICBJbnNlcnRUZXh0QXN5bmMoU3RyaW5nIHRleHQsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5n
ZSByZXBsYWNlbWVudFJhbmdlLCBzdHJ1Y3QgV2ViS2l0OjpJbnNlcnRUZXh0T3B0aW9ucyBvcHRp
b25zKQogICAgIEluc2VydERpY3RhdGVkVGV4dEFzeW5jKFN0cmluZyB0ZXh0LCBzdHJ1Y3QgV2Vi
S2l0OjpFZGl0aW5nUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSwgVmVjdG9yPFdlYkNvcmU6OkRpY3Rh
dGlvbkFsdGVybmF0aXZlPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIHN0cnVjdCBXZWJLaXQ6Oklu
c2VydFRleHRPcHRpb25zIG9wdGlvbnMpCiAKLSAgICBIYXNNYXJrZWRUZXh0KCkgLT4gKGJvb2wg
aGFzTWFya2VkVGV4dCkgQXN5bmMKLSAgICBHZXRNYXJrZWRSYW5nZUFzeW5jKCkgLT4gKHN0cnVj
dCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5nZSkgQXN5bmMKLSAgICBHZXRTZWxlY3RlZFJhbmdl
QXN5bmMoKSAtPiAoc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKSBBc3luYwotICAg
IENoYXJhY3RlckluZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkgLT4g
KHVpbnQ2NF90IGxvY2F0aW9uKSBBc3luYwotICAgIEZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdl
QXN5bmMoc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKSAtPiAoV2ViQ29yZTo6SW50
UmVjdCByZWN0LCBzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgYWN0dWFsUmFuZ2UpIEFzeW5j
CisgICAgSGFzTWFya2VkVGV4dCgpIC0+IChib29sIGhhc01hcmtlZFRleHQpCisgICAgR2V0TWFy
a2VkUmFuZ2VBc3luYygpIC0+IChzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmFuZ2UpCisg
ICAgR2V0U2VsZWN0ZWRSYW5nZUFzeW5jKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5n
ZSByYW5nZSkKKyAgICBDaGFyYWN0ZXJJbmRleEZvclBvaW50QXN5bmMoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQpIC0+ICh1aW50NjRfdCBsb2NhdGlvbikKKyAgICBGaXJzdFJlY3RGb3JDaGFyYWN0
ZXJSYW5nZUFzeW5jKHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5nZSkgLT4gKFdlYkNv
cmU6OkludFJlY3QgcmVjdCwgc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIGFjdHVhbFJhbmdl
KQogICAgIFNldENvbXBvc2l0aW9uQXN5bmMoU3RyaW5nIHRleHQsIFZlY3RvcjxXZWJDb3JlOjpD
b21wb3NpdGlvblVuZGVybGluZT4gdW5kZXJsaW5lcywgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0
aW9uSGlnaGxpZ2h0PiBoaWdobGlnaHRzLCBzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2Ugc2Vs
ZWN0aW9uUmFuZ2UsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByZXBsYWNlbWVudFJhbmdl
KQogICAgIENvbmZpcm1Db21wb3NpdGlvbkFzeW5jKCkKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhzdHJ1Y3Qg
V2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmFuZ2UpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXR0cmlidXRl
ZFN0cmluZyBzdHJpbmcsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5nZSkgQXN5bmMK
KyAgICBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhzdHJ1Y3QgV2Vi
S2l0OjpFZGl0aW5nUmFuZ2UgcmFuZ2UpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXR0cmlidXRlZFN0
cmluZyBzdHJpbmcsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5nZSkKICAgICBSZXF1
ZXN0QWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVyLCBXZWJLaXQ6OldlYk1vdXNlRXZl
bnQgZXZlbnQpCiAjZW5kaWYKIApAQCAtNTEyLDExICs1MTIsMTEgQEAgR2VuZXJhdGVTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZFR5cGUKICAgICBTZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IodWludDMyX3QgcGlubmluZykK
ICAgICBTZXRTY3JvbGxiYXJPdmVybGF5U3R5bGUoc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gc2Ny
b2xsYmFyU3R5bGUpCiAKLSAgICBHZXRCeXRlY29kZVByb2ZpbGUoKSAtPiAoU3RyaW5nIHN0cmlu
ZykgQXN5bmMKKyAgICBHZXRCeXRlY29kZVByb2ZpbGUoKSAtPiAoU3RyaW5nIHN0cmluZykKIAot
ICAgIEdldFNhbXBsaW5nUHJvZmlsZXJPdXRwdXQoKSAtPiAoU3RyaW5nIHN0cmluZykgQXN5bmMK
KyAgICBHZXRTYW1wbGluZ1Byb2ZpbGVyT3V0cHV0KCkgLT4gKFN0cmluZyBzdHJpbmcpCiAgICAg
Ci0gICAgVGFrZVNuYXBzaG90KFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RSZWN0LCBXZWJDb3Jl
OjpJbnRTaXplIGJpdG1hcFNpemUsIHVpbnQzMl90IG9wdGlvbnMpIC0+IChXZWJLaXQ6OlNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlKSBBc3luYworICAgIFRha2VTbmFwc2hvdChXZWJDb3Jl
OjpJbnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXplLCB1aW50
MzJfdCBvcHRpb25zKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFnZSkK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3RBdExv
Y2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRpb24pCiAgICAgSW1tZWRpYXRlQWN0aW9u
RGlkVXBkYXRlKCkKQEAgLTU0NCw3ICs1NDQsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
I2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXF1ZXN0QWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvKCkgLT4gKGJvb2wgYWN0aXZlLCBib29sIHJlZ2lzdGVyZWRBc05vd1BsYXlp
bmdBcHBsaWNhdGlvbiwgU3RyaW5nIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFw
c2VkVGltZSwgdWludDY0X3QgdW5pcXVlSWRlbnRpZmllcikgQXN5bmMKKyAgICBSZXF1ZXN0QWN0
aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkgLT4gKGJvb2wgYWN0aXZlLCBib29sIHJlZ2lzdGVy
ZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiwgU3RyaW5nIHRpdGxlLCBkb3VibGUgZHVyYXRpb24s
IGRvdWJsZSBlbGFwc2VkVGltZSwgdWludDY0X3QgdW5pcXVlSWRlbnRpZmllcikKICNlbmRpZgog
CiAgICAgU2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKGJvb2wgc2hvdWxkRGlz
cGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKQpAQCAtNTcxLDcgKzU3MSw3IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAKICAgICBTZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKHVpbnQz
Ml90IGRpcmVjdGlvbikKIAotICAgIERpZEdldExvYWREZWNpc2lvbkZvckljb24oYm9vbCBkZWNp
c2lvbiwgV2ViS2l0OjpDYWxsYmFja0lEIGxvYWRJZGVudGlmaWVyKSAtPiAoSVBDOjpTaGFyZWRC
dWZmZXJDb3B5IGljb25EYXRhKSBBc3luYworICAgIERpZEdldExvYWREZWNpc2lvbkZvckljb24o
Ym9vbCBkZWNpc2lvbiwgV2ViS2l0OjpDYWxsYmFja0lEIGxvYWRJZGVudGlmaWVyKSAtPiAoSVBD
OjpTaGFyZWRCdWZmZXJDb3B5IGljb25EYXRhKQogICAgIFNldFVzZUljb25Mb2FkaW5nQ2xpZW50
KGJvb2wgdXNlSWNvbkxvYWRpbmdDbGllbnQpCiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKQEAgLTU4
Miw3ICs1ODIsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhf
dCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAgICAgUmVnaXN0ZXJVUkxT
Y2hlbWVIYW5kbGVyKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcklkZW50aWZpZXIgaGFuZGxl
cklkZW50aWZpZXIsIFN0cmluZyBzY2hlbWUpCiAKLSAgICBVUkxTY2hlbWVUYXNrV2lsbFBlcmZv
cm1SZWRpcmVjdGlvbihXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJJZGVudGlmaWVyIGhhbmRs
ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgdGFza0lkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBwcm9wb3NlZFJlcXVlc3QpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
YWN0dWFsUmVxdWVzdCkgQXN5bmMKKyAgICBVUkxTY2hlbWVUYXNrV2lsbFBlcmZvcm1SZWRpcmVj
dGlvbihXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJJZGVudGlmaWVyIGhhbmRsZXJJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgdGFza0lkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCBwcm9wb3NlZFJlcXVlc3QpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgYWN0dWFsUmVx
dWVzdCkKICAgICBVUkxTY2hlbWVUYXNrRGlkUGVyZm9ybVJlZGlyZWN0aW9uKFdlYktpdDo6V2Vi
VVJMU2NoZW1lSGFuZGxlcklkZW50aWZpZXIgaGFuZGxlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlTG9hZGVySWRlbnRpZmllciB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHByb3Bvc2VkUmVxdWVz
dCkKICAgICBVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktpdDo6V2ViVVJMU2No
ZW1lSGFuZGxlcklkZW50aWZpZXIgaGFuZGxlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
TG9hZGVySWRlbnRpZmllciB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZXNwb25zZSkKICAgICBVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEoV2ViS2l0OjpXZWJV
UkxTY2hlbWVIYW5kbGVySWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXJJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEJ1ZmZlckNv
cHkgZGF0YSkKQEAgLTU5MSwxNCArNTkxLDE0IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0Nv
bW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAg
ICAgU2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpCiAKICNpZiBFTkFCTEUoQVRUQUNITUVO
VF9FTEVNRU5UKQotICAgIEluc2VydEF0dGFjaG1lbnQoU3RyaW5nIGlkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXplLCBTdHJpbmcgZmlsZU5hbWUsIFN0cmluZyBjb250
ZW50VHlwZSkgLT4gKCkgQXN5bmMKLSAgICBVcGRhdGVBdHRhY2htZW50QXR0cmlidXRlcyhTdHJp
bmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUsIFN0cmluZyBj
b250ZW50VHlwZSwgU3RyaW5nIGZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgZW5jbG9z
aW5nSW1hZ2VEYXRhKSAtPiAoKSBBc3luYworICAgIEluc2VydEF0dGFjaG1lbnQoU3RyaW5nIGlk
ZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXplLCBTdHJpbmcgZmlsZU5h
bWUsIFN0cmluZyBjb250ZW50VHlwZSkgLT4gKCkKKyAgICBVcGRhdGVBdHRhY2htZW50QXR0cmli
dXRlcyhTdHJpbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUs
IFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIGZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckNv
cHkgZW5jbG9zaW5nSW1hZ2VEYXRhKSAtPiAoKQogICAgIFVwZGF0ZUF0dGFjaG1lbnRUaHVtYm5h
aWwoU3RyaW5nIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgcWxU
aHVtYm5haWxIYW5kbGUpCiAgICAgVXBkYXRlQXR0YWNobWVudEljb24oU3RyaW5nIGlkZW50aWZp
ZXIsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaWNvbiwgV2ViQ29yZTo6RmxvYXRT
aXplIHNpemUpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKLSAg
ICBHZXRBcHBsaWNhdGlvbk1hbmlmZXN0KCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QXBw
bGljYXRpb25NYW5pZmVzdD4gbWFuaWZlc3QpIEFzeW5jCisgICAgR2V0QXBwbGljYXRpb25NYW5p
ZmVzdCgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3Q+IG1h
bmlmZXN0KQogI2VuZGlmCiAKICAgICBTZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzTG9hZGlu
ZykKQEAgLTYwNiw4ICs2MDYsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogI2lmIEVOQUJM
RShVSV9QUk9DRVNTX1BERl9IVUQpCiAgICAgWm9vbVBERkluKFdlYktpdDo6UERGUGx1Z2luSWRl
bnRpZmllciBpZGVudGlmaWVyKQogICAgIFpvb21QREZPdXQoV2ViS2l0OjpQREZQbHVnaW5JZGVu
dGlmaWVyIGlkZW50aWZpZXIpCi0gICAgU2F2ZVBERihXZWJLaXQ6OlBERlBsdWdpbklkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKFN0cmluZyBmaWxlbmFtZSwgVVJMIHVybCwgSVBDOjpEYXRhUmVm
ZXJlbmNlIGRhdGEpIEFzeW5jCi0gICAgT3BlblBERldpdGhQcmV2aWV3KFdlYktpdDo6UERGUGx1
Z2luSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoU3RyaW5nIGZpbGVuYW1lLCBzdHJ1Y3QgV2Vi
S2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0
cmluZyB1dWlkKSBBc3luYworICAgIFNhdmVQREYoV2ViS2l0OjpQREZQbHVnaW5JZGVudGlmaWVy
IGlkZW50aWZpZXIpIC0+IChTdHJpbmcgZmlsZW5hbWUsIFVSTCB1cmwsIElQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhKQorICAgIE9wZW5QREZXaXRoUHJldmlldyhXZWJLaXQ6OlBERlBsdWdpbklkZW50
aWZpZXIgaWRlbnRpZmllcikgLT4gKFN0cmluZyBmaWxlbmFtZSwgc3RydWN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSBmcmFtZUluZm8sIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJpbmcgdXVp
ZCkKICNlbmRpZgogCiAgICAgVXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoT3B0aW9uU2V0PFdl
YkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMpCkBAIC02MjQsNyArNjI0
LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKICAgICBXYXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZh
bGVudFJlc291cmNlKCkKICAgICBDbGVhckxvYWRlZFN1YnJlc291cmNlRG9tYWlucygpCi0gICAg
R2V0TG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbj4gZG9tYWlucykgQXN5bmMKKyAgICBHZXRMb2FkZWRTdWJyZXNvdXJjZURvbWFp
bnMoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKQogI2Vu
ZGlmCiAKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCkBAIC02MzMsMTQgKzYzMywxNCBAQCBHZW5l
cmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kVHlwZQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgU2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbihzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2Fn
ZSB1c2VyTWVzc2FnZSkKLSAgICBTZW5kTWVzc2FnZVRvV2ViRXh0ZW5zaW9uV2l0aFJlcGx5KHN0
cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAoc3RydWN0IFdlYktpdDo6
VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBBc3luYworICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRl
bnNpb25XaXRoUmVwbHkoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpIC0+
IChzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSByZXBseU1lc3NhZ2UpCiAjZW5kaWYKIAotICAg
IFN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMoVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpFeGNsdXNpb25SdWxlPiBleGNsdXNpb25SdWxlcykgLT4gKCkgQXN5bmMKLSAg
ICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25JdGVtPiBpdGVtcykgLT4gKGJvb2wgYWxsRmFpbGVk
LCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlv
bkZhaWx1cmU+IGZhaWx1cmVzKSBBc3luYworICAgIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMoVmVj
dG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlPiBl
eGNsdXNpb25SdWxlcykgLT4gKCkKKyAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oVmVjdG9y
PFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25JdGVtPiBp
dGVtcykgLT4gKGJvb2wgYWxsRmFpbGVkLCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvbkZhaWx1cmU+IGZhaWx1cmVzKQogCiAgICAgU2V0T3Zl
cnJpZGRlbk1lZGlhVHlwZShTdHJpbmcgbWVkaWFUeXBlKQotICAgIEdldFByb2Nlc3NEaXNwbGF5
TmFtZSgpIC0+IChTdHJpbmcgZGlzcGxheU5hbWUpIEFzeW5jCisgICAgR2V0UHJvY2Vzc0Rpc3Bs
YXlOYW1lKCkgLT4gKFN0cmluZyBkaXNwbGF5TmFtZSkKIAogICAgIFVwZGF0ZUNPUlNEaXNhYmxp
bmdQYXR0ZXJucyhWZWN0b3I8U3RyaW5nPiBwYXR0ZXJucykKIApAQCAtNjU2LDIxICs2NTYsMjEg
QEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBTZXRBcHBIaWdobGlnaHRzVmlzaWJpbGl0
eShlbnVtOmJvb2wgV2ViQ29yZTo6SGlnaGxpZ2h0VmlzaWJpbGl0eSBoaWdobGlnaHRWaXNpYmls
aXR5KQogI2VuZGlmCiAKLSAgICBEaXNwYXRjaFdoZWVsRXZlbnRXaXRob3V0U2Nyb2xsaW5nKFdl
YktpdDo6V2ViV2hlZWxFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgQXN5bmMKKyAgICBE
aXNwYXRjaFdoZWVsRXZlbnRXaXRob3V0U2Nyb2xsaW5nKFdlYktpdDo6V2ViV2hlZWxFdmVudCBl
dmVudCkgLT4gKGJvb2wgaGFuZGxlZCkKIAotICAgIExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkKCkgLT4gKGJvb2wgd2FzQXBwQm91bmQpIEFzeW5jCisgICAgTGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQoKSAtPiAoYm9vbCB3YXNBcHBCb3VuZCkKIAogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQotICAgIENyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFN0
cmluZyBpZGVudGlmaWVyKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYworICAgIENyZWF0ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yKFN0cmluZyBpZGVudGlmaWVyKSAtPiAoYm9vbCBzdWNjZXNzKQog
ICAgIEludmFsaWRhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICBVcGRhdGVXaXRoVGV4dFJlY29nbml0aW9uUmVzdWx0
KHN0cnVjdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0LCBzdHJ1Y3QgV2Vi
Q29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudCwgV2ViQ29yZTo6RmxvYXRQb2ludCBsb2NhdGlv
bikgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCBy
ZXN1bHQpIEFzeW5jCisgICAgVXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChzdHJ1Y3Qg
V2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0IHJlc3VsdCwgc3RydWN0IFdlYkNvcmU6OkVs
ZW1lbnRDb250ZXh0IGVsZW1lbnQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRpb24pIC0+IChl
bnVtOnVpbnQ4X3QgV2ViS2l0OjpUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQgcmVzdWx0KQog
ICAgIFN0YXJ0SW1hZ2VBbmFseXNpcyhTdHJpbmcgaWRlbnRpZmllcikKICNlbmRpZgogCiAgICAg
U2Nyb2xsVG9SZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRSZWN0LCBXZWJDb3JlOjpGbG9h
dFBvaW50IG9yaWdpbikKIAotICAgIEludGVyYWN0YWJsZVJlZ2lvbnNJblJvb3RWaWV3Q29vcmRp
bmF0ZXMoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpIC0+IChWZWN0b3I8V2ViQ29yZTo6RmxvYXRS
ZWN0PiByZWN0cykgQXN5bmMKKyAgICBJbnRlcmFjdGFibGVSZWdpb25zSW5Sb290Vmlld0Nvb3Jk
aW5hdGVzKFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KSAtPiAoVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UmVjdD4gcmVjdHMpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IGE4MzcxMzA5NDlmMTYyN2MwZjdjMWFhZTIyZTlkZDVhZjFhZGYy
MDQuLmExY2RiM2E3ZDgzZmI1ZjNhM2Y4MGYwMTc4OTIzZWZmY2NiYmVjNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03NCw5ICs3
NCw5IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRl
ZCB7CiAgICAgU2V0SW5qZWN0ZWRCdW5kbGVQYXJhbWV0ZXJzKElQQzo6RGF0YVJlZmVyZW5jZSBw
YXJhbWV0ZXJzKTsKICAgICBIYW5kbGVJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoU3RyaW5nIG1lc3Nh
Z2VOYW1lLCBXZWJLaXQ6OlVzZXJEYXRhIG1lc3NhZ2VCb2R5KTsKIAotICAgIEZldGNoV2Vic2l0
ZURhdGEoT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVz
KSAtPiAoc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIEFzeW5jCi0gICAg
RGVsZXRlV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKSBBc3luYwotICAgIERl
bGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5
cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+
IG9yaWdpbnMpIC0+ICgpIEFzeW5jCisgICAgRmV0Y2hXZWJzaXRlRGF0YShPcHRpb25TZXQ8V2Vi
S2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+IChzdHJ1Y3QgV2ViS2l0
OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKKyAgICBEZWxldGVXZWJzaXRlRGF0YShPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1v
ZGlmaWVkU2luY2UpIC0+ICgpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKE9wdGlv
blNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgLT4gKCkKIAogICAgIFNldEhpZGRl
blBhZ2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiAK
QEAgLTg5LDcgKzg5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBO
b3RSZWZDb3VudGVkIHsKICAgICBFbnN1cmVBdXRvbWF0aW9uU2Vzc2lvblByb3h5KFN0cmluZyBz
ZXNzaW9uSWRlbnRpZmllcikKICAgICBEZXN0cm95QXV0b21hdGlvblNlc3Npb25Qcm94eSgpCiAK
LSAgICBQcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpIEFz
eW5jCisgICAgUHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAo
KQogICAgIFByb2Nlc3NEaWRSZXN1bWUoKQogCiAgICAgQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNz
UGluZygpCkBAIC0xMDAsMTIgKzEwMCwxMiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIEdhbWVwYWREaXNjb25uZWN0ZWQodW5zaWdu
ZWQgaW5kZXgpCiAjZW5kaWYKIAotICAgIEVzdGFibGlzaFJlbW90ZVdvcmtlckNvbnRleHRDb25u
ZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhlbnVtOmJvb2wgV2ViS2l0OjpSZW1vdGVXb3JrZXJUeXBl
IHdvcmtlclR5cGUsIFdlYktpdDo6UGFnZUdyb3VwSWRlbnRpZmllciBwYWdlR3JvdXBJRCwgV2Vi
S2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUgc3Rv
cmUsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJ
ZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEg
aW5pdGlhbGl6YXRpb25EYXRhKSAtPiAoKSBBc3luYworICAgIEVzdGFibGlzaFJlbW90ZVdvcmtl
ckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhlbnVtOmJvb2wgV2ViS2l0OjpSZW1v
dGVXb3JrZXJUeXBlIHdvcmtlclR5cGUsIFdlYktpdDo6UGFnZUdyb3VwSWRlbnRpZmllciBwYWdl
R3JvdXBJRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVu
Y2VzU3RvcmUgc3RvcmUsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2Vydmlj
ZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVXb3JrZXJJbml0aWFs
aXphdGlvbkRhdGEgaW5pdGlhbGl6YXRpb25EYXRhKSAtPiAoKQogCiAgICAgU2V0SGFzU3VzcGVu
ZGVkUGFnZVByb3h5KGJvb2wgaGFzU3VzcGVuZGVkUGFnZVByb3h5KTsKICAgICBTZXRJc0luUHJv
Y2Vzc0NhY2hlKGJvb2wgaXNJblByb2Nlc3NDYWNoZSkKICAgICBNYXJrSXNOb0xvbmdlclByZXdh
cm1lZCgpCi0gICAgR2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZygpIC0+IChWZWN0b3I8
U3RyaW5nPiBhY3RpdmVPcmlnaW5zKSBBc3luYworICAgIEdldEFjdGl2ZVBhZ2VzT3JpZ2luc0Zv
clRlc3RpbmcoKSAtPiAoVmVjdG9yPFN0cmluZz4gYWN0aXZlT3JpZ2lucykKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIFNldFNjcmVlblByb3BlcnRpZXMoc3RydWN0IFdlYkNvcmU6OlNjcmVl
blByb3BlcnRpZXMgc2NyZWVuUHJvcGVydGllcykKQEAgLTEyNyw3ICsxMjcsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIENvbG9y
UHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogI2VuZGlmCiAKLSAgICBJc0pJVEVuYWJsZWQoKSAtPiAo
Ym9vbCBlbmFibGVkKSBBc3luYworICAgIElzSklURW5hYmxlZCgpIC0+IChib29sIGVuYWJsZWQp
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRNZWRpYU1JTUVUeXBlcyhWZWN0b3I8U3Ry
aW5nPiB0eXBlcykKQEAgLTE1MSwxOCArMTUxLDE4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgQ2xlYXJDdXJyZW50TW9kaWZpZXJT
dGF0ZUZvclRlc3RpbmcoKQogCiAgICAgU2V0QmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KHVuc2ln
bmVkIGNhcGFjaXR5KTsKLSAgICBDbGVhckNhY2hlZFBhZ2Uoc3RydWN0IFdlYkNvcmU6OkJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQpIC0+ICgpIEFzeW5jCisgICAg
Q2xlYXJDYWNoZWRQYWdlKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
IGJhY2tGb3J3YXJkSXRlbUlEKSAtPiAoKQogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpCiAgICAgU2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbihzdHJ1Y3QgV2ViS2l0OjpVc2Vy
TWVzc2FnZSB1c2VyTWVzc2FnZSkKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCi0gICAgU2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NGb3JUZXN0
aW5nKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHRoaXJkUGFydHlEb21haW4sIGJvb2wgc2hvdWxkU2NoZWR1bGVO
b3RpZmljYXRpb24pIC0+ICgpIEFzeW5jCi0gICAgU2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSBi
bG9ja2luZ01vZGUpIC0+ICgpIEFzeW5jCisgICAgU2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NG
b3JUZXN0aW5nKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRoaXJkUGFydHlEb21haW4sIGJvb2wgc2hvdWxkU2No
ZWR1bGVOb3RpZmljYXRpb24pIC0+ICgpCisgICAgU2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSBi
bG9ja2luZ01vZGUpIC0+ICgpCiAgICAgU2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24oSGFz
aFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykKLSAgICBTZXREb21haW5z
V2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpIC0+ICgpIEFzeW5jCi0g
ICAgU2VuZFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhSW1tZWRpYXRlbHkoKSAtPiAoKSBBc3lu
YworICAgIFNldERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlu
cykgLT4gKCkKKyAgICBTZW5kUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFJbW1lZGlhdGVseSgp
IC0+ICgpCiAjZW5kaWYKIAogICAgIEdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1vYmlsZUFzc2V0VjJIYW5kbGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDdkZWIyNTJiODM0MjM4MzczMTY5NGI1NThkYWUx
ZjkzODg2MjZiOTAuLjNhNDE2YWQwN2JlMWM3ZWMxZjM0YTA3YzQ3YjRjZGI0MjdmMDBlNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNyw2IEBAIG1lc3Nh
Z2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5
RW51bShXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwg
dW5zaWduZWQgZ3Jhdml0eSkKICAgICBGdWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQog
ICAgIEZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKQotICAgIFJlcXVl
c3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKFdlYktpdDo6UGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OlJv
dXRlU2hhcmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3ksIFN0cmluZyByb3V0aW5nQ29udGV4
dFVJRCkgQXN5bmMKKyAgICBSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChX
ZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkgLT4gKGVu
dW06dWludDhfdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5
LCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQpCiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454004</attachid>
            <date>2022-03-07 11:08:45 -0800</date>
            <delta_ts>2022-03-07 13:00:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237491-20220307110844.patch</filename>
            <type>text/plain</type>
            <size>306214</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg5IEBACisyMDIyLTAzLTA3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHVubmVj
ZXNzYXJ5IEFzeW5jIGF0dHJpYnV0ZSBpbiAubWVzc2FnZXMuaW4gZmlsZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzQ5MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZXJlIGlzIGEgcmVwbHkg
YW5kIG5vICJTeW5jaHJvbm91cyIgdGhlbiB3ZSBjYW4gaW5mZXIgdGhhdCBpdCBpcyBhc3luY2hy
b25vdXMuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1G
YWN0b3J5UHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3Rh
bmNlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFn
ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFS
ZWNvcmRlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpzdGFydEFzeW5jUmV2YWxpZGF0aW9uSWZOZWVkZWQpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAg
ICAobWVzc2FnZV90b19yZXBseV9mb3J3YXJkX2RlY2xhcmF0aW9uKToKKyAgICAgICAgKG1lc3Nh
Z2VfdG9fc3RydWN0X2RlY2xhcmF0aW9uKToKKyAgICAgICAgKGZvcndhcmRfZGVjbGFyYXRpb25z
X2FuZF9oZWFkZXJzX2Zvcl9yZXBsaWVzKToKKyAgICAgICAgKGFzeW5jX21lc3NhZ2Vfc3RhdGVt
ZW50KToKKyAgICAgICAgKHN5bmNfbWVzc2FnZV9zdGF0ZW1lbnQpOgorICAgICAgICAoZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKToKKyAgICAgICAgKGdlbmVyYXRlX21lc3NhZ2VfYXJndW1lbnRf
ZGVzY3JpcHRpb25faW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21v
ZGVsLnB5OgorICAgICAgICAoZ2VuZXJhdGVfZ2xvYmFsX21vZGVsKToKKyAgICAgICAgKiBTaGFy
ZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogU2hh
cmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lz
dGVtLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTZXNz
aW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNoYXJlZFdvcmtlck9iamVjdENvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgor
CiAyMDIyLTAzLTA3ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAg
IERlbGV0ZSBXZWJJREJTZXJ2ZXIgYW5kIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudApJbmRleDog
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkocmV2aXNp
b24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1ZpZXdHZXN0
dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgot
JChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI5MDg5NykK
KysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtp
bmcgY29weSkKQEAgLTQ4NSw5ICs0ODUsNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L1dlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJBdXRoblByb2Nlc3NNZXNz
YWdlc1JlcGxpZXMuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9XZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdl
cy5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkF1dGhu
UHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQvV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkF1dG9tYXRp
b25TZXNzaW9uTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdC9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5oCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw3ICsxNTcsNiBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXAogCVVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5
IFwKIAlVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkgXAotCVVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQ
cm94eSBcCiAJVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eSBcCiAJVUlQcm9jZXNzL1VzZXJD
b250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5IFwKIAlVSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJUHJveHkgXApJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSw5ICsyNSw5IEBACiBtZXNzYWdlcyAtPiBHUFVQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBJbml0aWFsaXplR1BVUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpHUFVQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCiAKLSAgICBDcmVhdGVH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nl
c3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJLaXQ6OkdQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoc3RkOjpvcHRpb25h
bDxJUEM6OkF0dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpH
UFVQcm9jZXNzQ29ubmVjdGlvbkluaXRpYWxpemF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSBB
c3luYworICAgIENyZWF0ZUdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
c3RydWN0IFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnMp
IC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4gY29ubmVjdGlvbklkZW50aWZpZXIs
IHN0cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzIHBhcmFtZXRlcnMpCiAKLSAgICBQcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9u
SW1taW5lbnQpIC0+ICgpIEFzeW5jCisgICAgUHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVu
c2lvbkltbWluZW50KSAtPiAoKQogICAgIFByb2Nlc3NEaWRSZXN1bWUoKQogCiAgICAgQWRkU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NT
ZXNzaW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzKQpAQCAtMzcsNyArMzcsNyBAQCBtZXNzYWdlcyAt
PiBHUFVQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkKGJvb2wgaXNFbmFibGVkKQogICAgIFNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJl
KHVpbnQ2NF90IG9yaWVudGF0aW9uKTsKICAgICBVcGRhdGVTYW5kYm94QWNjZXNzKFZlY3RvcjxX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gZXh0ZW5zaW9ucyk7Ci0gICAgVXBkYXRl
Q2FwdHVyZUFjY2Vzcyhib29sIGFsbG93QXVkaW9DYXB0dXJlLCBib29sIGFsbG93VmlkZW9DYXB0
dXJlLCBib29sIGFsbG93RGlzcGxheUNhcHR1cmUsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IHByb2Nlc3NJRCkgLT4gKCkgQXN5bmMKKyAgICBVcGRhdGVDYXB0dXJlQWNjZXNzKGJvb2wgYWxs
b3dBdWRpb0NhcHR1cmUsIGJvb2wgYWxsb3dWaWRlb0NhcHR1cmUsIGJvb2wgYWxsb3dEaXNwbGF5
Q2FwdHVyZSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lEKSAtPiAoKQogICAg
IFVwZGF0ZUNhcHR1cmVPcmlnaW4oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW5EYXRhLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQpCiAgICAgQWRk
TW9ja01lZGlhRGV2aWNlKHN0cnVjdCBXZWJDb3JlOjpNb2NrTWVkaWFEZXZpY2UgZGV2aWNlKTsK
ICAgICBDbGVhck1vY2tNZWRpYURldmljZXMoKTsKQEAgLTUzLDggKzUzLDggQEAgbWVzc2FnZXMg
LT4gR1BVUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEhBVkUoU0NfQ09O
VEVOVF9TSEFSSU5HX1NFU1NJT04pCi0gICAgU2hvd1dpbmRvd1BpY2tlcigpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZSkgQXN5bmMKLSAgICBTaG93U2Ny
ZWVuUGlja2VyKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gZGV2
aWNlKSBBc3luYworICAgIFNob3dXaW5kb3dQaWNrZXIoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlPiBkZXZpY2UpCisgICAgU2hvd1NjcmVlblBpY2tlcigpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZSkKICNlbmRpZgogCiAj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTg1LDEzICs4NSwxMyBAQCBtZXNzYWdlcyAtPiBH
UFVQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRTYW1wbGVCdWZmZXJDb250ZW50S2V5
U2Vzc2lvblN1cHBvcnRFbmFibGVkKGJvb2wgZW5hYmxlZCk7CiAjZW5kaWYKIAotICAgIFJlcXVl
c3RCaXRtYXBJbWFnZUZvckN1cnJlbnRUaW1lKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHBy
b2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRl
bnRpZmllcikgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlKSBBc3lu
YworICAgIFJlcXVlc3RCaXRtYXBJbWFnZUZvckN1cnJlbnRUaW1lKFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIgcGxheWVySWRlbnRpZmllcikgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUg
aGFuZGxlKQogCiAjaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCiAgICAgTm90aWZ5UHJl
ZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXksIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBlbmNvZGVkVmFsdWUpCiAjZW5kaWYKIAotICAgIFdlYlByb2Nlc3NDb25uZWN0aW9u
Q291bnRGb3JUZXN0aW5nKCkgLT4gKHVpbnQ2NF90IGNvdW50KSBBc3luYworICAgIFdlYlByb2Nl
c3NDb25uZWN0aW9uQ291bnRGb3JUZXN0aW5nKCkgLT4gKHVpbnQ2NF90IGNvdW50KQogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsMTAgQEAKIG1lc3NhZ2VzIC0+IFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIENyZWF0ZUF1
ZGlvRGVzdGluYXRpb24oU3RyaW5nIGlucHV0RGV2aWNlSWQsIHVpbnQzMl90IG51bWJlck9mSW5w
dXRDaGFubmVscywgdWludDMyX3QgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxl
UmF0ZSwgZmxvYXQgaGFyZHdhcmVTYW1wbGVSYXRlLCBJUEM6OlNlbWFwaG9yZSByZW5kZXJTZW1h
cGhvcmUpIC0+IChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkZW50
aWZpZXIpIFN5bmNocm9ub3VzCiAKLSAgICBEZWxldGVBdWRpb0Rlc3RpbmF0aW9uKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgQXN5bmMK
KyAgICBEZWxldGVBdWRpb0Rlc3RpbmF0aW9uKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkKIAotICAgIFN0YXJ0QXVkaW9EZXN0aW5hdGlv
bihXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+
IChib29sIGlzUGxheWluZykgQXN5bmMKLSAgICBTdG9wQXVkaW9EZXN0aW5hdGlvbihXZWJLaXQ6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChib29sIGlz
UGxheWluZykgQXN5bmMKKyAgICBTdGFydEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoYm9vbCBpc1BsYXlpbmcp
CisgICAgU3RvcEF1ZGlvRGVzdGluYXRpb24oV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoYm9vbCBpc1BsYXlpbmcpCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgQXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoV2ViS2l0OjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9y
eVByb3h5LmgJKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBHUFVQcm9jZXNzQ29ubmVj
dGlvbjsKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWwgeyB9CisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKICAgICBib29sIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCiAgICAgLy8gTWVz
c2FnZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAy
OTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFu
Y2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsOCBAQAogCiBt
ZXNzYWdlcyAtPiBSZW1vdGVDRE1JbnN0YW5jZVByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIENy
ZWF0ZVNlc3Npb24odWludDY0X3QgbG9nSWRlbnRpZmllcikgLT4gKFdlYktpdDo6UmVtb3RlQ0RN
SW5zdGFuY2VTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSBTeW5jaHJvbm91cwotICAgIElu
aXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6Q0RNS2V5U3lzdGVtQ29u
ZmlndXJhdGlvbiBjb25maWd1cmF0aW9uLCBlbnVtOmJvb2wgV2ViQ29yZTo6Q0RNSW5zdGFuY2U6
OkFsbG93RGlzdGluY3RpdmVJZGVudGlmaWVycyBkaXN0aW5jdGl2ZUlkZW50aWZpZXJzQWxsb3dl
ZCwgZW51bTpib29sIFdlYkNvcmU6OkNETUluc3RhbmNlOjpBbGxvd1BlcnNpc3RlbnRTdGF0ZSBw
ZXJzaXN0ZW50U3RhdGVBbGxvd2VkKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OkNETUluc3RhbmNl
OjpTdWNjZXNzVmFsdWUgc3VjY2VzcykgQXN5bmMKLSAgICBTZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJ
UEM6OlNoYXJlZEJ1ZmZlckNvcHkgY2VydGlmaWNhdGUpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6
Q0RNSW5zdGFuY2U6OlN1Y2Nlc3NWYWx1ZSBzdWNjZXNzKSBBc3luYworICAgIEluaXRpYWxpemVX
aXRoQ29uZmlndXJhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6Q0RNS2V5U3lzdGVtQ29uZmlndXJhdGlv
biBjb25maWd1cmF0aW9uLCBlbnVtOmJvb2wgV2ViQ29yZTo6Q0RNSW5zdGFuY2U6OkFsbG93RGlz
dGluY3RpdmVJZGVudGlmaWVycyBkaXN0aW5jdGl2ZUlkZW50aWZpZXJzQWxsb3dlZCwgZW51bTpi
b29sIFdlYkNvcmU6OkNETUluc3RhbmNlOjpBbGxvd1BlcnNpc3RlbnRTdGF0ZSBwZXJzaXN0ZW50
U3RhdGVBbGxvd2VkKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OkNETUluc3RhbmNlOjpTdWNjZXNz
VmFsdWUgc3VjY2VzcykKKyAgICBTZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShJUEM6OlNoYXJlZEJ1ZmZl
ckNvcHkgY2VydGlmaWNhdGUpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6Q0RNSW5zdGFuY2U6OlN1
Y2Nlc3NWYWx1ZSBzdWNjZXNzKQogICAgIFNldFN0b3JhZ2VEaXJlY3RvcnkoU3RyaW5nIGRpcmVj
dG9yeSkKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNE
TUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25Qcm94eS5tZXNz
YWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0yNywxMSArMjcsMTEgQEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgU2V0TG9nSWRlbnRpZmllcih1aW50NjRf
dCBsb2dJZGVudGlmaWVyKQotICAgIFJlcXVlc3RMaWNlbnNlKFdlYkNvcmU6OkNETUluc3RhbmNl
U2Vzc2lvbjo6TGljZW5zZVR5cGUgdHlwZSwgQXRvbVN0cmluZyBpbml0RGF0YVR5cGUsIElQQzo6
U2hhcmVkQnVmZmVyQ29weSBpbml0RGF0YSkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBtZXNz
YWdlLCBTdHJpbmcgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRpb24sIGJvb2wg
c3VjY2VlZGVkKSBBc3luYwotICAgIFVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwgV2Vi
Q29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpMaWNlbnNlVHlwZSB0eXBlLCBJUEM6OlNoYXJlZEJ1
ZmZlckNvcHkgcmVzcG9uc2UpIC0+IChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5nZWRL
ZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29sIHN1
Y2NlZWRlZCkgQXN5bmMKLSAgICBMb2FkU2Vzc2lvbihXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Np
b246OkxpY2Vuc2VUeXBlIHR5cGUsIFN0cmluZyBzZXNzaW9uSWQsIFN0cmluZyBvcmlnaW4pIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVj
dG9yPiBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNoYW5nZWRFeHBpcmF0aW9u
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVz
c2FnZSwgYm9vbCBzdWNjZWVkZWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb246OlNlc3Npb25Mb2FkRmFpbHVyZSBsb2FkRmFpbHVyZSkgQXN5bmMKLSAgICBDbG9zZVNl
c3Npb24oU3RyaW5nIHNlc3Npb25JZCkgLT4gKCkgQXN5bmMKLSAgICBSZW1vdmVTZXNzaW9uRGF0
YShTdHJpbmcgc2Vzc2lvbklkLCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VU
eXBlIHR5cGUpIC0+IChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3Rv
ciBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IG1lc3Nh
Z2UsIGJvb2wgc3VjY2VlZGVkKSBBc3luYworICAgIFJlcXVlc3RMaWNlbnNlKFdlYkNvcmU6OkNE
TUluc3RhbmNlU2Vzc2lvbjo6TGljZW5zZVR5cGUgdHlwZSwgQXRvbVN0cmluZyBpbml0RGF0YVR5
cGUsIElQQzo6U2hhcmVkQnVmZmVyQ29weSBpbml0RGF0YSkgLT4gKElQQzo6U2hhcmVkQnVmZmVy
Q29weSBtZXNzYWdlLCBTdHJpbmcgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZpZHVhbGl6YXRp
b24sIGJvb2wgc3VjY2VlZGVkKQorICAgIFVwZGF0ZUxpY2Vuc2UoU3RyaW5nIHNlc3Npb25JZCwg
V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpMaWNlbnNlVHlwZSB0eXBlLCBJUEM6OlNoYXJl
ZEJ1ZmZlckNvcHkgcmVzcG9uc2UpIC0+IChib29sIHNlc3Npb25XYXNDbG9zZWQsIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3I+IGNoYW5n
ZWRLZXlzLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlPiBtZXNzYWdlLCBib29s
IHN1Y2NlZWRlZCkKKyAgICBMb2FkU2Vzc2lvbihXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246
OkxpY2Vuc2VUeXBlIHR5cGUsIFN0cmluZyBzZXNzaW9uSWQsIFN0cmluZyBvcmlnaW4pIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9y
PiBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNoYW5nZWRFeHBpcmF0aW9uLCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbjo6TWVzc2FnZT4gbWVzc2Fn
ZSwgYm9vbCBzdWNjZWVkZWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Np
b246OlNlc3Npb25Mb2FkRmFpbHVyZSBsb2FkRmFpbHVyZSkKKyAgICBDbG9zZVNlc3Npb24oU3Ry
aW5nIHNlc3Npb25JZCkgLT4gKCkKKyAgICBSZW1vdmVTZXNzaW9uRGF0YShTdHJpbmcgc2Vzc2lv
bklkLCBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OkxpY2Vuc2VUeXBlIHR5cGUpIC0+IChX
ZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvciBjaGFuZ2VkS2V5cywg
c3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IG1lc3NhZ2UsIGJvb2wgc3VjY2Vl
ZGVkKQogICAgIFN0b3JlUmVjb3JkT2ZLZXlVc2FnZShTdHJpbmcgc2Vzc2lvbklkKQogICAgIERp
c3BsYXlJRENoYW5nZWQodWludDMyX3QgZGlzcGxheUlEKQogfQpJbmRleDogU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1Qcm94eS5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQog
CiBtZXNzYWdlcyAtPiBSZW1vdGVDRE1Qcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBHZXRTdXBw
b3J0ZWRDb25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpDRE1LZXlTeXN0ZW1Db25maWd1cmF0
aW9uIGNhbmRpZGF0ZUNvbmZpZ3VyYXRpb24sIGVudW06Ym9vbCBXZWJDb3JlOjpDRE1Qcml2YXRl
OjpMb2NhbFN0b3JhZ2VBY2Nlc3MgYWNjZXNzKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpD
RE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uPiBhY2N1bXVsYXRlZENvbmZpZ3VyYXRpb24pIEFzeW5j
CisgICAgR2V0U3VwcG9ydGVkQ29uZmlndXJhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6Q0RNS2V5U3lz
dGVtQ29uZmlndXJhdGlvbiBjYW5kaWRhdGVDb25maWd1cmF0aW9uLCBlbnVtOmJvb2wgV2ViQ29y
ZTo6Q0RNUHJpdmF0ZTo6TG9jYWxTdG9yYWdlQWNjZXNzIGFjY2VzcykgLT4gKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6Q0RNS2V5U3lzdGVtQ29uZmlndXJhdGlvbj4gYWNjdW11bGF0ZWRDb25maWd1
cmF0aW9uKQogICAgIENyZWF0ZUluc3RhbmNlKCkgLT4gKFdlYktpdDo6UmVtb3RlQ0RNSW5zdGFu
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZUNETUluc3RhbmNl
Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKSBTeW5jaHJvbm91cwogICAgIExvYWRBbmRJbml0
aWFsaXplKCkKICAgICBTZXRMb2dJZGVudGlmaWVyKHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9y
eVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5oCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBmcmll
bmQgY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIGZpbmFsIHsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgYm9vbCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgVW5pcXVlUmVmPElQQzo6RW5jb2Rl
cj4mKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5Lm1l
c3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDggKzI0LDggQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3Nh
Z2VzIC0+IFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eSBOb3RSZWZD
b3VudGVkIHsKLSAgICBDcmVhdGVEZWNvZGluZ0NvbmZpZ3VyYXRpb24oc3RydWN0IFdlYkNvcmU6
Ok1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIC0+IChzdHJ1Y3QgV2Vi
Q29yZTo6TWVkaWFDYXBhYmlsaXRpZXNEZWNvZGluZ0luZm8gZGVjb2RpbmdJbmZvKSBBc3luYwot
ICAgIENyZWF0ZUVuY29kaW5nQ29uZmlndXJhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFFbmNv
ZGluZ0NvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikgLT4gKHN0cnVjdCBXZWJDb3JlOjpNZWRp
YUNhcGFiaWxpdGllc0VuY29kaW5nSW5mbyBkZWNvZGluZ0luZm8pIEFzeW5jCisgICAgQ3JlYXRl
RGVjb2RpbmdDb25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpNZWRpYURlY29kaW5nQ29uZmln
dXJhdGlvbiBjb25maWd1cmF0aW9uKSAtPiAoc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ2FwYWJpbGl0
aWVzRGVjb2RpbmdJbmZvIGRlY29kaW5nSW5mbykKKyAgICBDcmVhdGVFbmNvZGluZ0NvbmZpZ3Vy
YXRpb24oc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5jb2RpbmdDb25maWd1cmF0aW9uIGNvbmZpZ3Vy
YXRpb24pIC0+IChzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8g
ZGVjb2RpbmdJbmZvKQogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtMjQsMTEgKzI0LDExIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAt
PiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIFByZXBhcmVGb3JQ
bGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBh
cmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6RHluYW1pY1JhbmdlTW9kZSBtb2RlKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6Okxh
eWVySG9zdGluZ0NvbnRleHRJRD4gaW5saW5lTGF5ZXJIb3N0aW5nQ29udGV4dElkKSBBc3luYwor
ICAgIFByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBwcmVsb2FkLCBib29sIHByZXNlcnZlc1Bp
dGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcsIGZsb2F0IHZpZGVvQ29udGVudFNjYWxlLCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6RHluYW1pY1JhbmdlTW9kZSBtb2RlKSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gaW5saW5lTGF5ZXJIb3N0aW5nQ29u
dGV4dElkKQogCi0gICAgTG9hZChVUkwgdXJsLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiBzYW5kYm94RXh0ZW5zaW9uLCBXZWJDb3JlOjpDb250ZW50VHlw
ZSBjb250ZW50VHlwZSwgU3RyaW5nIGtleVN5c3RlbSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBwbGF5ZXJDb25maWd1cmF0aW9uKSBBc3luYworICAg
IExvYWQoVVJMIHVybCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4gc2FuZGJveEV4dGVuc2lvbiwgV2ViQ29yZTo6Q29udGVudFR5cGUgY29udGVudFR5cGUs
IFN0cmluZyBrZXlTeXN0ZW0pIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQotICAgIExvYWRNZWRpYVNvdXJjZShVUkwgdXJsLCBXZWJDb3JlOjpDb250ZW50VHlwZSBjb250
ZW50VHlwZSwgYm9vbCB3ZWJNUGFyc2VyRW5hYmxlZCwgV2ViS2l0OjpSZW1vdGVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgbWVkaWFTb3VyY2VJZGVudGlmaWVyKSAtPiAoc3RydWN0IFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIHBsYXllckNvbmZpZ3VyYXRpb24pIEFzeW5jCisg
ICAgTG9hZE1lZGlhU291cmNlKFVSTCB1cmwsIFdlYkNvcmU6OkNvbnRlbnRUeXBlIGNvbnRlbnRU
eXBlLCBib29sIHdlYk1QYXJzZXJFbmFibGVkLCBXZWJLaXQ6OlJlbW90ZU1lZGlhU291cmNlSWRl
bnRpZmllciBtZWRpYVNvdXJjZUlkZW50aWZpZXIpIC0+IChzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gcGxheWVyQ29uZmlndXJhdGlvbikKICNlbmRpZgogICAg
IENhbmNlbExvYWQoKQogCkBAIC01NCw3ICs1NCw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlh
UGxheWVyUHJveHkgTm90UmUKICAgICBBY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZChi
b29sIGNhbkJlQWNjZWxlcmF0ZWQpCiAgICAgU2V0U2hvdWxkRGlzYWJsZVNsZWVwKGJvb2wgZGlz
YWJsZSkKICAgICBTZXRSYXRlKGRvdWJsZSByYXRlKQotICAgIERpZExvYWRpbmdQcm9ncmVzcygp
IC0+IChib29sIGZsYWcpIEFzeW5jCisgICAgRGlkTG9hZGluZ1Byb2dyZXNzKCkgLT4gKGJvb2wg
ZmxhZykKIAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBVcGRhdGVW
aWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpCkBAIC0xMDUsNyArMTA1LDcgQEAgbWVzc2FnZXMg
LT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZQogICAgIFZpZGVvVHJhY2tTZXRTZWxlY3Rl
ZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBz
ZWxlY3RlZCkKICAgICBUZXh0VHJhY2tTZXRNb2RlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZTo6TW9kZSBtb2RlKQogCi0gICAgUGVyZm9ybVRhc2tBdE1lZGlhVGltZShNZWRp
YVRpbWUgbWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lIG1lc3NhZ2VUaW1lKSAtPiAoc3RkOjpvcHRp
b25hbDxNZWRpYVRpbWU+IG1lZGlhVGltZSwgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNUaW1lPiBt
b25vdG9uaWNUaW1lKSBBc3luYworICAgIFBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoTWVkaWFUaW1l
IG1lZGlhVGltZSwgTW9ub3RvbmljVGltZSBtZXNzYWdlVGltZSkgLT4gKHN0ZDo6b3B0aW9uYWw8
TWVkaWFUaW1lPiBtZWRpYVRpbWUsIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gbW9ub3Rv
bmljVGltZSkKICAgICBXb3VsZFRhaW50T3JpZ2luKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luKSAtPiAoc3RkOjpvcHRpb25hbDxib29sPiB3b3VsZFRhaW50KSBTeW5j
aHJvbm91cwogCiAgICAgU2V0VmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZhbChkb3Vi
bGUgaW50ZXJ2YWwpCkluZGV4OiBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTI2LDggKzI2LDggQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewotICAgIFJlc3BvbnNlUmVj
ZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250
cm9sQ2hlY2spIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkQ29udGludWVQb2xpY3lDaGVj
ayBzaG91bGRDb250aW51ZSkgQXN5bmMKLSAgICBSZWRpcmVjdFJlY2VpdmVkKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIC0+IChX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmV0dXJuUmVxdWVzdCkgQXN5bmMKKyAgICBSZXNwb25z
ZVJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNz
Q29udHJvbENoZWNrKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OlNob3VsZENvbnRpbnVlUG9saWN5
Q2hlY2sgc2hvdWxkQ29udGludWUpCisgICAgUmVkaXJlY3RSZWNlaXZlZChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJldHVyblJlcXVlc3QpCiAgICAgRGF0YVNlbnQoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBieXRl
c1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKICAgICBEYXRhUmVjZWl2ZWQoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNo
YXJlZE1lbW9yeTo6SVBDSGFuZGxlIGRhdGEpCiAgICAgQWNjZXNzQ29udHJvbENoZWNrRmFpbGVk
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlU291cmNlQnVmZmVyUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtNDEsNyArNDEsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eSBOb3RS
CiAgICAgUmVzZXRUcmFja0J1ZmZlcnMoKQogICAgIENsZWFyVHJhY2tCdWZmZXJzKCkKICAgICBT
ZXRBbGxUcmFja0J1ZmZlcnNOZWVkUmFuZG9tQWNjZXNzKCkKLSAgICBSZW1vdmVDb2RlZEZyYW1l
cyhNZWRpYVRpbWUgc3RhcnQsIE1lZGlhVGltZSBlbmQsIE1lZGlhVGltZSBjdXJyZW50VGltZSwg
Ym9vbCBpc0VuZGVkKSAtPiAoV2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzIGJ1ZmZlcmVkLCB1
aW50NjRfdCB0b3RhbFRyYWNrQnVmZmVyU2l6ZUluQnl0ZXMpIEFzeW5jCisgICAgUmVtb3ZlQ29k
ZWRGcmFtZXMoTWVkaWFUaW1lIHN0YXJ0LCBNZWRpYVRpbWUgZW5kLCBNZWRpYVRpbWUgY3VycmVu
dFRpbWUsIGJvb2wgaXNFbmRlZCkgLT4gKFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcyBidWZm
ZXJlZCwgdWludDY0X3QgdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKQogICAgIEV2aWN0Q29k
ZWRGcmFtZXModWludDY0X3QgbmV3RGF0YVNpemUsIHVpbnQ2NF90IG1heGltdW1CdWZmZXJTaXpl
LCBNZWRpYVRpbWUgY3VycmVudFRpbWUsIE1lZGlhVGltZSBkdXJhdGlvbiwgYm9vbCBpc0VuZGVk
KSAtPiAodWludDY0X3QgdG90YWxUcmFja0J1ZmZlclNpemVJbkJ5dGVzKSBTeW5jaHJvbm91cwog
ICAgIFJlZW5xdWV1ZU1lZGlhSWZOZWVkZWQoTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUpCiAg
ICAgU2V0R3JvdXBTdGFydFRpbWVzdGFtcChNZWRpYVRpbWUgdGltZXN0YW1wKQpAQCAtNTMsOCAr
NTMsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVTb3VyY2VCdWZmZXJQcm94eSBOb3RSCiAgICAgU2V0
QXBwZW5kV2luZG93RW5kKE1lZGlhVGltZSBhcHBlbmRXaW5kb3dFbmQpCiAgICAgU2Vla1RvVGlt
ZShNZWRpYVRpbWUgbWVkaWFUaW1lKQogICAgIFVwZGF0ZVRyYWNrSWRzKFZlY3RvcjxzdGQ6OnBh
aXI8V2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJLaXQ6OlRyYWNrUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXI+PiBpZGVudGlmaWVyUGFpcnMpCi0gICAgQnVmZmVyZWRTYW1w
bGVzRm9yVHJhY2tJZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcmVtb3Rl
SWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHNhbXBsZXMpIEFzeW5jCi0gICAgRW5xdWV1
ZWRTYW1wbGVzRm9yVHJhY2tJRChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
cmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHNhbXBsZXMpIEFzeW5jCisgICAg
QnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJZChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHNhbXBsZXMpCisgICAg
RW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChXZWJLaXQ6OlRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgcmVtb3RlSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHNhbXBsZXMpCiB9CiAK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIubWVzc2FnZXMuaW4J
KHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIgTm90UmVmQ291bnRl
ZCB7Ci0gICAgQ3JlYXRlVW5pdChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SW50ZXJuYWxVbml0SWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDaHVua1NpemUpIEFzeW5j
CisgICAgQ3JlYXRlVW5pdChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0SWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDaHVua1NpemUpCiAgICAgRGVs
ZXRlVW5pdChXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
SWRlbnRpZmllciBpZGVudGlmaWVyKQogCiAgICAgU3RhcnRVbml0KFdlYktpdDo6QXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cywgSVBDOjpTZW1hcGhvcmUgcmVuZGVyU2VtYXBob3JlKQpJbmRleDogU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywxMCArMjcsMTAgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlciBOb3RS
ZWZDbwogICAgIEF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKFdlYktpdDo6U2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKICAgICBBdWRpb1NhbXBs
ZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQogICAg
IFZpZGVvU2FtcGxlQXZhaWxhYmxlKHN0cnVjdCBXZWJLaXQ6OlNoYXJlZFZpZGVvRnJhbWUgZnJh
bWUpCi0gICAgRmV0Y2hEYXRhKCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSBidWZmZXIsIGRvdWJs
ZSB0aW1lQ29kZSkgQXN5bmMKLSAgICBTdG9wUmVjb3JkaW5nKCkgLT4gKCkgQXN5bmMKLSAgICBQ
YXVzZSgpIC0+ICgpIEFzeW5jCi0gICAgUmVzdW1lKCkgLT4gKCkgQXN5bmMKKyAgICBGZXRjaERh
dGEoKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIGJ1ZmZlciwgZG91YmxlIHRpbWVDb2RlKQorICAg
IFN0b3BSZWNvcmRpbmcoKSAtPiAoKQorICAgIFBhdXNlKCkgLT4gKCkKKyAgICBSZXN1bWUoKSAt
PiAoKQogICAgIFNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUoSVBDOjpTZW1hcGhvcmUgc2Vt
YXBob3JlKQogICAgIFNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkoV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSBzdG9yYWdlSGFuZGxlKQogfQpJbmRleDogU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2Fn
ZXMgLT4gUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3Jl
YXRlUmVjb3JkZXIoV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllciBpZCwgYm9vbCBoYXNB
dWRpbywgYm9vbCBoYXNWaWRlbywgc3RydWN0IFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRl
T3B0aW9ucyBvcHRpb25zKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PiBjcmVhdGlvbkVycm9yLCBTdHJpbmcgbWltZVR5cGUsIHVuc2lnbmVkIGF1ZGlvQml0UmF0ZSwg
dW5zaWduZWQgdmlkZW9CaXRSYXRlKSBBc3luYworICAgIENyZWF0ZVJlY29yZGVyKFdlYktpdDo6
TWVkaWFSZWNvcmRlcklkZW50aWZpZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8s
IHN0cnVjdCBXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMgb3B0aW9ucykgLT4g
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gY3JlYXRpb25FcnJvciwgU3Ry
aW5nIG1pbWVUeXBlLCB1bnNpZ25lZCBhdWRpb0JpdFJhdGUsIHVuc2lnbmVkIHZpZGVvQml0UmF0
ZSkKICAgICBSZWxlYXNlUmVjb3JkZXIoV2ViS2l0OjpNZWRpYVJlY29yZGVySWRlbnRpZmllciBp
ZCkKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAogbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBXYW50
c0FzeW5jRGlzcGF0Y2hNZXNzYWdlIHsKLSAgICBDcmVhdGVMYXllcihXZWJLaXQ6OlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWQsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29y
ZTo6SW50U2l6ZSBzaXplKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0Nv
bnRleHRJRD4gY29udGV4dElEKSBBc3luYworICAgIENyZWF0ZUxheWVyKFdlYktpdDo6U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJD
b3JlOjpJbnRTaXplIHNpemUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TGF5ZXJIb3N0aW5n
Q29udGV4dElEPiBjb250ZXh0SUQpCiAgICAgUmVsZWFzZUxheWVyKFdlYktpdDo6U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCkKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw1ICsyMyw1IEBACiBtZXNzYWdlcyAt
PiBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IE5vdFJlZkNvdW50ZWQgewogICAgIFJl
Z2lzdGVyQ2hhbm5lbChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgU3RyaW5n
IG5hbWUpIFdhbnRzQ29ubmVjdGlvbgogICAgIFVucmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSkgV2FudHNDb25uZWN0aW9uCi0g
ICAgUG9zdE1lc3NhZ2Uoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmlu
ZyBuYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkg
LT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisgICAgUG9zdE1lc3NhZ2Uoc3RydWN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgV2FudHNDb25uZWN0aW9uCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9u
IDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDkg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2NlcwogICAgIFBhZ2VMb2Fk
Q29tcGxldGVkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkKICAgICBCcm93c2lu
Z0NvbnRleHRSZW1vdmVkKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJv
eHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgd2ViRnJhbWVJRCkKICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCi0g
ICAgU2VuZEgyUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnMpIC0+IChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1
bHQpIEFzeW5jCisgICAgU2VuZEgyUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChFeHBlY3RlZDxTZWNvbmRzLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yPiByZXN1bHQpCiAgICAgUHJlY29ubmVjdFRvKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyPiBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyk7Ci0gICAgSXNS
ZXNvdXJjZUxvYWRGaW5pc2hlZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgcmVz
b3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKGJvb2wgaXNGaW5pc2hlZCkgQXN5bmMKKyAgICBJc1Jl
c291cmNlTG9hZEZpbmlzaGVkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciByZXNv
dXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoYm9vbCBpc0ZpbmlzaGVkKQogCiAgICAgU3RhcnREb3du
bG9hZChXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFN0cmluZyBzdWdn
ZXN0ZWROYW1lKQogICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcj4gbWFpblJlc291cmNlTG9h
ZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
ZW51bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikKQEAgLTU1LDcgKzU1LDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2NlcwogICAgIFJlZ2lzdGVyQmxvYlVSTEZv
clNsaWNlKFVSTCB1cmwsIFVSTCBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kLCBT
dHJpbmcgY29udGVudFR5cGUpCiAgICAgVW5yZWdpc3RlckJsb2JVUkwoVVJMIHVybCkKICAgICBC
bG9iU2l6ZShVUkwgdXJsKSAtPiAodWludDY0X3QgcmVzdWx0U2l6ZSkgU3luY2hyb25vdXMKLSAg
ICBXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlc0ZvckluZGV4ZWREQihWZWN0b3I8U3RyaW5nPiBi
bG9iVVJMcykgLT4gKFZlY3RvcjxTdHJpbmc+IGZpbGVOYW1lcykgQXN5bmMKKyAgICBXcml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlc0ZvckluZGV4ZWREQihWZWN0b3I8U3RyaW5nPiBibG9iVVJMcykg
LT4gKFZlY3RvcjxTdHJpbmc+IGZpbGVOYW1lcykKICAgICBSZWdpc3RlckJsb2JVUkxIYW5kbGUo
VVJMIHVybCk7CiAgICAgVW5yZWdpc3RlckJsb2JVUkxIYW5kbGUoVVJMIHVybCk7CiAKQEAgLTY5
LDkgKzY5LDkgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2NlcwogI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIFJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAgICBMb2dVc2VySW50ZXJhY3Rpb24oV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NV
cGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBzdGF0aXN0aWNz
KSAtPiAoKSBBc3luYwotICAgIEhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9vbCBoYXNTdG9yYWdlQWNjZXNzKSBBc3luYwotICAgIFJl
cXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJ
RCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBlbnVtOmJv
b2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Njb3BlIHNjb3BlKSAtPiAoc3RydWN0IFdlYkNvcmU6
OlJlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0IHJlc3VsdCkgQXN5bmMKKyAgICBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz4gc3RhdGlzdGljcykgLT4gKCkKKyAgICBIYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFnZUFjY2VzcykKKyAgICBS
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdl
SUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgZW51bTpi
b29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NTY29wZSBzY29wZSkgLT4gKHN0cnVjdCBXZWJDb3Jl
OjpSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdCByZXN1bHQpCiAgICAgUmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NVbmRlck9wZW5lcihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW5Jbk5lZWRP
ZlN0b3JhZ2VBY2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gb3BlbmVyRG9tYWluKQogI2VuZGlmCiAKQEAgLTg0LDE2
ICs4NCwxNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzCiAgICAg
VGFrZU5ldHdvcmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
SWRlbnRpZmllciByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6TmV0d29ya0xv
YWRNZXRyaWNzIG5ldHdvcmtNZXRyaWNzKSBTeW5jaHJvbm91cwogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQotICAgIEVzdGFibGlzaFNXQ29udGV4dENvbm5lY3Rpb24oV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBkb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikgLT4gKCkgQXN5bmMKKyAg
ICBFc3RhYmxpc2hTV0NvbnRleHRDb25uZWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBz
ZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpIC0+ICgpCiAgICAgQ2xvc2VTV0NvbnRleHRDb25u
ZWN0aW9uKCkKICNlbmRpZgogCi0gICAgRXN0YWJsaXNoU2hhcmVkV29ya2VyQ29udGV4dENvbm5l
Y3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNo
U2hhcmVkV29ya2VyQ29udGV4dENvbm5lY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+
ICgpCiAgICAgQ2xvc2VTaGFyZWRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbigpCiAKLSAgICBDcmVh
dGVSVENQcm92aWRlcigpIC0+ICgpIEFzeW5jCisgICAgQ3JlYXRlUlRDUHJvdmlkZXIoKSAtPiAo
KQogI2lmIEVOQUJMRShXRUJfUlRDKQotICAgIENvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVtb3Rl
U291cmNlKHN0cnVjdCBXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBz
dHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGhhbmRsZXIpIC0+IChzdGQ6
Om9wdGlvbmFsPGJvb2w+IHJlc3VsdCkgQXN5bmMKKyAgICBDb25uZWN0VG9SVENEYXRhQ2hhbm5l
bFJlbW90ZVNvdXJjZShzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNv
dXJjZSwgc3RydWN0IFdlYkNvcmU6OlJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyKSAt
PiAoc3RkOjpvcHRpb25hbDxib29sPiByZXN1bHQpCiAjZW5kaWYKIAogICAgIFVwZGF0ZVF1b3Rh
QmFzZWRPblNwYWNlVXNhZ2VGb3JUZXN0aW5nKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4g
b3JpZ2luKQpAQCAtMTAxLDE0ICsxMDEsMTQgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2NlcwogICAgIEVudGFuZ2xlTG9jYWxQb3J0SW5UaGlzUHJvY2Vzc1RvUmVtb3Rl
KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgbG9jYWwsIHN0cnVjdCBXZWJD
b3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcmVtb3RlKQogICAgIE1lc3NhZ2VQb3J0RGlzZW50
YW5nbGVkKHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgbG9jYWwpCiAgICAg
TWVzc2FnZVBvcnRDbG9zZWQoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBs
b2NhbCkKLSAgICBUYWtlQWxsTWVzc2FnZXNGb3JQb3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdl
UG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3Nh
Z2VQb3J0cz4gbWVzc2FnZXMsIHVpbnQ2NF90IG1lc3NhZ2VCYXRjaElkZW50aWZpZXIpIEFzeW5j
CisgICAgVGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVBvcnRJ
ZGVudGlmaWVyIHBvcnQpIC0+IChWZWN0b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHM+IG1lc3NhZ2VzLCB1aW50NjRfdCBtZXNzYWdlQmF0Y2hJZGVudGlmaWVyKQogICAgIFBvc3RN
ZXNzYWdlVG9SZW1vdGUoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1l
c3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcmVtb3RlKQotICAg
IENoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElk
ZW50aWZpZXIgcG9ydCkgLT4gKGJvb2wgaGFzQWN0aXZpdHkpIEFzeW5jCisgICAgQ2hlY2tSZW1v
dGVQb3J0Rm9yQWN0aXZpdHkoc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0SWRlbnRpZmllciBw
b3J0KSAtPiAoYm9vbCBoYXNBY3Rpdml0eSkKICAgICBEaWREZWxpdmVyTWVzc2FnZVBvcnRNZXNz
YWdlcyh1aW50NjRfdCBtZXNzYWdlQmF0Y2hJZGVudGlmaWVyKQogICAgIFJlZ2lzdGVyVVJMU2No
ZW1lc0FzQ09SU0VuYWJsZWQoVmVjdG9yPFN0cmluZz4gc2NoZW1lcyk7CiAgICAgU2V0Q09SU0Rp
c2FibGluZ1BhdHRlcm5zKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBW
ZWN0b3I8U3RyaW5nPiBwYXR0ZXJucykKICNpZiBQTEFURk9STShNQUMpCi0gICAgR2V0UHJvY2Vz
c0Rpc3BsYXlOYW1lKGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbikgLT4gKFN0cmluZyBkaXNwbGF5
TmFtZSkgQXN5bmMKKyAgICBHZXRQcm9jZXNzRGlzcGxheU5hbWUoYXVkaXRfdG9rZW5fdCBhdWRp
dFRva2VuKSAtPiAoU3RyaW5nIGRpc3BsYXlOYW1lKQogICAgIFVwZGF0ZUFjdGl2ZVBhZ2VzKFN0
cmluZyBuYW1lLCBWZWN0b3I8U3RyaW5nPiBhY3RpdmVQYWdlc09yaWdpbnMsIGF1ZGl0X3Rva2Vu
X3QgYXVkaXRUb2tlbikKICNlbmRpZgogICAgIFNldFJlc291cmNlTG9hZFNjaGVkdWxpbmdNb2Rl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgZW51bTp1aW50OF90IFdlYkNvcmU6
OkxvYWRTY2hlZHVsaW5nTW9kZSBtb2RlKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAy
OTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBO
ZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKHN0cnVjdCBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMpCiAKLSAgICBDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllciwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+
IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SFRUUENvb2tpZUFj
Y2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3kpIEFzeW5jCisgICAgQ3JlYXRlTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lk
ZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHN0ZDo6b3B0aW9uYWw8SVBD
OjpBdHRhY2htZW50PiBjb25uZWN0aW9uSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6
OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KQogCiAjaWYgVVNFKFNP
VVApCiAgICAgU2V0SWdub3JlVExTRXJyb3JzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9v
bCBpZ25vcmVUTFNFcnJvcnMpCkBAIC00MiwxOCArNDIsMTggQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZQogICAgIEFkZFdlYnNpdGVEYXRhU3RvcmUoc3RydWN0IFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgd2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnMpOwogICAgIERlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAotICAg
IEZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
S2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6
OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucykgLT4gKHN0cnVjdCBXZWJLaXQ6
OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKSBBc3luYwotICAgIERlbGV0ZVdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBl
PiB3ZWJzaXRlRGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKSBBc3luYwot
ICAgIERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucywgVmVjdG9yPFN0cmluZz4g
Y29va2llSG9zdE5hbWVzLCBWZWN0b3I8U3RyaW5nPiBIU1RTQ2FjaGVIb3N0TmFtZXMsIFZlY3Rv
cjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gcmVnaXN0cmFibGVEb21haW5zKSAtPiAoKSBB
c3luYwotICAgIFJlbmFtZU9yaWdpbkluV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgb2xkRG9tYWluLCBVUkwgbmV3RG9tYWluLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJz
aXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+ICgpIEFzeW5jCisgICAgRmV0Y2hXZWJz
aXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zKSAtPiAoc3RydWN0IFdlYktpdDo6V2Vic2l0ZURh
dGEgd2Vic2l0ZURhdGEpCisgICAgRGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlw
ZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpIC0+ICgpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vi
c2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiBvcmlnaW5zLCBWZWN0b3I8U3RyaW5nPiBjb29raWVIb3N0TmFtZXMsIFZlY3Rv
cjxTdHJpbmc+IEhTVFNDYWNoZUhvc3ROYW1lcywgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluPiByZWdpc3RyYWJsZURvbWFpbnMpIC0+ICgpCisgICAgUmVuYW1lT3JpZ2luSW5XZWJz
aXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBvbGREb21haW4sIFVSTCBuZXdE
b21haW4sIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBl
cykgLT4gKCkKIAogICAgIERvd25sb2FkUmVxdWVzdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgZW51bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgU3RyaW5nIHN1Z2dlc3Rl
ZEZpbGVuYW1lKQogICAgIFJlc3VtZURvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bWVE
YXRhLCBTdHJpbmcgcGF0aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSwgZW51bTpib29sIFdlYktpdDo6Q2FsbERvd25sb2FkRGlkU3RhcnQg
Y2FsbERvd25sb2FkRGlkU3RhcnQpCi0gICAgQ2FuY2VsRG93bmxvYWQoV2ViS2l0OjpEb3dubG9h
ZElEIGRvd25sb2FkSUQpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdW1lRGF0YSkgQXN5bmMK
KyAgICBDYW5jZWxEb3dubG9hZChXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCkgLT4gKElQ
Qzo6RGF0YVJlZmVyZW5jZSByZXN1bWVEYXRhKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFB1
Ymxpc2hEb3dubG9hZFByb2dyZXNzKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBVUkwg
dXJsLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKQogI2VuZGlmCi0gICAgRGF0YVRhc2tXaXRoUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXIgcGFnZUlELCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5
KSAtPiAoV2ViS2l0OjpEYXRhVGFza0lkZW50aWZpZXIgdGFza0lkZW50aWZpZXIpIEFzeW5jCisg
ICAgRGF0YVRhc2tXaXRoUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFn
ZUlELCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KSAtPiAoV2ViS2l0OjpE
YXRhVGFza0lkZW50aWZpZXIgdGFza0lkZW50aWZpZXIpCiAgICAgQ2FuY2VsRGF0YVRhc2soV2Vi
S2l0OjpEYXRhVGFza0lkZW50aWZpZXIgdGFza0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICBBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpCiAgICAgQXBwbGlj
YXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkKQEAgLTY1LDcgKzY1LDcgQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZQogI2VuZGlmCiAgICAgU2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCBlbmFibGVkKSAtPiAoKSBTeW5jaHJvbm91cwog
Ci0gICAgRmx1c2hDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMK
KyAgICBGbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQogCiAgICAg
QWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbyBjZXJ0aWZpY2F0ZSwgU3RyaW5nIGhvc3QpCiAgICAgQWxsb3dUTFNDZXJ0aWZpY2F0ZUNo
YWluRm9yTG9jYWxQQ01UZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKQpAQCAtNzQsNzkgKzc0LDc5IEBAIG1lc3NhZ2Vz
IC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmUKICAgICBTZXRDYWNoZU1vZGVsU3luY2hy
b25vdXNseUZvclRlc3RpbmcoZW51bTp1aW50OF90IFdlYktpdDo6Q2FjaGVNb2RlbCBjYWNoZU1v
ZGVsKSAtPiAoKSBTeW5jaHJvbm91cwogCiAgICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eUZvclRlc3RpbmdTeW5jKCkgLT4gKCkgU3luY2hyb25vdXMKLSAgICBQcmVwYXJlVG9TdXNwZW5k
KGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpIEFzeW5jCisgICAgUHJlcGFyZVRvU3Vz
cGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKQogICAgIFByb2Nlc3NEaWRSZXN1
bWUoKQogCiAgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhf
dCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgZW51bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQp
OwogCiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgQ2xl
YXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIENsZWFyVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgRHVtcFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIGR1bXBlZFN0
YXRpc3RpY3MpIEFzeW5jCisgICAgQ2xlYXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAt
PiAoKQorICAgIENsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpCisgICAgRHVt
cFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoU3Ry
aW5nIGR1bXBlZFN0YXRpc3RpY3MpCiAgICAgU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGVuYWJsZWQpCiAgICAgU2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudChib29sIGVuYWJsZWQpCi0gICAgVXBkYXRl
UHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zVG9CbG9jaykgLT4g
KCkgQXN5bmMKLSAgICBJc0dyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pIC0+IChib29sIGlzR3JhbmRm
YXRoZXJlZCkgQXN5bmMKLSAgICBJc1ByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9v
bCBpc1ByZXZhbGVudCkgQXN5bmMKLSAgICBJc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFp
bikgLT4gKGJvb2wgaXNWZXJ5UHJldmFsZW50KSBBc3luYwotICAgIFNldEFnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNv
bmRzPiBzZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIFNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFNl
Y29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBNZXJnZVN0YXRpc3RpY0ZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNv
dXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4xLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNl
ZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVy
eVByZXZhbGVudCwgdWludDY0X3QgZGF0YVJlY29yZHNSZW1vdmVkKSAtPiAoKSBBc3luYwotICAg
IEluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51
bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkg
LT4gKCkgQXN5bmMKLSAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBB
c3luYwotICAgIFNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+
ICgpIEFzeW5jCi0gICAgSXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgaXNFcGhlbWVyYWwpIEFzeW5jCi0gICAgSGFkVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikgQXN5
bmMKLSAgICBJc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkRvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gdG9wRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24p
IEFzeW5jCi0gICAgSGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJ
bnRlcmFjdGlvbikgQXN5bmMKLSAgICBHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8U3RyaW5nPiBkb21haW5zKSBBc3luYwotICAg
IElzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+IChib29sIGlzUmVkaXJlY3Rp
bmdUbykgQXN5bmMKLSAgICBJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzU3Vi
ZnJhbWVVbmRlcikgQXN5bmMKLSAgICBJc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNv
dXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+
IChib29sIGlzU3VicmVzb3VyY2VVbmRlcikgQXN5bmMKLSAgICBEb21haW5JREV4aXN0c0luRGF0
YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBpbnQgZG9tYWluSUQpIC0+IChib29sIGV4
aXN0cykgQXN5bmMKKyAgICBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3Io
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4+IGRvbWFpbnNUb0Jsb2NrKSAtPiAoKQorICAgIElzR3JhbmRmYXRoZXJlZChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikg
LT4gKGJvb2wgaXNHcmFuZGZhdGhlcmVkKQorICAgIElzUHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21h
aW4pIC0+IChib29sIGlzUHJldmFsZW50KQorICAgIElzVmVyeVByZXZhbGVudFJlc291cmNlKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0
RG9tYWluKSAtPiAoYm9vbCBpc1ZlcnlQcmV2YWxlbnQpCisgICAgU2V0QWdlQ2FwRm9yQ2xpZW50
U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29u
ZHM+IHNlY29uZHMpIC0+ICgpCisgICAgU2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgU2Vjb25kcyBz
ZWNvbmRzKSAtPiAoKQorICAgIE1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRV
c2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBp
c0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1
aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpCisgICAgSW5zZXJ0RXhwaXJlZFN0YXRp
c3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgdWludDY0X3QgbnVtYmVyT2ZPcGVyYXRpbmdEYXlz
UGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1
dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSAtPiAoKQorICAgIFNldFByZXZh
bGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpCisgICAgU2V0UHJldmFsZW50UmVzb3VyY2VG
b3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkKKyAgICBJc1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFcGhlbWVyYWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBpc0VwaGVtZXJh
bCkKKyAgICBIYWRVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKGJvb2wgaGFkVXNlcklu
dGVyYWN0aW9uKQorICAgIElzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRl
cmFjdGlvbikKKyAgICBIYXNMb2NhbFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uKQorICAgIEdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMpCisgICAgSXNSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKGJvb2wgaXNSZWRpcmVjdGluZ1RvKQorICAg
IElzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgaXNTdWJmcmFtZVVuZGVyKQorICAg
IElzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgaXNTdWJyZXNvdXJjZVVu
ZGVyKQorICAgIERvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGludCBkb21haW5JRCkgLT4gKGJvb2wgZXhpc3RzKQogICAgIExvZ0ZyYW1lTmF2aWdhdGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRh
cmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBi
b29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQs
IGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCi0gICAgTG9nVXNlckludGVyYWN0
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgUmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0
VmFsdWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSAgICBTY2hlZHVs
ZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3Rk
OjpvcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgZW51bTpib29sIFdlYktpdDo6U2hv
dWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdyYW5kZmF0aGVyKSAtPiAoKSBBc3luYwot
ICAgIFNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSAtPiAoKSBBc3luYwotICAgIFNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vz
c2luZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU3RhdGlzdGlj
c0RhdGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wg
aGFzQWxsVGFibGVzKSBBc3luYwotICAgIFNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVz
b3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBB
c3luYwotICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0aGVy
ZWQpIC0+ICgpIEFzeW5jCi0gICAgR2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFTdW1tYXJ5
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGE+IHRoaXJkUGFydHlEYXRhKSBBc3lu
YwotICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNl
Y29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50KSAtPiAo
KSBBc3luYwotICAgIFNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBT
ZXRQcnVuZUVudHJpZXNEb3duVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBt
YXhpbXVtRW50cnlDb3VudCkgLT4gKCkgQXN5bmMKLSAgICBTZXRTaG91bGRDbGFzc2lmeVJlc291
cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJv
b2wgdmFsdWUpIC0+ICgpIEFzeW5jCi0gICAgU2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFz
eW5jCi0gICAgU2V0SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBBc3luYwotICAgIFNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGRl
YnVnTW9kZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURv
bWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFt
ZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgp
IEFzeW5jCi0gICAgU2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3lu
YwotICAgIFNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpIEFzeW5jCi0g
ICAgU2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4pIC0+ICgpIEFzeW5jCi0g
ICAgU2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRv
RG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWlu
KSAtPiAoKSBBc3luYwotICAgIFJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJj
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYworICAgIExvZ1VzZXJJbnRl
cmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHRvcEZyYW1lRG9tYWluKSAtPiAoKQorICAgIFJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZh
bHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCisgICAgU2NoZWR1bGVDbGVhcklu
TWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9u
YWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2UsIGVudW06Ym9vbCBXZWJLaXQ6OlNob3VsZEdyYW5k
ZmF0aGVyU3RhdGlzdGljcyBzaG91bGRHcmFuZGZhdGhlcikgLT4gKCkKKyAgICBTY2hlZHVsZUNv
b2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKKyAgICBT
Y2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSAtPiAoKQorICAgIFN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGhhc0FsbFRhYmxlcykKKyAgICBTZXRDYWNo
ZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFNlY29uZHMgc2Vjb25kcykgLT4gKCkKKyAgICBTZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4s
IGJvb2wgaXNHcmFuZGZhdGhlcmVkKSAtPiAoKQorICAgIEdldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhU3VtbWFyeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhPiB0aGlyZFBh
cnR5RGF0YSkKKyAgICBTZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpCisgICAgU2V0TWF4U3RhdGlzdGljc0VudHJpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCkgLT4g
KCkKKyAgICBTZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpCisgICAgU2V0UHJ1bmVFbnRy
aWVzRG93blRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5
Q291bnQpIC0+ICgpCisgICAgU2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVj
b3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKQor
ICAgIFNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKQorICAgIFNldElzUnVubmluZ1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkg
LT4gKCkKKyAgICBTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUpIC0+ICgpCisgICAgU2V0VmVyeVByZXZhbGVu
dFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpCisgICAgU2V0U3ViZnJhbWVVbmRlclRvcEZyYW1l
RG9tYWluKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9t
YWluKSAtPiAoKQorICAgIFNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNl
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkK
KyAgICBTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoKQorICAgIFNldFN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluKSAtPiAoKQorICAgIFNldFRpbWVUb0xp
dmVVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29u
ZHMpIC0+ICgpCisgICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkKKyAgICBT
ZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbikgLT4gKCkKKyAgICBSZXNldENhY2hlTWF4
QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KCkKICAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlcihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZyb21Eb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvRG9tYWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6Q3Jv
c3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gbmF2aWdhdGlvbkRhdGFUcmFuc2Zl
ciwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCi0gICAgU2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5r
RGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
b0RvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBSZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNv
cmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0g
ICAgRGVsZXRlQ29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4sIGJvb2wgaW5jbHVkZUh0dHBPbmx5Q29va2ll
cykgLT4gKCkgQXN5bmMKLSAgICBIYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+IChib29sIGhhc0lz
b2xhdGVkU2Vzc2lvbikgQXN5bmMKLSAgICBDbG9zZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBTZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNv
cmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIGZyb21Eb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvRG9t
YWluKSAtPiAoKQorICAgIFJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKKyAgICBEZWxldGVDb29raWVz
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIGRvbWFpbiwgYm9vbCBpbmNsdWRlSHR0cE9ubHlDb29raWVzKSAtPiAoKQorICAgIEhh
c0lzb2xhdGVkU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIGRvbWFpbikgLT4gKGJvb2wgaGFzSXNvbGF0ZWRTZXNzaW9uKQorICAgIENs
b3NlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQogI2lmIEVOQUJM
RShBUFBfQk9VTkRfRE9NQUlOUykKLSAgICBTZXRBcHBCb3VuZERvbWFpbnNGb3JSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSGFzaFNldDxXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbj4gYXBwQm91bmREb21haW5zKSAtPiAoKSBBc3luYworICAgIFNldEFw
cEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBhcHBCb3VuZERvbWFp
bnMpIC0+ICgpCiAjZW5kaWYKLSAgICBTZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3Rp
bmcoYm9vbCBlbmFibGVkKSAtPiAoKSBBc3luYwotICAgIFNldFRoaXJkUGFydHlDb29raWVCbG9j
a2luZ01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSBibG9ja2luZ01vZGUpIC0+ICgpIEFzeW5jCi0g
ICAgU2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50RW5hYmxlZCBlbmFibGVkKSAtPiAoKSBBc3luYwotICAgIFNldEZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBt
b2RlKSAtPiAoKSBBc3luYwotICAgIFNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRv
bWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBmaXJzdFBhcnR5SG9zdCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gY25hbWVEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0
VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRT
aG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcoYm9vbCBlbmFibGVkKSAtPiAoKQorICAg
IFNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSBibG9j
a2luZ01vZGUpIC0+ICgpCisgICAgU2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06Ym9vbCBXZWJDb3Jl
OjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkKSAtPiAoKQorICAgIFNl
dEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFS
ZW1vdmFsTW9kZSBtb2RlKSAtPiAoKQorICAgIFNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIGRvbWFpbikgLT4gKCkKKyAgICBTZXRGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBmaXJzdFBhcnR5SG9zdCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gY25hbWVEb21haW4pIC0+ICgpCisgICAgU2V0VGhpcmRQ
YXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikgLT4gKCkKICNlbmRpZgogCiAgICAgU2V0UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBi
b29sIGRlYnVnTW9kZSkKQEAgLTE1OCw1MCArMTU4LDUwIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQ
cm9jZXNzIExlZ2FjeVJlY2VpdmUKICAgICBSZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoU3RyaW5n
IHNjaGVtZSkKICAgICBSZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoU3RyaW5nIHNjaGVtZSkK
IAotICAgIFN5bmNMb2NhbFN0b3JhZ2UoKSAtPiAoKSBBc3luYworICAgIFN5bmNMb2NhbFN0b3Jh
Z2UoKSAtPiAoKQogCiAgICAgU3RvcmVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IHByaXZhdGVD
bGlja01lYXN1cmVtZW50KQotICAgIER1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0
ZSkgQXN5bmMKLSAgICBDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92
ZXJyaWRlVGltZXJGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1
ZSkgLT4gKCkgQXN5bmMKLSAgICBNYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50
c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3lu
YwotICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMK
LSAgICBTaW11bGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50U2Vzc2lvblJlc3RhcnQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwotICAgIFNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVVJMIHVybCkgLT4gKCkgQXN5bmMKLSAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRv
a2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1
cmwpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blJlcG9ydFVSTHNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHNvdXJj
ZVVSTCwgVVJMIGRlc3RpbmF0aW9uVVJMKSAtPiAoKSBBc3luYwotICAgIE1hcmtQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKLSAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHNlY3JldFRva2VuLCBTdHJpbmcgdW5s
aW5rYWJsZVRva2VuLCBTdHJpbmcgc2lnbmF0dXJlLCBTdHJpbmcga2V5SUQpIC0+ICgpIEFzeW5j
Ci0gICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgYXBwQnVuZGxlSURGb3JUZXN0aW5nKSAtPiAo
KSBBc3luYwotICAgIENsb3NlUENNRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAt
PiAoKSBBc3luYworICAgIER1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZSkKKyAg
ICBDbGVhclByaXZhdGVDbGlja01lYXN1cmVtZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKCkKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE92ZXJyaWRlVGltZXJGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkKKyAgICBNYXJr
QXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQorICAgIFNldFByaXZhdGVDbGlja01lYXN1cmVt
ZW50RXBoZW1lcmFsTWVhc3VyZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgYm9vbCB2YWx1ZSkgLT4gKCkKKyAgICBTaW11bGF0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50
U2Vzc2lvblJlc3RhcnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQorICAgIFNldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50VG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCkgLT4gKCkKKyAgICBTZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFVSTCB1cmwpIC0+ICgpCisgICAgU2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1
dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHNv
dXJjZVVSTCwgVVJMIGRlc3RpbmF0aW9uVVJMKSAtPiAoKQorICAgIE1hcmtQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKCkKKyAgICBTZXRQQ01GcmF1ZFByZXZlbnRpb25WYWx1ZXNGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHNlY3JldFRva2VuLCBTdHJpbmcgdW5saW5rYWJsZVRv
a2VuLCBTdHJpbmcgc2lnbmF0dXJlLCBTdHJpbmcga2V5SUQpIC0+ICgpCisgICAgU2V0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBTdHJpbmcgYXBwQnVuZGxlSURGb3JUZXN0aW5nKSAtPiAoKQorICAgIENsb3NlUENN
RGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQogCiAgICAgU2V0U2Vydmlj
ZVdvcmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBTeW5j
aHJvbm91cwogICAgIFJlc2V0U2VydmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoKSAt
PiAoKSBTeW5jaHJvbm91cwogCi0gICAgUmVzZXRRdW90YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpIC0+ICgpIEFzeW5jCi0gICAgQ2xlYXJTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgLT4gKCkgQXN5bmMKKyAgICBSZXNldFF1b3RhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKCkKKyAgICBDbGVhclN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKQog
ICAgIERpZEluY3JlYXNlUXVvdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgV2ViS2l0OjpRdW90YUluY3JlYXNlUmVxdWVzdElk
ZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbmV3UXVvdGEpCiAg
ICAgCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotICAgIEhhc0FwcEJvdW5kU2Vzc2lv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGhhc0FwcEJvdW5kU2Vzc2lvbikg
QXN5bmMKLSAgICBDbGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
IC0+ICgpIEFzeW5jCisgICAgSGFzQXBwQm91bmRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKGJvb2wgaGFzQXBwQm91bmRTZXNzaW9uKQorICAgIENsZWFyQXBwQm91bmRTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIERpc2FibGVTZXJ2
aWNlV29ya2VyRW50aXRsZW1lbnQoKQotICAgIENsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50
T3ZlcnJpZGUoKSAtPiAoKSBBc3luYworICAgIENsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50
T3ZlcnJpZGUoKSAtPiAoKQogI2VuZGlmCi0gICAgVXBkYXRlQnVuZGxlSWRlbnRpZmllcihTdHJp
bmcgYnVuZGxlSWRlbnRpZmllcikgLT4gKCkgQXN5bmMKLSAgICBDbGVhckJ1bmRsZUlkZW50aWZp
ZXIoKSAtPiAoKSBBc3luYworICAgIFVwZGF0ZUJ1bmRsZUlkZW50aWZpZXIoU3RyaW5nIGJ1bmRs
ZUlkZW50aWZpZXIpIC0+ICgpCisgICAgQ2xlYXJCdW5kbGVJZGVudGlmaWVyKCkgLT4gKCkKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIEFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChzdHJ1Y3QgV2ViS2l0OjpBcHBQcml2YWN5UmVwb3J0
VGVzdGluZ0RhdGEgZGF0YSkgQXN5bmMKLSAgICBDbGVhckFwcFByaXZhY3lSZXBvcnRUZXN0aW5n
RGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAgQXBwUHJpdmFj
eVJlcG9ydFRlc3RpbmdEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHN0cnVjdCBX
ZWJLaXQ6OkFwcFByaXZhY3lSZXBvcnRUZXN0aW5nRGF0YSBkYXRhKQorICAgIENsZWFyQXBwUHJp
dmFjeVJlcG9ydFRlc3RpbmdEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkKICNl
bmRpZgogCiAgICAgQWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgV2ViS2l0OjpX
ZWJQYWdlTmV0d29ya1BhcmFtZXRlcnMgcGFyYW1ldGVycykKICAgICBSZW1vdmVXZWJQYWdlTmV0
d29ya1BhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgcGFnZUlEKQotICAgIENvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHNpemVfdCBjb3VudCkgQXN5bmMKKyAgICBDb3Vu
dE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChzaXpl
X3QgY291bnQpCiAKICNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKICAgICBOb3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkKQEAgLTIxMCw5ICsyMTAsOSBAQCBtZXNzYWdlcyAtPiBO
ZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlCiAgICAgVGVybWluYXRlUmVtb3RlV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoZW51bTpib29sIFdlYktpdDo6UmVtb3RlV29ya2Vy
VHlwZSB3b3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsICBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lkZW50aWZpZXIpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAg
IEdldFBlbmRpbmdQdXNoTWVzc2FnZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVj
dG9yPFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+IG1lc3NhZ2VzKSBBc3luYwotICAgIFByb2Nlc3NQ
dXNoTWVzc2FnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJLaXQ6OldlYlB1
c2hNZXNzYWdlIHB1c2hNZXNzYWdlKSAtPiAoYm9vbCBkaWRTdWNjZWVkKSBBc3luYworICAgIEdl
dFBlbmRpbmdQdXNoTWVzc2FnZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9y
PFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+IG1lc3NhZ2VzKQorICAgIFByb2Nlc3NQdXNoTWVzc2Fn
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJLaXQ6OldlYlB1c2hNZXNzYWdl
IHB1c2hNZXNzYWdlKSAtPiAoYm9vbCBkaWRTdWNjZWVkKQogI2VuZGlmCi0gICAgRGVsZXRlUHVz
aEFuZE5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luKSAtPiAoU3RyaW5nIGVycm9y
TWVzc2FnZSkgQXN5bmMKLSAgICBHZXRPcmlnaW5zV2l0aFB1c2hBbmROb3RpZmljYXRpb25QZXJt
aXNzaW9ucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSBBc3luYworICAgIERlbGV0ZVB1c2hBbmROb3RpZmlj
YXRpb25SZWdpc3RyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbikgLT4gKFN0cmluZyBlcnJvck1lc3NhZ2UpCisg
ICAgR2V0T3JpZ2luc1dpdGhQdXNoQW5kTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4g
b3JpZ2lucykKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nv
Y2tldENoYW5uZWwubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkw
ODk3KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCiBtZXNzYWdlcyAtPiBOZXR3b3JrU29ja2V0Q2hhbm5lbCBOb3RSZWZDb3VudGVkIHsK
LSAgICBTZW5kU3RyaW5nKElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlKSAtPiAoKSBBc3luYwot
ICAgIFNlbmREYXRhKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKSAtPiAoKSBBc3luYworICAgIFNl
bmRTdHJpbmcoSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UpIC0+ICgpCisgICAgU2VuZERhdGEo
SVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpIC0+ICgpCiAgICAgQ2xvc2UoaW50MzJfdCBjb2RlLCBT
dHJpbmcgcmVhc29uKQogfQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4J
KHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2ll
cy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxOSAr
MjQsMTkgQEAKICAqLwogIAogbWVzc2FnZXMgLT4gV2ViQ29va2llTWFuYWdlciBOb3RSZWZDb3Vu
dGVkIHsKLSAgICB2b2lkIEdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkgLT4gKFZlY3RvcjxTdHJpbmc+IGhvc3RuYW1lcykgQXN5bmMKKyAgICB2b2lkIEdl
dEhvc3RuYW1lc1dpdGhDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3Rv
cjxTdHJpbmc+IGhvc3RuYW1lcykKICAgICB2b2lkIERlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBob3N0bmFtZXMpCiAgICAg
dm9pZCBEZWxldGVBbGxDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIAotICAgIHZv
aWQgU2V0Q29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gY29va2llKSAtPiAoKSBBc3luYwotICAgIHZvaWQgU2V0Q29va2llcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMsIFVSTCB1cmws
IFVSTCBtYWluRG9jdW1lbnRVUkwpIC0+ICgpIEFzeW5jCi0gICAgdm9pZCBHZXRBbGxDb29raWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNv
b2tpZXMpIEFzeW5jCi0gICAgdm9pZCBHZXRDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVVJMIHVybCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIEFzeW5jCi0g
ICAgdm9pZCBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1Y3QgV2Vi
Q29yZTo6Q29va2llIGNvb2tpZSkgLT4gKCkgQXN5bmMKLSAgICB2b2lkIERlbGV0ZUFsbENvb2tp
ZXNNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2FsbFRpbWUgdGltZSkg
LT4gKCkgQXN5bmMKKyAgICB2b2lkIFNldENvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZSkgLT4gKCkKKyAgICB2b2lkIFNldENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29r
aWVzLCBVUkwgdXJsLCBVUkwgbWFpbkRvY3VtZW50VVJMKSAtPiAoKQorICAgIHZvaWQgR2V0QWxs
Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29v
a2llPiBjb29raWVzKQorICAgIHZvaWQgR2V0Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKQorICAgIHZv
aWQgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6
OkNvb2tpZSBjb29raWUpIC0+ICgpCisgICAgdm9pZCBEZWxldGVBbGxDb29raWVzTW9kaWZpZWRT
aW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUpIC0+ICgpCiAKLSAg
ICB2b2lkIFNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koZW51bTp1aW50OF90IFdlYkNvcmU6OkhU
VFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KSAtPiAoKSBBc3luYwotICAgIHZvaWQgR2V0SFRU
UENvb2tpZUFjY2VwdFBvbGljeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpIEFzeW5jCisgICAg
dm9pZCBTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGVudW06dWludDhfdCBXZWJDb3JlOjpIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHBvbGljeSkgLT4gKCkKKyAgICB2b2lkIEdldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3koUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoZW51bTp1aW50OF90IFdl
YkNvcmU6OkhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogICAgIAogICAgIHZvaWQgU3Rh
cnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICB2
b2lkIFN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMjUsNyArMjUsNyBAQAogbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
IE5vdFJlZkNvdW50ZWQgewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVzc2FnZXMgY2Fu
IGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbgog
ICAgIFNjaGVkdWxlSm9iSW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JE
YXRhIGpvYkRhdGEpCi0gICAgU2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpIC0+IChFeHBlY3Rl
ZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCisgICAgU2NoZWR1
bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZp
ZXIgam9iSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmll
ciBkb2N1bWVudElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhPiByZXN1bHQpCiAKICAgICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHN0cnVj
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9iRGF0YUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5
LCBzdHJ1Y3QgV2ViQ29yZTo6V29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogICAgIEFkZFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMzUsMjcgKzM1LDI3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiBOb3RSZWYKIAogICAgIERpZFJlc29sdmVSZWdpc3Ry
YXRpb25Qcm9taXNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkga2V5KQog
Ci0gICAgTWF0Y2hSZWdpc3RyYXRpb24oc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb24pIEFzeW5jCi0gICAgV2hl
blJlZ2lzdHJhdGlvblJlYWR5KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9w
T3JpZ2luLCBVUkwgY2xpZW50VVJMKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gcmVnaXN0cmF0aW9uKSBBc3luYwotICAgIEdldFJlZ2lz
dHJhdGlvbnMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVS
TCBjbGllbnRVUkwpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGE+IHJlZ2lzdHJhdGlvbnMpIEFzeW5jCisgICAgTWF0Y2hSZWdpc3RyYXRpb24oc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBy
ZWdpc3RyYXRpb24pCisgICAgV2hlblJlZ2lzdHJhdGlvblJlYWR5KHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJMKSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gcmVnaXN0cmF0aW9u
KQorICAgIEdldFJlZ2lzdHJhdGlvbnMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbnMpCiAgICAgUmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2lu
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgZGF0YSwgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4gY29udHJv
bGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nIHVzZXJBZ2Vu
dCkKICAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogCi0gICAgVGVybWluYXRlV29ya2Vy
RnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3JrZXJJZGVudGlm
aWVyKSAtPiAoKSBBc3luYwotICAgIFdoZW5TZXJ2aWNlV29ya2VySXNUZXJtaW5hdGVkRm9yVGVz
dGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3JrZXJJZGVudGlmaWVyKSAt
PiAoKSBBc3luYworICAgIFRlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmllcikgLT4gKCkKKyAgICBXaGVuU2Vydmlj
ZVdvcmtlcklzVGVybWluYXRlZEZvclRlc3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgd29ya2VySWRlbnRpZmllcikgLT4gKCkKIAogICAgIFNldFRocm90dGxlU3RhdGUoYm9v
bCBpc1Rocm90dGxlYWJsZSkKLSAgICBTdG9yZVJlZ2lzdHJhdGlvbnNPbkRpc2soKSAtPiAoKSBB
c3luYworICAgIFN0b3JlUmVnaXN0cmF0aW9uc09uRGlzaygpIC0+ICgpCiAKLSAgICBTdWJzY3Jp
YmVUb1B1c2hTZXJ2aWNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIsIFZlY3Rvcjx1aW50OF90PiBhcHBsaWNhdGlvblNlcnZlcktleSkgLT4g
KEV4cGVjdGVkPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhPiByZXN1bHQpIEFzeW5jCi0gICAgVW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVy
IHB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYwotICAgIEdldFB1c2hTdWJzY3JpcHRpb24oV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4g
KEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCi0gICAgR2V0UHVzaFBlcm1pc3Np
b25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVu
dGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVz
dWx0KSBBc3luYyAKLQotICAgIEVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKLSAgICBEaXNhYmxlTmF2
aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4g
cmVzdWx0KSBBc3luYwotICAgIFNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5n
IHZhbHVlKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQp
IEFzeW5jCi0gICAgR2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29y
ZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0
KSBBc3luYworICAgIFN1YnNjcmliZVRvUHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgVmVjdG9yPHVpbnQ4X3Q+IGFwcGxp
Y2F0aW9uU2VydmVyS2V5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRh
dGEsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkKKyAgICBVbnN1YnNjcmliZUZyb21Q
dXNoU2VydmljZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UHVzaFN1YnNjcmlw
dGlvbklkZW50aWZpZXIgcHVzaFN1YnNjcmlwdGlvbklkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxi
b29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpCisgICAgR2V0UHVzaFN1YnNjcmlw
dGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9u
RGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkKKyAgICBHZXRQdXNoUGVybWlz
c2lvblN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlk
ZW50aWZpZXIpIC0+IChFeHBlY3RlZDx1aW50OF90LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBy
ZXN1bHQpIAorCisgICAgRW5hYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KQorICAgIERpc2FibGVOYXZpZ2F0aW9uUHJl
bG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlm
aWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpCisg
ICAgU2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgdmFsdWUpIC0+IChzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkKKyAgICBHZXROYXZpZ2F0
aW9uUHJlbG9hZFN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5MDg5
NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMw
LDExICszMCwxMSBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3RpCiAg
ICAgRGlkRmluaXNoSW5zdGFsbChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJK
b2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1Y2Nlc3NmdWwp
CiAgICAgRGlkRmluaXNoQWN0aXZhdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyKQogICAgIFNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRzKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaGFzUGVuZGluZ0V2
ZW50cykKLSAgICBTa2lwV2FpdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBp
ZGVudGlmaWVyKSAtPiAoKSBBc3luYworICAgIFNraXBXYWl0aW5nKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgpCiAgICAgV29ya2VyVGVybWluYXRlZChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQotICAgIEZpbmRDbGll
bnRCeVZpc2libGVJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTdHJpbmcgY2xpZW50SWRlbnRpZmllcikgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+IGRhdGEpIEFzeW5jCisg
ICAgRmluZENsaWVudEJ5VmlzaWJsZUlkZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFN0cmluZyBjbGllbnRJZGVudGlmaWVy
KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZGF0
YSkKICAgICBNYXRjaEFsbCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc3Ry
dWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMgb3B0aW9ucyk7Ci0g
ICAgQ2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3Vs
dCkgQXN5bmMKKyAgICBDbGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9u
RGF0YT4gcmVzdWx0KQogICAgIFNldFNjcmlwdFJlc291cmNlKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFVSTCBzY3JpcHRVUkwsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQgc2NyaXB0KQogICAgIFBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlLCBTdHJp
bmcgc291cmNlT3JpZ2luKQogICAgIERpZEZhaWxIZWFydEJlYXRDaGVjayhXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TWFuYWdlclNldC5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VNYW5h
Z2VyU2V0IHsKICAgICBHZXRWYWx1ZXMoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3Rv
cmFnZUFyZWFJRCkgLT4gKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHZhbHVlcykgU3luY2hyb25v
dXMgV2FudHNDb25uZWN0aW9uCiAgICAgQ2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIg
ZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmll
ciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2FudHNDb25uZWN0aW9uCiAKLSAgICBTZXRJdGVtKFdl
YktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVl
LCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9vbCBxdW90YUV4Y2VwdGlvbikgQXN5bmMgV2FudHND
b25uZWN0aW9uCi0gICAgUmVtb3ZlSXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZp
ZXIsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJpbmcpIC0+ICgpIEFzeW5jIFdhbnRzQ29ubmVj
dGlvbgotICAgIENsZWFyKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgU3RyaW5n
IHVybFN0cmluZykgLT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisgICAgU2V0SXRlbShXZWJL
aXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwg
U3RyaW5nIHVybFN0cmluZykgLT4gKGJvb2wgcXVvdGFFeGNlcHRpb24pIFdhbnRzQ29ubmVjdGlv
bgorICAgIFJlbW92ZUl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBTdHJp
bmcga2V5LCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBDbGVh
cihXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3Jh
Z2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyB1cmxTdHJpbmcpIC0+
ICgpIFdhbnRzQ29ubmVjdGlvbgogfQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNCArMjQsMTQgQEAgbWVzc2FnZXMgLT4g
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbgogICAgIFJlZmVyZW5jZSh1aW50NjRfdCBjYWNo
ZUlkZW50aWZpZXIpCiAgICAgRGVyZWZlcmVuY2UodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKQog
Ci0gICAgT3BlbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgU3RyaW5nIGNh
Y2hlTmFtZSkgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJPckVy
cm9yIHJlc3VsdCkgQXN5bmMKLSAgICBSZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKSAt
PiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllck9yRXJyb3IgcmVzdWx0
KSBBc3luYwotICAgIENhY2hlcyhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwg
dWludDY0X3QgdXBkYXRlQ291bnRlcikgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNo
ZUluZm9zT3JFcnJvciByZXN1bHQpIEFzeW5jCisgICAgT3BlbihzdHJ1Y3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luIG9yaWdpbiwgU3RyaW5nIGNhY2hlTmFtZSkgLT4gKFdlYkNvcmU6OkRPTUNhY2hl
RW5naW5lOjpDYWNoZUlkZW50aWZpZXJPckVycm9yIHJlc3VsdCkKKyAgICBSZW1vdmUodWludDY0
X3QgY2FjaGVJZGVudGlmaWVyKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRl
bnRpZmllck9yRXJyb3IgcmVzdWx0KQorICAgIENhY2hlcyhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luIG9yaWdpbiwgdWludDY0X3QgdXBkYXRlQ291bnRlcikgLT4gKFdlYkNvcmU6OkRPTUNh
Y2hlRW5naW5lOjpDYWNoZUluZm9zT3JFcnJvciByZXN1bHQpCiAKLSAgICBSZXRyaWV2ZVJlY29y
ZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6UmV0cmlldmVSZWNv
cmRzT3B0aW9ucyBvcHRpb25zKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNP
ckVycm9yIHJlc3VsdCkgQXN5bmMKLSAgICBEZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0
IFdlYkNvcmU6OkNhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpIC0+IChXZWJDb3JlOjpET01DYWNo
ZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCkgQXN5bmMKLSAgICBQdXRS
ZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hl
RW5naW5lOjpSZWNvcmQ+IHJlY29yZCkgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNv
cmRJZGVudGlmaWVyc09yRXJyb3IgcmVzdWx0KSBBc3luYworICAgIFJldHJpZXZlUmVjb3Jkcyh1
aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNP
cHRpb25zIG9wdGlvbnMpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3Jkc09yRXJy
b3IgcmVzdWx0KQorICAgIERlbGV0ZU1hdGNoaW5nUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6
Q2FjaGVRdWVyeU9wdGlvbnMgb3B0aW9ucykgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpS
ZWNvcmRJZGVudGlmaWVyc09yRXJyb3IgcmVzdWx0KQorICAgIFB1dFJlY29yZHModWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4g
cmVjb3JkKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzT3JF
cnJvciByZXN1bHQpCiAKLSAgICBDbGVhck1lbW9yeVJlcHJlc2VudGF0aW9uKHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpET01D
YWNoZUVuZ2luZTo6RXJyb3I+IGVycm9yKSBBc3luYwotICAgIEVuZ2luZVJlcHJlc2VudGF0aW9u
KCkgLT4gKFN0cmluZyByZXByZXNlbnRhdGlvbikgQXN5bmMKKyAgICBDbGVhck1lbW9yeVJlcHJl
c2VudGF0aW9uKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6RXJyb3I+IGVycm9yKQorICAgIEVuZ2lu
ZVJlcHJlc2VudGF0aW9uKCkgLT4gKFN0cmluZyByZXByZXNlbnRhdGlvbikKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5j
cHAJKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDcgKzM0OCw3IEBAIHZv
aWQgQ2FjaGU6OnN0YXJ0QXN5bmNSZXZhbGlkYXRpb25JZk5lZWQKICAgICAgICAgYXV0byByZXZh
bGlkYXRpb24gPSBtYWtlVW5pcXVlPEFzeW5jUmV2YWxpZGF0aW9uPigqdGhpcywgZnJhbWVJRCwg
cmVxdWVzdCwgV1RGTW92ZShlbnRyeSksIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFt0
aGlzLCBrZXldKGF1dG8gcmVzdWx0KSB7CiAgICAgICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5
bmNSZXZhbGlkYXRpb25zLmNvbnRhaW5zKGtleSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nQXN5
bmNSZXZhbGlkYXRpb25zLnJlbW92ZShrZXkpOwotICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNo
ZSwgIihOZXR3b3JrUHJvY2VzcykgQXN5bmMgcmV2YWxpZGF0aW9uIGNvbXBsZXRlZCBmb3IgJyVz
JyB3aXRoIHJlc3VsdCAlZCIsIGtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSwgc3RhdGlj
X2Nhc3Q8aW50PihyZXN1bHQpKTsKKyAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0
d29ya1Byb2Nlc3MpIHJldmFsaWRhdGlvbiBjb21wbGV0ZWQgZm9yICclcycgd2l0aCByZXN1bHQg
JWQiLCBrZXkuaWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocmVz
dWx0KSk7CiAgICAgICAgIH0pOwogICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFk
ZCgqcmV2YWxpZGF0aW9uKTsKICAgICAgICAgcmV0dXJuIHJldmFsaWRhdGlvbjsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjQsMjkgKzI0LDI5IEBACiAg
Ki8KICAKICBtZXNzYWdlcyAtPiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIgewotICAgIFBlcnNpc3Rl
ZChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wgcGVyc2lzdGVk
KSBBc3luYwotICAgIFBlcnNpc3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4p
IC0+IChib29sIHBlcnNpc3RlZCkgQXN5bmMKLSAgICBGaWxlU3lzdGVtR2V0RGlyZWN0b3J5KHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBQZXJzaXN0ZWQoc3RydWN0IFdl
YkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChib29sIHBlcnNpc3RlZCkKKyAgICBQZXJz
aXN0KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoYm9vbCBwZXJzaXN0
ZWQpCisgICAgRmlsZVN5c3RlbUdldERpcmVjdG9yeShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luIG9yaWdpbikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgV2FudHNDb25uZWN0
aW9uCiAgICAgQ2xvc2VIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllcikKLSAgICBJc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0
YXJnZXRJZGVudGlmaWVyKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCi0gICAgR2V0RmlsZUhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBi
b29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBB
c3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1
cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiByZXN1bHQpIEFzeW5jCi0gICAgUmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0
YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1vdmUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBTdHJpbmcgbmV3TmFtZSkgLT4g
KHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFz
eW5jCi0gICAgR2V0RmlsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyKSAtPiAoRXhwZWN0ZWQ8U3RyaW5nLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKLSAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxzdGQ6OnBh
aXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNo
YXJlZEZpbGVIYW5kbGU+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkg
QXN5bmMKLSAgICBDbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIEdldEhhbmRs
ZU5hbWVzKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+
IChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiByZXN1bHQpIEFzeW5jCi0gICAgR2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWly
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgorICAgIElz
U2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIpIC0+
IChib29sIHJlc3VsdCkKKyAgICBHZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNz
YXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBXYW50c0Nvbm5lY3Rpb24KKyAg
ICBHZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBl
Y3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIFdhbnRzQ29ubmVjdGlvbgorICAgIFJlbW92ZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBu
YW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkKKyAgICBSZXNvbHZlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0b3I8U3RyaW5n
PiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpCisgICAgTW92ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFN0cmluZyBuZXdO
YW1lKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkKKyAgICBHZXRGaWxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpIC0+IChFeHBlY3RlZDxTdHJpbmcsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gcmVzdWx0KQorICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVk
RmlsZUhhbmRsZT4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KQorICAg
IENsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpCisgICAgR2V0SGFuZGxlTmFtZXMoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3Rv
cjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkKKyAgICBH
ZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nIG5hbWUpIC0+IChFeHBlY3RlZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGJvb2w+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgV2FudHNDb25uZWN0aW9uCiAKLSAgICBDb25uZWN0VG9TdG9yYWdlQXJlYShXZWJDb3Jl
OjpTdG9yYWdlVHlwZSB0eXBlLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciBzb3Vy
Y2VJZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFj
ZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoV2Vi
S2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gaXRlbXMsIHVpbnQ2NF90IG1lc3NhZ2VJZGVudGlmaWVyKSBBc3luYyBXYW50c0Nvbm5l
Y3Rpb24KKyAgICBDb25uZWN0VG9TdG9yYWdlQXJlYShXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBl
LCBXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIHN0cnVj
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoV2ViS2l0OjpTdG9yYWdlQXJlYUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gaXRlbXMsIHVpbnQ2
NF90IG1lc3NhZ2VJZGVudGlmaWVyKSBXYW50c0Nvbm5lY3Rpb24KICAgICBDb25uZWN0VG9TdG9y
YWdlQXJlYVN5bmMoV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJl
YU1hcElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNl
SWRlbnRpZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luIG9yaWdpbikgLT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmll
cikgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCiAgICAgRGlzY29ubmVjdEZyb21TdG9yYWdl
QXJlYShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyKSBXYW50c0Nvbm5l
Y3Rpb24KICAgICBDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKFdlYktpdDo6U3RvcmFnZU5h
bWVzcGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViS2l0OjpTdG9yYWdl
TmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2FudHNDb25uZWN0aW9u
Ci0gICAgU2V0SXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBr
ZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgLT4gKGJvb2wgcXVvdGFFeGNlcHRp
b24pIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgotICAgIFJlbW92ZUl0ZW0oV2ViS2l0OjpTdG9yYWdl
QXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyIGltcGxJZGVudGlmaWVyLCBTdHJpbmcga2V5LCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoKSBB
c3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBDbGVhcihXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElk
ZW50aWZpZXIsIFN0cmluZyB1cmxTdHJpbmcpIC0+ICgpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgor
ICAgIFNldEl0ZW0oV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
S2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBTdHJpbmcga2V5
LCBTdHJpbmcgdmFsdWUsIFN0cmluZyB1cmxTdHJpbmcpIC0+IChib29sIHF1b3RhRXhjZXB0aW9u
KSBXYW50c0Nvbm5lY3Rpb24KKyAgICBSZW1vdmVJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBs
SWRlbnRpZmllciwgU3RyaW5nIGtleSwgU3RyaW5nIHVybFN0cmluZykgLT4gKCkgV2FudHNDb25u
ZWN0aW9uCisgICAgQ2xlYXIoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIGltcGxJZGVudGlmaWVyLCBTdHJp
bmcgdXJsU3RyaW5nKSAtPiAoKSBXYW50c0Nvbm5lY3Rpb24KIAogICAgIE9wZW5EYXRhYmFzZShX
ZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSkgV2FudHNDb25uZWN0aW9uCiAgICAg
T3BlbkRCUmVxdWVzdENhbmNlbGxlZChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0
YSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQkocmV2aXNp
b24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQCBpbXBvcnQgcmUKIGltcG9ydCBzeXMKIAog
ZnJvbSB3ZWJraXQgaW1wb3J0IHBhcnNlcgotZnJvbSB3ZWJraXQubW9kZWwgaW1wb3J0IEJVSUxU
SU5fQVRUUklCVVRFLCBBU1lOQ19BVFRSSUJVVEUsIFNZTkNIUk9OT1VTX0FUVFJJQlVURSwgTUFJ
TlRIUkVBRENBTExCQUNLX0FUVFJJQlVURSwgU1RSRUFNX0FUVFJJQlVURSwgV0FOVFNfQ09OTkVD
VElPTl9BVFRSSUJVVEUsIE1lc3NhZ2VSZWNlaXZlciwgTWVzc2FnZQorZnJvbSB3ZWJraXQubW9k
ZWwgaW1wb3J0IEJVSUxUSU5fQVRUUklCVVRFLCBTWU5DSFJPTk9VU19BVFRSSUJVVEUsIE1BSU5U
SFJFQURDQUxMQkFDS19BVFRSSUJVVEUsIFNUUkVBTV9BVFRSSUJVVEUsIFdBTlRTX0NPTk5FQ1RJ
T05fQVRUUklCVVRFLCBNZXNzYWdlUmVjZWl2ZXIsIE1lc3NhZ2UKIAogX2xpY2Vuc2VfaGVhZGVy
ID0gIiIiLyoKICAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCkBAIC0xNjMsMTQgKzE2MywxNCBAQCBkZWYgcmVwbHlfYXJndW1lbnRzX3R5cGUobWVz
c2FnZSk6CiBkZWYgbWVzc2FnZV90b19yZXBseV9mb3J3YXJkX2RlY2xhcmF0aW9uKG1lc3NhZ2Up
OgogICAgIHJlc3VsdCA9IFtdCiAKLSAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgIT0g
Tm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9y
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKToKKyAgICBpZiBtZXNzYWdl
LnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmU6CiAgICAgICAgIHNlbmRfcGFyYW1ldGVycyA9
IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBlLCB4LmtpbmQpLCB4Lm5hbWUpIGZvciB4
IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyc10KICAgICAgICAgY29tcGxldGlvbl9oYW5kbGVy
X3BhcmFtZXRlcnMgPSAnJXMnICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3IgeCBpbiBzZW5k
X3BhcmFtZXRlcnNdKQogCi0gICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19B
VFRSSUJVVEUpOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgndXNpbmcgJXNBc3luY1JlcGx5
JyAlIG1lc3NhZ2UubmFtZSkKLSAgICAgICAgZWxzZToKKyAgICAgICAgaWYgbWVzc2FnZS5oYXNf
YXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSk6CiAgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCd1c2luZyAlc0RlbGF5ZWRSZXBseScgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd1c2luZyAlc0FzeW5jUmVwbHknICUgbWVzc2Fn
ZS5uYW1lKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCVzKT47XG4nICUgY29tcGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMpCiAKICAgICBpZiBub3Qg
cmVzdWx0OgpAQCAtMTg4LDcgKzE4OCw3IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJh
dGlvbihyZWNlaXYKICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgQXJndW1lbnRzID0gJXM7
XG4nICUgYXJndW1lbnRzX3R5cGUobWVzc2FnZSkpCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQog
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgSVBDOjpNZXNzYWdlTmFtZSBuYW1lKCkgeyBy
ZXR1cm4gSVBDOjpNZXNzYWdlTmFtZTo6JXNfJXM7IH1cbicgJSAocmVjZWl2ZXIubmFtZSwgbWVz
c2FnZS5uYW1lKSkKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGlzU3luYyA9ICVzO1xuJyAlICgnZmFsc2UnLCAndHJ1ZScpW21lc3NhZ2UucmVwbHlfcGFyYW1l
dGVycyBpcyBub3QgTm9uZSBhbmQgbm90IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRS
SUJVVEUpXSkKKyAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
U3luYyA9ICVzO1xuJyAlICgnZmFsc2UnLCAndHJ1ZScpW21lc3NhZ2UucmVwbHlfcGFyYW1ldGVy
cyBpcyBub3QgTm9uZSBhbmQgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJ
QlVURSldKQogICAgIGlmIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoU1RSRUFNX0FUVFJJQlVURSk6
CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTdHJl
YW1FbmNvZGFibGUgPSAlcztcbicgJSAoJ3RydWUnLCAnZmFsc2UnKVttZXNzYWdlLmhhc19hdHRy
aWJ1dGUoTk9UX1NUUkVBTV9FTkNPREFCTEVfQVRUUklCVVRFKV0pCiAgICAgICAgIGlmIG1lc3Nh
Z2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3QgTm9uZToKQEAgLTE5OCwxOSArMTk4LDE5IEBAIGRl
ZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihyZWNlaXYKICAgICBpZiBtZXNzYWdlLnJl
cGx5X3BhcmFtZXRlcnMgIT0gTm9uZToKICAgICAgICAgc2VuZF9wYXJhbWV0ZXJzID0gWyhmdW5j
dGlvbl9wYXJhbWV0ZXJfdHlwZSh4LnR5cGUsIHgua2luZCksIHgubmFtZSkgZm9yIHggaW4gbWVz
c2FnZS5yZXBseV9wYXJhbWV0ZXJzXQogICAgICAgICBjb21wbGV0aW9uX2hhbmRsZXJfcGFyYW1l
dGVycyA9ICclcycgJSAnLCAnLmpvaW4oWycgJy5qb2luKHgpIGZvciB4IGluIHNlbmRfcGFyYW1l
dGVyc10pCi0gICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUp
OgorICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRF
KToKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICB1c2luZyBEZWxheWVkUmVwbHkgPSAl
c0RlbGF5ZWRSZXBseTtcbicgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICBtb3ZlX3BhcmFtZXRlcnMgPSAnLCAnLmpvaW4oW21vdmVfdHlwZSh4LnR5cGUpIGZvciB4
IGluIG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVyc10pCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoJXMpPiYmKTtcbicgJSBtb3ZlX3BhcmFtZXRlcnMpCiAgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCglcyk+JiYpO1xuJyAlIG1vdmVfcGFyYW1ldGVycykKICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICBzdGF0aWMgSVBDOjpNZXNzYWdlTmFtZSBhc3luY01lc3NhZ2VSZXBseU5hbWUo
KSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VOYW1lOjolc18lc1JlcGx5OyB9XG4nICUgKHJlY2VpdmVy
Lm5hbWUsIG1lc3NhZ2UubmFtZSkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNp
bmcgQXN5bmNSZXBseSA9ICVzQXN5bmNSZXBseTtcbicgJSBtZXNzYWdlLm5hbWUpCi0gICAgICAg
IGVsaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSk6Ci0gICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgdXNpbmcgRGVsYXllZFJlcGx5ID0gJXNEZWxheWVk
UmVwbHk7XG4nICUgbWVzc2FnZS5uYW1lKQogICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1
dGUoTUFJTlRIUkVBRENBTExCQUNLX0FUVFJJQlVURSk6CiAgICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNhbGxiYWNrVGhyZWFkID0gV1RGOjpDb21w
bGV0aW9uSGFuZGxlckNhbGxUaHJlYWQ6Ok1haW5UaHJlYWQ7XG4nKQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBjYWxs
YmFja1RocmVhZCA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXJDYWxsVGhyZWFkOjpDb25zdHJ1Y3Rp
b25UaHJlYWQ7XG4nKQotICAgICAgICBpZiAobWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9O
T1VTX0FUVFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkp
IGFuZCBub3QgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShTVFJFQU1fQVRUUklCVVRFKToKKyAgICAg
ICAgaWYgbm90IHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoU1RSRUFNX0FUVFJJQlVURSk6CiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RhdGljIHZvaWQgc2VuZChVbmlxdWVSZWY8SVBD
OjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mJykKICAgICAgICAgICAgIGlmIGxlbihzZW5k
X3BhcmFtZXRlcnMpOgogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJywgJXMnICUgY29t
cGxldGlvbl9oYW5kbGVyX3BhcmFtZXRlcnMpCkBAIC00NjcsNyArNDY3LDcgQEAgZGVmIGZvcndh
cmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzX2ZvcgogCiAgICAgbm9fZm9yd2FyZF9kZWNsYXJh
dGlvbl90eXBlcyA9IHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKQogICAg
IGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgotICAgICAgICBpZiBtZXNzYWdlLnJl
cGx5X3BhcmFtZXRlcnMgPT0gTm9uZSBvciBub3QgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5D
SFJPTk9VU19BVFRSSUJVVEUpIG9yIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJV
VEUpKToKKyAgICAgICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIE5vbmU6CiAgICAg
ICAgICAgICBjb250aW51ZQogCiAgICAgICAgIGZvciBwYXJhbWV0ZXIgaW4gbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzOgpAQCAtNTg3LDcgKzU4Nyw3IEBAIGRlZiBhc3luY19tZXNzYWdlX3N0YXRl
bWVudChyZWNlaXZlciwgbWUKICAgICBkaXNwYXRjaF9mdW5jdGlvbl9hcmdzID0gWydkZWNvZGVy
JywgJ3RoaXMnLCAnJiVzJyAlIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpXQog
CiAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gPSAnaGFuZGxlTWVzc2FnZScKLSAgICBpZiBtZXNzYWdl
Lmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKKyAgICBpZiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnMgaXMgbm90IE5vbmUgYW5kIG5vdCBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hS
T05PVVNfQVRUUklCVVRFKToKICAgICAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gKz0gJ0FzeW5jJwog
CiAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFdBTlRTX0NPTk5FQ1RJT05fQVRUUklCVVRF
KToKQEAgLTYwNyw3ICs2MDcsNyBAQCBkZWYgc3luY19tZXNzYWdlX3N0YXRlbWVudChyZWNlaXZl
ciwgbWVzCiAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gPSAnaGFuZGxlTWVzc2FnZScKICAgICBpZiBt
ZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKToKICAgICAgICAgZGlz
cGF0Y2hfZnVuY3Rpb24gKz0gJ1N5bmNocm9ub3VzJwotICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJp
YnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgIGVsaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJz
IGlzIG5vdCBOb25lOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnQXN5bmMnCiAgICAg
aWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFdBTlRTX0NPTk5FQ1RJT05fQVRUUklCVVRFKToKICAg
ICAgICAgZGlzcGF0Y2hfZnVuY3Rpb24gKz0gJ1dhbnRzQ29ubmVjdGlvbicKQEAgLTYxNSw3ICs2
MTUsNyBAQCBkZWYgc3luY19tZXNzYWdlX3N0YXRlbWVudChyZWNlaXZlciwgbWVzCiAgICAgbWF5
YmVfcmVwbHlfZW5jb2RlciA9ICIsICpyZXBseUVuY29kZXIiCiAgICAgaWYgcmVjZWl2ZXIuaGFz
X2F0dHJpYnV0ZShTVFJFQU1fQVRUUklCVVRFKToKICAgICAgICAgbWF5YmVfcmVwbHlfZW5jb2Rl
ciA9ICcnCi0gICAgZWxpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklC
VVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKKyAgICBlbGlm
IG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyBpcyBub3QgTm9uZToKICAgICAgICAgbWF5YmVfcmVw
bHlfZW5jb2RlciA9ICcsIHJlcGx5RW5jb2RlcicKIAogICAgIHJlc3VsdCA9IFtdCkBAIC0xMDc4
LDcgKzEwNzgsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKIAog
ICAgIGRlbGF5ZWRfb3JfYXN5bmNfbWVzc2FnZXMgPSBbXQogICAgIGZvciBtZXNzYWdlIGluIHJl
Y2VpdmVyLm1lc3NhZ2VzOgotICAgICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgIT0g
Tm9uZSBhbmQgKG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShTWU5DSFJPTk9VU19BVFRSSUJVVEUpIG9y
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpKToKKyAgICAgICAgaWYgbWVz
c2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgZGVsYXllZF9v
cl9hc3luY19tZXNzYWdlcy5hcHBlbmQobWVzc2FnZSkKIAogICAgIGlmIGRlbGF5ZWRfb3JfYXN5
bmNfbWVzc2FnZXMgYW5kIG5vdCByZWNlaXZlci5oYXNfYXR0cmlidXRlKFNUUkVBTV9BVFRSSUJV
VEUpOgpAQCAtMTA5MCw3ICsxMDkwLDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihy
ZWNlaXZlcik6CiAgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoKICAgICAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcblxuJyAlIG1lc3NhZ2UuY29uZGl0aW9uKQogCi0g
ICAgICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKKyAg
ICAgICAgICAgIGlmIG5vdCBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklC
VVRFKToKICAgICAgICAgICAgICAgICBtb3ZlX3BhcmFtZXRlcnMgPSBtZXNzYWdlLm5hbWUsICcs
ICcuam9pbihbbW92ZV90eXBlKHgudHlwZSkgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0
ZXJzXSkKICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpjYWxsUmVwbHko
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCVzKT4mJiBjb21w
bGV0aW9uSGFuZGxlcilcbntcbicgJSBtb3ZlX3BhcmFtZXRlcnMpCiAgICAgICAgICAgICAgICAg
Zm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzOgpAQCAtMTEyNCw3ICsxMTI0LDcgQEAg
ZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihyZWNlaXZlcik6CiAgICAgYXN5bmNfbWVzc2Fn
ZXMgPSBbXQogICAgIHN5bmNfbWVzc2FnZXMgPSBbXQogICAgIGZvciBtZXNzYWdlIGluIHJlY2Vp
dmVyLm1lc3NhZ2VzOgotICAgICAgICBpZiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90
IE5vbmUgYW5kIG5vdCBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKKyAg
ICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FUVFJJQlVURSk6CiAg
ICAgICAgICAgICBzeW5jX21lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgYXN5bmNfbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCkBAIC0xMTUwLDcgKzEx
NTAsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKToKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKVxuJykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9N
RVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRl
c2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgp
KTtcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ31cbicpCi0gICAgZWxpZiBhc3luY19tZXNz
YWdlcyBvciByZWNlaXZlci5oYXNfYXR0cmlidXRlKFdBTlRTX0RJU1BBVENIX01FU1NBR0VfQVRU
UklCVVRFKSBvciByZWNlaXZlci5oYXNfYXR0cmlidXRlKFdBTlRTX0FTWU5DX0RJU1BBVENIX01F
U1NBR0VfQVRUUklCVVRFKToKKyAgICBlbHNlOgogICAgICAgICByZWNlaXZlX3ZhcmlhbnQgPSBy
ZWNlaXZlci5uYW1lIGlmIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoTEVHQUNZX1JFQ0VJVkVSX0FU
VFJJQlVURSkgZWxzZSAnJwogICAgICAgICByZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNl
aXZlJXNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyKVxuJyAlIChyZWNlaXZlci5uYW1lLCByZWNlaXZlX3ZhcmlhbnQpKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCd7XG4nKQpAQCAtMTIxMiw3ICsxMjEyLDcgQEAgZGVmIGdlbmVyYXRlX21l
c3NhZ2VfaGFuZGxlcihyZWNlaXZlcik6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OiVzOjolczo6JXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7XG4nICUgKHJl
Y2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSwgJ0FyZ3VtZW50cycpKQogICAgICAgICByZXN1bHQu
YXBwZW5kKCd9XG4nKQotICAgICAgICBoYXNfcmVwbHkgPSBtZXNzYWdlLnJlcGx5X3BhcmFtZXRl
cnMgaXMgbm90IE5vbmUgYW5kIChtZXNzYWdlLmhhc19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRU
UklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKSkKKyAgICAg
ICAgaGFzX3JlcGx5ID0gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lCiAgICAg
ICAgIGlmIG5vdCBoYXNfcmVwbHk6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICByZXN1
bHQuYXBwZW5kKCd0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVl
Rm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6JXNfJXM+KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFt
ZSwgbWVzc2FnZS5uYW1lKSkKQEAgLTE0MTMsNyArMTQxMyw3IEBAIGRlZiBnZW5lcmF0ZV9qc19h
cmd1bWVudF9kZXNjcmlwdGlvbnMocmUKICAgICAgICAgICAgICAgICBpZiBhcmd1bWVudF90eXBl
LnN0YXJ0c3dpdGgoJ3N0ZDo6b3B0aW9uYWw8JykgYW5kIGFyZ3VtZW50X3R5cGUuZW5kc3dpdGgo
Jz4nKToKICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRfdHlwZSA9IGFyZ3VtZW50X3R5cGVb
MTQ6LTFdCiAgICAgICAgICAgICAgICAgICAgIGlzX29wdGlvbmFsID0gVHJ1ZQotICAgICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgICAgIHsiJXMiLCAiJXMiLCAlcywgJXN9LFxu
JyAlIChhcmd1bWVudC5uYW1lLCBhcmd1bWVudF90eXBlLCBlbnVtX3R5cGUgb3IgJ251bGxwdHIn
LCAndHJ1ZScgaWYgaXNfb3B0aW9uYWwgZWxzZSAnZmFsc2UnKSkKKyAgICAgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgICAgICAgICB7ICIlcyIsICIlcyIsICVzLCAlcyB9LFxuJyAlIChh
cmd1bWVudC5uYW1lLCBhcmd1bWVudF90eXBlLCBlbnVtX3R5cGUgb3IgJ251bGxwdHInLCAndHJ1
ZScgaWYgaXNfb3B0aW9uYWwgZWxzZSAnZmFsc2UnKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJyAgICAgICAgfTtcbicpCiAgICAgICAgIGlmIHByZXZpb3VzX21lc3NhZ2VfY29uZGl0aW9u
OgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlmXG4nKQpAQCAtMTQ2MCw3ICsxNDYw
LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpbwogCiAgICAgcmVz
dWx0LmFwcGVuZCgnXG4nKQogCi0gICAgZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5j
dGlvbihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JSZXBseUFyZ3VtZW50cycsICdqc1Zh
bHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseScsICdSZXBseUFyZ3VtZW50cycsIGxhbWJkYSBtZXNz
YWdlOiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmUgYW5kIChtZXNzYWdlLmhh
c19hdHRyaWJ1dGUoU1lOQ0hST05PVVNfQVRUUklCVVRFKSBvciBtZXNzYWdlLmhhc19hdHRyaWJ1
dGUoQVNZTkNfQVRUUklCVVRFKSkpCisgICAgZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9m
dW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgJ2pzVmFsdWVGb3JSZXBseUFyZ3VtZW50cycsICdq
c1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseScsICdSZXBseUFyZ3VtZW50cycsIGxhbWJkYSBt
ZXNzYWdlOiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMgaXMgbm90IE5vbmUpCiAKICAgICByZXN1
bHQuYXBwZW5kKCdcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnI2VuZGlmIC8vIEVOQUJMRShJUENf
VEVTVElOR19BUEkpXG4nKQpAQCAtMTQ3MCw3ICsxNDcwLDcgQEAgZGVmIGdlbmVyYXRlX21lc3Nh
Z2VfYXJndW1lbnRfZGVzY3JpcHRpbwogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogCi0gICAg
cmVzdWx0ICs9IGdlbmVyYXRlX2pzX2FyZ3VtZW50X2Rlc2NyaXB0aW9ucyhyZWNlaXZlcnMsICdt
ZXNzYWdlUmVwbHlBcmd1bWVudERlc2NyaXB0aW9ucycsIGxhbWJkYSBtZXNzYWdlOiBtZXNzYWdl
LnJlcGx5X3BhcmFtZXRlcnMgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZTkNIUk9OT1VTX0FU
VFJJQlVURSkgb3IgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSkgZWxzZSBO
b25lKQorICAgIHJlc3VsdCArPSBnZW5lcmF0ZV9qc19hcmd1bWVudF9kZXNjcmlwdGlvbnMocmVj
ZWl2ZXJzLCAnbWVzc2FnZVJlcGx5QXJndW1lbnREZXNjcmlwdGlvbnMnLCBsYW1iZGEgbWVzc2Fn
ZTogbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzKQogCiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkJKHJldmlzaW9uIDI5MDg5
NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDcgKzI1LDYgQEAgaW1wb3J0IGl0ZXJ0b29scwogZnJvbSBjb2xsZWN0aW9ucyBp
bXBvcnQgQ291bnRlciwgZGVmYXVsdGRpY3QKIAogQlVJTFRJTl9BVFRSSUJVVEUgPSAiQnVpbHRp
biIKLUFTWU5DX0FUVFJJQlVURSA9ICJBc3luYyIKIE1BSU5USFJFQURDQUxMQkFDS19BVFRSSUJV
VEUgPSAiTWFpblRocmVhZENhbGxiYWNrIgogU1lOQ0hST05PVVNfQVRUUklCVVRFID0gJ1N5bmNo
cm9ub3VzJwogU1RSRUFNX0FUVFJJQlVURSA9ICJTdHJlYW0iCkBAIC0xMTEsNyArMTEwLDcgQEAg
ZGVmIGdlbmVyYXRlX2dsb2JhbF9tb2RlbChyZWNlaXZlcnMpOgogICAgIGFzeW5jX3JlcGx5X21l
c3NhZ2VzID0gW10KICAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgogICAgICAgICBmb3Ig
bWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UuaGFz
X2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgorICAgICAgICAgICAgaWYgbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25lIGFuZCBub3QgbWVzc2FnZS5oYXNfYXR0cmlidXRlKFNZ
TkNIUk9OT1VTX0FUVFJJQlVURSk6CiAgICAgICAgICAgICAgICAgYXN5bmNfcmVwbHlfbWVzc2Fn
ZXMuYXBwZW5kKE1lc3NhZ2UobmFtZT0nJXNfJXNSZXBseScgJSAocmVjZWl2ZXIubmFtZSwgbWVz
c2FnZS5uYW1lKSwgcGFyYW1ldGVycz1tZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMsIHJlcGx5X3Bh
cmFtZXRlcnM9W10sIGF0dHJpYnV0ZXM9Tm9uZSwgY29uZGl0aW9uPW1lc3NhZ2UuY29uZGl0aW9u
KSkKICAgICBhc3luY19yZXBseV9yZWNlaXZlciA9IE1lc3NhZ2VSZWNlaXZlcihuYW1lPSdBc3lu
Y1JlcGx5Jywgc3VwZXJjbGFzcz0nTm9uZScsIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRF
XSwgbWVzc2FnZXM9YXN5bmNfcmVwbHlfbWVzc2FnZXMsIGNvbmRpdGlvbj1Ob25lKQogICAgIHJl
dHVybiBbaXBjX3JlY2VpdmVyLCBhc3luY19yZXBseV9yZWNlaXZlcl0gKyByZWNlaXZlcnMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZUFyZ3VtZW50RGVz
Y3JpcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAJKHJldmlzaW9uIDI5MDg5NykK
KysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZUFyZ3VtZW50RGVz
Y3JpcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDE2ICsyNDUsNTIgQEAgc3RkOjpv
cHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JSZQogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlOgogICAgICAgICByZXR1
cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3Vw
ZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
I2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RF
Ul9PUiAmJiBNQVNURVJfQU5EKSkKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX0NyZWF0ZVBsdWdpbjoKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
TWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0NyZWF0ZVBs
dWdpbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydDoKKyAgICAgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKKyAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpbnM6CisgICAg
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5zPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246CiAgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbj4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6CiAgICAgICAg
IHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihnbG9iYWxPYmplY3QsIGRl
Y29kZXIpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyX0ludGVycHJldEtleUV2ZW50OgorICAgICAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfSW50ZXJwcmV0S2V5RXZlbnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisjZW5kaWYKICNl
bmRpZgogI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8
IE1BU1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luOgorICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVh
dGVQbHVnaW4+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydDoKKyAgICAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zOgorICAg
ICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRl
c3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbjoKICAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJl
cGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6CiAgICAgICAgIHJl
dHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM+KGdsb2JhbE9iamVjdCwgZGVjb2Rl
cik7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19JbnRlcnByZXRLZXlFdmVudDoKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfSW50
ZXJwcmV0S2V5RXZlbnQ+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisjZW5kaWYKKyNlbmRpZgor
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1JlY2VpdmVTZW1hcGhvcmU6
CisgICAgICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9yZT4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1h
Z2VEYXRhOgorICAgICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVz
c2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGE+KGdsb2JhbE9iamVj
dCwgZGVjb2Rlcik7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZFN0
cmluZ1N5bmNocm9uaXplZDoKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2Fn
ZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVk
PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1JlY2VpdmVNYWNoU2VuZFJpZ2h0OgorICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3RyZWFtX1JlY2VpdmVNYWNoU2VuZFJpZ2h0PihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwor
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFjaFNl
bmRSaWdodDoKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kQW5kUmVjZWl2ZU1hY2hTZW5kUmlnaHQ+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7CisjZW5kaWYKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1
ZmZlcjoKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfUmVjZWl2ZUNWUGl4ZWxCdWZmZXI+KGdsb2Jh
bE9iamVjdCwgZGVjb2Rlcik7CiAjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsK
QEAgLTI2OSwxMiArMzA1LDEyIEBAIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEFyZ3VtZW50RGVzY3Jp
cHRpb24KICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfTG9hZFVSTDoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2Ny
aXB0aW9uPiB7Ci0gICAgICAgICAgICB7InVybCIsICJTdHJpbmciLCBudWxscHRyLCBmYWxzZX0s
CisgICAgICAgICAgICB7ICJ1cmwiLCAiU3RyaW5nIiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAg
ICAgfTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlOgogICAgICAgICByZXR1cm4gVmVjdG9y
PEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsidHdvU3RhdGVFbnVtIiwgImJv
b2wiLCAiV2ViS2l0OjpUZXN0VHdvU3RhdGVFbnVtIiwgZmFsc2V9LAorICAgICAgICAgICAgeyAi
dHdvU3RhdGVFbnVtIiwgImJvb2wiLCAiV2ViS2l0OjpUZXN0VHdvU3RhdGVFbnVtIiwgZmFsc2Ug
fSwKICAgICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxB
cmd1bWVudERlc2NyaXB0aW9uPiB7IH07CkBAIC0yODIsMjg4ICszMTgsMjg4IEBAIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24KICAgICAgICAgcmV0dXJuIFZlY3RvcjxB
cmd1bWVudERlc2NyaXB0aW9uPiB7IH07CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbjoKICAgICAgICAgcmV0dXJu
IFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7InZhbHVlIiwgImlu
dCIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgInZhbHVlIiwgImludCIsIG51bGxw
dHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlOgogICAgICAgICByZXR1cm4gVmVjdG9y
PEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsicGFyYW0iLCAidWludDMyX3Qi
LCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJwYXJhbSIsICJ1aW50MzJfdCIsIG51
bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RTeW5jaHJvbm91c01lc3NhZ2U6CiAgICAgICAgIHJldHVybiBWZWN0
b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJ2YWx1ZSIsICJib29sIiwg
bnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAidmFsdWUiLCAiYm9vbCIsIG51bGxwdHIs
IGZhbHNlIH0sCiAgICAgICAgIH07CiAjaWYgKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01B
U1RFUl9DT05ESVRJT04gfHwgTUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKQogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFVSTDoKICAgICAgICAgcmV0dXJu
IFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7InVybCIsICJTdHJp
bmciLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJ1cmwiLCAiU3RyaW5nIiwgbnVs
bHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFNvbWV0aGluZzoK
ICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAg
ICB7InVybCIsICJTdHJpbmciLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJ1cmwi
LCAiU3RyaW5nIiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICNlbmRpZgogI2lmIChF
TkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVf
T1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfVG91Y2hFdmVudDoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVu
dERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7ImV2ZW50IiwgIldlYktpdDo6V2ViVG91Y2hF
dmVudCIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgImV2ZW50IiwgIldlYktpdDo6
V2ViVG91Y2hFdmVudCIsIG51bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAjZW5kaWYKICNp
ZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBT
T01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50OgogICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3Vt
ZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsiZXZlbnQiLCAiV2ViS2l0OjpXZWJUb3Vj
aEV2ZW50IiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAiZXZlbnQiLCAiV2ViS2l0
OjpXZWJUb3VjaEV2ZW50IiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICNlbmRpZgog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nRWxzZToKICAgICAgICAgcmV0dXJuIFZlY3RvcjxB
cmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7InVybCIsICJTdHJpbmciLCBudWxs
cHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJ1cmwiLCAiU3RyaW5nIiwgbnVsbHB0ciwgZmFs
c2UgfSwKICAgICAgICAgfTsKICNlbmRpZgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uOgogICAgICAgICByZXR1cm4g
VmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsiZnJhbWVJRCIsICJ1
aW50NjRfdCIsIG51bGxwdHIsIGZhbHNlfSwKLSAgICAgICAgICAgIHsibGlzdGVuZXJJRCIsICJ1
aW50NjRfdCIsIG51bGxwdHIsIGZhbHNlfSwKLSAgICAgICAgICAgIHsicG9saWN5QWN0aW9uIiwg
InVpbnQzMl90IiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAiZnJhbWVJRCIsICJ1
aW50NjRfdCIsIG51bGxwdHIsIGZhbHNlIH0sCisgICAgICAgICAgICB7ICJsaXN0ZW5lcklEIiwg
InVpbnQ2NF90IiwgbnVsbHB0ciwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgInBvbGljeUFjdGlv
biIsICJ1aW50MzJfdCIsIG51bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DbG9zZToKICAgICAgICAgcmV0dXJu
IFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7IH07CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9QcmVmZXJlbmNlc0RpZENoYW5nZToKICAgICAgICAgcmV0
dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7InN0b3JlIiwg
IldlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAg
ICAgIHsgInN0b3JlIiwgIldlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSIsIG51bGxwdHIsIGZh
bHNlIH0sCiAgICAgICAgIH07CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9TZW5kRG91YmxlQW5kRmxvYXQ6CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1l
bnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJkIiwgImRvdWJsZSIsIG51bGxwdHIsIGZh
bHNlfSwKLSAgICAgICAgICAgIHsiZiIsICJmbG9hdCIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAg
ICAgICAgIHsgImQiLCAiZG91YmxlIiwgbnVsbHB0ciwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsg
ImYiLCAiZmxvYXQiLCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZEludHM6CiAgICAgICAgIHJldHVy
biBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJpbnRzIiwgIlZl
Y3Rvcjx1aW50NjRfdD4iLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7ImludFZlY3Rv
cnMiLCAiVmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4+IiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAg
ICAgICAgeyAiaW50cyIsICJWZWN0b3I8dWludDY0X3Q+IiwgbnVsbHB0ciwgZmFsc2UgfSwKKyAg
ICAgICAgICAgIHsgImludFZlY3RvcnMiLCAiVmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4+IiwgbnVs
bHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpbjoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1
bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7InBsdWdpbkluc3RhbmNlSUQiLCAidWlu
dDY0X3QiLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7InBhcmFtZXRlcnMiLCAiV2Vi
S2l0OjpQbHVnaW46OlBhcmFtZXRlcnMiLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7
ICJwbHVnaW5JbnN0YW5jZUlEIiwgInVpbnQ2NF90IiwgbnVsbHB0ciwgZmFsc2UgfSwKKyAgICAg
ICAgICAgIHsgInBhcmFtZXRlcnMiLCAiV2ViS2l0OjpQbHVnaW46OlBhcmFtZXRlcnMiLCBudWxs
cHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfUnVuSmF2YVNjcmlwdEFsZXJ0OgogICAgICAgICByZXR1cm4gVmVjdG9y
PEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsiZnJhbWVJRCIsICJ1aW50NjRf
dCIsIG51bGxwdHIsIGZhbHNlfSwKLSAgICAgICAgICAgIHsibWVzc2FnZSIsICJTdHJpbmciLCBu
dWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJmcmFtZUlEIiwgInVpbnQ2NF90IiwgbnVs
bHB0ciwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgIm1lc3NhZ2UiLCAiU3RyaW5nIiwgbnVsbHB0
ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0dldFBsdWdpbnM6CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnRE
ZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJyZWZyZXNoIiwgImJvb2wiLCBudWxscHRyLCBm
YWxzZX0sCisgICAgICAgICAgICB7ICJyZWZyZXNoIiwgImJvb2wiLCBudWxscHRyLCBmYWxzZSB9
LAogICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJn
dW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJwbHVnaW5QYXRoIiwgIlN0cmluZyIs
IG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgInBsdWdpblBhdGgiLCAiU3RyaW5nIiwg
bnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6CiAgICAgICAgIHJldHVy
biBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4geyB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM6CiAgICAgICAg
IHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJmb28i
LCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7ImJhciIsICJkb3Vi
bGUiLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7ImJheiIsICJkb3VibGUiLCBudWxs
cHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJmb28iLCAidWludDY0X3QiLCBudWxscHRyLCBm
YWxzZSB9LAorICAgICAgICAgICAgeyAiYmFyIiwgImRvdWJsZSIsIG51bGxwdHIsIGZhbHNlIH0s
CisgICAgICAgICAgICB7ICJiYXoiLCAiZG91YmxlIiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAg
ICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RlbXBs
YXRlVGVzdDoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0g
ICAgICAgICAgICB7ImEiLCAiSGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2
NF90Pj4iLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJhIiwgIkhhc2hNYXA8U3Ry
aW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4+IiwgbnVsbHB0ciwgZmFsc2UgfSwKICAg
ICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Nl
dFZpZGVvTGF5ZXJJRDoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9u
PiB7Ci0gICAgICAgICAgICB7InZpZGVvTGF5ZXJJRCIsICJXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQiLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJ2aWRl
b0xheWVySUQiLCAiV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIiwgbnVs
bHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29u
bmVjdGlvbjoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0g
ICAgICAgICAgICB7ImNvbm5lY3Rpb25JZGVudGlmaWVyIiwgIklQQzo6TWFjaFBvcnQiLCBudWxs
cHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7ImZsYWdzIiwgIk9wdGlvblNldDxXZWJLaXQ6OlNl
bGVjdGlvbkZsYWdzPiIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgImNvbm5lY3Rp
b25JZGVudGlmaWVyIiwgIklQQzo6TWFjaFBvcnQiLCBudWxscHRyLCBmYWxzZSB9LAorICAgICAg
ICAgICAgeyAiZmxhZ3MiLCAiT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9uRmxhZ3M+IiwgbnVs
bHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyX0ludGVycHJldEtleUV2ZW50OgogICAgICAgICByZXR1cm4gVmVjdG9y
PEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsidHlwZSIsICJ1aW50MzJfdCIs
IG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgInR5cGUiLCAidWludDMyX3QiLCBudWxs
cHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogI2VuZGlmCiAjaWYgRU5BQkxFKERFUFJFQ0FURURf
RkVBVFVSRSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Rl
cHJlY2F0ZWRPcGVyYXRpb246CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlw
dGlvbj4gewotICAgICAgICAgICAgeyJkdW1teSIsICJJUEM6OkR1bW15VHlwZSIsIG51bGxwdHIs
IGZhbHNlfSwKKyAgICAgICAgICAgIHsgImR1bW15IiwgIklQQzo6RHVtbXlUeXBlIiwgbnVsbHB0
ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICNlbmRpZgogI2lmIEVOQUJMRShGRUFUVVJFX0ZPUl9U
RVNUSU5HKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRXhw
ZXJpbWVudGFsT3BlcmF0aW9uOgogICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3Jp
cHRpb24+IHsKLSAgICAgICAgICAgIHsiZHVtbXkiLCAiSVBDOjpEdW1teVR5cGUiLCBudWxscHRy
LCBmYWxzZX0sCisgICAgICAgICAgICB7ICJkdW1teSIsICJJUEM6OkR1bW15VHlwZSIsIG51bGxw
dHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAjZW5kaWYKICNlbmRpZgogI2lmIChFTkFCTEUoV0VC
S0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1BU1RFUl9PUiAmJiBNQVNURVJf
QU5EKSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFVS
TDoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAg
ICAgICB7InVybCIsICJTdHJpbmciLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJ1
cmwiLCAiU3RyaW5nIiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19Mb2FkU29tZXRoaW5nOgogICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRp
b24+IHsKLSAgICAgICAgICAgIHsidXJsIiwgIlN0cmluZyIsIG51bGxwdHIsIGZhbHNlfSwKKyAg
ICAgICAgICAgIHsgInVybCIsICJTdHJpbmciLCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9
OwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9D
T05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQ6CiAgICAgICAgIHJldHVy
biBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJldmVudCIsICJX
ZWJLaXQ6OldlYlRvdWNoRXZlbnQiLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJl
dmVudCIsICJXZWJLaXQ6OldlYlRvdWNoRXZlbnQiLCBudWxscHRyLCBmYWxzZSB9LAogICAgICAg
ICB9OwogI2VuZGlmCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FH
RV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCiAgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0FkZEV2ZW50OgogICAgICAgICByZXR1
cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsiZXZlbnQiLCAi
V2ViS2l0OjpXZWJUb3VjaEV2ZW50IiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAi
ZXZlbnQiLCAiV2ViS2l0OjpXZWJUb3VjaEV2ZW50IiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAg
ICAgfTsKICNlbmRpZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmdFbHNlOgogICAgICAgICBy
ZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsidXJsIiwg
IlN0cmluZyIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgInVybCIsICJTdHJpbmci
LCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbjoKICAg
ICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7
ImZyYW1lSUQiLCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7Imxp
c3RlbmVySUQiLCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7InBv
bGljeUFjdGlvbiIsICJ1aW50MzJfdCIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsg
ImZyYW1lSUQiLCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZSB9LAorICAgICAgICAgICAgeyAi
bGlzdGVuZXJJRCIsICJ1aW50NjRfdCIsIG51bGxwdHIsIGZhbHNlIH0sCisgICAgICAgICAgICB7
ICJwb2xpY3lBY3Rpb24iLCAidWludDMyX3QiLCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9
OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DbG9zZToKICAg
ICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7IH07CiAgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1ByZWZlcmVuY2VzRGlkQ2hhbmdlOgog
ICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAg
IHsic3RvcmUiLCAiV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIiwgbnVsbHB0ciwgZmFsc2V9
LAorICAgICAgICAgICAgeyAic3RvcmUiLCAiV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIiwg
bnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0OgogICAgICAgICByZXR1cm4gVmVj
dG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsiZCIsICJkb3VibGUiLCBu
dWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7ImYiLCAiZmxvYXQiLCBudWxscHRyLCBmYWxz
ZX0sCisgICAgICAgICAgICB7ICJkIiwgImRvdWJsZSIsIG51bGxwdHIsIGZhbHNlIH0sCisgICAg
ICAgICAgICB7ICJmIiwgImZsb2F0IiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZEludHM6CiAgICAg
ICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJp
bnRzIiwgIlZlY3Rvcjx1aW50NjRfdD4iLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7
ImludFZlY3RvcnMiLCAiVmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4+IiwgbnVsbHB0ciwgZmFsc2V9
LAorICAgICAgICAgICAgeyAiaW50cyIsICJWZWN0b3I8dWludDY0X3Q+IiwgbnVsbHB0ciwgZmFs
c2UgfSwKKyAgICAgICAgICAgIHsgImludFZlY3RvcnMiLCAiVmVjdG9yPFZlY3Rvcjx1aW50NjRf
dD4+IiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luOgogICAgICAgICByZXR1cm4gVmVj
dG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsicGx1Z2luSW5zdGFuY2VJ
RCIsICJ1aW50NjRfdCIsIG51bGxwdHIsIGZhbHNlfSwKLSAgICAgICAgICAgIHsicGFyYW1ldGVy
cyIsICJXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAg
ICAgICAgIHsgInBsdWdpbkluc3RhbmNlSUQiLCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZSB9
LAorICAgICAgICAgICAgeyAicGFyYW1ldGVycyIsICJXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVy
cyIsIG51bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydDoKICAgICAgICAgcmV0dXJu
IFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7ImZyYW1lSUQiLCAi
dWludDY0X3QiLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7Im1lc3NhZ2UiLCAiU3Ry
aW5nIiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAiZnJhbWVJRCIsICJ1aW50NjRf
dCIsIG51bGxwdHIsIGZhbHNlIH0sCisgICAgICAgICAgICB7ICJtZXNzYWdlIiwgIlN0cmluZyIs
IG51bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpbnM6CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJn
dW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJyZWZyZXNoIiwgImJvb2wiLCBudWxs
cHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJyZWZyZXNoIiwgImJvb2wiLCBudWxscHRyLCBm
YWxzZSB9LAogICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjoKICAgICAgICAgcmV0dXJuIFZlY3Rv
cjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7InBsdWdpblBhdGgiLCAiU3Ry
aW5nIiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAicGx1Z2luUGF0aCIsICJTdHJp
bmciLCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOgogICAgICAgICBy
ZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsgfTsKICAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM6CiAgICAg
ICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJm
b28iLCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7ImJhciIsICJk
b3VibGUiLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7ImJheiIsICJkb3VibGUiLCBu
dWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJmb28iLCAidWludDY0X3QiLCBudWxscHRy
LCBmYWxzZSB9LAorICAgICAgICAgICAgeyAiYmFyIiwgImRvdWJsZSIsIG51bGxwdHIsIGZhbHNl
IH0sCisgICAgICAgICAgICB7ICJiYXoiLCAiZG91YmxlIiwgbnVsbHB0ciwgZmFsc2UgfSwKICAg
ICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVt
cGxhdGVUZXN0OgogICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsK
LSAgICAgICAgICAgIHsiYSIsICJIYXNoTWFwPFN0cmluZywgc3RkOjpwYWlyPFN0cmluZywgdWlu
dDY0X3Q+PiIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgImEiLCAiSGFzaE1hcDxT
dHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90Pj4iLCBudWxscHRyLCBmYWxzZSB9LAog
ICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19T
ZXRWaWRlb0xheWVySUQ6CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlv
bj4gewotICAgICAgICAgICAgeyJ2aWRlb0xheWVySUQiLCAiV2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAidmlk
ZW9MYXllcklEIiwgIldlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCIsIG51
bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EaWRDcmVhdGVXZWJQcm9jZXNzQ29u
bmVjdGlvbjoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0g
ICAgICAgICAgICB7ImNvbm5lY3Rpb25JZGVudGlmaWVyIiwgIklQQzo6TWFjaFBvcnQiLCBudWxs
cHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7ImZsYWdzIiwgIk9wdGlvblNldDxXZWJLaXQ6OlNl
bGVjdGlvbkZsYWdzPiIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgImNvbm5lY3Rp
b25JZGVudGlmaWVyIiwgIklQQzo6TWFjaFBvcnQiLCBudWxscHRyLCBmYWxzZSB9LAorICAgICAg
ICAgICAgeyAiZmxhZ3MiLCAiT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9uRmxhZ3M+IiwgbnVs
bHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfSW50ZXJwcmV0S2V5RXZlbnQ6CiAgICAgICAgIHJldHVybiBWZWN0b3I8
QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJ0eXBlIiwgInVpbnQzMl90Iiwg
bnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAidHlwZSIsICJ1aW50MzJfdCIsIG51bGxw
dHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAjZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9G
RUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EZXBy
ZWNhdGVkT3BlcmF0aW9uOgogICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRp
b24+IHsKLSAgICAgICAgICAgIHsiZHVtbXkiLCAiSVBDOjpEdW1teVR5cGUiLCBudWxscHRyLCBm
YWxzZX0sCisgICAgICAgICAgICB7ICJkdW1teSIsICJJUEM6OkR1bW15VHlwZSIsIG51bGxwdHIs
IGZhbHNlIH0sCiAgICAgICAgIH07CiAjZW5kaWYKICNpZiBFTkFCTEUoRkVBVFVSRV9GT1JfVEVT
VElORykKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRXhwZXJp
bWVudGFsT3BlcmF0aW9uOgogICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRp
b24+IHsKLSAgICAgICAgICAgIHsiZHVtbXkiLCAiSVBDOjpEdW1teVR5cGUiLCBudWxscHRyLCBm
YWxzZX0sCisgICAgICAgICAgICB7ICJkdW1teSIsICJJUEM6OkR1bW15VHlwZSIsIG51bGxwdHIs
IGZhbHNlIH0sCiAgICAgICAgIH07CiAjZW5kaWYKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRVUkw6CiAgICAg
ICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJ1
cmwiLCAiU3RyaW5nIiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAidXJsIiwgIlN0
cmluZyIsIG51bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAjZW5kaWYKICNpZiBQTEFURk9S
TShHVEspCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTDoK
ICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAg
ICB7InVybCIsICJTdHJpbmciLCBudWxscHRyLCBmYWxzZX0sCi0gICAgICAgICAgICB7InZhbHVl
IiwgImludDY0X3QiLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJ1cmwiLCAiU3Ry
aW5nIiwgbnVsbHB0ciwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgInZhbHVlIiwgImludDY0X3Qi
LCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfU2VuZFNlbWFwaG9yZToKICAgICAgICAgcmV0dXJuIFZl
Y3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7InMwIiwgIklQQzo6U2Vt
YXBob3JlIiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAiczAiLCAiSVBDOjpTZW1h
cGhvcmUiLCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoU2VtYXBob3JlX1JlY2VpdmVTZW1hcGhvcmU6CiAgICAgICAgIHJldHVybiBW
ZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4geyB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRl
c3RXaXRoSW1hZ2VEYXRhX1NlbmRJbWFnZURhdGE6CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJn
dW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJzMCIsICJSZWZQdHI8V2ViQ29yZTo6
SW1hZ2VEYXRhPiIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgInMwIiwgIlJlZlB0
cjxXZWJDb3JlOjpJbWFnZURhdGE+IiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhOgog
ICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsgfTsKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nOgogICAgICAgICByZXR1cm4g
VmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAgIHsidXJsIiwgIlN0cmlu
ZyIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgInVybCIsICJTdHJpbmciLCBudWxs
cHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3RyZWFtX1NlbmRTdHJpbmdTeW5jaHJvbml6ZWQ6CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJn
dW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJ1cmwiLCAiU3RyaW5nIiwgbnVsbHB0
ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAidXJsIiwgIlN0cmluZyIsIG51bGxwdHIsIGZhbHNl
IH0sCiAgICAgICAgIH07CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdHJlYW1fU2VuZE1hY2hTZW5kUmlnaHQ6CiAgICAgICAgIHJldHVybiBWZWN0
b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJhMSIsICJNYWNoU2VuZFJp
Z2h0IiwgbnVsbHB0ciwgZmFsc2V9LAorICAgICAgICAgICAgeyAiYTEiLCAiTWFjaFNlbmRSaWdo
dCIsIG51bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdHJlYW1fUmVjZWl2ZU1hY2hTZW5kUmlnaHQ6CiAgICAgICAgIHJldHVybiBWZWN0
b3I8QXJndW1lbnREZXNjcmlwdGlvbj4geyB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdodDoKICAgICAgICAgcmV0dXJuIFZl
Y3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7ImExIiwgIk1hY2hTZW5k
UmlnaHQiLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAgICB7ICJhMSIsICJNYWNoU2VuZFJp
Z2h0IiwgbnVsbHB0ciwgZmFsc2UgfSwKICAgICAgICAgfTsKICNlbmRpZgogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtQnVmZmVyX1NlbmRTdHJlYW1CdWZmZXI6CiAgICAgICAg
IHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJzdHJl
YW0iLCAiSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyIiwgbnVsbHB0ciwgZmFsc2V9LAorICAg
ICAgICAgICAgeyAic3RyZWFtIiwgIklQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciIsIG51bGxw
dHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aENWUGl4ZWxCdWZmZXJfU2VuZENWUGl4ZWxCdWZmZXI6CiAg
ICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAg
eyJzMCIsICJSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4iLCBudWxscHRyLCBmYWxzZX0sCisg
ICAgICAgICAgICB7ICJzMCIsICJSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4iLCBudWxscHRy
LCBmYWxzZSB9LAogICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQ
aXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlcjoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxB
cmd1bWVudERlc2NyaXB0aW9uPiB7IH07CkBAIC01ODAsNDMgKzYxNiwxMDMgQEAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3Nh
Z2U6CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAg
ICAgICAgeyJyZXN1bHQiLCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZX0sCisgICAgICAgICAg
ICB7ICJyZXN1bHQiLCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9Owog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdl
V2l0aE5vQXJndW1lbnRzOgogICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRp
b24+IHsgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50czoKICAgICAgICAgcmV0dXJuIFZlY3RvcjxB
cmd1bWVudERlc2NyaXB0aW9uPiB7Ci0gICAgICAgICAgICB7ImZsYWciLCAiYm9vbCIsIG51bGxw
dHIsIGZhbHNlfSwKLSAgICAgICAgICAgIHsidmFsdWUiLCAidWludDY0X3QiLCBudWxscHRyLCBm
YWxzZX0sCisgICAgICAgICAgICB7ICJmbGFnIiwgImJvb2wiLCBudWxscHRyLCBmYWxzZSB9LAor
ICAgICAgICAgICAgeyAidmFsdWUiLCAidWludDY0X3QiLCBudWxscHRyLCBmYWxzZSB9LAogICAg
ICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5
bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246CiAgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnRE
ZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJmbGFnIiwgImJvb2wiLCBudWxscHRyLCBmYWxz
ZX0sCisgICAgICAgICAgICB7ICJmbGFnIiwgImJvb2wiLCBudWxscHRyLCBmYWxzZSB9LAogICAg
ICAgICB9OwogI2VuZGlmCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X1Rlc3RTeW5jTWVzc2FnZToKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0
aW9uPiB7Ci0gICAgICAgICAgICB7InJlcGx5IiwgInVpbnQ4X3QiLCBudWxscHRyLCBmYWxzZX0s
CisgICAgICAgICAgICB7ICJyZXBseSIsICJ1aW50OF90IiwgbnVsbHB0ciwgZmFsc2UgfSwKICAg
ICAgICAgfTsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5
bmNocm9ub3VzTWVzc2FnZToKICAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0
aW9uPiB7Ci0gICAgICAgICAgICB7Im9wdGlvbmFsUmVwbHkiLCAiV2ViS2l0OjpUZXN0Q2xhc3NO
YW1lIiwgbnVsbHB0ciwgdHJ1ZX0sCisgICAgICAgICAgICB7ICJvcHRpb25hbFJlcGx5IiwgIldl
YktpdDo6VGVzdENsYXNzTmFtZSIsIG51bGxwdHIsIHRydWUgfSwKICAgICAgICAgfTsKICNpZiAo
RU5BQkxFKFdFQktJVDIpICYmIChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1Ig
JiYgTUFTVEVSX0FORCkpCisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9DcmVhdGVQbHVnaW46CisgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlw
dGlvbj4geworICAgICAgICAgICAgeyAicmVzdWx0IiwgImJvb2wiLCBudWxscHRyLCBmYWxzZSB9
LAorICAgICAgICB9OworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfUnVuSmF2YVNjcmlwdEFsZXJ0OgorICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVz
Y3JpcHRpb24+IHsgfTsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0dldFBsdWdpbnM6CisgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlv
bj4geworICAgICAgICAgICAgeyAicGx1Z2lucyIsICJWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5m
bz4iLCBudWxscHRyLCBmYWxzZSB9LAorICAgICAgICB9OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246CiAgICAg
ICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4gewotICAgICAgICAgICAgeyJj
b25uZWN0aW9uSGFuZGxlIiwgIklQQzo6Q29ubmVjdGlvbjo6SGFuZGxlIiwgbnVsbHB0ciwgZmFs
c2V9LAorICAgICAgICAgICAgeyAiY29ubmVjdGlvbkhhbmRsZSIsICJJUEM6OkNvbm5lY3Rpb246
OkhhbmRsZSIsIG51bGxwdHIsIGZhbHNlIH0sCiAgICAgICAgIH07CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOgogICAg
ICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsgfTsKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9JbnRl
cnByZXRLZXlFdmVudDoKKyAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9u
PiB7CisgICAgICAgICAgICB7ICJjb21tYW5kTmFtZSIsICJWZWN0b3I8V2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kPiIsIG51bGxwdHIsIGZhbHNlIH0sCisgICAgICAgIH07CisjZW5kaWYKICNlbmRp
ZgogI2lmIChFTkFCTEUoV0VCS0lUMikgJiYgKE5FU1RFRF9NQVNURVJfQ09ORElUSU9OIHx8IE1B
U1RFUl9PUiAmJiBNQVNURVJfQU5EKSkKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luOgorICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50
RGVzY3JpcHRpb24+IHsKKyAgICAgICAgICAgIHsgInJlc3VsdCIsICJib29sIiwgbnVsbHB0ciwg
ZmFsc2UgfSwKKyAgICAgICAgfTsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0OgorICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3Vt
ZW50RGVzY3JpcHRpb24+IHsgfTsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfR2V0UGx1Z2luczoKKyAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2Ny
aXB0aW9uPiB7CisgICAgICAgICAgICB7ICJwbHVnaW5zIiwgIlZlY3RvcjxXZWJDb3JlOjpQbHVn
aW5JbmZvPiIsIG51bGxwdHIsIGZhbHNlIH0sCisgICAgICAgIH07CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOgog
ICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKLSAgICAgICAgICAg
IHsiY29ubmVjdGlvbkhhbmRsZSIsICJJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSIsIG51bGxwdHIs
IGZhbHNlfSwKKyAgICAgICAgICAgIHsgImNvbm5lY3Rpb25IYW5kbGUiLCAiSVBDOjpDb25uZWN0
aW9uOjpIYW5kbGUiLCBudWxscHRyLCBmYWxzZSB9LAogICAgICAgICB9OwogICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOgog
ICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsgfTsKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0lu
dGVycHJldEtleUV2ZW50OgorICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRp
b24+IHsKKyAgICAgICAgICAgIHsgImNvbW1hbmROYW1lIiwgIlZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+IiwgbnVsbHB0ciwgZmFsc2UgfSwKKyAgICAgICAgfTsKKyNlbmRpZgorI2Vu
ZGlmCisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFw
aG9yZToKKyAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7CisgICAg
ICAgICAgICB7ICJyMCIsICJJUEM6OlNlbWFwaG9yZSIsIG51bGxwdHIsIGZhbHNlIH0sCisgICAg
ICAgIH07CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfUmVjZWl2ZUlt
YWdlRGF0YToKKyAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7Cisg
ICAgICAgICAgICB7ICJyMCIsICJSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiIsIG51bGxwdHIs
IGZhbHNlIH0sCisgICAgICAgIH07CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJl
YW1fU2VuZFN0cmluZ1N5bmNocm9uaXplZDoKKyAgICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVu
dERlc2NyaXB0aW9uPiB7CisgICAgICAgICAgICB7ICJyZXR1cm5WYWx1ZSIsICJpbnQ2NF90Iiwg
bnVsbHB0ciwgZmFsc2UgfSwKKyAgICAgICAgfTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodDoKKyAg
ICAgICAgcmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7CisgICAgICAgICAgICB7
ICJyMSIsICJNYWNoU2VuZFJpZ2h0IiwgbnVsbHB0ciwgZmFsc2UgfSwKKyAgICAgICAgfTsKKyAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kQW5kUmVjZWl2ZU1hY2hTZW5k
UmlnaHQ6CisgICAgICAgIHJldHVybiBWZWN0b3I8QXJndW1lbnREZXNjcmlwdGlvbj4geworICAg
ICAgICAgICAgeyAicjEiLCAiTWFjaFNlbmRSaWdodCIsIG51bGxwdHIsIGZhbHNlIH0sCisgICAg
ICAgIH07CisjZW5kaWYKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlcjoKKyAgICAgICAg
cmV0dXJuIFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPiB7CisgICAgICAgICAgICB7ICJyMCIs
ICJSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4iLCBudWxscHRyLCBmYWxzZSB9LAorICAgICAg
ICB9OwogI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMuY3BwCShy
ZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01l
c3NhZ2VOYW1lcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw2ICsxNTgsMjYgQEAgY29uc3Qg
Y2hhciogZGVzY3JpcHRpb24oTWVzc2FnZU5hbWUgbmFtZQogICAgICAgICByZXR1cm4gIlN5bmNN
ZXNzYWdlUmVwbHkiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlcm1pbmF0ZToKICAgICAgICAg
cmV0dXJuICJUZXJtaW5hdGUiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhl
bEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlclJlcGx5OgorICAgICAgICByZXR1cm4gIlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlclJlcGx5IjsKKyAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhUmVwbHk6CisgICAg
ICAgIHJldHVybiAiVGVzdFdpdGhJbWFnZURhdGFfUmVjZWl2ZUltYWdlRGF0YVJlcGx5IjsKKyAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpblJl
cGx5OgorICAgICAgICByZXR1cm4gIlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ3JlYXRlUGx1Z2lu
UmVwbHkiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0
UGx1Z2luc1JlcGx5OgorICAgICAgICByZXR1cm4gIlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0
UGx1Z2luc1JlcGx5IjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0ludGVycHJldEtleUV2ZW50UmVwbHk6CisgICAgICAgIHJldHVybiAiVGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9JbnRlcnByZXRLZXlFdmVudFJlcGx5IjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydFJlcGx5OgorICAgICAg
ICByZXR1cm4gIlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUnVuSmF2YVNjcmlwdEFsZXJ0UmVwbHki
OworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1JlY2VpdmVTZW1hcGhv
cmVSZXBseToKKyAgICAgICAgcmV0dXJuICJUZXN0V2l0aFNlbWFwaG9yZV9SZWNlaXZlU2VtYXBo
b3JlUmVwbHkiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1JlY2VpdmVN
YWNoU2VuZFJpZ2h0UmVwbHk6CisgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdHJlYW1fUmVjZWl2
ZU1hY2hTZW5kUmlnaHRSZXBseSI7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJl
YW1fU2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJpZ2h0UmVwbHk6CisgICAgICAgIHJldHVybiAiVGVz
dFdpdGhTdHJlYW1fU2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJpZ2h0UmVwbHkiOworICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmdTeW5jaHJvbml6ZWRSZXBseToK
KyAgICAgICAgcmV0dXJuICJUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkUmVw
bHkiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNN
ZXNzYWdlUmVwbHk6CiAgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3lu
Y01lc3NhZ2VSZXBseSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5OgpAQCAtMTY2LDYgKzE4NiwxNCBA
QCBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbihNZXNzYWdlTmFtZSBuYW1lCiAgICAgICAgIHJldHVy
biAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVu
dHNSZXBseSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RB
c3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseToKICAgICAgICAgcmV0dXJuICJUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5IjsKKyAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luUmVwbHk6
CisgICAgICAgIHJldHVybiAiVGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0NyZWF0ZVBsdWdpblJlcGx5
IjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2lu
c1JlcGx5OgorICAgICAgICByZXR1cm4gIlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5z
UmVwbHkiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19JbnRl
cnByZXRLZXlFdmVudFJlcGx5OgorICAgICAgICByZXR1cm4gIlRlc3RXaXRob3V0QXR0cmlidXRl
c19JbnRlcnByZXRLZXlFdmVudFJlcGx5IjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0UmVwbHk6CisgICAgICAgIHJldHVybiAi
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydFJlcGx5IjsKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uOgogICAgICAgICByZXR1cm4gIlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24iOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlczoKQEAgLTI2MiwxMCArMjkwLDI0IEBAIFJl
Y2VpdmVyTmFtZSByZWNlaXZlck5hbWUoTWVzc2FnZU5hbWUgbWUKICAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpTeW5jTWVzc2FnZVJlcGx5OgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlcm1pbmF0ZToK
ICAgICAgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6SVBDOworICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlclJlcGx5OgorICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGFSZXBseToK
KyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdp
blJlcGx5OgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0
UGx1Z2luc1JlcGx5OgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfSW50ZXJwcmV0S2V5RXZlbnRSZXBseToKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydFJlcGx5OgorICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1JlY2VpdmVTZW1hcGhvcmVSZXBseToKKyAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodFJlcGx5Ogor
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFjaFNl
bmRSaWdodFJlcGx5OgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRT
dHJpbmdTeW5jaHJvbml6ZWRSZXBseToKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5OgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb25SZXBseToKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdp
dGhNdWx0aXBsZUFyZ3VtZW50c1JlcGx5OgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzUmVwbHk6CisgICAgY2Fz
ZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0NyZWF0ZVBsdWdpblJlcGx5Ogor
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zUmVw
bHk6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0ludGVycHJl
dEtleUV2ZW50UmVwbHk6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX1J1bkphdmFTY3JpcHRBbGVydFJlcGx5OgogICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1l
OjpBc3luY1JlcGx5OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOgpAQCAtNDcxLDYgKzUx
MywzNCBAQCBib29sIGlzVmFsaWRNZXNzYWdlTmFtZShNZXNzYWdlTmFtZSBtZXNzCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpU
ZXJtaW5hdGUpCiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIFVTRShBVkZPVU5EQVRJT04pCisg
ICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1
ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZlclJlcGx5KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNl
bmRpZgorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aElt
YWdlRGF0YV9SZWNlaXZlSW1hZ2VEYXRhUmVwbHkpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0NyZWF0ZVBsdWdpblJlcGx5KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAobWVz
c2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQ
bHVnaW5zUmVwbHkpCisgICAgICAgIHJldHVybiB0cnVlOworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9JbnRlcnByZXRLZXlFdmVudFJlcGx5KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRp
ZgorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydFJlcGx5KQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhv
cmVfUmVjZWl2ZVNlbWFwaG9yZVJlcGx5KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdHJlYW1fUmVjZWl2ZU1hY2hTZW5kUmlnaHRSZXBseSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0g
SVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJp
Z2h0UmVwbHkpCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmdTeW5jaHJv
bml6ZWRSZXBseSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVS
RSkKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00
ODcsNiArNTU3LDE2IEBAIGJvb2wgaXNWYWxpZE1lc3NhZ2VOYW1lKE1lc3NhZ2VOYW1lIG1lc3MK
ICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAjZW5kaWYKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0NyZWF0ZVBsdWdpblJlcGx5KQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX0dldFBsdWdpbnNSZXBseSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aG91dEF0dHJpYnV0ZXNfSW50ZXJwcmV0S2V5RXZlbnRSZXBseSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisjZW5kaWYKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVydFJlcGx5KQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbikKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdE11bHRpcGxlQXR0cmlidXRlcykKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMuaAko
cmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9N
ZXNzYWdlTmFtZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDEwICsxMDgsMjQgQEAgZW51bSBj
bGFzcyBNZXNzYWdlTmFtZSA6IHVpbnQxNl90IHsKICAgICAsIFNldFN0cmVhbURlc3RpbmF0aW9u
SUQKICAgICAsIFN5bmNNZXNzYWdlUmVwbHkKICAgICAsIFRlcm1pbmF0ZQorICAgICwgVGVzdFdp
dGhDVlBpeGVsQnVmZmVyX1JlY2VpdmVDVlBpeGVsQnVmZmVyUmVwbHkKKyAgICAsIFRlc3RXaXRo
SW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGFSZXBseQorICAgICwgVGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9DcmVhdGVQbHVnaW5SZXBseQorICAgICwgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQ
bHVnaW5zUmVwbHkKKyAgICAsIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5RXZl
bnRSZXBseQorICAgICwgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9SdW5KYXZhU2NyaXB0QWxlcnRS
ZXBseQorICAgICwgVGVzdFdpdGhTZW1hcGhvcmVfUmVjZWl2ZVNlbWFwaG9yZVJlcGx5CisgICAg
LCBUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodFJlcGx5CisgICAgLCBUZXN0V2l0
aFN0cmVhbV9TZW5kQW5kUmVjZWl2ZU1hY2hTZW5kUmlnaHRSZXBseQorICAgICwgVGVzdFdpdGhT
dHJlYW1fU2VuZFN0cmluZ1N5bmNocm9uaXplZFJlcGx5CiAgICAgLCBUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5CiAgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uUmVwbHkKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19U
ZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHkKICAgICAsIFRlc3RXaXRo
U3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzUmVwbHkKKyAgICAsIFRl
c3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW5SZXBseQorICAgICwgVGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0dldFBsdWdpbnNSZXBseQorICAgICwgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0lu
dGVycHJldEtleUV2ZW50UmVwbHkKKyAgICAsIFRlc3RXaXRob3V0QXR0cmlidXRlc19SdW5KYXZh
U2NyaXB0QWxlcnRSZXBseQogICAgICwgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbgogICAgICwgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlw
bGVBdHRyaWJ1dGVzCiAgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoQ1ZQaXhlbEJ1
ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQyLDYgKzQyLDQxIEBACiAjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCiAjZW5kaWYKIAor
bmFtZXNwYWNlIE1lc3NhZ2VzIHsKKworbmFtZXNwYWNlIFRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlciB7
CisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorCit2b2lkIFJlY2VpdmVDVlBpeGVsQnVmZmVyOjpj
YWxsUmVwbHkoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcjA7CisgICAgZGVj
b2RlciA+PiByMDsKKyAgICBpZiAoIXIwKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBjYW5jZWxSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqcjApKTsK
K30KKwordm9pZCBSZWNlaXZlQ1ZQaXhlbEJ1ZmZlcjo6Y2FuY2VsUmVwbHkoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoSVBDOjpBc3luY1JlcGx5RXJyb3I8UmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+Pjo6Y3JlYXRlKCkpOworfQorCit2b2lkIFJlY2VpdmVD
VlBpeGVsQnVmZmVyOjpzZW5kKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYgZW5jb2RlciwgSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4mIHIwKQoreworICAgIGVuY29kZXIuZ2V0KCkgPDwgcjA7CisgICAgY29ubmVjdGlvbi5zZW5k
U3luY1JlcGx5KFdURk1vdmUoZW5jb2RlcikpOworfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdpdGhDVlBpeGVsQnVmZmVyCisKK30gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIpCkBAIC01MSwzMSArODYsMTcgQEAgdm9pZCBUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OmRpZFJl
Y2VpdmVNZQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlcjo6U2VuZENWUGl4ZWxCdWZmZXI6Om5hbWUoKSkKICAgICAgICAgcmV0
dXJuIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpT
ZW5kQ1ZQaXhlbEJ1ZmZlcj4oY29ubmVjdGlvbiwgZGVjb2RlciwgdGhpcywgJlRlc3RXaXRoQ1ZQ
aXhlbEJ1ZmZlcjo6c2VuZENWUGl4ZWxCdWZmZXIpOwogI2VuZGlmCi0gICAgVU5VU0VEX1BBUkFN
KGNvbm5lY3Rpb24pOwotICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKLSNpZiBFTkFCTEUoSVBD
X1RFU1RJTkdfQVBJKQotICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9y
VGVzdGluZygpKQotICAgICAgICByZXR1cm47Ci0jZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVz
c2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwotfQotCi1ib29sIFRlc3RXaXRoQ1ZQaXhl
bEJ1ZmZlcjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQotewotICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKICNpZiBVU0UoQVZG
T1VOREFUSU9OKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRl
c3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6UmVjZWl2ZUNWUGl4ZWxCdWZmZXI6Om5hbWUoKSkKLSAgICAg
ICAgcmV0dXJuIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6VGVzdFdpdGhDVlBpeGVsQnVm
ZmVyOjpSZWNlaXZlQ1ZQaXhlbEJ1ZmZlcj4oY29ubmVjdGlvbiwgZGVjb2RlciwgKnJlcGx5RW5j
b2RlciwgdGhpcywgJlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcjo6cmVjZWl2ZUNWUGl4ZWxCdWZmZXIp
OworICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlQXN5bmM8TWVzc2FnZXM6OlRlc3RX
aXRoQ1ZQaXhlbEJ1ZmZlcjo6UmVjZWl2ZUNWUGl4ZWxCdWZmZXI+KGNvbm5lY3Rpb24sIGRlY29k
ZXIsIHRoaXMsICZUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OnJlY2VpdmVDVlBpeGVsQnVmZmVyKTsK
ICNlbmRpZgogICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICAgICBVTlVTRURfUEFSQU0o
ZGVjb2Rlcik7Ci0gICAgVU5VU0VEX1BBUkFNKHJlcGx5RW5jb2Rlcik7CiAjaWYgRU5BQkxFKElQ
Q19URVNUSU5HX0FQSSkKICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZv
clRlc3RpbmcoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm47CiAjZW5k
aWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJVbmhhbmRsZWQgc3luY2hyb25vdXMgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQs
IGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVT
U0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9u
KGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkBAIC05Myw2ICsxMTQsMTAgQEAgdGVtcGxhdGU8PiBzdGQ6
Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4gagogewogICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2Rl
ZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpSZWNlaXZlQ1ZQaXhl
bEJ1ZmZlcjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogfQordGVtcGxhdGU8
PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVw
bHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZlQ1ZQaXhlbEJ1ZmZl
cj4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhDVlBpeGVsQnVmZmVyOjpSZWNlaXZlQ1ZQaXhlbEJ1ZmZlcjo6UmVwbHlBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CiAjZW5kaWYKIAogfQpJbmRleDogU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhD
VlBpeGVsQnVmZmVyTWVzc2FnZXMuaAkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03Myw5ICs3MywxNCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQXJndW1l
bnRzID0gc3RkOjp0dXBsZTw+OwogCiAgICAgc3RhdGljIElQQzo6TWVzc2FnZU5hbWUgbmFtZSgp
IHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNlaXZl
Q1ZQaXhlbEJ1ZmZlcjsgfQotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1N5bmMgPSB0cnVl
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1N5bmMgPSBmYWxzZTsKIAorICAgIHN0YXRp
YyB2b2lkIGNhbGxSZXBseShJUEM6OkRlY29kZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmKT4mJik7CisgICAgc3RhdGljIHZvaWQgY2FuY2Vs
UmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4m
Jik+JiYpOworICAgIHN0YXRpYyBJUEM6Ok1lc3NhZ2VOYW1lIGFzeW5jTWVzc2FnZVJlcGx5TmFt
ZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoQ1ZQaXhlbEJ1ZmZlcl9SZWNl
aXZlQ1ZQaXhlbEJ1ZmZlclJlcGx5OyB9CisgICAgdXNpbmcgQXN5bmNSZXBseSA9IFJlY2VpdmVD
VlBpeGVsQnVmZmVyQXN5bmNSZXBseTsKICAgICBzdGF0aWMgY29uc3RleHByIGF1dG8gY2FsbGJh
Y2tUaHJlYWQgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbFRocmVhZDo6Q29uc3RydWN0aW9u
VGhyZWFkOworICAgIHN0YXRpYyB2b2lkIHNlbmQoVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mJiwg
SVBDOjpDb25uZWN0aW9uJiwgY29uc3QgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiByMCk7
CiAgICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTxSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4+OwogICAgIGNvbnN0IEFyZ3VtZW50cyYgYXJndW1lbnRzKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVs
QnVmZmVyTWVzc2FnZXNSZXBsaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlc1JlcGxpZXMuaAko
cmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlc1JlcGxpZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MjUsMTIgKzI1LDE5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIk1lc3NhZ2VOYW1lcy5o
IgorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvQ1ZVdGlsaXRpZXMuaD4K
KyNlbmRpZgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogCiAKIG5hbWVzcGFjZSBNZXNzYWdlcyB7CiBuYW1lc3BhY2UgVGVzdFdpdGhDVlBpeGVs
QnVmZmVyIHsKIAorI2lmIFVTRShBVkZPVU5EQVRJT04pCit1c2luZyBSZWNlaXZlQ1ZQaXhlbEJ1
ZmZlckFzeW5jUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPiYgcjApPjsKKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2l0
aENWUGl4ZWxCdWZmZXIKIH0gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcAkocmV2aXNpb24gMjkwODk3KQorKysg
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3Nh
Z2VSZWNlaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDM3IEBACiAjaW5jbHVk
ZSAiSlNJUENCaW5kaW5nLmgiCiAjZW5kaWYKIAorbmFtZXNwYWNlIE1lc3NhZ2VzIHsKKworbmFt
ZXNwYWNlIFRlc3RXaXRoSW1hZ2VEYXRhIHsKKwordm9pZCBSZWNlaXZlSW1hZ2VEYXRhOjpjYWxs
UmVwbHkoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxXZWJDb3JlOjpJbWFnZURhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHN0
ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4+IHIwOworICAgIGRlY29kZXIg
Pj4gcjA7CisgICAgaWYgKCFyMCkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgY2FuY2VsUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoKnIwKSk7Cit9CisK
K3ZvaWQgUmVjZWl2ZUltYWdlRGF0YTo6Y2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkFzeW5jUmVwbHlFcnJvcjxSZWZQdHI8V2ViQ29y
ZTo6SW1hZ2VEYXRhPj46OmNyZWF0ZSgpKTsKK30KKwordm9pZCBSZWNlaXZlSW1hZ2VEYXRhOjpz
ZW5kKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYgZW5jb2RlciwgSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBjb25zdCBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiYgcjApCit7CisgICAg
ZW5jb2Rlci5nZXQoKSA8PCByMDsKKyAgICBjb25uZWN0aW9uLnNlbmRTeW5jUmVwbHkoV1RGTW92
ZShlbmNvZGVyKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXaXRoSW1hZ2VEYXRhCisKK30g
Ly8gbmFtZXNwYWNlIE1lc3NhZ2VzCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFRlc3RX
aXRoSW1hZ2VEYXRhOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTQ0LDYgKzc1LDggQEAgdm9pZCBUZXN0V2l0
aEltYWdlRGF0YTo6ZGlkUmVjZWl2ZU1lc3NhZwogICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsgKnRo
aXMgfTsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpUZXN0V2l0
aEltYWdlRGF0YTo6U2VuZEltYWdlRGF0YTo6bmFtZSgpKQogICAgICAgICByZXR1cm4gSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aEltYWdlRGF0YTo6U2VuZEltYWdlRGF0YT4o
Y29ubmVjdGlvbiwgZGVjb2RlciwgdGhpcywgJlRlc3RXaXRoSW1hZ2VEYXRhOjpzZW5kSW1hZ2VE
YXRhKTsKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpUZXN0V2l0
aEltYWdlRGF0YTo6UmVjZWl2ZUltYWdlRGF0YTo6bmFtZSgpKQorICAgICAgICByZXR1cm4gSVBD
OjpoYW5kbGVNZXNzYWdlQXN5bmM8TWVzc2FnZXM6OlRlc3RXaXRoSW1hZ2VEYXRhOjpSZWNlaXZl
SW1hZ2VEYXRhPihjb25uZWN0aW9uLCBkZWNvZGVyLCB0aGlzLCAmVGVzdFdpdGhJbWFnZURhdGE6
OnJlY2VpdmVJbWFnZURhdGEpOwogICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICAgICBV
TlVTRURfUEFSQU0oZGVjb2Rlcik7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKQEAgLTUz
LDIyICs4Niw2IEBAIHZvaWQgVGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNzYWcKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0
byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVj
b2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCi1ib29sIFRlc3RXaXRoSW1hZ2VEYXRhOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29k
ZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCi17Ci0g
ICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OwotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VO
YW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoSW1hZ2VEYXRhOjpSZWNlaXZlSW1hZ2VEYXRhOjpu
YW1lKCkpCi0gICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OlRlc3RX
aXRoSW1hZ2VEYXRhOjpSZWNlaXZlSW1hZ2VEYXRhPihjb25uZWN0aW9uLCBkZWNvZGVyLCAqcmVw
bHlFbmNvZGVyLCB0aGlzLCAmVGVzdFdpdGhJbWFnZURhdGE6OnJlY2VpdmVJbWFnZURhdGEpOwot
ICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7
Ci0gICAgVU5VU0VEX1BBUkFNKHJlcGx5RW5jb2Rlcik7Ci0jaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKLSAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rpbmco
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19B
UEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN5bmNo
cm9ub3VzIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7Ci0gICAgcmV0dXJuIGZhbHNlOwot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkp
CkBAIC04Myw2ICsxMDAsMTAgQEAgdGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1
ZT4gagogewogICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6
VGVzdFdpdGhJbWFnZURhdGE6OlJlY2VpdmVJbWFnZURhdGE6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKIH0KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aEltYWdl
RGF0YV9SZWNlaXZlSW1hZ2VEYXRhPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1l
bnRzPE1lc3NhZ2VzOjpUZXN0V2l0aEltYWdlRGF0YTo6UmVjZWl2ZUltYWdlRGF0YTo6UmVwbHlB
cmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CiAKIH0KIApJbmRleDogU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aEltYWdlRGF0YU1lc3NhZ2VzLmgJKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC02OCw5ICs2OCwxNCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQXJndW1lbnRzID0g
c3RkOjp0dXBsZTw+OwogCiAgICAgc3RhdGljIElQQzo6TWVzc2FnZU5hbWUgbmFtZSgpIHsgcmV0
dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoSW1hZ2VEYXRhX1JlY2VpdmVJbWFnZURhdGE7
IH0KLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTeW5jID0gdHJ1ZTsKKyAgICBzdGF0aWMg
Y29uc3RleHByIGJvb2wgaXNTeW5jID0gZmFsc2U7CiAKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVw
bHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6
SW1hZ2VEYXRhPiYmKT4mJik7CisgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiYmKT4mJik7CisgICAgc3Rh
dGljIElQQzo6TWVzc2FnZU5hbWUgYXN5bmNNZXNzYWdlUmVwbHlOYW1lKCkgeyByZXR1cm4gSVBD
OjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhJbWFnZURhdGFfUmVjZWl2ZUltYWdlRGF0YVJlcGx5OyB9
CisgICAgdXNpbmcgQXN5bmNSZXBseSA9IFJlY2VpdmVJbWFnZURhdGFBc3luY1JlcGx5OwogICAg
IHN0YXRpYyBjb25zdGV4cHIgYXV0byBjYWxsYmFja1RocmVhZCA9IFdURjo6Q29tcGxldGlvbkhh
bmRsZXJDYWxsVGhyZWFkOjpDb25zdHJ1Y3Rpb25UaHJlYWQ7CisgICAgc3RhdGljIHZvaWQgc2Vu
ZChVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBSZWZQ
dHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiYgcjApOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBs
ZTxSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRz
ID0gc3RkOjp0dXBsZTxSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPj47CiAgICAgY29uc3QgQXJn
dW1lbnRzJiBhcmd1bWVudHMoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VzUmVwbGllcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFN
ZXNzYWdlc1JlcGxpZXMuaAkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aEltYWdlRGF0YU1lc3NhZ2VzUmVwbGllcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxMiArMjUsMTUgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
TWVzc2FnZU5hbWVzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURhdGEuaD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIAogbmFtZXNw
YWNlIE1lc3NhZ2VzIHsKIG5hbWVzcGFjZSBUZXN0V2l0aEltYWdlRGF0YSB7CiAKK3VzaW5nIFJl
Y2VpdmVJbWFnZURhdGFBc3luY1JlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBS
ZWZQdHI8V2ViQ29yZTo6SW1hZ2VEYXRhPiYgcjApPjsKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdp
dGhJbWFnZURhdGEKIH0gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAJKHJldmlzaW9uIDI5MDg5
NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lS
ZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDY3
IEBAIG5hbWVzcGFjZSBNZXNzYWdlcyB7CiAKIG5hbWVzcGFjZSBUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyIHsKIAordm9pZCBDcmVhdGVQbHVnaW46OmNhbGxSZXBseShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlc3VsdDsKKyAgICBkZWNvZGVyID4+IHJlc3Vs
dDsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgY2FuY2VsUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoKnJlc3VsdCkpOwor
fQorCit2b2lkIENyZWF0ZVBsdWdpbjo6Y2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVy
KElQQzo6QXN5bmNSZXBseUVycm9yPGJvb2w+OjpjcmVhdGUoKSk7Cit9CisKK3ZvaWQgQ3JlYXRl
UGx1Z2luOjpzZW5kKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYgZW5jb2RlciwgSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBib29sIHJlc3VsdCkKK3sKKyAgICBlbmNvZGVyLmdldCgpIDw8
IHJlc3VsdDsKKyAgICBjb25uZWN0aW9uLnNlbmRTeW5jUmVwbHkoV1RGTW92ZShlbmNvZGVyKSk7
Cit9CisKK3ZvaWQgUnVuSmF2YVNjcmlwdEFsZXJ0OjpjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSdW5KYXZhU2NyaXB0QWxlcnQ6
OmNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCit2b2lkIFJ1bkphdmFTY3JpcHRB
bGVydDo6c2VuZChVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBjb25uZWN0aW9uLnNlbmRTeW5jUmVwbHkoV1RGTW92
ZShlbmNvZGVyKSk7Cit9CisKK3ZvaWQgR2V0UGx1Z2luczo6Y2FsbFJlcGx5KElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6UGx1Z2lu
SW5mbz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4+IHBsdWdpbnM7CisgICAgZGVjb2RlciA+PiBwbHVnaW5z
OworICAgIGlmICghcGx1Z2lucykgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgY2FuY2VsUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoKnBsdWdpbnMpKTsK
K30KKwordm9pZCBHZXRQbHVnaW5zOjpjYW5jZWxSZXBseShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkFzeW5jUmVwbHlFcnJvcjxWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4+OjpjcmVhdGUoKSk7Cit9CisKK3ZvaWQgR2V0UGx1Z2luczo6c2VuZChV
bmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAg
IGVuY29kZXIuZ2V0KCkgPDwgcGx1Z2luczsKKyAgICBjb25uZWN0aW9uLnNlbmRTeW5jUmVwbHko
V1RGTW92ZShlbmNvZGVyKSk7Cit9CisKIHZvaWQgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246
OnNlbmQoVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mJiBlbmNvZGVyLCBJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFu
ZGxlKQogewogICAgIGVuY29kZXIuZ2V0KCkgPDwgY29ubmVjdGlvbkhhbmRsZTsKQEAgLTc4LDYg
KzEzOSwzMyBAQCB2b2lkIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OnNlbmQoVW5pcXVlCiAgICAg
Y29ubmVjdGlvbi5zZW5kU3luY1JlcGx5KFdURk1vdmUoZW5jb2RlcikpOwogfQogCisjaWYgUExB
VEZPUk0oTUFDKQorCit2b2lkIEludGVycHJldEtleUV2ZW50OjpjYWxsUmVwbHkoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4+IGNvbW1hbmROYW1lOworICAgIGRl
Y29kZXIgPj4gY29tbWFuZE5hbWU7CisgICAgaWYgKCFjb21tYW5kTmFtZSkgeworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgY2FuY2VsUmVwbHkoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUoKmNvbW1hbmROYW1lKSk7Cit9CisKK3ZvaWQgSW50ZXJwcmV0S2V5RXZlbnQ6
OmNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhh
bmRsZXIoSVBDOjpBc3luY1JlcGx5RXJyb3I8VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFu
ZD4+OjpjcmVhdGUoKSk7Cit9CisKK3ZvaWQgSW50ZXJwcmV0S2V5RXZlbnQ6OnNlbmQoVW5pcXVl
UmVmPElQQzo6RW5jb2Rlcj4mJiBlbmNvZGVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kTmFtZSkKK3sK
KyAgICBlbmNvZGVyLmdldCgpIDw8IGNvbW1hbmROYW1lOworICAgIGNvbm5lY3Rpb24uc2VuZFN5
bmNSZXBseShXVEZNb3ZlKGVuY29kZXIpKTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXIKIAogfSAvLyBuYW1lc3BhY2UgTWVzc2FnZXMKQEAgLTEx
NSw2ICsyMDMsMTIgQEAgdm9pZCBUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpkaWRSZWNlaXZlVAog
ICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyOjpTZW5kRG91YmxlQW5kRmxvYXQ+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHRoaXMs
ICZUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpzZW5kRG91YmxlQW5kRmxvYXQpOwogICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6
OlNlbmRJbnRzOjpuYW1lKCkpCiAgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVz
c2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlNlbmRJbnRzPihjb25uZWN0aW9uLCBkZWNv
ZGVyLCB0aGlzLCAmVGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6c2VuZEludHMpOworICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6
OkNyZWF0ZVBsdWdpbjo6bmFtZSgpKQorICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdl
QXN5bmM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNyZWF0ZVBsdWdpbj4oY29u
bmVjdGlvbiwgZGVjb2RlciwgdGhpcywgJlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmNyZWF0ZVBs
dWdpbik7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcjo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpuYW1lKCkpCisgICAgICAgIHJl
dHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VBc3luYzxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcjo6UnVuSmF2YVNjcmlwdEFsZXJ0Pihjb25uZWN0aW9uLCBkZWNvZGVyLCB0aGlzLCAmVGVz
dFdpdGhMZWdhY3lSZWNlaXZlcjo6cnVuSmF2YVNjcmlwdEFsZXJ0KTsKKyAgICBpZiAoZGVjb2Rl
ci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpHZXRQ
bHVnaW5zOjpuYW1lKCkpCisgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VBc3luYzxN
ZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2lucz4oY29ubmVjdGlvbiwg
ZGVjb2RlciwgdGhpcywgJlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmdldFBsdWdpbnMpOwogICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXI6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOjpuYW1lKCkpCiAgICAgICAgIHJldHVybiBJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlc3RQ
YXJhbWV0ZXJBdHRyaWJ1dGVzPihjb25uZWN0aW9uLCBkZWNvZGVyLCB0aGlzLCAmVGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcjo6dGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMpOwogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OlRlbXBs
YXRlVGVzdDo6bmFtZSgpKQpAQCAtMTI1LDYgKzIxOSwxMCBAQCB2b2lkIFRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OmRpZFJlY2VpdmVUCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBN
ZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246Om5hbWUoKSkKICAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHRoaXMsICZUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpkaWRD
cmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik7CiAjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcjo6SW50ZXJwcmV0S2V5RXZlbnQ6Om5hbWUoKSkKKyAgICAgICAgcmV0dXJuIElQQzo6
aGFuZGxlTWVzc2FnZUFzeW5jPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpJbnRl
cnByZXRLZXlFdmVudD4oY29ubmVjdGlvbiwgZGVjb2RlciwgdGhpcywgJlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OmludGVycHJldEtleUV2ZW50KTsKKyNlbmRpZgogI2lmIEVOQUJMRShERVBSRUNB
VEVEX0ZFQVRVUkUpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6RGVwcmVjYXRlZE9wZXJhdGlvbjo6bmFtZSgpKQogICAg
ICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyOjpEZXByZWNhdGVkT3BlcmF0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCB0aGlzLCAm
VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGVwcmVjYXRlZE9wZXJhdGlvbik7CkBAIC0xNDUsMjAg
KzI0MywxMCBAQCB2b2lkIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVUCiBib29s
IFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmRpZFJlY2VpdmVTeW5jVGVzdFdpdGhMZWdhY3lSZWNl
aXZlck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgUmVm
IHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OwotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkg
PT0gTWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkNyZWF0ZVBsdWdpbjo6bmFtZSgp
KQotICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyOjpDcmVhdGVQbHVnaW4+KGNvbm5lY3Rpb24sIGRlY29kZXIsICpyZXBseUVu
Y29kZXIsIHRoaXMsICZUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpjcmVhdGVQbHVnaW4pOwotICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXI6OlJ1bkphdmFTY3JpcHRBbGVydDo6bmFtZSgpKQotICAgICAgICByZXR1cm4gSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpSdW5KYXZhU2Ny
aXB0QWxlcnQ+KGNvbm5lY3Rpb24sIGRlY29kZXIsICpyZXBseUVuY29kZXIsIHRoaXMsICZUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyOjpydW5KYXZhU2NyaXB0QWxlcnQpOwotICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBs
dWdpbnM6Om5hbWUoKSkKLSAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2lucz4oY29ubmVjdGlvbiwgZGVjb2Rl
ciwgKnJlcGx5RW5jb2RlciwgdGhpcywgJlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OmdldFBsdWdp
bnMpOwogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpuYW1lKCkpCiAgICAg
ICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91czxNZXNzYWdlczo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGNvbm5lY3Rpb24s
IGRlY29kZXIsIHJlcGx5RW5jb2RlciwgdGhpcywgJlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6Omdl
dFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgp
ID09IE1lc3NhZ2VzOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpUZXN0TXVsdGlwbGVBdHRyaWJ1
dGVzOjpuYW1lKCkpCiAgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91
c1dhbnRzQ29ubmVjdGlvbjxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6VGVzdE11
bHRpcGxlQXR0cmlidXRlcz4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyLCB0aGlz
LCAmVGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6dGVzdE11bHRpcGxlQXR0cmlidXRlcyk7Ci0jaWYg
UExBVEZPUk0oTUFDKQotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkludGVycHJldEtleUV2ZW50OjpuYW1lKCkpCi0gICAg
ICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXI6OkludGVycHJldEtleUV2ZW50Pihjb25uZWN0aW9uLCBkZWNvZGVyLCAqcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmVGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6aW50ZXJwcmV0S2V5RXZlbnQpOwot
I2VuZGlmCiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwogICAgIFVOVVNFRF9QQVJBTShk
ZWNvZGVyKTsKICAgICBVTlVTRURfUEFSQU0ocmVwbHlFbmNvZGVyKTsKQEAgLTIyOCwxNCArMzE2
LDI2IEBAIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGoKIHsKICAgICBy
ZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXI6OkNyZWF0ZVBsdWdpbjo6QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIp
OwogfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRl
Y29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ3Jl
YXRlUGx1Z2luPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2Vz
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyOjpDcmVhdGVQbHVnaW46OlJlcGx5QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworfQogdGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6
SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlPE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVydD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHJldHVybiBqc1ZhbHVlRm9yRGVj
b2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6UnVuSmF2YVNj
cmlwdEFsZXJ0OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiB9Cit0ZW1wbGF0
ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VS
ZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9SdW5KYXZhU2NyaXB0QWxl
cnQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikK
K3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXI6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHlBcmd1bWVudHM+KGds
b2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CiB0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpK
U1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfR2V0UGx1Z2lucz4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3Vt
ZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1Z2luczo6QXJndW1l
bnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFs
PEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2lucz4oSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVybiBqc1ZhbHVlRm9y
RGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6R2V0UGx1
Z2luczo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CiB0ZW1wbGF0
ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2Rl
cikKIHsKICAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CkBAIC0yNzMsNiArMzczLDEwIEBAIHRlbXBsYXRl
PD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGoKIHsKICAgICByZXR1cm4ganNWYWx1ZUZv
ckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXI6OkludGVy
cHJldEtleUV2ZW50OjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiB9Cit0ZW1w
bGF0ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3Nh
Z2VSZXBseTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9JbnRlcnByZXRLZXlF
dmVudD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcjo6SW50ZXJwcmV0S2V5RXZlbnQ6OlJlcGx5QXJndW1lbnRzPihn
bG9iYWxPYmplY3QsIGRlY29kZXIpOworfQogI2VuZGlmCiAjaWYgRU5BQkxFKERFUFJFQ0FURURf
RkVBVFVSRSkKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EZXBy
ZWNhdGVkT3BlcmF0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29k
ZXImIGRlY29kZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VzLmgJ
KHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4MSw5
ICsyODEsMTQgQEAgcHVibGljOgogICAgIHVzaW5nIEFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8dWlu
dDY0X3QsIGNvbnN0IFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzJj47CiAKICAgICBzdGF0aWMg
SVBDOjpNZXNzYWdlTmFtZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW47IH0KLSAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgaXNTeW5jID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTeW5jID0gZmFs
c2U7CiAKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sJiYpPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBjYW5jZWxSZXBseShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJik+JiYpOworICAgIHN0YXRpYyBJUEM6Ok1lc3Nh
Z2VOYW1lIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ3JlYXRlUGx1Z2luUmVwbHk7IH0KKyAgICB1c2luZyBB
c3luY1JlcGx5ID0gQ3JlYXRlUGx1Z2luQXN5bmNSZXBseTsKICAgICBzdGF0aWMgY29uc3RleHBy
IGF1dG8gY2FsbGJhY2tUaHJlYWQgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbFRocmVhZDo6
Q29uc3RydWN0aW9uVGhyZWFkOworICAgIHN0YXRpYyB2b2lkIHNlbmQoVW5pcXVlUmVmPElQQzo6
RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgYm9vbCByZXN1bHQpOwogICAgIHVzaW5nIFJl
cGx5ID0gc3RkOjp0dXBsZTxib29sJj47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6
OnR1cGxlPGJvb2w+OwogICAgIENyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlE
LCBjb25zdCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKQEAgLTMwNSw5
ICszMTAsMTQgQEAgcHVibGljOgogICAgIHVzaW5nIEFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8dWlu
dDY0X3QsIGNvbnN0IFN0cmluZyY+OwogCiAgICAgc3RhdGljIElQQzo6TWVzc2FnZU5hbWUgbmFt
ZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUnVu
SmF2YVNjcmlwdEFsZXJ0OyB9Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzU3luYyA9IHRy
dWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzU3luYyA9IGZhbHNlOwogCisgICAgc3Rh
dGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CisgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICBzdGF0aWMgSVBDOjpNZXNzYWdlTmFtZSBhc3luY01lc3NhZ2VSZXBseU5h
bWUoKSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1
bkphdmFTY3JpcHRBbGVydFJlcGx5OyB9CisgICAgdXNpbmcgQXN5bmNSZXBseSA9IFJ1bkphdmFT
Y3JpcHRBbGVydEFzeW5jUmVwbHk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNhbGxiYWNr
VGhyZWFkID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlckNhbGxUaHJlYWQ6OkNvbnN0cnVjdGlvblRo
cmVhZDsKKyAgICBzdGF0aWMgdm9pZCBzZW5kKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYsIElQ
Qzo6Q29ubmVjdGlvbiYpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTw+OwogICAgIHVz
aW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0dXBsZTw+OwogICAgIFJ1bkphdmFTY3JpcHRBbGVy
dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0zMjksOSArMzM5
LDE0IEBAIHB1YmxpYzoKICAgICB1c2luZyBBcmd1bWVudHMgPSBzdGQ6OnR1cGxlPGJvb2w+Owog
CiAgICAgc3RhdGljIElQQzo6TWVzc2FnZU5hbWUgbmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luczsgfQotICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBpc1N5bmMgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBp
c1N5bmMgPSBmYWxzZTsKIAorICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBseShJUEM6OkRlY29kZXIm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYmKT4m
Jik7CisgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mJik+JiYpOworICAgIHN0YXRpYyBJUEM6Ok1lc3Nh
Z2VOYW1lIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luc1JlcGx5OyB9CisgICAgdXNpbmcgQXN5
bmNSZXBseSA9IEdldFBsdWdpbnNBc3luY1JlcGx5OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0
byBjYWxsYmFja1RocmVhZCA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXJDYWxsVGhyZWFkOjpDb25z
dHJ1Y3Rpb25UaHJlYWQ7CisgICAgc3RhdGljIHZvaWQgc2VuZChVbmlxdWVSZWY8SVBDOjpFbmNv
ZGVyPiYmLCBJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5m
bz4mIHBsdWdpbnMpOwogICAgIHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4mPjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8
VmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+PjsKICAgICBleHBsaWNpdCBHZXRQbHVnaW5zKGJv
b2wgcmVmcmVzaCkKQEAgLTQ4Nyw5ICs1MDIsMTQgQEAgcHVibGljOgogICAgIHVzaW5nIEFyZ3Vt
ZW50cyA9IHN0ZDo6dHVwbGU8dWludDMyX3Q+OwogCiAgICAgc3RhdGljIElQQzo6TWVzc2FnZU5h
bWUgbmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfSW50ZXJwcmV0S2V5RXZlbnQ7IH0KLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTeW5j
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTeW5jID0gZmFsc2U7CiAKKyAg
ICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYmKT4mJik7CisgICAgc3RhdGlj
IHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYmKT4mJik7CisgICAgc3RhdGljIElQQzo6TWVzc2FnZU5hbWUgYXN5
bmNNZXNzYWdlUmVwbHlOYW1lKCkgeyByZXR1cm4gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9JbnRlcnByZXRLZXlFdmVudFJlcGx5OyB9CisgICAgdXNpbmcgQXN5bmNS
ZXBseSA9IEludGVycHJldEtleUV2ZW50QXN5bmNSZXBseTsKICAgICBzdGF0aWMgY29uc3RleHBy
IGF1dG8gY2FsbGJhY2tUaHJlYWQgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbFRocmVhZDo6
Q29uc3RydWN0aW9uVGhyZWFkOworICAgIHN0YXRpYyB2b2lkIHNlbmQoVW5pcXVlUmVmPElQQzo6
RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmROYW1lKTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mPjsKICAgICB1c2luZyBSZXBseUFyZ3Vt
ZW50cyA9IHN0ZDo6dHVwbGU8VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4+OwogICAg
IGV4cGxpY2l0IEludGVycHJldEtleUV2ZW50KHVpbnQzMl90IHR5cGUpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdl
c1JlcGxpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rl
c3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlc1JlcGxpZXMuaAkocmV2aXNpb24gMjkw
ODk3KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyTWVzc2FnZXNSZXBsaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE2ICsyOCwy
OSBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VOYW1lcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UGx1Z2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiAKIG5hbWVzcGFjZSBNZXNzYWdlcyB7CiBuYW1lc3BhY2UgVGVzdFdpdGhMZWdh
Y3lSZWNlaXZlciB7CiAKK3VzaW5nIENyZWF0ZVBsdWdpbkFzeW5jUmVwbHkgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgcmVzdWx0KT47CisKK3VzaW5nIFJ1bkphdmFTY3JpcHRBbGVydEFz
eW5jUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OworCit1c2luZyBHZXRQbHVnaW5z
QXN5bmNSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6
OlBsdWdpbkluZm8+JiBwbHVnaW5zKT47CisKIHVzaW5nIEdldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBJUEM6OkNvbm5l
Y3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk+OwogCiB1c2luZyBUZXN0TXVsdGlwbGVB
dHRyaWJ1dGVzRGVsYXllZFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKIAorI2lm
IFBMQVRGT1JNKE1BQykKK3VzaW5nIEludGVycHJldEtleUV2ZW50QXN5bmNSZXBseSA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4m
IGNvbW1hbmROYW1lKT47CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcgogfSAvLyBuYW1lc3BhY2UgTWVzc2FnZXMKIApJbmRleDogU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAJKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlUmVj
ZWl2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCwzNyBAQAogI2luY2x1ZGUgIkpT
SVBDQmluZGluZy5oIgogI2VuZGlmCiAKK25hbWVzcGFjZSBNZXNzYWdlcyB7CisKK25hbWVzcGFj
ZSBUZXN0V2l0aFNlbWFwaG9yZSB7CisKK3ZvaWQgUmVjZWl2ZVNlbWFwaG9yZTo6Y2FsbFJlcGx5
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OlNlbWFw
aG9yZSYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPElQQzo6
U2VtYXBob3JlPiByMDsKKyAgICBkZWNvZGVyID4+IHIwOworICAgIGlmICghcjApIHsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGNhbmNlbFJlcGx5KFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKCpyMCkpOworfQorCit2b2lkIFJlY2VpdmVTZW1hcGhvcmU6OmNhbmNl
bFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBDOjpTZW1hcGhvcmUmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoSVBDOjpBc3luY1JlcGx5RXJy
b3I8SVBDOjpTZW1hcGhvcmU+OjpjcmVhdGUoKSk7Cit9CisKK3ZvaWQgUmVjZWl2ZVNlbWFwaG9y
ZTo6c2VuZChVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgY29uc3QgSVBDOjpTZW1hcGhvcmUmIHIwKQoreworICAgIGVuY29kZXIu
Z2V0KCkgPDwgcjA7CisgICAgY29ubmVjdGlvbi5zZW5kU3luY1JlcGx5KFdURk1vdmUoZW5jb2Rl
cikpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2l0aFNlbWFwaG9yZQorCit9IC8vIG5hbWVz
cGFjZSBNZXNzYWdlcworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBUZXN0V2l0aFNlbWFw
aG9yZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIpCkBAIC00MSw2ICs3Miw4IEBAIHZvaWQgVGVzdFdpdGhTZW1hcGhv
cmU6OmRpZFJlY2VpdmVNZXNzYWcKICAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07CiAg
ICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6VGVzdFdpdGhTZW1hcGhv
cmU6OlNlbmRTZW1hcGhvcmU6Om5hbWUoKSkKICAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxlTWVz
c2FnZTxNZXNzYWdlczo6VGVzdFdpdGhTZW1hcGhvcmU6OlNlbmRTZW1hcGhvcmU+KGNvbm5lY3Rp
b24sIGRlY29kZXIsIHRoaXMsICZUZXN0V2l0aFNlbWFwaG9yZTo6c2VuZFNlbWFwaG9yZSk7Cisg
ICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6VGVzdFdpdGhTZW1hcGhv
cmU6OlJlY2VpdmVTZW1hcGhvcmU6Om5hbWUoKSkKKyAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxl
TWVzc2FnZUFzeW5jPE1lc3NhZ2VzOjpUZXN0V2l0aFNlbWFwaG9yZTo6UmVjZWl2ZVNlbWFwaG9y
ZT4oY29ubmVjdGlvbiwgZGVjb2RlciwgdGhpcywgJlRlc3RXaXRoU2VtYXBob3JlOjpyZWNlaXZl
U2VtYXBob3JlKTsKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAgICAgVU5VU0VEX1BB
UkFNKGRlY29kZXIpOwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCkBAIC01MCwyMiArODMs
NiBAQCB2b2lkIFRlc3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJ
dTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVz
dGluYXRpb25JRCgpKTsKIH0KIAotYm9vbCBUZXN0V2l0aFNlbWFwaG9yZTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQotewotICAgIFJlZiBw
cm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09
IE1lc3NhZ2VzOjpUZXN0V2l0aFNlbWFwaG9yZTo6UmVjZWl2ZVNlbWFwaG9yZTo6bmFtZSgpKQot
ICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aFNlbWFw
aG9yZTo6UmVjZWl2ZVNlbWFwaG9yZT4oY29ubmVjdGlvbiwgZGVjb2RlciwgKnJlcGx5RW5jb2Rl
ciwgdGhpcywgJlRlc3RXaXRoU2VtYXBob3JlOjpyZWNlaXZlU2VtYXBob3JlKTsKLSAgICBVTlVT
RURfUEFSQU0oY29ubmVjdGlvbik7Ci0gICAgVU5VU0VEX1BBUkFNKGRlY29kZXIpOwotICAgIFVO
VVNFRF9QQVJBTShyZXBseUVuY29kZXIpOwotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0g
ICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBzeW5jaHJvbm91cyBt
ZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgp
KSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQpAQCAtODAs
NiArOTcsMTAgQEAgdGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4gagogewog
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhT
ZW1hcGhvcmU6OlJlY2VpdmVTZW1hcGhvcmU6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKIH0KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVG
b3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFNlbWFwaG9yZV9SZWNl
aXZlU2VtYXBob3JlPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aFNlbWFwaG9yZTo6UmVjZWl2ZVNlbWFwaG9yZTo6UmVwbHlBcmd1bWVudHM+
KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CiAKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9y
ZU1lc3NhZ2VzLmgJKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC02Nyw5ICs2NywxNCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQXJndW1lbnRzID0gc3RkOjp0dXBs
ZTw+OwogCiAgICAgc3RhdGljIElQQzo6TWVzc2FnZU5hbWUgbmFtZSgpIHsgcmV0dXJuIElQQzo6
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU2VtYXBob3JlX1JlY2VpdmVTZW1hcGhvcmU7IH0KLSAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNTeW5jID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IGJvb2wgaXNTeW5jID0gZmFsc2U7CiAKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpE
ZWNvZGVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OlNlbWFwaG9yZSYmKT4mJik7Cisg
ICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OlNl
bWFwaG9yZSYmKT4mJik7CisgICAgc3RhdGljIElQQzo6TWVzc2FnZU5hbWUgYXN5bmNNZXNzYWdl
UmVwbHlOYW1lKCkgeyByZXR1cm4gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTZW1hcGhvcmVf
UmVjZWl2ZVNlbWFwaG9yZVJlcGx5OyB9CisgICAgdXNpbmcgQXN5bmNSZXBseSA9IFJlY2VpdmVT
ZW1hcGhvcmVBc3luY1JlcGx5OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBjYWxsYmFja1Ro
cmVhZCA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXJDYWxsVGhyZWFkOjpDb25zdHJ1Y3Rpb25UaHJl
YWQ7CisgICAgc3RhdGljIHZvaWQgc2VuZChVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBJUEM6
OkNvbm5lY3Rpb24mLCBjb25zdCBJUEM6OlNlbWFwaG9yZSYgcjApOwogICAgIHVzaW5nIFJlcGx5
ID0gc3RkOjp0dXBsZTxJUEM6OlNlbWFwaG9yZSY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRz
ID0gc3RkOjp0dXBsZTxJUEM6OlNlbWFwaG9yZT47CiAgICAgY29uc3QgQXJndW1lbnRzJiBhcmd1
bWVudHMoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VzUmVwbGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1hcGhvcmVNZXNzYWdlc1JlcGxp
ZXMuaAkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VzUmVwbGllcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNCw2ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSVBDU2VtYXBob3Jl
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZU5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
IApAQCAtMzEsNiArMzIsNyBAQAogbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIG5hbWVzcGFjZSBUZXN0
V2l0aFNlbWFwaG9yZSB7CiAKK3VzaW5nIFJlY2VpdmVTZW1hcGhvcmVBc3luY1JlcGx5ID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBJUEM6OlNlbWFwaG9yZSYgcjApPjsKIAogfSAvLyBu
YW1lc3BhY2UgVGVzdFdpdGhTZW1hcGhvcmUKIH0gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2Fn
ZVJlY2VpdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcAkocmV2aXNpb24gMjkwODk3
KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDE5ICs0NCwxOSBAQCB2b2lk
IFRlc3RXaXRoU3RyZWFtOjpkaWRSZWNlaXZlU3RyZWFtTWVzCiB7CiAgICAgaWYgKGRlY29kZXIu
bWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRTdHJpbmc6Om5h
bWUoKSkKICAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6VGVzdFdp
dGhTdHJlYW06OlNlbmRTdHJpbmc+KGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLCBkZWNvZGVyLCB0
aGlzLCAmVGVzdFdpdGhTdHJlYW06OnNlbmRTdHJpbmcpOworICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kU3RyaW5nU3luY2hyb25p
emVkOjpuYW1lKCkpCisgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VBc3luYzxNZXNz
YWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRTdHJpbmdTeW5jaHJvbml6ZWQ+KGNvbm5lY3Rpb24u
Y29ubmVjdGlvbigpLCBkZWNvZGVyLCB0aGlzLCAmVGVzdFdpdGhTdHJlYW06OnNlbmRTdHJpbmdT
eW5jaHJvbml6ZWQpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kTWFjaFNlbmRSaWdodDo6
bmFtZSgpKQogICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0
V2l0aFN0cmVhbTo6U2VuZE1hY2hTZW5kUmlnaHQ+KGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLCBk
ZWNvZGVyLCB0aGlzLCAmVGVzdFdpdGhTdHJlYW06OnNlbmRNYWNoU2VuZFJpZ2h0KTsKICNlbmRp
ZgotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoU3Ry
ZWFtOjpTZW5kU3RyaW5nU3luY2hyb25pemVkOjpuYW1lKCkpCi0gICAgICAgIHJldHVybiBJUEM6
OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5kU3RyaW5nU3luY2hy
b25pemVkPihjb25uZWN0aW9uLCBkZWNvZGVyLCB0aGlzLCAmVGVzdFdpdGhTdHJlYW06OnNlbmRT
dHJpbmdTeW5jaHJvbml6ZWQpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpSZWNlaXZlTWFjaFNl
bmRSaWdodDo6bmFtZSgpKQotICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3Nh
Z2VzOjpUZXN0V2l0aFN0cmVhbTo6UmVjZWl2ZU1hY2hTZW5kUmlnaHQ+KGNvbm5lY3Rpb24sIGRl
Y29kZXIsIHRoaXMsICZUZXN0V2l0aFN0cmVhbTo6cmVjZWl2ZU1hY2hTZW5kUmlnaHQpOworICAg
ICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlQXN5bmM8TWVzc2FnZXM6OlRlc3RXaXRoU3Ry
ZWFtOjpSZWNlaXZlTWFjaFNlbmRSaWdodD4oY29ubmVjdGlvbi5jb25uZWN0aW9uKCksIGRlY29k
ZXIsIHRoaXMsICZUZXN0V2l0aFN0cmVhbTo6cmVjZWl2ZU1hY2hTZW5kUmlnaHQpOwogI2VuZGlm
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBN
ZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlNlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdodDo6bmFt
ZSgpKQotICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0
aFN0cmVhbTo6U2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJpZ2h0Pihjb25uZWN0aW9uLCBkZWNvZGVy
LCB0aGlzLCAmVGVzdFdpdGhTdHJlYW06OnNlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdodCk7Cisg
ICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VBc3luYzxNZXNzYWdlczo6VGVzdFdpdGhT
dHJlYW06OlNlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdodD4oY29ubmVjdGlvbi5jb25uZWN0aW9u
KCksIGRlY29kZXIsIHRoaXMsICZUZXN0V2l0aFN0cmVhbTo6c2VuZEFuZFJlY2VpdmVNYWNoU2Vu
ZFJpZ2h0KTsKICNlbmRpZgogICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKICAgICBVTlVTRURf
UEFSQU0oY29ubmVjdGlvbik7CkBAIC04MSw2ICs4MSwxMCBAQCB0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqCiB7CiAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6U2VuZFN0cmluZ1N5bmNocm9uaXplZDo6
QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogfQordGVtcGxhdGU8PiBzdGQ6Om9w
dGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRTdHJpbmdTeW5jaHJvbml6ZWQ+KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4g
anNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoU3RyZWFtOjpTZW5k
U3RyaW5nU3luY2hyb25pemVkOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKK30KICNpZiBQTEFURk9STShDT0NPQSkKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6
OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dHJlYW1fU2VuZE1hY2hTZW5kUmlnaHQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRGVjb2RlciYgZGVjb2RlcikKIHsKQEAgLTkwLDEwICs5NCwxOCBAQCB0ZW1wbGF0ZTw+IHN0
ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqCiB7CiAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNv
ZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6UmVjZWl2ZU1hY2hTZW5kUmln
aHQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKIH0KK3RlbXBsYXRlPD4gc3Rk
OjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodD4oSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHJldHVy
biBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhTdHJlYW06OlJl
Y2VpdmVNYWNoU2VuZFJpZ2h0OjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVy
KTsKK30KIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JE
ZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1fU2VuZEFuZFJlY2VpdmVN
YWNoU2VuZFJpZ2h0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3Nh
Z2VzOjpUZXN0V2l0aFN0cmVhbTo6U2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJpZ2h0OjpBcmd1bWVu
dHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CiB9Cit0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8
SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2VSZXBseTxNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdHJlYW1fU2VuZEFuZFJlY2VpdmVNYWNoU2VuZFJpZ2h0PihKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpz
VmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aFN0cmVhbTo6U2VuZEFu
ZFJlY2VpdmVNYWNoU2VuZFJpZ2h0OjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNv
ZGVyKTsKK30KICNlbmRpZgogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZXMuaAkocmV2aXNp
b24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aFN0cmVhbU1lc3NhZ2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDEwICs2OSwxNCBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgQXJndW1lbnRzID0gc3RkOjp0dXBsZTxjb25zdCBTdHJpbmcmPjsKIAog
ICAgIHN0YXRpYyBJUEM6Ok1lc3NhZ2VOYW1lIG5hbWUoKSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkOyB9Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzU3luYyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29s
IGlzU3luYyA9IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1N0cmVhbUVuY29k
YWJsZSA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzUmVwbHlTdHJlYW1FbmNv
ZGFibGUgPSB0cnVlOwogCisgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoaW50NjRfdCYmKT4mJik7CisgICAgc3RhdGljIHZvaWQg
Y2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChpbnQ2NF90JiYpPiYmKTsKKyAgICBz
dGF0aWMgSVBDOjpNZXNzYWdlTmFtZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiBJ
UEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kU3RyaW5nU3luY2hyb25pemVkUmVw
bHk7IH0KKyAgICB1c2luZyBBc3luY1JlcGx5ID0gU2VuZFN0cmluZ1N5bmNocm9uaXplZEFzeW5j
UmVwbHk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNhbGxiYWNrVGhyZWFkID0gV1RGOjpD
b21wbGV0aW9uSGFuZGxlckNhbGxUaHJlYWQ6OkNvbnN0cnVjdGlvblRocmVhZDsKICAgICB1c2lu
ZyBSZXBseSA9IHN0ZDo6dHVwbGU8aW50NjRfdCY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRz
ID0gc3RkOjp0dXBsZTxpbnQ2NF90PjsKQEAgLTEyMCwxMCArMTI0LDE0IEBAIHB1YmxpYzoKICAg
ICB1c2luZyBBcmd1bWVudHMgPSBzdGQ6OnR1cGxlPD47CiAKICAgICBzdGF0aWMgSVBDOjpNZXNz
YWdlTmFtZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdHJlYW1f
UmVjZWl2ZU1hY2hTZW5kUmlnaHQ7IH0KLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTeW5j
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTeW5jID0gZmFsc2U7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIGlzU3RyZWFtRW5jb2RhYmxlID0gdHJ1ZTsKICAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgaXNSZXBseVN0cmVhbUVuY29kYWJsZSA9IGZhbHNlOwogCisgICAg
c3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoTWFjaFNlbmRSaWdodCYmKT4mJik7CisgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChNYWNoU2VuZFJpZ2h0JiYpPiYmKTsKKyAgICBzdGF0aWMgSVBD
OjpNZXNzYWdlTmFtZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiBJUEM6Ok1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9SZWNlaXZlTWFjaFNlbmRSaWdodFJlcGx5OyB9CisgICAg
dXNpbmcgQXN5bmNSZXBseSA9IFJlY2VpdmVNYWNoU2VuZFJpZ2h0QXN5bmNSZXBseTsKICAgICBz
dGF0aWMgY29uc3RleHByIGF1dG8gY2FsbGJhY2tUaHJlYWQgPSBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyQ2FsbFRocmVhZDo6Q29uc3RydWN0aW9uVGhyZWFkOwogICAgIHVzaW5nIFJlcGx5ID0gc3Rk
Ojp0dXBsZTxNYWNoU2VuZFJpZ2h0Jj47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVudHMgPSBzdGQ6
OnR1cGxlPE1hY2hTZW5kUmlnaHQ+OwpAQCAtMTQzLDEwICsxNTEsMTQgQEAgcHVibGljOgogICAg
IHVzaW5nIEFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8Y29uc3QgTWFjaFNlbmRSaWdodCY+OwogCiAg
ICAgc3RhdGljIElQQzo6TWVzc2FnZU5hbWUgbmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3RyZWFtX1NlbmRBbmRSZWNlaXZlTWFjaFNlbmRSaWdodDsgfQotICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBpc1N5bmMgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBpc1N5bmMgPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTdHJlYW1F
bmNvZGFibGUgPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNSZXBseVN0cmVh
bUVuY29kYWJsZSA9IGZhbHNlOwogCisgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVj
b2RlciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWFjaFNlbmRSaWdodCYmKT4mJik7CisgICAg
c3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNYWNoU2VuZFJp
Z2h0JiYpPiYmKTsKKyAgICBzdGF0aWMgSVBDOjpNZXNzYWdlTmFtZSBhc3luY01lc3NhZ2VSZXBs
eU5hbWUoKSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN0cmVhbV9TZW5kQW5k
UmVjZWl2ZU1hY2hTZW5kUmlnaHRSZXBseTsgfQorICAgIHVzaW5nIEFzeW5jUmVwbHkgPSBTZW5k
QW5kUmVjZWl2ZU1hY2hTZW5kUmlnaHRBc3luY1JlcGx5OwogICAgIHN0YXRpYyBjb25zdGV4cHIg
YXV0byBjYWxsYmFja1RocmVhZCA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXJDYWxsVGhyZWFkOjpD
b25zdHJ1Y3Rpb25UaHJlYWQ7CiAgICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPE1hY2hTZW5k
UmlnaHQmPjsKICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8TWFjaFNlbmRS
aWdodD47CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
U3RyZWFtTWVzc2FnZXNSZXBsaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbU1lc3NhZ2VzUmVwbGllcy5oCShyZXZpc2lv
biAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRo
U3RyZWFtTWVzc2FnZXNSZXBsaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiwyMSBA
QAogCiAjaW5jbHVkZSAiTWVzc2FnZU5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCiAKIG5hbWVzcGFjZSBNZXNzYWdlcyB7
CiBuYW1lc3BhY2UgVGVzdFdpdGhTdHJlYW0gewogCit1c2luZyBTZW5kU3RyaW5nU3luY2hyb25p
emVkQXN5bmNSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoaW50NjRfdCByZXR1cm5WYWx1
ZSk+OworCisjaWYgUExBVEZPUk0oQ09DT0EpCit1c2luZyBSZWNlaXZlTWFjaFNlbmRSaWdodEFz
eW5jUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE1hY2hTZW5kUmlnaHQmIHIx
KT47CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQordXNpbmcgU2VuZEFuZFJlY2VpdmVN
YWNoU2VuZFJpZ2h0QXN5bmNSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgTWFj
aFNlbmRSaWdodCYgcjEpPjsKKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2l0aFN0cmVh
bQogfSAvLyBuYW1lc3BhY2UgTWVzc2FnZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZVJlY2VpdmVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0
QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAJKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2Fn
ZVJlY2VpdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsNjcgQEAgbmFtZXNwYWNl
IE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFRlc3RXaXRob3V0QXR0cmlidXRlcyB7CiAKK3ZvaWQg
Q3JlYXRlUGx1Z2luOjpjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc3RkOjpv
cHRpb25hbDxib29sPiByZXN1bHQ7CisgICAgZGVjb2RlciA+PiByZXN1bHQ7CisgICAgaWYgKCFy
ZXN1bHQpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGNhbmNlbFJl
cGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKCpyZXN1bHQpKTsKK30KKwordm9pZCBDcmVh
dGVQbHVnaW46OmNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihJUEM6OkFzeW5jUmVw
bHlFcnJvcjxib29sPjo6Y3JlYXRlKCkpOworfQorCit2b2lkIENyZWF0ZVBsdWdpbjo6c2VuZChV
bmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgYm9vbCByZXN1bHQpCit7CisgICAgZW5jb2Rlci5nZXQoKSA8PCByZXN1bHQ7CisgICAg
Y29ubmVjdGlvbi5zZW5kU3luY1JlcGx5KFdURk1vdmUoZW5jb2RlcikpOworfQorCit2b2lkIFJ1
bkphdmFTY3JpcHRBbGVydDo6Y2FsbFJlcGx5KElQQzo6RGVjb2RlciYgZGVjb2RlciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUnVuSmF2YVNjcmlwdEFsZXJ0OjpjYW5jZWxSZXBseShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSdW5KYXZhU2NyaXB0QWxlcnQ6OnNlbmQoVW5p
cXVlUmVmPElQQzo6RW5jb2Rlcj4mJiBlbmNvZGVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24pCit7CisgICAgY29ubmVjdGlvbi5zZW5kU3luY1JlcGx5KFdURk1vdmUoZW5jb2RlcikpOwor
fQorCit2b2lkIEdldFBsdWdpbnM6OmNhbGxSZXBseShJUEM6OkRlY29kZXImIGRlY29kZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlBs
dWdpbkluZm8+PiBwbHVnaW5zOworICAgIGRlY29kZXIgPj4gcGx1Z2luczsKKyAgICBpZiAoIXBs
dWdpbnMpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGNhbmNlbFJl
cGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKCpwbHVnaW5zKSk7Cit9CisKK3ZvaWQgR2V0
UGx1Z2luczo6Y2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlv
bkhhbmRsZXIoSVBDOjpBc3luY1JlcGx5RXJyb3I8VmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+
Pjo6Y3JlYXRlKCkpOworfQorCit2b2lkIEdldFBsdWdpbnM6OnNlbmQoVW5pcXVlUmVmPElQQzo6
RW5jb2Rlcj4mJiBlbmNvZGVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1Z2lucykKK3sKKyAgICBlbmNvZGVyLmdldCgp
IDw8IHBsdWdpbnM7CisgICAgY29ubmVjdGlvbi5zZW5kU3luY1JlcGx5KFdURk1vdmUoZW5jb2Rl
cikpOworfQorCiB2b2lkIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpzZW5kKFVuaXF1ZVJl
ZjxJUEM6OkVuY29kZXI+JiYgZW5jb2RlciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBj
b25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSkKIHsKICAgICBl
bmNvZGVyLmdldCgpIDw8IGNvbm5lY3Rpb25IYW5kbGU7CkBAIC03OCw2ICsxMzksMzMgQEAgdm9p
ZCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpzZW5kKFVuaXF1ZQogICAgIGNvbm5lY3Rpb24uc2Vu
ZFN5bmNSZXBseShXVEZNb3ZlKGVuY29kZXIpKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKKwor
dm9pZCBJbnRlcnByZXRLZXlFdmVudDo6Y2FsbFJlcGx5KElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQ+PiBjb21tYW5kTmFtZTsKKyAgICBkZWNvZGVyID4+IGNvbW1h
bmROYW1lOworICAgIGlmICghY29tbWFuZE5hbWUpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIGNhbmNlbFJlcGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKCpj
b21tYW5kTmFtZSkpOworfQorCit2b2lkIEludGVycHJldEtleUV2ZW50OjpjYW5jZWxSZXBseShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKElQQzo6QXN5
bmNSZXBseUVycm9yPFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Pjo6Y3JlYXRlKCkp
OworfQorCit2b2lkIEludGVycHJldEtleUV2ZW50OjpzZW5kKFVuaXF1ZVJlZjxJUEM6OkVuY29k
ZXI+JiYgZW5jb2RlciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZE5hbWUpCit7CisgICAgZW5jb2Rlci5n
ZXQoKSA8PCBjb21tYW5kTmFtZTsKKyAgICBjb25uZWN0aW9uLnNlbmRTeW5jUmVwbHkoV1RGTW92
ZShlbmNvZGVyKSk7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2l0aG91dEF0
dHJpYnV0ZXMKIAogfSAvLyBuYW1lc3BhY2UgTWVzc2FnZXMKQEAgLTExNSw2ICsyMDMsMTIgQEAg
dm9pZCBUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVNZQogICAgICAgICByZXR1cm4g
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlNlbmRE
b3VibGVBbmRGbG9hdD4oY29ubmVjdGlvbiwgZGVjb2RlciwgdGhpcywgJlRlc3RXaXRob3V0QXR0
cmlidXRlczo6c2VuZERvdWJsZUFuZEZsb2F0KTsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpID09IE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlNlbmRJbnRzOjpuYW1lKCkp
CiAgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OlRlc3RXaXRob3V0
QXR0cmlidXRlczo6U2VuZEludHM+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHRoaXMsICZUZXN0V2l0
aG91dEF0dHJpYnV0ZXM6OnNlbmRJbnRzKTsKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgp
ID09IE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkNyZWF0ZVBsdWdpbjo6bmFtZSgp
KQorICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlQXN5bmM8TWVzc2FnZXM6OlRlc3RX
aXRob3V0QXR0cmlidXRlczo6Q3JlYXRlUGx1Z2luPihjb25uZWN0aW9uLCBkZWNvZGVyLCB0aGlz
LCAmVGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpjcmVhdGVQbHVnaW4pOworICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6UnVuSmF2
YVNjcmlwdEFsZXJ0OjpuYW1lKCkpCisgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VB
c3luYzxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpSdW5KYXZhU2NyaXB0QWxlcnQ+
KGNvbm5lY3Rpb24sIGRlY29kZXIsIHRoaXMsICZUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OnJ1bkph
dmFTY3JpcHRBbGVydCk7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdl
czo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5zOjpuYW1lKCkpCisgICAgICAgIHJl
dHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VBc3luYzxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzOjpHZXRQbHVnaW5zPihjb25uZWN0aW9uLCBkZWNvZGVyLCB0aGlzLCAmVGVzdFdpdGhvdXRB
dHRyaWJ1dGVzOjpnZXRQbHVnaW5zKTsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09
IE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVz
OjpuYW1lKCkpCiAgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OlRl
c3RXaXRob3V0QXR0cmlidXRlczo6VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KGNvbm5lY3Rpb24s
IGRlY29kZXIsIHRoaXMsICZUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OnRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzKTsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OlRlbXBsYXRlVGVzdDo6bmFtZSgpKQpAQCAtMTI1LDYgKzIxOSwx
MCBAQCB2b2lkIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZU1lCiAgICAgaWYgKGRl
Y29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpE
aWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbjo6bmFtZSgpKQogICAgICAgICByZXR1cm4gSVBD
OjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkRpZENyZWF0
ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCB0aGlzLCAmVGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik7CiAjZW5kaWYK
KyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNz
YWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpJbnRlcnByZXRLZXlFdmVudDo6bmFtZSgpKQor
ICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlQXN5bmM8TWVzc2FnZXM6OlRlc3RXaXRo
b3V0QXR0cmlidXRlczo6SW50ZXJwcmV0S2V5RXZlbnQ+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHRo
aXMsICZUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OmludGVycHJldEtleUV2ZW50KTsKKyNlbmRpZgog
I2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRVUkUpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5h
bWUoKSA9PSBNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpEZXByZWNhdGVkT3BlcmF0
aW9uOjpuYW1lKCkpCiAgICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6
OlRlc3RXaXRob3V0QXR0cmlidXRlczo6RGVwcmVjYXRlZE9wZXJhdGlvbj4oY29ubmVjdGlvbiwg
ZGVjb2RlciwgdGhpcywgJlRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGVwcmVjYXRlZE9wZXJhdGlv
bik7CkBAIC0xNDUsMjAgKzI0MywxMCBAQCB2b2lkIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlk
UmVjZWl2ZU1lCiBib29sIFRlc3RXaXRob3V0QXR0cmlidXRlczo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBV
bmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIFJlZiBwcm90ZWN0
ZWRUaGlzIHsgKnRoaXMgfTsKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3Nh
Z2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkNyZWF0ZVBsdWdpbjo6bmFtZSgpKQotICAgICAg
ICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OkNyZWF0ZVBsdWdpbj4oY29ubmVjdGlvbiwgZGVjb2RlciwgKnJlcGx5RW5jb2RlciwgdGhp
cywgJlRlc3RXaXRob3V0QXR0cmlidXRlczo6Y3JlYXRlUGx1Z2luKTsKLSAgICBpZiAoZGVjb2Rl
ci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlJ1bkph
dmFTY3JpcHRBbGVydDo6bmFtZSgpKQotICAgICAgICByZXR1cm4gSVBDOjpoYW5kbGVNZXNzYWdl
PE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlJ1bkphdmFTY3JpcHRBbGVydD4oY29u
bmVjdGlvbiwgZGVjb2RlciwgKnJlcGx5RW5jb2RlciwgdGhpcywgJlRlc3RXaXRob3V0QXR0cmli
dXRlczo6cnVuSmF2YVNjcmlwdEFsZXJ0KTsKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgp
ID09IE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkdldFBsdWdpbnM6Om5hbWUoKSkK
LSAgICAgICAgcmV0dXJuIElQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzOjpHZXRQbHVnaW5zPihjb25uZWN0aW9uLCBkZWNvZGVyLCAqcmVwbHlFbmNvZGVy
LCB0aGlzLCAmVGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpnZXRQbHVnaW5zKTsKICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6Okdl
dFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpuYW1lKCkpCiAgICAgICAgIHJldHVybiBJUEM6Omhh
bmRsZU1lc3NhZ2VTeW5jaHJvbm91czxNZXNzYWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpH
ZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmVGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbik7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpuYW1lKCkpCiAgICAgICAg
IHJldHVybiBJUEM6OmhhbmRsZU1lc3NhZ2VTeW5jaHJvbm91c1dhbnRzQ29ubmVjdGlvbjxNZXNz
YWdlczo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzPihjb25u
ZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OnRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMpOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6
OkludGVycHJldEtleUV2ZW50OjpuYW1lKCkpCi0gICAgICAgIHJldHVybiBJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6SW50ZXJwcmV0S2V5RXZlbnQ+
KGNvbm5lY3Rpb24sIGRlY29kZXIsICpyZXBseUVuY29kZXIsIHRoaXMsICZUZXN0V2l0aG91dEF0
dHJpYnV0ZXM6OmludGVycHJldEtleUV2ZW50KTsKLSNlbmRpZgogICAgIFVOVVNFRF9QQVJBTShj
b25uZWN0aW9uKTsKICAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CiAgICAgVU5VU0VEX1BBUkFN
KHJlcGx5RW5jb2Rlcik7CkBAIC0yMjgsMTQgKzMxNiwyNiBAQCB0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8SlNDOjpKU1ZhbHVlPiBqCiB7CiAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkNyZWF0ZVBsdWdpbjo6QXJn
dW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOwogfQordGVtcGxhdGU8PiBzdGQ6Om9wdGlv
bmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckRlY29kZWRNZXNzYWdlUmVwbHk8TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW4+KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1
ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6Q3Jl
YXRlUGx1Z2luOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKK30KIHRl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1J1bkphdmFTY3JpcHRBbGVy
dD4oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzOjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2Jq
ZWN0LCBkZWNvZGVyKTsKIH0KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+
IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0
dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0PihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERlY29kZXImIGRlY29kZXIpCit7CisgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVk
QXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OlJ1bkphdmFTY3JpcHRB
bGVydDo6UmVwbHlBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7Cit9CiB0ZW1wbGF0
ZTw+IHN0ZDo6b3B0aW9uYWw8SlNDOjpKU1ZhbHVlPiBqc1ZhbHVlRm9yRGVjb2RlZE1lc3NhZ2U8
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zPihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgcmV0dXJu
IGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXM6OkdldFBsdWdpbnM6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBkZWNvZGVyKTsKIH0KK3Rl
bXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVz
c2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2lucz4o
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIHJldHVybiBqc1ZhbHVlRm9yRGVjb2RlZEFyZ3VtZW50czxNZXNzYWdlczo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzOjpHZXRQbHVnaW5zOjpSZXBseUFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKK30KIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dl
dFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJn
dW1lbnRzPE1lc3NhZ2VzOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM6OkdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CkBAIC0yNzMsNiAr
MzczLDEwIEBAIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGoKIHsKICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0
QXR0cmlidXRlczo6SW50ZXJwcmV0S2V5RXZlbnQ6OkFyZ3VtZW50cz4oZ2xvYmFsT2JqZWN0LCBk
ZWNvZGVyKTsKIH0KK3RlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpTVmFsdWU+IGpzVmFs
dWVGb3JEZWNvZGVkTWVzc2FnZVJlcGx5PE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXNfSW50ZXJwcmV0S2V5RXZlbnQ+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVu
dHM8TWVzc2FnZXM6OlRlc3RXaXRob3V0QXR0cmlidXRlczo6SW50ZXJwcmV0S2V5RXZlbnQ6OlJl
cGx5QXJndW1lbnRzPihnbG9iYWxPYmplY3QsIGRlY29kZXIpOworfQogI2VuZGlmCiAjaWYgRU5B
QkxFKERFUFJFQ0FURURfRkVBVFVSRSkKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxKU0M6OkpT
VmFsdWU+IGpzVmFsdWVGb3JEZWNvZGVkTWVzc2FnZTxNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0RlcHJlY2F0ZWRPcGVyYXRpb24+KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRGVjb2RlciYgZGVjb2RlcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRl
c01lc3NhZ2VzLmgJKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgxLDkgKzI4MSwxNCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQXJndW1lbnRzID0gc3Rk
Ojp0dXBsZTx1aW50NjRfdCwgY29uc3QgV2ViS2l0OjpQbHVnaW46OlBhcmFtZXRlcnMmPjsKIAog
ICAgIHN0YXRpYyBJUEM6Ok1lc3NhZ2VOYW1lIG5hbWUoKSB7IHJldHVybiBJUEM6Ok1lc3NhZ2VO
YW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luOyB9Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGlzU3luYyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
U3luYyA9IGZhbHNlOwogCisgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJik7CisgICAgc3RhdGljIHZvaWQgY2Fu
Y2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYpPiYmKTsKKyAgICBzdGF0aWMg
SVBDOjpNZXNzYWdlTmFtZSBhc3luY01lc3NhZ2VSZXBseU5hbWUoKSB7IHJldHVybiBJUEM6Ok1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQ3JlYXRlUGx1Z2luUmVwbHk7IH0KKyAg
ICB1c2luZyBBc3luY1JlcGx5ID0gQ3JlYXRlUGx1Z2luQXN5bmNSZXBseTsKICAgICBzdGF0aWMg
Y29uc3RleHByIGF1dG8gY2FsbGJhY2tUaHJlYWQgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyQ2Fs
bFRocmVhZDo6Q29uc3RydWN0aW9uVGhyZWFkOworICAgIHN0YXRpYyB2b2lkIHNlbmQoVW5pcXVl
UmVmPElQQzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgYm9vbCByZXN1bHQpOwogICAg
IHVzaW5nIFJlcGx5ID0gc3RkOjp0dXBsZTxib29sJj47CiAgICAgdXNpbmcgUmVwbHlBcmd1bWVu
dHMgPSBzdGQ6OnR1cGxlPGJvb2w+OwogICAgIENyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVnaW5J
bnN0YW5jZUlELCBjb25zdCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykK
QEAgLTMwNSw5ICszMTAsMTQgQEAgcHVibGljOgogICAgIHVzaW5nIEFyZ3VtZW50cyA9IHN0ZDo6
dHVwbGU8dWludDY0X3QsIGNvbnN0IFN0cmluZyY+OwogCiAgICAgc3RhdGljIElQQzo6TWVzc2Fn
ZU5hbWUgbmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19SdW5KYXZhU2NyaXB0QWxlcnQ7IH0KLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNT
eW5jID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNTeW5jID0gZmFsc2U7CiAK
KyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoSVBDOjpEZWNvZGVyJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBjYW5jZWxSZXBseShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHN0YXRpYyBJUEM6Ok1lc3NhZ2VOYW1lIGFzeW5jTWVzc2Fn
ZVJlcGx5TmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19SdW5KYXZhU2NyaXB0QWxlcnRSZXBseTsgfQorICAgIHVzaW5nIEFzeW5jUmVwbHkgPSBS
dW5KYXZhU2NyaXB0QWxlcnRBc3luY1JlcGx5OwogICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBj
YWxsYmFja1RocmVhZCA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXJDYWxsVGhyZWFkOjpDb25zdHJ1
Y3Rpb25UaHJlYWQ7CisgICAgc3RhdGljIHZvaWQgc2VuZChVbmlxdWVSZWY8SVBDOjpFbmNvZGVy
PiYmLCBJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVwbGU8PjsK
ICAgICB1c2luZyBSZXBseUFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8PjsKICAgICBSdW5KYXZhU2Ny
aXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMzI5
LDkgKzMzOSwxNCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQXJndW1lbnRzID0gc3RkOjp0dXBsZTxi
b29sPjsKIAogICAgIHN0YXRpYyBJUEM6Ok1lc3NhZ2VOYW1lIG5hbWUoKSB7IHJldHVybiBJUEM6
Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luczsgfQotICAgIHN0
YXRpYyBjb25zdGV4cHIgYm9vbCBpc1N5bmMgPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Ym9vbCBpc1N5bmMgPSBmYWxzZTsKIAorICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBseShJUEM6OkRl
Y29kZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZv
PiYmKT4mJik7CisgICAgc3RhdGljIHZvaWQgY2FuY2VsUmVwbHkoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mJik+JiYpOworICAgIHN0YXRpYyBJUEM6
Ok1lc3NhZ2VOYW1lIGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zUmVwbHk7IH0KKyAgICB1c2lu
ZyBBc3luY1JlcGx5ID0gR2V0UGx1Z2luc0FzeW5jUmVwbHk7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIGNhbGxiYWNrVGhyZWFkID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlckNhbGxUaHJlYWQ6
OkNvbnN0cnVjdGlvblRocmVhZDsKKyAgICBzdGF0aWMgdm9pZCBzZW5kKFVuaXF1ZVJlZjxJUEM6
OkVuY29kZXI+JiYsIElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpQbHVn
aW5JbmZvPiYgcGx1Z2lucyk7CiAgICAgdXNpbmcgUmVwbHkgPSBzdGQ6OnR1cGxlPFZlY3RvcjxX
ZWJDb3JlOjpQbHVnaW5JbmZvPiY+OwogICAgIHVzaW5nIFJlcGx5QXJndW1lbnRzID0gc3RkOjp0
dXBsZTxWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4+OwogICAgIGV4cGxpY2l0IEdldFBsdWdp
bnMoYm9vbCByZWZyZXNoKQpAQCAtNDg3LDkgKzUwMiwxNCBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
QXJndW1lbnRzID0gc3RkOjp0dXBsZTx1aW50MzJfdD47CiAKICAgICBzdGF0aWMgSVBDOjpNZXNz
YWdlTmFtZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX0ludGVycHJldEtleUV2ZW50OyB9Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
U3luYyA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzU3luYyA9IGZhbHNlOwog
CisgICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KElQQzo6RGVjb2RlciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mJik+JiYpOworICAgIHN0
YXRpYyB2b2lkIGNhbmNlbFJlcGx5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4mJik+JiYpOworICAgIHN0YXRpYyBJUEM6Ok1lc3NhZ2VOYW1l
IGFzeW5jTWVzc2FnZVJlcGx5TmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19JbnRlcnByZXRLZXlFdmVudFJlcGx5OyB9CisgICAgdXNpbmcgQXN5
bmNSZXBseSA9IEludGVycHJldEtleUV2ZW50QXN5bmNSZXBseTsKICAgICBzdGF0aWMgY29uc3Rl
eHByIGF1dG8gY2FsbGJhY2tUaHJlYWQgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbFRocmVh
ZDo6Q29uc3RydWN0aW9uVGhyZWFkOworICAgIHN0YXRpYyB2b2lkIHNlbmQoVW5pcXVlUmVmPElQ
Qzo6RW5jb2Rlcj4mJiwgSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmROYW1lKTsKICAgICB1c2luZyBSZXBseSA9IHN0ZDo6dHVw
bGU8VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mPjsKICAgICB1c2luZyBSZXBseUFy
Z3VtZW50cyA9IHN0ZDo6dHVwbGU8VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4+Owog
ICAgIGV4cGxpY2l0IEludGVycHJldEtleUV2ZW50KHVpbnQzMl90IHR5cGUpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3Nh
Z2VzUmVwbGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZXNSZXBsaWVzLmgJKHJldmlzaW9uIDI5
MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRB
dHRyaWJ1dGVzTWVzc2FnZXNSZXBsaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE2ICsyOCwy
OSBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VOYW1lcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UGx1Z2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiAKIG5hbWVzcGFjZSBNZXNzYWdlcyB7CiBuYW1lc3BhY2UgVGVzdFdpdGhvdXRB
dHRyaWJ1dGVzIHsKIAordXNpbmcgQ3JlYXRlUGx1Z2luQXN5bmNSZXBseSA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCByZXN1bHQpPjsKKwordXNpbmcgUnVuSmF2YVNjcmlwdEFsZXJ0QXN5
bmNSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT47CisKK3VzaW5nIEdldFBsdWdpbnNB
c3luY1JlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4mIHBsdWdpbnMpPjsKKwogdXNpbmcgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25EZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6Q29ubmVj
dGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKT47CiAKIHVzaW5nIFRlc3RNdWx0aXBsZUF0
dHJpYnV0ZXNEZWxheWVkUmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+OwogCisjaWYg
UExBVEZPUk0oTUFDKQordXNpbmcgSW50ZXJwcmV0S2V5RXZlbnRBc3luY1JlcGx5ID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYg
Y29tbWFuZE5hbWUpPjsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2l0aG91dEF0dHJp
YnV0ZXMKIH0gLy8gbmFtZXNwYWNlIE1lc3NhZ2VzCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hh
cmVkL0F1eGlsaWFyeVByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3
KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBBdXhpbGlhcnlQcm9j
ZXNzIE5vdFJlZkNvdW50CiAgICAgU2h1dERvd24oKQogICAgIFNldFByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQoYm9vbCBmbGFnKQogCi0gICAgTWFpblRocmVhZFBpbmcoKSAtPiAoKSBBc3luYwor
ICAgIE1haW5UaHJlYWRQaW5nKCkgLT4gKCkKIAogI2lmIE9TKExJTlVYKQogICAgIHZvaWQgRGlk
UmVjZWl2ZU1lbW9yeVByZXNzdXJlRXZlbnQoYm9vbCBpc0NyaXRpY2FsKQpJbmRleDogU291cmNl
L1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5MDg5NykKKysrIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw4IEBACiBtZXNzYWdlcyAtPiBX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIENhbk1ha2VQ
YXltZW50cygpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKLSAgICBDYW5NYWtlUGF5bWVu
dHNXaXRoQWN0aXZlQ2FyZChTdHJpbmcgbWVyY2hhbnRJZGVudGlmaWVyLCBTdHJpbmcgZG9tYWlu
TmFtZSkgLT4gKGJvb2wgY2FuTWFrZVBheW1lbnRzKSBBc3luYwotICAgIE9wZW5QYXltZW50U2V0
dXAoU3RyaW5nIG1lcmNoYW50SWRlbnRpZmllciwgU3RyaW5nIGRvbWFpbk5hbWUpIC0+IChib29s
IHJlc3VsdCkgQXN5bmMKKyAgICBDYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChTdHJpbmcg
bWVyY2hhbnRJZGVudGlmaWVyLCBTdHJpbmcgZG9tYWluTmFtZSkgLT4gKGJvb2wgY2FuTWFrZVBh
eW1lbnRzKQorICAgIE9wZW5QYXltZW50U2V0dXAoU3RyaW5nIG1lcmNoYW50SWRlbnRpZmllciwg
U3RyaW5nIGRvbWFpbk5hbWUpIC0+IChib29sIHJlc3VsdCkKIAogICAgIFNob3dQYXltZW50VUko
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgZGVzdGluYXRpb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFN0cmluZyBvcmlnaW5hdGluZ1VS
TFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlua0ljb25VUkxTdHJpbmdzLCBXZWJDb3JlOjpBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBwYXltZW50UmVxdWVzdCkgLT4gKGJvb2wgcmVzdWx0
KSBTeW5jaHJvbm91cwogICAgIENvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKFdlYkNvcmU6OlBh
eW1lbnRNZXJjaGFudFNlc3Npb24gcGF5bWVudE1lcmNoYW50U2Vzc2lvbikKQEAgLTQyLDggKzQy
LDggQEAgbWVzc2FnZXMgLT4gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkgTgogICAgIEFib3J0
UGF5bWVudFNlc3Npb24oKQogICAgIENhbmNlbFBheW1lbnRTZXNzaW9uKCkKIAotICAgIEdldFNl
dHVwRmVhdHVyZXMoV2ViS2l0OjpQYXltZW50U2V0dXBDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b24pIC0+IChXZWJLaXQ6OlBheW1lbnRTZXR1cEZlYXR1cmVzIGZlYXR1cmVzKSBBc3luYwotICAg
IEJlZ2luQXBwbGVQYXlTZXR1cChXZWJLaXQ6OlBheW1lbnRTZXR1cENvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbiwgV2ViS2l0OjpQYXltZW50U2V0dXBGZWF0dXJlcyBmZWF0dXJlcykgLT4gKGJv
b2wgcmVzdWx0KSBBc3luYworICAgIEdldFNldHVwRmVhdHVyZXMoV2ViS2l0OjpQYXltZW50U2V0
dXBDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pIC0+IChXZWJLaXQ6OlBheW1lbnRTZXR1cEZl
YXR1cmVzIGZlYXR1cmVzKQorICAgIEJlZ2luQXBwbGVQYXlTZXR1cChXZWJLaXQ6OlBheW1lbnRT
ZXR1cENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiwgV2ViS2l0OjpQYXltZW50U2V0dXBGZWF0
dXJlcyBmZWF0dXJlcykgLT4gKGJvb2wgcmVzdWx0KQogICAgIEVuZEFwcGxlUGF5U2V0dXAoKQog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9TaGFy
ZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAog
bWVzc2FnZXMgLT4gTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIE5vdFJlZkNvdW50
ZWQgewotICAgIFJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmln
aW5JZGVudGlmaWVyKSAtPiAoYm9vbCBhbGxvd2VkKSBBc3luYworICAgIFJlcXVlc3RTeXN0ZW1O
b3RpZmljYXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKSAtPiAoYm9vbCBh
bGxvd2VkKQogICAgIFNob3dOb3RpZmljYXRpb24oc3RydWN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkRhdGEgbm90aWZpY2F0aW9uRGF0YSkgV2FudHNDb25uZWN0aW9uCiAgICAgQ2FuY2VsTm90aWZp
Y2F0aW9uKFVVSUQgbm90aWZpY2F0aW9uSUQpCiAgICAgQ2xlYXJOb3RpZmljYXRpb25zKFZlY3Rv
cjxVVUlEPiBub3RpZmljYXRpb25JRHMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24g
MjkwODk3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHku
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+
IFdlYkxvY2tSZWdpc3RyeVByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIFJlcXVlc3RMb2NrKHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2Nr
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUsIGVudW06Ym9vbCBXZWJDb3JlOjpXZWJMb2Nr
TW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlKQogICAgIFJlbGVhc2VMb2Nr
KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUpCi0gICAgQWJvcnRMb2NrUmVxdWVzdChz
dHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9j
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKSAtPiAoYm9vbCB3YXNBYm9ydGVkKSBBc3lu
YwotICAgIFNuYXBzaG90KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2lu
KSAtPiAoc3RydWN0IFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Qgc25hcHNob3QpIEFz
eW5jCisgICAgQWJvcnRMb2NrUmVxdWVzdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNs
aWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1l
KSAtPiAoYm9vbCB3YXNBYm9ydGVkKQorICAgIFNuYXBzaG90KHN0cnVjdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4gY2xpZW50T3JpZ2luKSAtPiAoc3RydWN0IFdlYkNvcmU6OldlYkxvY2tNYW5hZ2Vy
U25hcHNob3Qgc25hcHNob3QpCiAgICAgQ2xpZW50SXNHb2luZ0F3YXkoc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGNsaWVudElkKQogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC02Niw4ICs2Niw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUGFn
ZURpZFNjcm9sbChXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQb3NpdGlvbikKICAgICBTZXRIYXNB
Y3RpdmVBbmltYXRlZFNjcm9sbHMoYm9vbCBoYXNBY3RpdmVBbmltYXRlZFNjcm9sbHMpCiAgICAg
UnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
S2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2Vy
U2V0dGluZ3MgcGFyYW1ldGVycykKLSAgICBTaG93U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEpIC0+IChib29sIGdyYW50ZWQpIEFzeW5j
Ci0gICAgU2hvd0NvbnRhY3RQaWNrZXIoc3RydWN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERh
dGEgcmVxdWVzdERhdGEpIC0+IChzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0
SW5mbz4+IGluZm8pIEFzeW5jCisgICAgU2hvd1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNo
YXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhKSAtPiAoYm9vbCBncmFudGVkKQorICAgIFNo
b3dDb250YWN0UGlja2VyKHN0cnVjdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhIHJlcXVl
c3REYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiBp
bmZvKQogICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0
cmluZyB0aXRsZSwgV2ViQ29yZTo6RmxvYXRTaXplIHBkZkZpcnN0UGFnZVNpemUpIC0+ICgpIFN5
bmNocm9ub3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2li
bGVJblJlY3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQpAQCAtMjE2LDcgKzIxNiw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0SGFzSGFkU2VsZWN0aW9uQ2hh
bmdlc0Zyb21Vc2VySW50ZXJhY3Rpb24oYm9vbCBoYXNIYWRVc2VyU2VsZWN0aW9uQ2hhbmdlcykK
IAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICBSZXF1ZXN0VGV4dFJlY29nbml0aW9u
KFVSTCBpbWFnZVVSTCwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFnZURhdGEs
IFN0cmluZyBpZGVudGlmaWVyKSAtPiAoc3RydWN0IFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJl
c3VsdCByZXN1bHQpIEFzeW5jCisgICAgUmVxdWVzdFRleHRSZWNvZ25pdGlvbihVUkwgaW1hZ2VV
UkwsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaW1hZ2VEYXRhLCBTdHJpbmcgaWRl
bnRpZmllcikgLT4gKHN0cnVjdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0
KQogI2VuZGlmCiAKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NFUlZJQ0VTKSAmJiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKQEAgLTIyNCw3ICsyMjQsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykg
JiYgVVNFKFVJQ09OVEVYVE1FTlUpCi0gICAgU2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShX
ZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RnJhbWUsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtPiBpdGVtcykgLT4gKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250
ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlEKSBBc3luYworICAgIFNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEZyYW1lLCBWZWN0b3I8V2Vi
Q29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4gaXRlbXMpIC0+IChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCBzZWxlY3RlZEl0ZW1JRCkKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCiAKICNpZiBIQVZFKFRPVUNIX0JBUikKQEAgLTI2OCw3ICsyNjgsNyBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgIyBNZWRpYVN0
ZWFtIG1lc3NhZ2VzCiAgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZShXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmllciB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZp
Y2VzRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGRldmljZXMs
IFN0cmluZyBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgQXN5bmMKKyAgICBFbnVtZXJh
dGVNZWRpYURldmljZXNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4gZGV2aWNlcywgU3RyaW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KQogICAgIEJl
Z2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNlbmRpZgogCkBAIC0yNzcsNyArMjc3LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBOb3RpZmljYXRp
b24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihTdHJpbmcgb3Jp
Z2luSWRlbnRpZmllcikgLT4gKGJvb2wgYWxsb3dlZCkgQXN5bmMKKyAgICBSZXF1ZXN0Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbihTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGJvb2wgYWxsb3dl
ZCkKIAogICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIgbWVzc2FnZXMKICNpZiBVU0UoVU5JRklF
RF9URVhUX0NIRUNLSU5HKQpAQCAtNDQxLDcgKzQ0MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgRGlkU3RhcnRMb2FkRm9yUXVpY2tMb29r
RG9jdW1lbnRJbk1haW5GcmFtZShTdHJpbmcgZmlsZU5hbWUsIFN0cmluZyB1dGkpCiAgICAgRGlk
RmluaXNoTG9hZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUoV2ViS2l0OjpTaGFyZWFi
bGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNlKQotICAgIFJlcXVlc3RQYXNzd29yZEZvclF1aWNr
TG9va0RvY3VtZW50SW5NYWluRnJhbWUoU3RyaW5nIGZpbGVOYW1lKSAtPiAoU3RyaW5nIHBhc3N3
b3JkKSBBc3luYworICAgIFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWlu
RnJhbWUoU3RyaW5nIGZpbGVOYW1lKSAtPiAoU3RyaW5nIHBhc3N3b3JkKQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCkBAIC01MTMsNyArNTEzLDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICAgICBMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKHN0cnVj
dCBXZWJLaXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
LCBWZWN0b3I8dWludDhfdD4gZGF0YSkgU3luY2hyb25vdXMKIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCi0gICAgU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSBmcmFtZUluZm8sIGJvb2wgbWF5UHJvbXB0KSAtPiAoZW51bTp1aW50OF90IFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lv
blN0YXRlKSBBc3luYworICAgIFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZy
YW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBib29sIG1heVByb21wdCkgLT4gKGVudW06dWludDhfdCBX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Np
b25TdGF0ZSkKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKQEAgLTUz
NywxMSArNTM3LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICNpZiBFTkFCTEUo
U1BFRUNIX1NZTlRIRVNJUykKICAgICBTcGVlY2hTeW50aGVzaXNWb2ljZUxpc3QoKSAtPiAoVmVj
dG9yPFdlYktpdDo6V2ViU3BlZWNoU3ludGhlc2lzVm9pY2U+IHZvaWNlTGlzdCkgU3luY2hyb25v
dXMKLSAgICBTcGVlY2hTeW50aGVzaXNTcGVhayhTdHJpbmcgdGV4dCwgU3RyaW5nIGxhbmcsIGZs
b2F0IHZvbHVtZSwgZmxvYXQgcmF0ZSwgZmxvYXQgcGl0Y2gsIE1vbm90b25pY1RpbWUgc3RhcnRU
aW1lLCBTdHJpbmcgdm9pY2VVUkksIFN0cmluZyB2b2ljZU5hbWUsIFN0cmluZyB2b2ljZUxhbmcs
IGJvb2wgbG9jYWxTZXJ2aWNlLCBib29sIGRlZmF1bHRWb2ljZSkgLT4gKCkgQXN5bmMKLSAgICBT
cGVlY2hTeW50aGVzaXNTZXRGaW5pc2hlZENhbGxiYWNrKCkgLT4gKCkgQXN5bmMKKyAgICBTcGVl
Y2hTeW50aGVzaXNTcGVhayhTdHJpbmcgdGV4dCwgU3RyaW5nIGxhbmcsIGZsb2F0IHZvbHVtZSwg
ZmxvYXQgcmF0ZSwgZmxvYXQgcGl0Y2gsIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lLCBTdHJpbmcg
dm9pY2VVUkksIFN0cmluZyB2b2ljZU5hbWUsIFN0cmluZyB2b2ljZUxhbmcsIGJvb2wgbG9jYWxT
ZXJ2aWNlLCBib29sIGRlZmF1bHRWb2ljZSkgLT4gKCkKKyAgICBTcGVlY2hTeW50aGVzaXNTZXRG
aW5pc2hlZENhbGxiYWNrKCkgLT4gKCkKICAgICBTcGVlY2hTeW50aGVzaXNDYW5jZWwoKQotICAg
IFNwZWVjaFN5bnRoZXNpc1BhdXNlKCkgLT4gKCkgQXN5bmMKLSAgICBTcGVlY2hTeW50aGVzaXNS
ZXN1bWUoKSAtPiAoKSBBc3luYworICAgIFNwZWVjaFN5bnRoZXNpc1BhdXNlKCkgLT4gKCkKKyAg
ICBTcGVlY2hTeW50aGVzaXNSZXN1bWUoKSAtPiAoKQogICAgIFNwZWVjaFN5bnRoZXNpc1Jlc2V0
U3RhdGUoKQogI2VuZGlmCiAKQEAgLTU1NCw3ICs1NTQsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgIENvbmZpZ3VyZUxvZ2dpbmdDaGFubmVsKFN0cmluZyBjaGFubmVsTmFtZSwg
ZW51bTp1aW50OF90IFdURkxvZ0NoYW5uZWxTdGF0ZSBzdGF0ZSwgZW51bTp1aW50OF90IFdURkxv
Z0xldmVsIGxldmVsKQogCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIFNob3dFbW9qaVBpY2tlcihX
ZWJDb3JlOjpJbnRSZWN0IGNhcmV0UmVjdCkgLT4gKFN0cmluZyByZXN1bHQpIEFzeW5jCisgICAg
U2hvd0Vtb2ppUGlja2VyKFdlYkNvcmU6OkludFJlY3QgY2FyZXRSZWN0KSAtPiAoU3RyaW5nIHJl
c3VsdCkKICNlbmRpZgogCiAjaWYgSEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCkBA
IC01NjcsNyArNTY3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRNZXNzYWdlVG9XZWJWaWV3KHN0cnVj
dCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQotICAgIFNlbmRNZXNzYWdlVG9XZWJW
aWV3V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAo
c3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBBc3luYworICAgIFNlbmRN
ZXNzYWdlVG9XZWJWaWV3V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJN
ZXNzYWdlKSAtPiAoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKQogI2Vu
ZGlmCiAKICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlvbkl0ZW1zKFZlY3RvcjxXZWJDb3JlOjpU
ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uSXRlbT4gaXRlbXMpCkBAIC01
ODksMzUgKzU4OSwzNSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIE1vZGVsRWxl
bWVudFNldEludGVyYWN0aW9uRW5hYmxlZChzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIg
bW9kZWxJZGVudGlmaWVyLCBib29sIGlzSW50ZXJhY3Rpb25FbmFibGVkKQogI2VuZGlmCiAjaWYg
RU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKLSAgICBNb2RlbEVsZW1lbnREaWRDcmVh
dGVQcmV2aWV3KFVSTCB1cmwsIFN0cmluZyB1dWlkLCBXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkg
LT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1vZGVsRWxlbWVudFNpemVEaWRDaGFuZ2UoU3Ry
aW5nIHV1aWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKSAtPiAoRXhwZWN0ZWQ8TWFjaFNlbmRS
aWdodCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIE1vZGVsRWxl
bWVudERpZENyZWF0ZVByZXZpZXcoVVJMIHVybCwgU3RyaW5nIHV1aWQsIFdlYkNvcmU6OkZsb2F0
U2l6ZSBzaXplKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpCisgICAgTW9kZWxFbGVtZW50U2l6ZURpZENoYW5n
ZShTdHJpbmcgdXVpZCwgV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpIC0+IChFeHBlY3RlZDxNYWNo
U2VuZFJpZ2h0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpCiAgICAgSGFuZGxlTW91
c2VEb3duRm9yTW9kZWxFbGVtZW50KFN0cmluZyB1dWlkLCBXZWJDb3JlOjpMYXlvdXRQb2ludCBm
bGlwcGVkTG9jYXRpb25JbkVsZW1lbnQsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIEhh
bmRsZU1vdXNlTW92ZUZvck1vZGVsRWxlbWVudChTdHJpbmcgdXVpZCwgV2ViQ29yZTo6TGF5b3V0
UG9pbnQgZmxpcHBlZExvY2F0aW9uSW5FbGVtZW50LCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkK
ICAgICBIYW5kbGVNb3VzZVVwRm9yTW9kZWxFbGVtZW50KFN0cmluZyB1dWlkLCBXZWJDb3JlOjpM
YXlvdXRQb2ludCBmbGlwcGVkTG9jYXRpb25JbkVsZW1lbnQsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKQogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQotICAgIE1vZGVs
RWxlbWVudEdldENhbWVyYShzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVu
dGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1vZGVsRWxlbWVudFNldENh
bWVyYShzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSBjYW1lcmEpIC0+IChib29sIHN1Y2Nl
c3MpIEFzeW5jCi0gICAgTW9kZWxFbGVtZW50SXNQbGF5aW5nQW5pbWF0aW9uKHN0cnVjdCBXZWJL
aXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgTW9kZWxFbGVtZW50U2V0
QW5pbWF0aW9uSXNQbGF5aW5nKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElk
ZW50aWZpZXIsIGJvb2wgaXNQbGF5aW5nKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwotICAgIE1v
ZGVsRWxlbWVudElzTG9vcGluZ0FuaW1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZp
ZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvcj4gcmVzdWx0KSBBc3luYwotICAgIE1vZGVsRWxlbWVudFNldElzTG9vcGluZ0FuaW1hdGlv
bihzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBib29sIGlz
TG9vcGluZykgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKLSAgICBNb2RlbEVsZW1lbnRBbmltYXRp
b25EdXJhdGlvbihzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVy
KSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBB
c3luYwotICAgIE1vZGVsRWxlbWVudEFuaW1hdGlvbkN1cnJlbnRUaW1lKHN0cnVjdCBXZWJLaXQ6
Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxTZWNvbmRzLCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgTW9kZWxFbGVtZW50U2V0
QW5pbWF0aW9uQ3VycmVudFRpbWUoc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVs
SWRlbnRpZmllciwgU2Vjb25kcyBjdXJyZW50VGltZSkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMK
LSAgICBNb2RlbEVsZW1lbnRIYXNBdWRpbyhzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIg
bW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
cj4gcmVzdWx0KSBBc3luYwotICAgIE1vZGVsRWxlbWVudElzTXV0ZWQoc3RydWN0IFdlYktpdDo6
TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBNb2RlbEVsZW1lbnRTZXRJc011
dGVkKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIGJvb2wg
aXNNdXRlZCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKKyAgICBNb2RlbEVsZW1lbnRHZXRDYW1l
cmEoc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4
cGVjdGVkPFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3I+IHJlc3VsdCkKKyAgICBNb2RlbEVsZW1lbnRTZXRDYW1lcmEoc3RydWN0IFdlYktpdDo6
TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkhUTUxNb2Rl
bEVsZW1lbnRDYW1lcmEgY2FtZXJhKSAtPiAoYm9vbCBzdWNjZXNzKQorICAgIE1vZGVsRWxlbWVu
dElzUGxheWluZ0FuaW1hdGlvbihzdHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJ
ZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVz
dWx0KQorICAgIE1vZGVsRWxlbWVudFNldEFuaW1hdGlvbklzUGxheWluZyhzdHJ1Y3QgV2ViS2l0
OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBib29sIGlzUGxheWluZykgLT4gKGJv
b2wgc3VjY2VzcykKKyAgICBNb2RlbEVsZW1lbnRJc0xvb3BpbmdBbmltYXRpb24oc3RydWN0IFdl
YktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2ws
IFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkKKyAgICBNb2RlbEVsZW1lbnRTZXRJc0xv
b3BpbmdBbmltYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRp
ZmllciwgYm9vbCBpc0xvb3BpbmcpIC0+IChib29sIHN1Y2Nlc3MpCisgICAgTW9kZWxFbGVtZW50
QW5pbWF0aW9uRHVyYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRl
bnRpZmllcikgLT4gKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJl
c3VsdCkKKyAgICBNb2RlbEVsZW1lbnRBbmltYXRpb25DdXJyZW50VGltZShzdHJ1Y3QgV2ViS2l0
OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8U2Vjb25kcywg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KQorICAgIE1vZGVsRWxlbWVudFNldEFuaW1h
dGlvbkN1cnJlbnRUaW1lKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50
aWZpZXIsIFNlY29uZHMgY3VycmVudFRpbWUpIC0+IChib29sIHN1Y2Nlc3MpCisgICAgTW9kZWxF
bGVtZW50SGFzQXVkaW8oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRp
ZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkK
KyAgICBNb2RlbEVsZW1lbnRJc011dGVkKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBt
b2RlbElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
PiByZXN1bHQpCisgICAgTW9kZWxFbGVtZW50U2V0SXNNdXRlZChzdHJ1Y3QgV2ViS2l0OjpNb2Rl
bElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBib29sIGlzTXV0ZWQpIC0+IChib29sIHN1Y2Nl
c3MpCiAjZW5kaWYKIAotICAgIFF1ZXJ5UGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2Ny
aXB0b3IpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4gc3RhdGUs
IGJvb2wgc2hvdWxkQ2FjaGUpIEFzeW5jCisgICAgUXVlcnlQZXJtaXNzaW9uKHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2Ny
aXB0b3IgZGVzY3JpcHRvcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0
YXRlPiBzdGF0ZSwgYm9vbCBzaG91bGRDYWNoZSkKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1T
X1VJKQotICAgIFN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oVVJMIG9yaWdpbmF0aW5nVVJMLCBz
dHJ1Y3QgV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3QgcmVxdWVzdCkgLT4gKHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gcmVzdWx0KSBBc3luYworICAgIFN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24o
VVJMIG9yaWdpbmF0aW5nVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3Qg
cmVxdWVzdCkgLT4gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcmVzdWx0KQogICAgIEFib3J0QXBwbGVQ
YXlBTVNVSVNlc3Npb24oKQogI2VuZGlmCiAKLSAgICBSZXF1ZXN0Q29va2llQ29uc2VudCgpIC0+
IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0IHJlc3Vs
dCkgQXN5bmMKLSAgICBDbGFzc2lmeU1vZGFsQ29udGFpbmVyQ29udHJvbHMoVmVjdG9yPFN0cmlu
Zz4gdGV4dHMpIC0+IChWZWN0b3I8V2ViQ29yZTo6TW9kYWxDb250YWluZXJDb250cm9sVHlwZT4g
dHlwZXMpIEFzeW5jCi0gICAgRGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIoT3B0aW9uU2V0
PFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzKSAtPiAoZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyRGVjaXNpb24gZGVjaXNpb24pIEFzeW5jCisgICAg
UmVxdWVzdENvb2tpZUNvbnNlbnQoKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkNvb2tpZUNv
bnNlbnREZWNpc2lvblJlc3VsdCByZXN1bHQpCisgICAgQ2xhc3NpZnlNb2RhbENvbnRhaW5lckNv
bnRyb2xzKFZlY3RvcjxTdHJpbmc+IHRleHRzKSAtPiAoVmVjdG9yPFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyQ29udHJvbFR5cGU+IHR5cGVzKQorICAgIERlY2lkZVBvbGljeUZvck1vZGFsQ29udGFp
bmVyKE9wdGlvblNldDxXZWJDb3JlOjpNb2RhbENvbnRhaW5lckNvbnRyb2xUeXBlPiB0eXBlcykg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNb2RhbENvbnRhaW5lckRlY2lzaW9uIGRlY2lzaW9u
KQogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3
ICs3Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXYKIAogI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIFNlbmRNZXNzYWdlVG9XZWJDb250
ZXh0KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQotICAgIFNlbmRNZXNz
YWdlVG9XZWJDb250ZXh0V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJN
ZXNzYWdlKSAtPiAoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBBc3lu
YworICAgIFNlbmRNZXNzYWdlVG9XZWJDb250ZXh0V2l0aFJlcGx5KHN0cnVjdCBXZWJLaXQ6OlVz
ZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgcmVw
bHlNZXNzYWdlKQogI2VuZGlmCiAKICAgICBEaWRDcmVhdGVTbGVlcERpc2FibGVyKFdlYkNvcmU6
OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyByZWFzb24sIGJvb2wg
ZGlzcGxheSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgQ3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwg
U3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJh
aW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKSAtPiAoYm9vbCBzdWNj
ZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhPiBwcmVz
ZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpIEFzeW5jCisgICAg
Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
IGRldmljZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyBjb25zdHJhaW50cywgYm9vbCBzaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzKSAtPiAo
Ym9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBWZWN0b3I8V2ViQ29yZTo6VmlkZW9QcmVzZXRE
YXRhPiBwcmVzZXRzLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGRvdWJsZSBmcmFtZVJhdGUpCiAg
ICAgU3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkKQogICAgIEVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4JKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNyBAQCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgRW50ZXJGdWxsc2NyZWVuKFdlYktpdDo6UGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogI2VuZGlmCi0gICAgRXhp
dEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBmaW5hbFJlY3QpIC0+IChib29sIHN1Y2Nlc3MpIEFz
eW5jCisgICAgRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBmaW5hbFJlY3QpIC0+IChib29s
IHN1Y2Nlc3MpCiAgICAgU2V0SW5saW5lUmVjdChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0IGlubGluZVJlY3QsIGJv
b2wgdmlzaWJsZSkKICAgICBTZXRIYXNWaWRlb0NvbnRlbnRMYXllcihXZWJLaXQ6OlBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCB2YWx1ZSkKICAgICBDbGVh
bnVwRnVsbHNjcmVlbihXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNv
bnRleHRJZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdl
cy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBEb3dubG9h
ZFByb3h5IHsKICAgICBEaWRTdGFydChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
QXRvbVN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSkKICAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCBX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSWRlbnRpZmllciBjaGFsbGVuZ2VJRCkKICAg
ICBXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlZGlyZWN0UmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlKSkKLSAgICBEZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlLCBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUpIC0+IChTdHJpbmcgZmlsZW5h
bWUsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZSwgZW51bTpib29sIFdl
YktpdDo6QWxsb3dPdmVyd3JpdGUgYWxsb3dPdmVyd3JpdGUpIEFzeW5jCisgICAgRGVjaWRlRGVz
dGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSwgU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKSAtPiAoU3RyaW5nIGZpbGVuYW1lLCBX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUsIGVudW06Ym9vbCBXZWJLaXQ6
OkFsbG93T3ZlcndyaXRlIGFsbG93T3ZlcndyaXRlKQogCiAgICAgRGlkUmVjZWl2ZURhdGEodWlu
dDY0X3QgYnl0ZXNXcml0dGVuLCB1aW50NjRfdCB0b3RhbEJ5dGVzV3JpdHRlbiwgdWludDY0X3Qg
dG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSkKICAgICBEaWRDcmVhdGVEZXN0aW5hdGlvbihTdHJp
bmcgcGF0aCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJC
SVRSQVRJT04pCiBtZXNzYWdlcyAtPiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
IE5vdFJlZkNvdW50ZWQgewotICAgIEJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5
KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29y
eSkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViS2l0OjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpEZWZhdWx0Um91dGVDaGFuZ2VkIGRl
ZmF1bHRSb3V0ZUNoYW5nZWQpIEFzeW5jCisgICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRo
Q2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBl
IGNhdGVnb3J5KSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0ZUNo
YW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkKICAgICBFbmRSb3V0aW5nQXJiaXRyYXRpb24oKTsK
IH0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNyArMjYsMTcgQEAKIAogbWVzc2FnZXMgLT4gUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKIAotICAgIEpvaW4o
KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMK
KyAgICBKb2luKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gZXJy
b3IpCiAKICAgICBMZWF2ZSgpCiAKLSAgICBDb29yZGluYXRlU2Vla1RvKGRvdWJsZSB0aW1lKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKyAg
ICBDb29yZGluYXRlU2Vla1RvKGRvdWJsZSB0aW1lKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiBlcnJvcikKIAotICAgIENvb3JkaW5hdGVQbGF5KCkgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gZXJyb3IpIEFzeW5jCisgICAgQ29vcmRp
bmF0ZVBsYXkoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJv
cikKIAotICAgIENvb3JkaW5hdGVQYXVzZSgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4
Y2VwdGlvbkRhdGE+IGVycm9yKSBBc3luYworICAgIENvb3JkaW5hdGVQYXVzZSgpIC0+IChzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKQogCi0gICAgQ29vcmRpbmF0
ZVNldFRyYWNrKFN0cmluZyB0cmFja0lkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKSBBc3luYworICAgIENvb3JkaW5hdGVTZXRUcmFjayhT
dHJpbmcgdHJhY2tJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRp
b25EYXRhPiBlcnJvcikKIAogICAgIFBvc2l0aW9uU3RhdGVDaGFuZ2VkKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlPiBzdGF0ZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMzgsMTcgKzM4LDE3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkg
TGVnYWN5UmUKICAgICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc2VkKCkKICAg
ICBOb3RpZnlXZWJzaXRlRGF0YURlbGV0aW9uRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNoZWQo
KQogICAgIE5vdGlmeVdlYnNpdGVEYXRhU2NhbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVk
KCkKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3lu
YwotICAgIERlbGV0ZVdlYnNpdGVEYXRhSW5VSVByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbnMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5
cGU+IGRhdGFUeXBlcywgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4g
ZmV0Y2hPcHRpb25zLCBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMp
IC0+IChIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zV2l0aE1hdGNo
aW5nRGF0YVJlY29yZHMpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJE
aWRHcmFudEFjY2VzcykKKyAgICBEZWxldGVXZWJzaXRlRGF0YUluVUlQcm9jZXNzRm9yUmVnaXN0
cmFibGVEb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6
V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRh
RmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluPiBkb21haW5zKSAtPiAoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9t
YWluc1dpdGhNYXRjaGluZ0RhdGFSZWNvcmRzKQogICAgIERpZENvbW1pdENyb3NzU2l0ZUxvYWRX
aXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFdlYktpdDo6V2ViUGFnZVByb3h5
SWRlbnRpZmllciBwYWdlSUQpCiAgICAgU2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24oSGFz
aFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykKLSAgICBTZXREb21haW5z
V2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpIC0+ICgpIEFzeW5jCisg
ICAgU2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSAt
PiAoKQogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBDb250ZW50
RXh0ZW5zaW9uUnVsZXMoV2ViS2l0OjpVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiAjZW5kaWYKIAotICAgIFJldHJpZXZlQ2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5
LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpIEFzeW5jCisgICAgUmV0
cmlldmVDYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4g
KFN0cmluZyBjYWNoZVN0b3JhZ2VEaXJlY3RvcnksIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIGhhbmRsZSkKIAogICAgIFRlcm1pbmF0ZVdlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIpCiAKQEAgLTU2LDcgKzU2LDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZQogICAgIFN0YXJ0U2VydmljZVdv
cmtlckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzSWRlbnRpZmllcikKICAgICBFbmRTZXJ2aWNlV29ya2VyQmFja2dyb3Vu
ZFByb2Nlc3NpbmcoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nl
c3NJZGVudGlmaWVyKQogI2VuZGlmCi0gICAgRXN0YWJsaXNoUmVtb3RlV29ya2VyQ29udGV4dENv
bm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90ZVdvcmtlclR5
cGUgd29ya2VyVHlwZSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21h
aW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXI+IHJlcXVlc3RpbmdQ
cm9jZXNzSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNoUmVtb3RlV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90ZVdv
cmtlclR5cGUgd29ya2VyVHlwZSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFi
bGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXI+IHJlcXVl
c3RpbmdQcm9jZXNzSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpCiAgICAgUmVtb3RlV29ya2VyQ29udGV4dENvbm5l
Y3Rpb25Ob0xvbmdlck5lZWRlZChlbnVtOmJvb2wgV2ViS2l0OjpSZW1vdGVXb3JrZXJUeXBlIHdv
cmtlclR5cGUsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgUmVn
aXN0ZXJSZW1vdGVXb3JrZXJDbGllbnRQcm9jZXNzKGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90ZVdv
cmtlclR5cGUgd29ya2VyVHlwZSwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vz
c0lkZW50aWZpZXIsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHJlbW90ZVdvcmtlclByb2Nl
c3NJZGVudGlmaWVyKTsKICAgICBVbnJlZ2lzdGVyUmVtb3RlV29ya2VyQ2xpZW50UHJvY2Vzcyhl
bnVtOmJvb2wgV2ViS2l0OjpSZW1vdGVXb3JrZXJUeXBlIHdvcmtlclR5cGUsIFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciByZW1vdGVXb3JrZXJQcm9jZXNzSWRlbnRpZmllcik7CkBAIC02NCwxMCArNjQsMTAg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZQogICAgIFNldFdlYlBy
b2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJRCwgYm9v
bCBoYXNVcGxvYWQpCiAKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCi0gICAgR2V0QXBw
Qm91bmREb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKEhhc2hTZXQ8V2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4+IGFwcEJvdW5kRG9tYWlucykgQXN5bmMKKyAgICBHZXRBcHBC
b3VuZERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoSGFzaFNldDxXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbj4gYXBwQm91bmREb21haW5zKQogI2VuZGlmCiAKLSAgICBSZXF1
ZXN0U3RvcmFnZVNwYWNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBvcmlnaW4sIHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6
ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCkgLT4gKHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG5l
d1F1b3RhKSBBc3luYworICAgIFJlcXVlc3RTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgdWludDY0X3QgcXVv
dGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJlcXVpcmVkKSAtPiAoc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gbmV3UXVvdGEpCiAgICAgSW5jcmVhc2VRdW90YShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBX
ZWJLaXQ6OlF1b3RhSW5jcmVhc2VSZXF1ZXN0SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRf
dCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKQog
ICAgIAogICAgIFJlc291cmNlTG9hZERpZFNlbmRSZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5
SWRlbnRpZmllciBwYWdlSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVzb3VyY2VMb2FkSW5m
byByZXNvdXJjZUxvYWRJbmZvLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3Rk
OjpvcHRpb25hbDxJUEM6OkZvcm1EYXRhUmVmZXJlbmNlPiBodHRwQm9keSkKQEAgLTgwLDE5ICs4
MCwxOSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlCiAgICAgUmVs
b2FkQWZ0ZXJVbmJsb2NrZWRDb250ZW50RmlsdGVyKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllciBwYWdlSWRlbnRpZmllcikKICNlbmRpZgogCi0gICAgVHJpZ2dlckJyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoRm9yTmF2aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIg
cGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgZW51bTp1aW50OF90IFdlYkNv
cmU6OkJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24gYnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2hEZWNpc2lvbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21h
aW4sIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXIgZXhpc3RpbmdOZXR3b3Jr
UmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwor
ICAgIFRyaWdnZXJCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaEZvck5hdmlnYXRpb24oV2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaERl
Y2lzaW9uIGJyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoRGVjaXNpb24sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc3BvbnNlRG9tYWluLCBXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSkg
LT4gKGJvb2wgc3VjY2VzcykKIAogI2lmIFVTRShTT1VQKQogICAgIERpZEV4Y2VlZE1lbW9yeUxp
bWl0KCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRU1PVEVfVUlfVVNFU19TQ0VO
RSkKLSAgICBHZXRXaW5kb3dTY2VuZUlkZW50aWZpZXJGb3JQYXltZW50UHJlc2VudGF0aW9uKFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJZGVudGlmaWVyKSAtPiAo
U3RyaW5nIHNjZW5lSUQpIEFzeW5jCisgICAgR2V0V2luZG93U2NlbmVJZGVudGlmaWVyRm9yUGF5
bWVudFByZXNlbnRhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVBy
b3h5SWRlbnRpZmllcikgLT4gKFN0cmluZyBzY2VuZUlEKQogI2VuZGlmCiAKLSAgICBEYXRhVGFz
a1JlY2VpdmVkQ2hhbGxlbmdlKFdlYktpdDo6RGF0YVRhc2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSkgLT4gKGVudW06dWlu
dDhfdCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24gZGlzcG9zaXRp
b24sIFdlYkNvcmU6OkNyZWRlbnRpYWwgY3JlZGVudGlhbCkgQXN5bmMKLSAgICBEYXRhVGFza1dp
bGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYktpdDo6RGF0YVRhc2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KSAtPiAoYm9vbCBhbGxvd2VkKSBBc3luYwotICAgIERhdGFUYXNr
RGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktpdDo6RGF0YVRhc2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIC0+IChib29sIGFsbG93ZWQpIEFz
eW5jCisgICAgRGF0YVRhc2tSZWNlaXZlZENoYWxsZW5nZShXZWJLaXQ6OkRhdGFUYXNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVu
Z2UpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
c2l0aW9uIGRpc3Bvc2l0aW9uLCBXZWJDb3JlOjpDcmVkZW50aWFsIGNyZWRlbnRpYWwpCisgICAg
RGF0YVRhc2tXaWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJLaXQ6OkRhdGFUYXNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkgLT4gKGJvb2wgYWxsb3dlZCkKKyAgICBEYXRh
VGFza0RpZFJlY2VpdmVSZXNwb25zZShXZWJLaXQ6OkRhdGFUYXNrSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAoYm9vbCBhbGxvd2Vk
KQogICAgIERhdGFUYXNrRGlkUmVjZWl2ZURhdGEoV2ViS2l0OjpEYXRhVGFza0lkZW50aWZpZXIg
aWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAgICAgRGF0YVRhc2tEaWRDb21w
bGV0ZVdpdGhFcnJvcihXZWJLaXQ6OkRhdGFUYXNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5MDg5NykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw1ICsyNCw1IEBACiAg
Ki8KIAogbWVzc2FnZXMgLT4gV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkgewotRGlkUG9z
dE1lc3NhZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgc3RydWN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxl
cklELCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSBy
ZXN1bHRWYWx1ZSwgU3RyaW5nIGVycm9yTWVzc2FnZSkgQXN5bmMKK0RpZFBvc3RNZXNzYWdlKFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEgZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgSVBDOjpE
YXRhUmVmZXJlbmNlIG1lc3NhZ2UpIC0+IChJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0VmFsdWUs
IFN0cmluZyBlcnJvck1lc3NhZ2UpCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNp
b24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDEwICsyNiwxMCBAQAogCiBtZXNzYWdlcyAtPiBXZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKIAotICAgIE1ha2VDcmVkZW50aWFsKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRh
IGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgZGF0
YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudCwg
c3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKSBBc3luYwotICAgIEdldEFz
c2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6
RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2Vi
Q29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnMsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVt
ZW50IG1lZGlhdGlvbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2Vi
Q29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpB
dXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YSBleGNlcHRpb24pIEFzeW5jCi0gICAgaXNDb25kaXRpb25hbE1lZGlhdGlvbkF2YWls
YWJsZSgpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKLSAgICBJc1VzZXJWZXJpZnlpbmdQbGF0Zm9y
bUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCisgICAgTWFr
ZUNyZWRlbnRpYWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJL
aXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucywgYm9v
bCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRv
clJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNo
bWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24p
CisgICAgR2V0QXNzZXJ0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gs
IHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9u
cywgZW51bTp1aW50OF90IFdlYkNvcmU6OkNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6TWVkaWF0
aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4g
KHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50
IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKKyAgICBpc0NvbmRpdGlvbmFsTWVkaWF0aW9u
QXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0KQorICAgIElzVXNlclZlcmlmeWluZ1BsYXRmb3Jt
QXV0aGVudGljYXRvckF2YWlsYWJsZSgpIC0+IChib29sIHJlc3VsdCkKIH0KIAogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyOTA4OTcp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRl
ICJXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIldlYkF1dGhuUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc01lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aG5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCShub25leGlzdGVudCkKQEAgLTEsMjggKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotbWVzc2Fn
ZXMgLT4gV2ViQXV0aG5Qcm9jZXNzUHJveHkgTm90UmVmQ291bnRlZCB7Ci19Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoV0VCX0FVVEhOKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxh
dGZvcm1YUlN5c3RlbS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMSArMjYsMTEgQEAKICNpZiBFTkFCTEUoV0VCWFIp
CiAKIG1lc3NhZ2VzIC0+IFBsYXRmb3JtWFJTeXN0ZW0gTm90UmVmQ291bnRlZCB7Ci0gICAgRW51
bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKCkgLT4gKFZlY3RvcjxXZWJLaXQ6OlhSRGV2aWNlSW5m
bz4gZGV2aWNlc0luZm9zKSBBc3luYwotICAgIFJlcXVlc3RQZXJtaXNzaW9uT25TZXNzaW9uRmVh
dHVyZXMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIFBsYXRmb3Jt
WFI6OlNlc3Npb25Nb2RlIG1vZGUsIFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5
cGU+IGdyYW50ZWQsIFZlY3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+IGNvbnNl
bnRSZXF1aXJlZCwgVmVjdG9yPFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4gY29uc2Vu
dE9wdGlvbmFsKSAtPiAoc3RkOjpvcHRpb25hbDxWZWN0b3I8UGxhdGZvcm1YUjo6UmVmZXJlbmNl
U3BhY2VUeXBlPj4gdXNlckdyYW50ZWQpIEFzeW5jCisgICAgRW51bWVyYXRlSW1tZXJzaXZlWFJE
ZXZpY2VzKCkgLT4gKFZlY3RvcjxXZWJLaXQ6OlhSRGV2aWNlSW5mbz4gZGV2aWNlc0luZm9zKQor
ICAgIFJlcXVlc3RQZXJtaXNzaW9uT25TZXNzaW9uRmVhdHVyZXMoc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlIG1vZGUsIFZl
Y3RvcjxQbGF0Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+IGdyYW50ZWQsIFZlY3RvcjxQbGF0
Zm9ybVhSOjpSZWZlcmVuY2VTcGFjZVR5cGU+IGNvbnNlbnRSZXF1aXJlZCwgVmVjdG9yPFBsYXRm
b3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZT4gY29uc2VudE9wdGlvbmFsKSAtPiAoc3RkOjpvcHRp
b25hbDxWZWN0b3I8UGxhdGZvcm1YUjo6UmVmZXJlbmNlU3BhY2VUeXBlPj4gdXNlckdyYW50ZWQp
CiAgICAgSW5pdGlhbGl6ZVRyYWNraW5nQW5kUmVuZGVyaW5nKCkKICAgICBTaHV0RG93blRyYWNr
aW5nQW5kUmVuZGVyaW5nKCkKLSAgICBSZXF1ZXN0RnJhbWUoKSAtPiAoc3RydWN0IFBsYXRmb3Jt
WFI6OkRldmljZTo6RnJhbWVEYXRhIGZyYW1lRGF0YSkgQXN5bmMKKyAgICBSZXF1ZXN0RnJhbWUo
KSAtPiAoc3RydWN0IFBsYXRmb3JtWFI6OkRldmljZTo6RnJhbWVEYXRhIGZyYW1lRGF0YSkKICAg
ICBTdWJtaXRGcmFtZSgpCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9T
ZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4
OTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNz
YWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBTZWNJ
dGVtU2hpbVByb3h5IHsKIAogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQogICAgIFNlY0l0ZW1S
ZXF1ZXN0U3luYyhXZWJLaXQ6OlNlY0l0ZW1SZXF1ZXN0RGF0YSByZXF1ZXN0KSAtPiAoc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OlNlY0l0ZW1SZXNwb25zZURhdGE+IHJlc3BvbnNlKSBTeW5jaHJvbm91
cwotICAgIFNlY0l0ZW1SZXF1ZXN0KFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRhIHJlcXVlc3Qp
IC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YT4gcmVzcG9uc2Up
IEFzeW5jCisgICAgU2VjSXRlbVJlcXVlc3QoV2ViS2l0OjpTZWNJdGVtUmVxdWVzdERhdGEgcmVx
dWVzdCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpTZWNJdGVtUmVzcG9uc2VEYXRhPiByZXNw
b25zZSkKICNlbmRpZgogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYkF1
dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDkgQEAKIAogbWVzc2FnZXMgLT4gV2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlzcGF0Y2hNZXNzYWdlIHsKIAotICAgIE1ha2VDcmVk
ZW50aWFsKFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVu
dW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVj
dCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKLSAgICBHZXRBc3NlcnRp
b24oVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+
IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmlu
dCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pIEFzeW5jCi0gICAgSXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwor
ICAgIE1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3Np
bmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VE
YXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFj
aG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKKyAgICBHZXRB
c3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBl
bnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1
Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCisgICAgSXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0KQogCiAgICAg
U2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6TW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblBy
b2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
QXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtMjcsNyArMjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJBdXRoblByb2Nlc3MgewogICAgIEluaXRp
YWxpemVXZWJBdXRoblByb2Nlc3Moc3RydWN0IFdlYktpdDo6V2ViQXV0aG5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzIHByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCiAKICAgICAjIENyZWF0ZXMg
YSBjb25uZWN0aW9uIGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCi0gICAgQ3Jl
YXRlV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIHByb2Nlc3NJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+
IGNvbm5lY3Rpb25JZGVudGlmaWVyKSBBc3luYworICAgIENyZWF0ZVdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmll
cikgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiBjb25uZWN0aW9uSWRlbnRpZmll
cikKIAogI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQogICAgIE5vdGlmeVByZWZlcmVu
Y2VzQ2hhbmdlZChTdHJpbmcgZG9tYWluLCBTdHJpbmcga2V5LCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gZW5jb2RlZFZhbHVlKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTA3LDgg
KzExMDcsNiBAQAogCQk1NzJFQkJDNDI1MzZBQjg0MDAwNTUyQjMgLyogY29tLmFwcGxlLldlYktp
dC5XZWJBdXRoblByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3MkVCQkMzMjUzNkFCODQwMDA1NTJCMyAvKiBjb20uYXBwbGUuV2ViS2l0
LldlYkF1dGhuUHJvY2Vzcy5zYiAqLzsgfTsKIAkJNTcyRUJCQzkyNTM2QUZENTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzJFQkJDNjI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNz
UHJveHkuaCAqLzsgfTsKIAkJNTcyRUJCQ0MyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzJFQkJDQjI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbkluZm8uaCAqLzsgfTsKLQkJNTcyRUJCQ0YyNTM2QkIxMTAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkNEMjUzNkJCMTAwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07Ci0JCTU3MkVCQkQwMjUz
NkJCMTEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJDRTI1MzZCQjEwMDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk1NzJFQkJE
NTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDIyNTM2Qzg4NTAw
MDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTcyRUJCRDcy
NTM3RUJBRTAwMDU1MkIzIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBEMzFFNjkwNEI1MDA3
MzFEMjAgLyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaCAqLzsgfTsKIAkJNTcyRUJCREEy
NTM4RjZCNDAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEODI1MzhGNkExMDAw
NTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbSAqLzsgfTsKQEAgLTQ3MDYsMTAg
KzQ3MDQsNyBAQAogCQk1NzJFQkJDMzI1MzZBQjg0MDAwNTUyQjMgLyogY29tLmFwcGxlLldlYktp
dC5XZWJBdXRoblByb2Nlc3Muc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldl
YktpdC5XZWJBdXRoblByb2Nlc3Muc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
MkVCQkM1MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkM2MjUzNkFGRDUwMDA1NTJCMyAv
KiBXZWJBdXRoblByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJBdXRoblByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
NzJFQkJDNzI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkNCMjUzNkIwNEYwMDA1NTJC
MyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDRDI1MzZCQjEwMDAwNTUyQjMgLyogV2ViQXV0aG5Q
cm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDRTI1MzZCQjEwMDAwNTUyQjMgLyogV2Vi
QXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJBdXRoblByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MkVCQkQxMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJF
QkJEMjI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkQzMjUzNkM4ODUwMDA1NTJCMyAv
KiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDA4Miw3ICsxMDA3Nyw2IEBACiAJCQkJNTc2MDgyOTkyMDJC
REFFMjAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2Vz
LmluICovLAogCQkJCTU3MkVCQkM1MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQ
cm94eS5jcHAgKi8sCiAJCQkJNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJv
Y2Vzc1Byb3h5LmggKi8sCi0JCQkJNTcyRUJCQzcyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhu
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJBdXRoZW50
aWNhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjQ1OCw4ICsxMjQ1Miw2
IEBACiAJCQkJNTcyRUJCQkMyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmggKi8sCiAJCQkJNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTcyRUJCQkUyNTM2
QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VzLmggKi8sCi0JCQkJNTcyRUJC
Q0QyNTM2QkIxMDAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKLQkJCQk1NzJFQkJDRTI1MzZCQjEwMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNz
UHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFDMEExOTU1MUM5MDA2OEYwMEZFMEVCQiAvKiBXZWJB
dXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUMwQTE5NTYxQzkw
MDY4RjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZXMuaCAqLywKIAkJCQkx
QzBBMTk1MTFDOEZGREZCMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xNjE2Niw3ICsxNjE1OCw2IEBACiAJCQkJNTdEQ0VENzAy
MTQyRUU2ODAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MkVCQkJGMjUzNkE2MEEwMDA1NTJC
MyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTcyRUJCQzEyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJv
Y2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1NzJFQkJDRjI1MzZC
QjExMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTc1QjFCQkEyM0NFOUMxMzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRp
b25TZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMEExOTU3MUM5MDA2OEYwMEZFMEVC
QiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1NzVCMUJCODIzQ0U5QkZDMDAyMDYzOUEgLyogV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtNzQsOSArNzQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5v
CiAgICAgU2V0SW5qZWN0ZWRCdW5kbGVQYXJhbWV0ZXJzKElQQzo6RGF0YVJlZmVyZW5jZSBwYXJh
bWV0ZXJzKTsKICAgICBIYW5kbGVJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoU3RyaW5nIG1lc3NhZ2VO
YW1lLCBXZWJLaXQ6OlVzZXJEYXRhIG1lc3NhZ2VCb2R5KTsKIAotICAgIEZldGNoV2Vic2l0ZURh
dGEoT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzKSAt
PiAoc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIEFzeW5jCi0gICAgRGVs
ZXRlV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRl
RGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKSAtPiAoKSBBc3luYwotICAgIERlbGV0
ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+
IHdlYnNpdGVEYXRhVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9y
aWdpbnMpIC0+ICgpIEFzeW5jCisgICAgRmV0Y2hXZWJzaXRlRGF0YShPcHRpb25TZXQ8V2ViS2l0
OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMpIC0+IChzdHJ1Y3QgV2ViS2l0OjpX
ZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKKyAgICBEZWxldGVXZWJzaXRlRGF0YShPcHRpb25TZXQ8
V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlm
aWVkU2luY2UpIC0+ICgpCisgICAgRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKE9wdGlvblNl
dDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgLT4gKCkKIAogICAgIFNldEhpZGRlblBh
Z2VET01UaW1lclRocm90dGxpbmdJbmNyZWFzZUxpbWl0KGludCBtaWxsaXNlY29uZHMpCiAKQEAg
LTg5LDcgKzg5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBObwog
ICAgIEVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJveHkoU3RyaW5nIHNlc3Npb25JZGVudGlmaWVy
KQogICAgIERlc3Ryb3lBdXRvbWF0aW9uU2Vzc2lvblByb3h5KCkKIAotICAgIFByZXBhcmVUb1N1
c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkgQXN5bmMKKyAgICBQcmVwYXJl
VG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCiAgICAgUHJvY2Vzc0Rp
ZFJlc3VtZSgpCiAKICAgICBCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NQaW5nKCkKQEAgLTEwMCwx
MiArMTAwLDEyIEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm8KICAg
ICBHYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGluZGV4KQogI2VuZGlmCiAKLSAgICBFc3Rh
Ymxpc2hSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoZW51bTpi
b29sIFdlYktpdDo6UmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBXZWJLaXQ6OlBhZ2VHcm91
cElkZW50aWZpZXIgcGFnZUdyb3VwSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3
ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biBkb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6UmVt
b3RlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhIGluaXRpYWxpemF0aW9uRGF0YSkgLT4gKCkgQXN5
bmMKKyAgICBFc3RhYmxpc2hSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MoZW51bTpib29sIFdlYktpdDo6UmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBXZWJL
aXQ6OlBhZ2VHcm91cElkZW50aWZpZXIgcGFnZUdyb3VwSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5
SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBkb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgc3RydWN0
IFdlYktpdDo6UmVtb3RlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhIGluaXRpYWxpemF0aW9uRGF0
YSkgLT4gKCkKIAogICAgIFNldEhhc1N1c3BlbmRlZFBhZ2VQcm94eShib29sIGhhc1N1c3BlbmRl
ZFBhZ2VQcm94eSk7CiAgICAgU2V0SXNJblByb2Nlc3NDYWNoZShib29sIGlzSW5Qcm9jZXNzQ2Fj
aGUpCiAgICAgTWFya0lzTm9Mb25nZXJQcmV3YXJtZWQoKQotICAgIEdldEFjdGl2ZVBhZ2VzT3Jp
Z2luc0ZvclRlc3RpbmcoKSAtPiAoVmVjdG9yPFN0cmluZz4gYWN0aXZlT3JpZ2lucykgQXN5bmMK
KyAgICBHZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKCkgLT4gKFZlY3RvcjxTdHJpbmc+
IGFjdGl2ZU9yaWdpbnMpCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRTY3JlZW5Qcm9w
ZXJ0aWVzKHN0cnVjdCBXZWJDb3JlOjpTY3JlZW5Qcm9wZXJ0aWVzIHNjcmVlblByb3BlcnRpZXMp
CkBAIC0xMjcsNyArMTI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciBObwogICAgIENvbG9yUHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogI2VuZGlmCiAKLSAgICBJc0pJ
VEVuYWJsZWQoKSAtPiAoYm9vbCBlbmFibGVkKSBBc3luYworICAgIElzSklURW5hYmxlZCgpIC0+
IChib29sIGVuYWJsZWQpCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRNZWRpYU1JTUVU
eXBlcyhWZWN0b3I8U3RyaW5nPiB0eXBlcykKQEAgLTE1MSwxOCArMTUxLDE4IEBAIG1lc3NhZ2Vz
IC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm8KICAgICBDbGVhckN1cnJlbnRNb2RpZmll
clN0YXRlRm9yVGVzdGluZygpCiAKICAgICBTZXRCYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHkodW5z
aWduZWQgY2FwYWNpdHkpOwotICAgIENsZWFyQ2FjaGVkUGFnZShzdHJ1Y3QgV2ViQ29yZTo6QmFj
a0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCkgLT4gKCkgQXN5bmMKKyAg
ICBDbGVhckNhY2hlZFBhZ2Uoc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXIgYmFja0ZvcndhcmRJdGVtSUQpIC0+ICgpCiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKICAgICBTZW5kTWVzc2FnZVRvV2ViRXh0ZW5zaW9uKHN0cnVjdCBXZWJLaXQ6OlVz
ZXJNZXNzYWdlIHVzZXJNZXNzYWdlKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBTZWVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZvclRl
c3RpbmcoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdGhpcmRQYXJ0eURvbWFpbiwgYm9vbCBzaG91bGRTY2hlZHVs
ZU5vdGlmaWNhdGlvbikgLT4gKCkgQXN5bmMKLSAgICBTZXRUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlKGVudW06dWludDhfdCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
IGJsb2NraW5nTW9kZSkgLT4gKCkgQXN5bmMKKyAgICBTZWVkUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0ZvclRlc3RpbmcoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGhpcmRQYXJ0eURvbWFpbiwgYm9vbCBzaG91bGRT
Y2hlZHVsZU5vdGlmaWNhdGlvbikgLT4gKCkKKyAgICBTZXRUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlKGVudW06dWludDhfdCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
IGJsb2NraW5nTW9kZSkgLT4gKCkKICAgICBTZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihI
YXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKQotICAgIFNldERvbWFp
bnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKCkgQXN5bmMK
LSAgICBTZW5kUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFJbW1lZGlhdGVseSgpIC0+ICgpIEFz
eW5jCisgICAgU2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21h
aW5zKSAtPiAoKQorICAgIFNlbmRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YUltbWVkaWF0ZWx5
KCkgLT4gKCkKICNlbmRpZgogCiAgICAgR3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMoV2ViS2l0
OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbW9iaWxlQXNzZXRWMkhhbmRsZSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24g
MjkwODk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjMsMjEgKzIz
LDIxIEBACiBtZXNzYWdlcyAtPiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IE5vdFJlZkNvdW50
ZWQgewogICAgIEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVj
dHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjYWxsYmFj
a1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdp
dGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwpIC0+IChz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhO
b2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAo
c3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRo
TmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2
ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCB1aW50MzJfdCBv
cmRpbmFsKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCisgICAgUmVzb2x2ZUNoaWxkRnJh
bWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRs
ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQorICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0
aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5hbWUpIC0+IChzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gZXJyb3JUeXBlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCkKKyAgICBSZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogCi0gICAgQ29tcHV0ZUVsZW1lbnRM
YXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1aW50OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5c3Rl
bSBjb29yZGluYXRlU3lzdGVtKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwg
V2ViQ29yZTo6SW50UmVjdCByZWN0LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBp
blZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVkKSBBc3luYworICAgIENvbXB1dGVFbGVt
ZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29s
IHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVudW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVT
eXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRQb2lu
dD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wgaXNPYnNjdXJlZCkKIAotICAgIFNlbGVjdE9wdGlv
bkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIFNlbGVjdE9wdGlvbkVs
ZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKQogCi0gICAgU2V0RmlsZXNGb3JJbnB1dEZpbGVV
cGxvYWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIFZlY3RvcjxT
dHJpbmc+IGZpbGVuYW1lcykgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFz
eW5jCisgICAgU2V0RmlsZXNGb3JJbnB1dEZpbGVVcGxvYWQoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgU3RyaW5nIG5vZGVIYW5kbGUsIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lcykgLT4gKHN0ZDo6
b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpCiAKICAgICBUYWtlU2NyZWVuc2hvdChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lm
TmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAg
U25hcHNob3RSZWN0Rm9yU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJpbmcg
bm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdw
b3J0KSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVj
dCByZWN0KSBBc3luYworICAgIFNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRl
ZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCkgLT4gKHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCkKIAotICAgIEdldENvb2tpZXNGb3JGcmFtZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5bmMKLSAgICBEZWxldGVDb29raWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIEdldENvb2tpZXNGb3JGcmFtZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKKyAgICBEZWxldGVDb29raWUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gZXJyb3JUeXBlKQogfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBAIG1l
c3NhZ2VzIC0+IEdQVVByb2Nlc3NDb25uZWN0aW9uIFdhbnRzRGkKICAgICBEaWRSZWNlaXZlUmVt
b3RlQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OlJl
bW90ZUNvbnRyb2xDb21tYW5kVHlwZSB0eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVNlc3Npb246OlJlbW90ZUNvbW1hbmRBcmd1bWVudCBhcmd1bWVudCkKIAogI2lmIEVOQUJMRShS
T1VUSU5HX0FSQklUUkFUSU9OKQotICAgIEJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVn
b3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRl
Z29yeSkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHk6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViS2l0
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpEZWZhdWx0Um91dGVDaGFuZ2Vk
IGRlZmF1bHRSb3V0ZUNoYW5nZWQpIEFzeW5jCisgICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25X
aXRoQ2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlIGNhdGVnb3J5KSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eTo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9v
bCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0
ZUNoYW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkKICAgICBFbmRSb3V0aW5nQXJiaXRyYXRpb24o
KTsKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQpJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDI5MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC02OCw5ICs2
OCw5IEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSBOb3QKICAgICBVcGRh
dGVHZW5lcmljQ3VlKFdlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciB0cmFja0lE
LCBzdHJ1Y3QgV2ViQ29yZTo6R2VuZXJpY0N1ZURhdGEgY3VlKQogICAgIFJlbW92ZUdlbmVyaWND
dWUoV2ViS2l0OjpUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHRyYWNrSUQsIHN0cnVjdCBX
ZWJDb3JlOjpHZW5lcmljQ3VlRGF0YSBjdWUpCiAKLSAgICBSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+
ICgpIEFzeW5jCisgICAgUmVxdWVzdFJlc291cmNlKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJl
c291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKSAtPiAoKQogICAgIFJlbW92ZVJlc291
cmNlKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIpCi0gICAgU2VuZEgyUGluZyhVUkwgdXJsKSAtPiAoRXhwZWN0ZWQ8U2Vj
b25kcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIFNlbmRIMlBp
bmcoVVJMIHVybCkgLT4gKEV4cGVjdGVkPFNlY29uZHMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+
IHJlc3VsdCkKICAgICBSZXNvdXJjZU5vdFN1cHBvcnRlZCgpCiAKICAgICBBY3RpdmVTb3VyY2VC
dWZmZXJzQ2hhbmdlZCgpCkBAIC04OSw3ICs4OSw3IEBAIG1lc3NhZ2VzIC0+IE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSBOb3QKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBHZXRSYXdDb29raWVzKFVSTCB1cmwpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiByZXN1
bHQpIEFzeW5jCisgICAgR2V0UmF3Q29va2llcyhVUkwgdXJsKSAtPiAoVmVjdG9yPFdlYkNvcmU6
OkNvb2tpZT4gcmVzdWx0KQogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5
MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBA
QAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogbWVz
c2FnZXMgLT4gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZSBOb3RSZWZDb3VudGVkIHsKLSAgICBT
b3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzdHJ1Y3Qg
V2ViS2l0OjpJbml0aWFsaXphdGlvblNlZ21lbnRJbmZvIHNlZ21lbnRDb25maWd1cmF0aW9uKSAt
PiAoKSBBc3luYworICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KHN0cnVjdCBXZWJLaXQ6OkluaXRpYWxpemF0aW9uU2VnbWVudEluZm8gc2VnbWVu
dENvbmZpZ3VyYXRpb24pIC0+ICgpCiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZVN0cmVhbUVuZGVk
V2l0aERlY29kZUVycm9yKCkKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kRXJyb3IoYm9v
bCBkZWNvZGVFcnJvcikKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kUmVzdWx0IGFwcGVuZFJlc3Vs
dCwgV2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzIGJ1ZmZlcmVkLCB1aW50NjRfdCB0b3RhbFRy
YWNrQnVmZmVyU2l6ZUluQnl0ZXMsIE1lZGlhVGltZSB0aW1lU3RhbXBPZmZzZXQpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTIzLDE2ICsyMywxNiBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5T
SU9OUykKIAogbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyIE5v
dFJlZkNvdW50ZWQgewotICAgIFJlZ2lzdGVyRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwg
U3RyaW5nIGV4dGVuc2lvbkJ1bmRsZUlkZW50aWZpZXIsIFN0cmluZyBkaXNwbGF5TmFtZSkgLT4g
KEV4cGVjdGVkPHZvaWQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMK
LSAgICBVbnJlZ2lzdGVyRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCkgLT4gKEV4cGVjdGVk
PHZvaWQsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBSZWdp
c3RlckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0cmluZyBleHRlbnNpb25CdW5kbGVJ
ZGVudGlmaWVyLCBTdHJpbmcgZGlzcGxheU5hbWUpIC0+IChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0
b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQpCisgICAgVW5yZWdpc3RlckV4dGVuc2lvbihTdHJp
bmcgZXh0ZW5zaW9uSUQpIC0+IChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVy
cm9yPiByZXN1bHQpCiAKLSAgICBDcmVhdGVUYWJGb3JFeHRlbnNpb24oU3RyaW5nIGV4dGVuc2lv
bklELCBTdHJpbmcgdGFiTmFtZSwgVVJMIHRhYkljb25VUkwsIFVSTCBzb3VyY2VVUkwpIC0+IChF
eHBlY3RlZDxTdHJpbmcsIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+IHJlc3VsdCkgQXN5bmMK
LSAgICBFdmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0cmlu
ZyBzY3JpcHRTb3VyY2UsIHN0ZDo6b3B0aW9uYWw8VVJMPiBmcmFtZVVSTCwgc3RkOjpvcHRpb25h
bDxVUkw+IGNvbnRleHRTZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25hbDxib29sPiB1c2VDb250
ZW50U2NyaXB0Q29udGV4dCkgLT4gKElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHREYXRhLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIHN0ZDo6b3B0aW9u
YWw8SW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gZXJyb3IpIEFzeW5jCi0gICAgUmVsb2FkRm9y
RXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwgc3RkOjpvcHRpb25hbDxib29sPiBpZ25vcmVD
YWNoZSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHVzZXJBZ2VudCwgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IGluamVjdGVkU2NyaXB0KSAtPiAoc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OkV4dGVuc2lv
bkVycm9yPiBlcnJvcikgQXN5bmMKLSAgICBTaG93RXh0ZW5zaW9uVGFiKFN0cmluZyBleHRlbnNp
b25UYWJJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dm9pZCwgSW5zcGVjdG9yOjpFeHRlbnNpb25F
cnJvcj4gcmVzdWx0KSBBc3luYworICAgIENyZWF0ZVRhYkZvckV4dGVuc2lvbihTdHJpbmcgZXh0
ZW5zaW9uSUQsIFN0cmluZyB0YWJOYW1lLCBVUkwgdGFiSWNvblVSTCwgVVJMIHNvdXJjZVVSTCkg
LT4gKEV4cGVjdGVkPFN0cmluZywgSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcj4gcmVzdWx0KQor
ICAgIEV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uKFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5n
IHNjcmlwdFNvdXJjZSwgc3RkOjpvcHRpb25hbDxVUkw+IGZyYW1lVVJMLCBzdGQ6Om9wdGlvbmFs
PFVSTD4gY29udGV4dFNlY3VyaXR5T3JpZ2luLCBzdGQ6Om9wdGlvbmFsPGJvb2w+IHVzZUNvbnRl
bnRTY3JpcHRDb250ZXh0KSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgc3RkOjpvcHRpb25h
bDxJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiBlcnJvcikKKyAgICBSZWxvYWRGb3JFeHRlbnNp
b24oU3RyaW5nIGV4dGVuc2lvbklELCBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlnbm9yZUNhY2hlLCBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gdXNlckFnZW50LCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gaW5q
ZWN0ZWRTY3JpcHQpIC0+IChzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+
IGVycm9yKQorICAgIFNob3dFeHRlbnNpb25UYWIoU3RyaW5nIGV4dGVuc2lvblRhYklkZW50aWZp
ZXIpIC0+IChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiByZXN1bHQp
CiAgICAgCiAgICAgLy8gRm9yIHRlc3RpbmcuCi0gICAgRXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lv
blRhYihTdHJpbmcgZXh0ZW5zaW9uVGFiSUQsIFN0cmluZyBzY3JpcHRTb3VyY2UpIC0+IChJUEM6
OkRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRp
b25EZXRhaWxzPiBkZXRhaWxzLCBzdGQ6Om9wdGlvbmFsPEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJy
b3I+IGVycm9yKSBBc3luYworICAgIEV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoU3RyaW5n
IGV4dGVuc2lvblRhYklELCBTdHJpbmcgc2NyaXB0U291cmNlKSAtPiAoSVBDOjpEYXRhUmVmZXJl
bmNlIHJlc3VsdERhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4g
ZGV0YWlscywgc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPiBlcnJvcikK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbgko
cmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lv
bi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtMjcsMTMgKzI3LDEzIEBACiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yIE5vdFJlZkNvdW50ZWQgewogCi0gICAgU2Vla1Nlc3Npb25Ub1RpbWUoZG91Ymxl
IHRpbWUpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKyAgICBTZWVrU2Vzc2lvblRvVGltZShkb3Vi
bGUgdGltZSkgLT4gKGJvb2wgcmVzdWx0KQogCi0gICAgUGxheVNlc3Npb24oc3RkOjpvcHRpb25h
bDxkb3VibGU+IGF0VGltZSwgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNUaW1lPiBob3N0VGltZSkg
LT4gKGJvb2wgcmVzdWx0KSBBc3luYworICAgIFBsYXlTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8ZG91
YmxlPiBhdFRpbWUsIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gaG9zdFRpbWUpIC0+IChi
b29sIHJlc3VsdCkKIAotICAgIFBhdXNlU2Vzc2lvbigpIC0+IChib29sIHJlc3VsdCkgQXN5bmMK
KyAgICBQYXVzZVNlc3Npb24oKSAtPiAoYm9vbCByZXN1bHQpCiAKLSAgICBTZXRTZXNzaW9uVHJh
Y2soU3RyaW5nIHRyYWNrSWRlbnRpZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYworICAgIFNl
dFNlc3Npb25UcmFjayhTdHJpbmcgdHJhY2tJZGVudGlmaWVyKSAtPiAoYm9vbCByZXN1bHQpCiAK
ICAgICBDb29yZGluYXRvclN0YXRlQ2hhbmdlZChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTM4LDEwICszOCwxMCBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24gTGVnCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUlRDKQotICAg
IENvbm5lY3RUb1JUQ0RhdGFDaGFubmVsUmVtb3RlU291cmNlKHN0cnVjdCBXZWJDb3JlOjpSVENE
YXRhQ2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6UlRDRGF0YUNoYW5u
ZWxJZGVudGlmaWVyIGhhbmRsZXIpIC0+IChzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlc3VsdCkgQXN5
bmMKKyAgICBDb25uZWN0VG9SVENEYXRhQ2hhbm5lbFJlbW90ZVNvdXJjZShzdHJ1Y3QgV2ViQ29y
ZTo6UlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgc3RydWN0IFdlYkNvcmU6OlJUQ0Rh
dGFDaGFubmVsSWRlbnRpZmllciBoYW5kbGVyKSAtPiAoc3RkOjpvcHRpb25hbDxib29sPiByZXN1
bHQpCiAjZW5kaWYKIAotICAgIENoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5KHN0cnVj
dCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkgLT4gKFdlYkNvcmU6Ok1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSBoYXNBY3Rpdml0eSkgQXN5bmMKKyAg
ICBDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eShzdHJ1Y3QgV2ViQ29yZTo6TWVzc2Fn
ZVBvcnRJZGVudGlmaWVyIHBvcnQpIC0+IChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcjo6SGFzQWN0aXZpdHkgaGFzQWN0aXZpdHkpCiAgICAgTWVzc2FnZXNBdmFpbGFibGVGb3JQ
b3J0KHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlUG9ydElkZW50aWZpZXIgcG9ydCkKIAogICAgIEJy
b2FkY2FzdENvbnNvbGVNZXNzYWdlKGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVz
c2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwg
U3RyaW5nIG1lc3NhZ2UpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM4LDcg
KzM4LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKICAgICBTZXRTV09y
aWdpblRhYmxlU2hhcmVkTWVtb3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFu
ZGxlKQogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIs
IHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgc291cmNlLCBTdHJpbmcgc291cmNlT3JpZ2luKQog
Ci0gICAgU2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgdGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkgLT4gKGJvb2wgaXNTdWNjZXNz
KSBBc3luYworICAgIFNldERvY3VtZW50SXNDb250cm9sbGVkKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIHRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllciwgc3RydWN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEpIC0+IChib29sIGlz
U3VjY2VzcykKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCShyZXZpc2lv
biAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzEsNyAr
MzEsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvCiAgICAgUG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSBzb3VyY2VE
YXRhKQogICAgIEZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKICAgICBGaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyKQotICAgIEZpcmVQdXNoRXZlbnQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxJUEM6OkRhdGFS
ZWZlcmVuY2U+IGRhdGEpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKyAgICBGaXJlUHVzaEV2ZW50
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9u
YWw8SVBDOjpEYXRhUmVmZXJlbmNlPiBkYXRhKSAtPiAoYm9vbCByZXN1bHQpCiAKICAgICBUZXJt
aW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
ICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKSAmJiBQTEFURk9STShDT0NPQSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdvcmtlck9iamVjdENv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgko
cmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2hhcmVkV29ya2VyT2JqZWN0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJTaGFyZWRX
b3JrZXJPYmplY3RDb25uZWN0aW9uIHsKLSAgICBGZXRjaFNjcmlwdEluQ2xpZW50KFVSTCB1cmws
IFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0
SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Oldvcmtlck9wdGlvbnMgd29ya2VyT3B0aW9ucykg
LT4gKHN0cnVjdCBXZWJDb3JlOjpXb3JrZXJGZXRjaFJlc3VsdCBmZXRjaFJlc3VsdCkgQXN5bmMK
KyAgICBGZXRjaFNjcmlwdEluQ2xpZW50KFVSTCB1cmwsIFdlYkNvcmU6OlNoYXJlZFdvcmtlck9i
amVjdElkZW50aWZpZXIgc2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6Oldvcmtlck9wdGlvbnMgd29ya2VyT3B0aW9ucykgLT4gKHN0cnVjdCBXZWJDb3JlOjpXb3Jr
ZXJGZXRjaFJlc3VsdCBmZXRjaFJlc3VsdCkKICAgICBOb3RpZnlXb3JrZXJPYmplY3RPZkxvYWRD
b21wbGV0aW9uKFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXIgc2hhcmVkV29y
a2VyT2JqZWN0SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICBQ
b3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoV2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRl
bnRpZmllciBzaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyLCBTdHJpbmcgZXJyb3JNZXNzYWdl
LCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgU3RyaW5nIHNvdXJjZVVSTCkKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5t
ZXNzYWdlcy5pbgkocmV2aXNpb24gMjkwODk3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMjEsNSArMjEsNSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdl
cyAtPiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgewotICAgIFBvc3RNZXNzYWdlVG9SZW1v
dGUoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBzdHJ1
Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMK
KyAgICBQb3N0TWVzc2FnZVRvUmVtb3RlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3Jp
Z2luLCBTdHJpbmcgbmFtZSwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
IG1lc3NhZ2UpIC0+ICgpCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCShyZXZpc2lv
biAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3Nh
Z2VzIC0+IEV2ZW50RGlzcGF0Y2hlciB7CiAgICAgV2hlZWxFdmVudChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViV2hlZWxFdmVudCBldmVudCwgV2ViQ29yZTo6UmVj
dEVkZ2VzPGJvb2w+IHJ1YmJlckJhbmRhYmxlRWRnZXMpCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCi0gICAgVG91Y2hFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgQXN5bmMgTWFpblRo
cmVhZENhbGxiYWNrCisgICAgVG91Y2hFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgTWFpblRo
cmVhZENhbGxiYWNrCiAgICAgVG91Y2hFdmVudFdpdGhvdXRDYWxsYmFjayhXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkKICNlbmRpZgog
I2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI5
MDg5NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIxLDggKzIxLDggQEAKICMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAog
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7Ci0gICAgU2V0SW5pdGlhbEZvY3Vz
KGJvb2wgZm9yd2FyZCwgYm9vbCBpc0tleWJvYXJkRXZlbnRWYWxpZCwgV2ViS2l0OjpXZWJLZXli
b2FyZEV2ZW50IGV2ZW50KSAtPiAoKSBBc3luYwotICAgIFNldEFjdGl2aXR5U3RhdGUoT3B0aW9u
U2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGUsIFdlYktpdDo6
QWN0aXZpdHlTdGF0ZUNoYW5nZUlEIGFjdGl2aXR5U3RhdGVDaGFuZ2VJRCkgLT4gKCkgQXN5bmMK
KyAgICBTZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBib29sIGlzS2V5Ym9hcmRFdmVudFZh
bGlkLCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgZXZlbnQpIC0+ICgpCisgICAgU2V0QWN0aXZp
dHlTdGF0ZShPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlT
dGF0ZSwgV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQgYWN0aXZpdHlTdGF0ZUNoYW5nZUlE
KSAtPiAoKQogICAgIFNldExheWVySG9zdGluZ01vZGUoZW51bTp1aW50OF90IFdlYktpdDo6TGF5
ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKQogCiAgICAgU2V0QmFja2dyb3VuZENvbG9y
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q29sb3I+IGNvbG9yKQpAQCAtNDQsNyArNDQsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBWaWV3V2lsbFN0YXJ0TGl2
ZVJlc2l6ZSgpCiAgICAgVmlld1dpbGxFbmRMaXZlUmVzaXplKCkKIAotICAgIEV4ZWN1dGVFZGl0
Q29tbWFuZFdpdGhDYWxsYmFjayhTdHJpbmcgbmFtZSwgU3RyaW5nIGFyZ3VtZW50KSAtPiAoKSBB
c3luYworICAgIEV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjayhTdHJpbmcgbmFtZSwgU3Ry
aW5nIGFyZ3VtZW50KSAtPiAoKQogICAgIEtleUV2ZW50KFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dCBldmVudCkKICAgICBNb3VzZUV2ZW50KFdlYktpdDo6V2ViTW91c2VFdmVudCBldmVudCwgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBzYW5k
Ym94RXh0ZW5zaW9ucykKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjcsMzcgKzY3LDM3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIEluc3BlY3Rvck5v
ZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBJ
bnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9p
bnQpCiAgICAgQmx1ckZvY3VzZWRFbGVtZW50KCkKLSAgICBTZWxlY3RXaXRoR2VzdHVyZShXZWJD
b3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVR5cGUgZ2Vz
dHVyZVR5cGUsIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyU3RhdGUgZ2Vz
dHVyZVN0YXRlLCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+IChXZWJD
b3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVR5cGUgZ2Vz
dHVyZVR5cGUsIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyU3RhdGUgZ2Vz
dHVyZVN0YXRlLCBPcHRpb25TZXQ8V2ViS2l0OjpTZWxlY3Rpb25GbGFncz4gZmxhZ3MpIEFzeW5j
Ci0gICAgVXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQs
IGVudW06dWludDhfdCBXZWJLaXQ6OlNlbGVjdGlvblRvdWNoIHRvdWNoZXMsIGJvb2wgYmFzZUlz
U3RhcnQpIC0+IChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6
U2VsZWN0aW9uVG91Y2ggdG91Y2gsIE9wdGlvblNldDxXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzPiBz
ZWxlY3Rpb25GbGFncykgQXN5bmMKLSAgICBTZWxlY3RXaXRoVHdvVG91Y2hlcyhXZWJDb3JlOjpJ
bnRQb2ludCBmcm9tLCBXZWJDb3JlOjpJbnRQb2ludCB0bywgZW51bTp1aW50OF90IFdlYktpdDo6
R2VzdHVyZVR5cGUgZ2VzdHVyZVR5cGUsIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVSZWNv
Z25pemVyU3RhdGUgZ2VzdHVyZVN0YXRlKSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVu
dW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3Qg
V2ViS2l0OjpHZXN0dXJlUmVjb2duaXplclN0YXRlIGdlc3R1cmVTdGF0ZSwgT3B0aW9uU2V0PFdl
YktpdDo6U2VsZWN0aW9uRmxhZ3M+IHNlbGVjdGlvbkZsYWdzKSBBc3luYwotICAgIEV4dGVuZFNl
bGVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KSAtPiAoKSBBc3luYworICAgIFNlbGVjdFdpdGhHZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IHBv
aW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1
aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIGJvb2wg
aXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4gKFdlYkNvcmU6OkludFBvaW50IHBv
aW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1
aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIE9wdGlv
blNldDxXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzPiBmbGFncykKKyAgICBVcGRhdGVTZWxlY3Rpb25X
aXRoVG91Y2hlcyhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6
U2VsZWN0aW9uVG91Y2ggdG91Y2hlcywgYm9vbCBiYXNlSXNTdGFydCkgLT4gKFdlYkNvcmU6Oklu
dFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCB0b3VjaCwg
T3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9uRmxhZ3M+IHNlbGVjdGlvbkZsYWdzKQorICAgIFNl
bGVjdFdpdGhUd29Ub3VjaGVzKFdlYkNvcmU6OkludFBvaW50IGZyb20sIFdlYkNvcmU6OkludFBv
aW50IHRvLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51
bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUpIC0+
IChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVR5
cGUgZ2VzdHVyZVR5cGUsIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1cmVSZWNvZ25pemVyU3Rh
dGUgZ2VzdHVyZVN0YXRlLCBPcHRpb25TZXQ8V2ViS2l0OjpTZWxlY3Rpb25GbGFncz4gc2VsZWN0
aW9uRmxhZ3MpCisgICAgRXh0ZW5kU2VsZWN0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpIC0+ICgpCiAgICAgU2VsZWN0V29yZEJhY2t3YXJkKCkK
LSAgICBNb3ZlU2VsZWN0aW9uQnlPZmZzZXQoaW50MzJfdCBvZmZzZXQpIC0+ICgpIEFzeW5jCi0g
ICAgU2VsZWN0VGV4dFdpdGhHcmFudWxhcml0eUF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9p
bnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJv
b2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4gKCkgQXN5bmMKLSAgICBTZWxl
Y3RQb3NpdGlvbkF0Qm91bmRhcnlXaXRoRGlyZWN0aW9uKFdlYkNvcmU6OkludFBvaW50IHBvaW50
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBpc0lu
dGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KSAtPiAoKSBBc3luYwotICAgIE1vdmVTZWxlY3Rp
b25BdEJvdW5kYXJ5V2l0aERpcmVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbikgLT4gKCkgQXN5bmMKLSAgICBTZWxlY3RQb3NpdGlvbkF0UG9pbnQoV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVu
dCkgLT4gKCkgQXN5bmMKLSAgICBCZWdpblNlbGVjdGlvbkluRGlyZWN0aW9uKGVudW06dWludDhf
dCBXZWJDb3JlOjpTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKSAtPiAoYm9vbCBlbmRJc01v
dmluZykgQXN5bmMKLSAgICBVcGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9pbnQoV2ViQ29yZTo6
SW50UG9pbnQgcG9pbnQsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCwgZW51
bTpib29sIFdlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvciByZXNwZWN0U2VsZWN0aW9uQW5j
aG9yKSAtPiAoYm9vbCBlbmRJc01vdmluZykgQXN5bmMKLSAgICBVcGRhdGVTZWxlY3Rpb25XaXRo
RXh0ZW50UG9pbnRBbmRCb3VuZGFyeShXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50
OF90IFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBpc0ludGVyYWN0
aW5nV2l0aEZvY3VzZWRFbGVtZW50KSAtPiAoYm9vbCBlbmRJc01vdmluZykgQXN5bmMKLSAgICBS
ZXF1ZXN0RGljdGF0aW9uQ29udGV4dCgpIC0+IChTdHJpbmcgc2VsZWN0ZWRUZXh0LCBTdHJpbmcg
dGV4dEJlZm9yZSwgU3RyaW5nIHRleHRBZnRlcikgQXN5bmMKKyAgICBNb3ZlU2VsZWN0aW9uQnlP
ZmZzZXQoaW50MzJfdCBvZmZzZXQpIC0+ICgpCisgICAgU2VsZWN0VGV4dFdpdGhHcmFudWxhcml0
eUF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpU
ZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2Vk
RWxlbWVudCkgLT4gKCkKKyAgICBTZWxlY3RQb3NpdGlvbkF0Qm91bmRhcnlXaXRoRGlyZWN0aW9u
KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KSAtPiAo
KQorICAgIE1vdmVTZWxlY3Rpb25BdEJvdW5kYXJ5V2l0aERpcmVjdGlvbihlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbikgLT4gKCkKKyAgICBTZWxlY3RQb3NpdGlv
bkF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhG
b2N1c2VkRWxlbWVudCkgLT4gKCkKKyAgICBCZWdpblNlbGVjdGlvbkluRGlyZWN0aW9uKGVudW06
dWludDhfdCBXZWJDb3JlOjpTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKSAtPiAoYm9vbCBl
bmRJc01vdmluZykKKyAgICBVcGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9pbnQoV2ViQ29yZTo6
SW50UG9pbnQgcG9pbnQsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCwgZW51
bTpib29sIFdlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvciByZXNwZWN0U2VsZWN0aW9uQW5j
aG9yKSAtPiAoYm9vbCBlbmRJc01vdmluZykKKyAgICBVcGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50
UG9pbnRBbmRCb3VuZGFyeShXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdl
YkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0
aEZvY3VzZWRFbGVtZW50KSAtPiAoYm9vbCBlbmRJc01vdmluZykKKyAgICBSZXF1ZXN0RGljdGF0
aW9uQ29udGV4dCgpIC0+IChTdHJpbmcgc2VsZWN0ZWRUZXh0LCBTdHJpbmcgdGV4dEJlZm9yZSwg
U3RyaW5nIHRleHRBZnRlcikKICNpZiBFTkFCTEUoUkVWRUFMKQotICAgIFJlcXVlc3RSVkl0ZW1J
bkN1cnJlbnRTZWxlY3RlZFJhbmdlKCkgLT4gKFdlYktpdDo6UmV2ZWFsSXRlbSBpdGVtKSBBc3lu
YwotICAgIFByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhX
ZWJDb3JlOjpJbnRQb2ludCBwb2ludCkgLT4gKGJvb2wgc2hvdWxkU2hvd01lbnUsIFdlYktpdDo6
UmV2ZWFsSXRlbSBpdGVtKSBBc3luYworICAgIFJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3Rl
ZFJhbmdlKCkgLT4gKFdlYktpdDo6UmV2ZWFsSXRlbSBpdGVtKQorICAgIFByZXBhcmVTZWxlY3Rp
b25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhXZWJDb3JlOjpJbnRQb2ludCBwb2lu
dCkgLT4gKGJvb2wgc2hvdWxkU2hvd01lbnUsIFdlYktpdDo6UmV2ZWFsSXRlbSBpdGVtKQogI2Vu
ZGlmCiAgICAgUmVwbGFjZURpY3RhdGVkVGV4dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1Rl
eHQpCiAgICAgUmVwbGFjZVNlbGVjdGVkVGV4dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1Rl
eHQpCi0gICAgUmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShTdHJpbmcgdGV4dEZvckF1dG9jb3Jy
ZWN0aW9uKSAtPiAoc3RydWN0IFdlYktpdDo6V2ViQXV0b2NvcnJlY3Rpb25EYXRhIGRhdGEpIEFz
eW5jCi0gICAgQXBwbHlBdXRvY29ycmVjdGlvbihTdHJpbmcgY29ycmVjdGlvbiwgU3RyaW5nIG9y
aWdpbmFsVGV4dCkgLT4gKFN0cmluZyBzdHJpbmcpIEFzeW5jCisgICAgUmVxdWVzdEF1dG9jb3Jy
ZWN0aW9uRGF0YShTdHJpbmcgdGV4dEZvckF1dG9jb3JyZWN0aW9uKSAtPiAoc3RydWN0IFdlYktp
dDo6V2ViQXV0b2NvcnJlY3Rpb25EYXRhIGRhdGEpCisgICAgQXBwbHlBdXRvY29ycmVjdGlvbihT
dHJpbmcgY29ycmVjdGlvbiwgU3RyaW5nIG9yaWdpbmFsVGV4dCkgLT4gKFN0cmluZyBzdHJpbmcp
CiAgICAgU3luY0FwcGx5QXV0b2NvcnJlY3Rpb24oU3RyaW5nIGNvcnJlY3Rpb24sIFN0cmluZyBv
cmlnaW5hbFRleHQpIC0+IChib29sIGF1dG9jb3JyZWN0aW9uQXBwbGllZCkgU3luY2hyb25vdXMK
ICAgICBIYW5kbGVBdXRvY29ycmVjdGlvbkNvbnRleHRSZXF1ZXN0KCkKLSAgICBSZXF1ZXN0RXZh
c2lvblJlY3RzQWJvdmVTZWxlY3Rpb24oKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4g
cmVjdHMpIEFzeW5jCisgICAgUmVxdWVzdEV2YXNpb25SZWN0c0Fib3ZlU2VsZWN0aW9uKCkgLT4g
KFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHJlY3RzKQogICAgIEdldFBvc2l0aW9uSW5mb3Jt
YXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVz
dCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGlu
Zm9ybWF0aW9uKSBTeW5jaHJvbm91cwogICAgIFJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uKHN0
cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QpCiAgICAg
U3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50Q29udGV4dE9yUG9zaXRpb24oc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4gZWxlbWVudENvbnRleHQsIFdlYkNvcmU6OkludFBv
aW50IHBvaW50KQogICAgIFN0b3BJbnRlcmFjdGlvbigpCiAgICAgUGVyZm9ybUFjdGlvbk9uRWxl
bWVudCh1aW50MzJfdCBhY3Rpb24pCi0gICAgRm9jdXNOZXh0Rm9jdXNlZEVsZW1lbnQoYm9vbCBp
c0ZvcndhcmQpIC0+ICgpIEFzeW5jCisgICAgRm9jdXNOZXh0Rm9jdXNlZEVsZW1lbnQoYm9vbCBp
c0ZvcndhcmQpIC0+ICgpCiAgICAgQXV0b2ZpbGxMb2dpbkNyZWRlbnRpYWxzKFN0cmluZyB1c2Vy
bmFtZSwgU3RyaW5nIHBhc3N3b3JkKQogICAgIFNldEZvY3VzZWRFbGVtZW50VmFsdWUoc3RydWN0
IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGNvbnRleHQsIFN0cmluZyB2YWx1ZSkKICAgICBTZXRG
b2N1c2VkRWxlbWVudFNlbGVjdGVkSW5kZXgoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0
IGNvbnRleHQsIHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pCkBA
IC0xMDksMzAgKzEwOSwzMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZEZvck1lZGlhKGJvb2wgaXNTdXNwZW5k
ZWRVbmRlckxvY2spCiAgICAgQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kRm9yTWVkaWEo
Ym9vbCBpc1N1c3BlbmRlZFVuZGVyTG9jaykKICAgICBDb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hh
bmdlKFN0cmluZyBjb250ZW50U2l6ZUNhdGVnb3J5KQotICAgIEdldFNlbGVjdGlvbkNvbnRleHQo
KSAtPiAoU3RyaW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIHRleHRCZWZvcmUsIFN0cmluZyB0ZXh0
QWZ0ZXIpIEFzeW5jCisgICAgR2V0U2VsZWN0aW9uQ29udGV4dCgpIC0+IChTdHJpbmcgc2VsZWN0
ZWRUZXh0LCBTdHJpbmcgdGV4dEJlZm9yZSwgU3RyaW5nIHRleHRBZnRlcikKICAgICBTZXRBbGxv
d3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2soYm9vbCBhbGxvd3MpCiAgICAgSGFuZGxlVHdv
RmluZ2VyVGFwQXRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktp
dDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdlYktpdDo6VGFwSWRlbnRpZmllciBy
ZXF1ZXN0SUQpCiAgICAgU2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoYm9vbCB1c2VyU2NhbGFi
bGUpCi0gICAgR2V0UmVjdHNGb3JHcmFudWxhcml0eVdpdGhTZWxlY3Rpb25PZmZzZXQoZW51bTp1
aW50OF90IFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgaW50MzJfdCBvZmZz
ZXQpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnk+IHJlY3QpIEFzeW5jCi0g
ICAgR2V0UmVjdHNBdFNlbGVjdGlvbk9mZnNldFdpdGhUZXh0KGludDMyX3Qgb2Zmc2V0LCBTdHJp
bmcgdGV4dCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gcmVjdCkgQXN5
bmMKKyAgICBHZXRSZWN0c0ZvckdyYW51bGFyaXR5V2l0aFNlbGVjdGlvbk9mZnNldChlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBpbnQzMl90IG9mZnNl
dCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4gcmVjdCkKKyAgICBHZXRS
ZWN0c0F0U2VsZWN0aW9uT2Zmc2V0V2l0aFRleHQoaW50MzJfdCBvZmZzZXQsIFN0cmluZyB0ZXh0
KSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5PiByZWN0KQogICAgIFN0b3Jl
U2VsZWN0aW9uRm9yQWNjZXNzaWJpbGl0eShib29sIHNob3VsZFN0b3JlKQogICAgIFN0YXJ0QXV0
b3Njcm9sbEF0UG9zaXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBwb3NpdGlvbkluV2luZG93KQog
ICAgIENhbmNlbEF1dG9zY3JvbGwoKQotICAgIFJlcXVlc3RGb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
PiBpbmZvKSBBc3luYworICAgIFJlcXVlc3RGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKCkgLT4g
KHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uPiBpbmZvKQog
ICAgIEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wga2V5Ym9hcmRJc0F0
dGFjaGVkKQogICAgIFNldElzU2hvd2luZ0lucHV0Vmlld0ZvckZvY3VzZWRFbGVtZW50KGJvb2wg
c2hvd2luZ0lucHV0VmlldykKLSAgICBVcGRhdGVTZWxlY3Rpb25XaXRoRGVsdGEoaW50NjRfdCBs
b2NhdGlvbkRlbHRhLCBpbnQ2NF90IGxlbmd0aERlbHRhKSAtPiAoKSBBc3luYwotICAgIFJlcXVl
c3REb2N1bWVudEVkaXRpbmdDb250ZXh0KHN0cnVjdCBXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0Nv
bnRleHRSZXF1ZXN0IHJlcXVlc3QpIC0+IChzdHJ1Y3QgV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdD
b250ZXh0IHJlc3BvbnNlKSBBc3luYworICAgIFVwZGF0ZVNlbGVjdGlvbldpdGhEZWx0YShpbnQ2
NF90IGxvY2F0aW9uRGVsdGEsIGludDY0X3QgbGVuZ3RoRGVsdGEpIC0+ICgpCisgICAgUmVxdWVz
dERvY3VtZW50RWRpdGluZ0NvbnRleHQoc3RydWN0IFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29u
dGV4dFJlcXVlc3QgcmVxdWVzdCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0Nv
bnRleHQgcmVzcG9uc2UpCiBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWlu
dDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSBjb21tYW5kKQogICAgIFNl
dFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJl
dmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbikKLSAgICBJbnNlcnRUZXh0UGxhY2Vo
b2xkZXIoV2ViQ29yZTo6SW50U2l6ZSBzaXplKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpF
bGVtZW50Q29udGV4dD4gcGxhY2Vob2xkZXIpIEFzeW5jCi0gICAgUmVtb3ZlVGV4dFBsYWNlaG9s
ZGVyKHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBwbGFjZWhvbGRlcikgLT4gKCkgQXN5
bmMKLSAgICBUZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkg
LT4gKFZlY3RvcjxzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGNvbnRleHRzKSBBc3lu
YwotICAgIEZvY3VzVGV4dElucHV0Q29udGV4dEFuZFBsYWNlQ2FyZXQoc3RydWN0IFdlYkNvcmU6
OkVsZW1lbnRDb250ZXh0IGNvbnRleHQsIFdlYkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAoYm9v
bCBzdWNjZXNzKSBBc3luYwotICAgIENsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJp
ZGUoKSAtPiAoKSBBc3luYworICAgIEluc2VydFRleHRQbGFjZWhvbGRlcihXZWJDb3JlOjpJbnRT
aXplIHNpemUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiBwbGFj
ZWhvbGRlcikKKyAgICBSZW1vdmVUZXh0UGxhY2Vob2xkZXIoc3RydWN0IFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0IHBsYWNlaG9sZGVyKSAtPiAoKQorICAgIFRleHRJbnB1dENvbnRleHRzSW5SZWN0
KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KSAtPiAoVmVjdG9yPHN0cnVjdCBXZWJDb3JlOjpFbGVt
ZW50Q29udGV4dD4gY29udGV4dHMpCisgICAgRm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VD
YXJldChzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgV2ViQ29yZTo6SW50
UG9pbnQgcG9pbnQpIC0+IChib29sIHN1Y2Nlc3MpCisgICAgQ2xlYXJTZXJ2aWNlV29ya2VyRW50
aXRsZW1lbnRPdmVycmlkZSgpIC0+ICgpCiAjZW5kaWYKIAotICAgIFJlcXVlc3RJbWFnZUJpdG1h
cChzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudENvbnRleHQpIC0+IChXZWJL
aXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlLCBTdHJpbmcgc291cmNlTUlNRVR5cGUp
IEFzeW5jCisgICAgUmVxdWVzdEltYWdlQml0bWFwKHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dCBlbGVtZW50Q29udGV4dCkgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUg
aW1hZ2UsIFN0cmluZyBzb3VyY2VNSU1FVHlwZSkKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJ
U19FTkhBTkNFTUVOVFMpCiAgICAgSW5zdGFsbENyb3BwZWRJbWFnZU92ZXJsYXkoc3RydWN0IFdl
YkNvcmU6OkVsZW1lbnRDb250ZXh0IGVsZW1lbnRDb250ZXh0LCBXZWJLaXQ6OlNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlIGltYWdlRGF0YSwgU3RyaW5nIG1pbWVUeXBlLCBXZWJDb3JlOjpGbG9hdFJl
Y3Qgbm9ybWFsaXplZENyb3BSZWN0KQpAQCAtMTkwLDcgKzE5MCw3IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KICAgICBMb2FkQWx0ZXJuYXRlSFRNTChzdHJ1Y3Qg
V2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKIAogICAgIE5hdmlnYXRlVG9Q
REZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKFN0cmluZyB1cmwsIFdlYkNvcmU6OkludFBvaW50IGRv
Y3VtZW50UG9pbnQsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblBvaW50KQotICAgIEdldFBERkZp
cnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChXZWJDb3Jl
OjpGbG9hdFNpemUgc2l6ZSkgQXN5bmMKKyAgICBHZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAK
ICAgICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25z
LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
KQogICAgIFN0b3BMb2FkaW5nKCkKQEAgLTIxNCwyNSArMjE0LDI1IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KICAgICBSZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2Vk
RWRpdGFibGVFbGVtZW50KCkKIAogICAgICMgQ2FsbGJhY2tzLgotICAgIEdldENvbnRlbnRzQXNT
dHJpbmcoZW51bTpib29sIFdlYktpdDo6Q29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1l
cyBpbkNoaWxkRnJhbWVzKSAtPiAoU3RyaW5nIHN0cmluZykgQXN5bmMKLSAgICBHZXRBbGxGcmFt
ZXMoKSAtPiAoc3RydWN0IFdlYktpdDo6RnJhbWVUcmVlTm9kZURhdGEgbWFpbkZyYW1lKSBBc3lu
YworICAgIEdldENvbnRlbnRzQXNTdHJpbmcoZW51bTpib29sIFdlYktpdDo6Q29udGVudEFzU3Ry
aW5nSW5jbHVkZXNDaGlsZEZyYW1lcyBpbkNoaWxkRnJhbWVzKSAtPiAoU3RyaW5nIHN0cmluZykK
KyAgICBHZXRBbGxGcmFtZXMoKSAtPiAoc3RydWN0IFdlYktpdDo6RnJhbWVUcmVlTm9kZURhdGEg
bWFpbkZyYW1lKQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIEdldENvbnRlbnRzQXNBdHRyaWJ1
dGVkU3RyaW5nKCkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nIHJlc3VsdCkg
QXN5bmMKKyAgICBHZXRDb250ZW50c0FzQXR0cmlidXRlZFN0cmluZygpIC0+IChzdHJ1Y3QgV2Vi
Q29yZTo6QXR0cmlidXRlZFN0cmluZyByZXN1bHQpCiAjZW5kaWYKICNpZiBFTkFCTEUoTUhUTUwp
Ci0gICAgR2V0Q29udGVudHNBc01IVE1MRGF0YSgpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkg
ZGF0YSkgQXN5bmMKKyAgICBHZXRDb250ZW50c0FzTUhUTUxEYXRhKCkgLT4gKElQQzo6U2hhcmVk
QnVmZmVyQ29weSBkYXRhKQogI2VuZGlmCi0gICAgR2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6
U2hhcmVkQnVmZmVyQ29weT4gYnVmZmVyKSBBc3luYwotICAgIEdldFJlc291cmNlRGF0YUZyb21G
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJM
KSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGJ1ZmZlcikgQXN5bmMK
LSAgICBHZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbigpIC0+IChTdHJpbmcgc3Ry
aW5nKSBBc3luYwotICAgIEdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZygpIC0+IChTdHJp
bmcgc3RyaW5nKSBBc3luYwotICAgIEdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoKSAtPiAo
c3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGRhdGEpIEFzeW5jCi0gICAgR2V0
U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChTdHJp
bmcgc3RyaW5nKSBBc3luYwotICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNv
cHk+IGRhdGFSZWZlcmVuY2UpIEFzeW5jCisgICAgR2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6
U2hhcmVkQnVmZmVyQ29weT4gYnVmZmVyKQorICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMKSAtPiAo
c3RkOjpvcHRpb25hbDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGJ1ZmZlcikKKyAgICBHZXRSZW5k
ZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbigpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIEdl
dFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZygpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIEdl
dFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OlNoYXJl
ZEJ1ZmZlckNvcHk+IGRhdGEpCisgICAgR2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIEdldFdlYkFyY2hpdmVP
ZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoc3RkOjpvcHRpb25h
bDxJUEM6OlNoYXJlZEJ1ZmZlckNvcHk+IGRhdGFSZWZlcmVuY2UpCiAKLSAgICBSdW5KYXZhU2Ny
aXB0SW5GcmFtZUluU2NyaXB0V29ybGQoc3RydWN0IFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJh
bWV0ZXJzIHBhcmFtZXRlcnMsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBzdGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBTdHJp
bmc+IHdvcmxkKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscykgQXN5bmMKKyAgICBSdW5KYXZh
U2NyaXB0SW5GcmFtZUluU2NyaXB0V29ybGQoc3RydWN0IFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBzdGQ6OnBhaXI8V2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyLCBT
dHJpbmc+IHdvcmxkKSAtPiAoSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscykKIAotICAgIEZvcmNlUmVw
YWludCgpIC0+ICgpIEFzeW5jCisgICAgRm9yY2VSZXBhaW50KCkgLT4gKCkKICAgICBTZWxlY3RB
bGwoKQogICAgIFNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCkKIApAQCAtMjQzLDggKzI0
Myw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KICNlbmRpZgog
CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQotICAgIERldGVjdERhdGFJbkFsbEZyYW1lcyhP
cHRpb25TZXQ8V2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZT4gdHlwZXMpIC0+IChzdHJ1Y3QgV2Vi
S2l0OjpEYXRhRGV0ZWN0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKLSAgICBSZW1vdmVEYXRhRGV0
ZWN0ZWRMaW5rcygpIC0+IChzdHJ1Y3QgV2ViS2l0OjpEYXRhRGV0ZWN0aW9uUmVzdWx0IHJlc3Vs
dCkgQXN5bmMKKyAgICBEZXRlY3REYXRhSW5BbGxGcmFtZXMoT3B0aW9uU2V0PFdlYkNvcmU6OkRh
dGFEZXRlY3RvclR5cGU+IHR5cGVzKSAtPiAoc3RydWN0IFdlYktpdDo6RGF0YURldGVjdGlvblJl
c3VsdCByZXN1bHQpCisgICAgUmVtb3ZlRGF0YURldGVjdGVkTGlua3MoKSAtPiAoc3RydWN0IFdl
YktpdDo6RGF0YURldGVjdGlvblJlc3VsdCByZXN1bHQpCiAjZW5kaWYKIAogICAgIENoYW5nZUZv
bnQoV2ViQ29yZTo6Rm9udENoYW5nZXMgY2hhbmdlcykKQEAgLTI1OCwxNCArMjU4LDE0IEBAIEdl
bmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KICAgICBTdXNwZW5kQWN0aXZl
RE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKQogICAgIFJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRB
bmltYXRpb25zKCkKIAotICAgIFN1c3BlbmQoKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwotICAg
IFJlc3VtZSgpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCisgICAgU3VzcGVuZCgpIC0+IChib29s
IHN1Y2Nlc3MpCisgICAgUmVzdW1lKCkgLT4gKGJvb2wgc3VjY2VzcykKIAogICAgIENsb3NlKCkK
LSAgICBUcnlDbG9zZSgpIC0+IChib29sIHNob3VsZENsb3NlKSBBc3luYworICAgIFRyeUNsb3Nl
KCkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpCiAKICAgICBTZXRFZGl0YWJsZShib29sIGVkaXRhYmxl
KQotICAgIFZhbGlkYXRlQ29tbWFuZChTdHJpbmcgbmFtZSkgLT4gKGJvb2wgaXNFbmFibGVkLCBp
bnQzMl90IHN0YXRlKSBBc3luYworICAgIFZhbGlkYXRlQ29tbWFuZChTdHJpbmcgbmFtZSkgLT4g
KGJvb2wgaXNFbmFibGVkLCBpbnQzMl90IHN0YXRlKQogICAgIEV4ZWN1dGVFZGl0Q29tbWFuZChT
dHJpbmcgbmFtZSwgU3RyaW5nIGFyZ3VtZW50KQogCiAgICAgSW5jcmVhc2VMaXN0TGV2ZWwoKQpA
QCAtMjc2LDcgKzI3Niw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1
aW4KIAogICAgIFNldE5lZWRzRm9udEF0dHJpYnV0ZXMoYm9vbCBuZWVkc0ZvbnRBdHRyaWJ1dGVz
KQogCi0gICAgUmVxdWVzdEZvbnRBdHRyaWJ1dGVzQXRTZWxlY3Rpb25TdGFydCgpIC0+IChzdHJ1
Y3QgV2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXMgYXR0cmlidXRlcykgQXN5bmMKKyAgICBSZXF1ZXN0
Rm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlvblN0YXJ0KCkgLT4gKHN0cnVjdCBXZWJDb3JlOjpGb250
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogCiAgICAgRGlkUmVtb3ZlRWRpdENvbW1hbmQodWludDY0
X3QgY29tbWFuZElEKQogICAgIFJlYXBwbHlFZGl0Q29tbWFuZCh1aW50NjRfdCBjb21tYW5kSUQp
CkBAIC0zMTIsMTkgKzMxMiwxOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWluCiAgICAgUG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZShTdHJpbmcgbWVzc2FnZU5hbWUs
IFdlYktpdDo6VXNlckRhdGEgbWVzc2FnZUJvZHkpCiAKICAgICAjIEZpbmQuCi0gICAgRmluZFN0
cmluZyhTdHJpbmcgc3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gZmluZE9w
dGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIC0+IChib29sIGZvdW5kKSBBc3luYworICAg
IEZpbmRTdHJpbmcoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+
IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KSAtPiAoYm9vbCBmb3VuZCkKICAg
ICBGaW5kU3RyaW5nTWF0Y2hlcyhTdHJpbmcgc3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0OjpGaW5k
T3B0aW9ucz4gZmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpCiAgICAgR2V0SW1h
Z2VGb3JGaW5kTWF0Y2godWludDMyX3QgbWF0Y2hJbmRleCkKICAgICBTZWxlY3RGaW5kTWF0Y2go
dWludDMyX3QgbWF0Y2hJbmRleCkKICAgICBJbmRpY2F0ZUZpbmRNYXRjaCh1aW50MzJfdCBtYXRj
aEluZGV4KQogICAgIEhpZGVGaW5kVUkoKQogICAgIENvdW50U3RyaW5nTWF0Y2hlcyhTdHJpbmcg
c3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gZmluZE9wdGlvbnMsIHVuc2ln
bmVkIG1heE1hdGNoQ291bnQpCi0gICAgUmVwbGFjZU1hdGNoZXMoVmVjdG9yPHVpbnQzMl90PiBt
YXRjaEluZGljZXMsIFN0cmluZyByZXBsYWNlbWVudFRleHQsIGJvb2wgc2VsZWN0aW9uT25seSkg
LT4gKHVpbnQ2NF90IG51bWJlck9mUmVwbGFjZW1lbnRzKSBBc3luYworICAgIFJlcGxhY2VNYXRj
aGVzKFZlY3Rvcjx1aW50MzJfdD4gbWF0Y2hJbmRpY2VzLCBTdHJpbmcgcmVwbGFjZW1lbnRUZXh0
LCBib29sIHNlbGVjdGlvbk9ubHkpIC0+ICh1aW50NjRfdCBudW1iZXJPZlJlcGxhY2VtZW50cykK
IAotICAgIEZpbmRSZWN0c0ZvclN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0
PFdlYktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50
KSAtPiAoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gbWF0Y2hlcykgQXN5bmMKKyAgICBGaW5k
UmVjdHNGb3JTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIE9wdGlvblNldDxXZWJLaXQ6OkZp
bmRPcHRpb25zPiBmaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCkgLT4gKFZlY3Rv
cjxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1hdGNoZXMpCiAgICAgSGlkZUZpbmRJbmRpY2F0b3IoKQog
Ci0gICAgRmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIE9wdGlv
blNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiBmaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hD
b3VudCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlPiByYW5nZXMpIEFzeW5j
CisgICAgRmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIE9wdGlv
blNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiBmaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hD
b3VudCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlPiByYW5nZXMpCiAgICAg
UmVwbGFjZUZvdW5kVGV4dFJhbmdlV2l0aFN0cmluZyhzdHJ1Y3QgV2ViS2l0OjpXZWJGb3VuZFRl
eHRSYW5nZSByYW5nZSwgU3RyaW5nIHN0cmluZykKICAgICBEZWNvcmF0ZVRleHRSYW5nZVdpdGhT
dHlsZShzdHJ1Y3QgV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZSByYW5nZSwgZW51bTp1aW50OF90
IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZSBzdHlsZSkKICAgICBTY3JvbGxUZXh0UmFuZ2VU
b1Zpc2libGUoc3RydWN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFuZ2UpCkBAIC0zMzIs
NyArMzMyLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbgogICAg
IERpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbigpOwogICAgIERpZEVuZFRleHRTZWFyY2hPcGVy
YXRpb24oKTsKIAotICAgIFJlcXVlc3RSZWN0Rm9yRm91bmRUZXh0UmFuZ2Uoc3RydWN0IFdlYktp
dDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFuZ2UpIC0+IChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkg
QXN5bmMKKyAgICBSZXF1ZXN0UmVjdEZvckZvdW5kVGV4dFJhbmdlKHN0cnVjdCBXZWJLaXQ6Oldl
YkZvdW5kVGV4dFJhbmdlIHJhbmdlKSAtPiAoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCiAgICAg
CiAgICAgQWRkTUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyKFN0cmluZyBtaW1lVHlw
ZSkKIApAQCAtMzUyLDcgKzM1Miw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQo
ZW51bTp1aW4KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JU
KQogICAgIFJlcXVlc3REcmFnU3RhcnQoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24s
IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCBPcHRpb25TZXQ8V2ViQ29yZTo6RHJh
Z1NvdXJjZUFjdGlvbj4gYWxsb3dlZEFjdGlvbnNNYXNrKQogICAgIFJlcXVlc3RBZGRpdGlvbmFs
SXRlbXNGb3JEcmFnU2Vzc2lvbihXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2Vi
Q29yZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIE9wdGlvblNldDxXZWJDb3JlOjpEcmFnU291
cmNlQWN0aW9uPiBhbGxvd2VkQWN0aW9uc01hc2spCi0gICAgSW5zZXJ0RHJvcHBlZEltYWdlUGxh
Y2Vob2xkZXJzKFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiBpbWFnZVNpemUpIC0+IChWZWN0b3I8
V2ViQ29yZTo6SW50UmVjdD4gZHJvcFByZXZpZXdSZWN0cywgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yRGF0YT4gdGV4dEluZGljYXRvcikgQXN5bmMKKyAgICBJbnNlcnREcm9w
cGVkSW1hZ2VQbGFjZWhvbGRlcnMoVmVjdG9yPFdlYkNvcmU6OkludFNpemU+IGltYWdlU2l6ZSkg
LT4gKFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBkcm9wUHJldmlld1JlY3RzLCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yKQogICAgIERpZENv
bmNsdWRlRHJvcCgpCiAjZW5kaWYKIApAQCAtNDAyLDcgKzQwMiw3IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgIyBNZWRpYVN0ZWFtCi0gICAgVXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZChXZWJDb3JlOjpV
c2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmllciB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSBhdWRpb0RldmljZSwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSwgU3Ry
aW5nIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSAtPiAoKSBBc3luYworICAgIFVzZXJN
ZWRpYUFjY2Vzc1dhc0dyYW50ZWQoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdElkZW50aWZpZXIg
dXNlck1lZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgYXVkaW9EZXZpY2UsIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UgdmlkZW9EZXZpY2UsIFN0cmluZyBtZWRpYURldmljZUlkZW50aWZpZXJI
YXNoU2FsdCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSkgLT4gKCkKICAgICBVc2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQoV2ViQ29yZTo6VXNl
ck1lZGlhUmVxdWVzdElkZW50aWZpZXIgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNvbiwgU3Ry
aW5nIGludmFsaWRDb25zdHJhaW50KQogICAgIENhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAjaWYg
VVNFKEdTVFJFQU1FUikKQEAgLTQxMiw0MyArNDEyLDQzIEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW4KICNlbmRpZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKLSAgICBNZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0SWRlbnRpZmllciBtZWRpYUtleVN5c3RlbUlEKSAtPiAoKSBBc3luYworICAgIE1lZGlh
S2V5U3lzdGVtV2FzR3JhbnRlZChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlm
aWVyIG1lZGlhS2V5U3lzdGVtSUQpIC0+ICgpCiAgICAgTWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciBtZWRpYUtleVN5c3RlbUlE
LCBTdHJpbmcgbWVzc2FnZSkKICNlbmRpZgogCi0gICAgUmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0
ZSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgc3RhdGUpIEFz
eW5jCi0gICAgUGF1c2VBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKLSAgICBTdXNwZW5k
QWxsTWVkaWFQbGF5YmFjaygpIC0+ICgpIEFzeW5jCi0gICAgUmVzdW1lQWxsTWVkaWFQbGF5YmFj
aygpIC0+ICgpIEFzeW5jCisgICAgUmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZSgpIC0+IChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgc3RhdGUpCisgICAgUGF1c2VBbGxN
ZWRpYVBsYXliYWNrKCkgLT4gKCkKKyAgICBTdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpIC0+ICgp
CisgICAgUmVzdW1lQWxsTWVkaWFQbGF5YmFjaygpIC0+ICgpCiAKICAgICBGcmVlemVMYXllclRy
ZWVEdWVUb1N3aXBlQW5pbWF0aW9uKCkKICAgICBVbmZyZWV6ZUxheWVyVHJlZUR1ZVRvU3dpcGVB
bmltYXRpb24oKQotICAgIElzTGF5ZXJUcmVlRnJvemVuKCkgLT4gKGJvb2wgaXNGcm96ZW4pIEFz
eW5jCisgICAgSXNMYXllclRyZWVGcm96ZW4oKSAtPiAoYm9vbCBpc0Zyb3plbikKIAogICAgICMg
UHJpbnRpbmcuCiAgICAgQmVnaW5QcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykKICAgICBFbmRQcmludGlu
ZygpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pIC0+IChWZWN0b3I8
V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzLCBkb3VibGUgdG90YWxTY2FsZUZhY3RvckZvclBy
aW50aW5nLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IGNvbXB1dGVkUGFnZU1hcmdpbikgQXN5
bmMKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykgLT4gKFZlY3RvcjxX
ZWJDb3JlOjpJbnRSZWN0PiBwYWdlUmVjdHMsIGRvdWJsZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJp
bnRpbmcsIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gY29tcHV0ZWRQYWdlTWFyZ2luKQogI2lm
IFBMQVRGT1JNKENPQ09BKQotICAgIERyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29y
ZTo6SW50UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSkgLT4gKFdlYktpdDo6
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaW1hZ2UpIEFzeW5jCi0gICAgRHJhd1BhZ2VzVG9QREYo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5m
byBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCkgLT4gKElQQzo6U2hh
cmVkQnVmZmVyQ29weSBkYXRhKSBBc3luYworICAgIERyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5m
bywgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSkgLT4g
KFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaW1hZ2UpCisgICAgRHJhd1BhZ2VzVG9Q
REYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCkgLT4gKElQQzo6
U2hhcmVkQnVmZmVyQ29weSBkYXRhKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaWYgIUhB
VkUoVUlLSVRfQkFDS0dST1VORF9USFJFQURfUFJJTlRJTkcpCiAgICAgQ29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdpT1MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJL
aXQ6OlByaW50SW5mbyBwcmludEluZm8pIC0+IChzaXplX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91
cwogI2VuZGlmCi0gICAgRHJhd1RvUERGaU9TKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBzaXplX3QgcGFnZUNvdW50
KSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGRhdGEpIEFzeW5jCisgICAgRHJhd1RvUERGaU9T
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludElu
Zm8gcHJpbnRJbmZvLCBzaXplX3QgcGFnZUNvdW50KSAtPiAoSVBDOjpTaGFyZWRCdWZmZXJDb3B5
IGRhdGEpCiAjZW5kaWYKLSAgICBEcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiByZWN0KSAtPiAoSVBDOjpT
aGFyZWRCdWZmZXJDb3B5IGRhdGEpIEFzeW5jCisgICAgRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gcmVj
dCkgLT4gKElQQzo6U2hhcmVkQnVmZmVyQ29weSBkYXRhKQogI2VuZGlmCiAjaWYgUExBVEZPUk0o
R1RLKQotICAgIERyYXdQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKSAtPiAoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvcikgQXN5bmMKKyAgICBEcmF3UGFnZXNGb3JQcmludGluZyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHBy
aW50SW5mbykgLT4gKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiAjZW5kaWYKIAogICAg
ICMgTWVkaWEKICAgICBTZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCi0gICAgU2V0TXV0ZWQo
T3B0aW9uU2V0PFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlPiBtdXRlZCkgLT4gKCkg
QXN5bmMKKyAgICBTZXRNdXRlZChPcHRpb25TZXQ8V2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVk
U3RhdGU+IG11dGVkKSAtPiAoKQogICAgIFNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9v
bCBtYXlTdGFydE1lZGlhKQotICAgIFN0b3BNZWRpYUNhcHR1cmUoZW51bTp1aW50OF90IFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXJNZWRpYUNhcHR1cmVLaW5kIGtpbmQpIC0+ICgpIEFzeW5jCisgICAg
U3RvcE1lZGlhQ2FwdHVyZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck1lZGlh
Q2FwdHVyZUtpbmQga2luZCkgLT4gKCkKIAogICAgIFNldENhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICBTZXRDYW5S
dW5Nb2RhbChib29sIGNhblJ1bk1vZGFsKQpAQCAtNDc5LDE2ICs0NzksMTYgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbgogICAgIEluc2VydFRleHRBc3luYyhTdHJp
bmcgdGV4dCwgc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UsIHN0
cnVjdCBXZWJLaXQ6Okluc2VydFRleHRPcHRpb25zIG9wdGlvbnMpCiAgICAgSW5zZXJ0RGljdGF0
ZWRUZXh0QXN5bmMoU3RyaW5nIHRleHQsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByZXBs
YWNlbWVudFJhbmdlLCBWZWN0b3I8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGRpY3Rh
dGlvbkFsdGVybmF0aXZlcywgc3RydWN0IFdlYktpdDo6SW5zZXJ0VGV4dE9wdGlvbnMgb3B0aW9u
cykKIAotICAgIEhhc01hcmtlZFRleHQoKSAtPiAoYm9vbCBoYXNNYXJrZWRUZXh0KSBBc3luYwot
ICAgIEdldE1hcmtlZFJhbmdlQXN5bmMoKSAtPiAoc3RydWN0IFdlYktpdDo6RWRpdGluZ1Jhbmdl
IHJhbmdlKSBBc3luYwotICAgIEdldFNlbGVjdGVkUmFuZ2VBc3luYygpIC0+IChzdHJ1Y3QgV2Vi
S2l0OjpFZGl0aW5nUmFuZ2UgcmFuZ2UpIEFzeW5jCi0gICAgQ2hhcmFjdGVySW5kZXhGb3JQb2lu
dEFzeW5jKFdlYkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAodWludDY0X3QgbG9jYXRpb24pIEFz
eW5jCi0gICAgRmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhzdHJ1Y3QgV2ViS2l0OjpF
ZGl0aW5nUmFuZ2UgcmFuZ2UpIC0+IChXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIHN0cnVjdCBXZWJL
aXQ6OkVkaXRpbmdSYW5nZSBhY3R1YWxSYW5nZSkgQXN5bmMKKyAgICBIYXNNYXJrZWRUZXh0KCkg
LT4gKGJvb2wgaGFzTWFya2VkVGV4dCkKKyAgICBHZXRNYXJrZWRSYW5nZUFzeW5jKCkgLT4gKHN0
cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5nZSkKKyAgICBHZXRTZWxlY3RlZFJhbmdlQXN5
bmMoKSAtPiAoc3RydWN0IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKQorICAgIENoYXJhY3Rl
ckluZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkgLT4gKHVpbnQ2NF90
IGxvY2F0aW9uKQorICAgIEZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5bmMoc3RydWN0IFdl
YktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKSAtPiAoV2ViQ29yZTo6SW50UmVjdCByZWN0LCBzdHJ1
Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgYWN0dWFsUmFuZ2UpCiAgICAgU2V0Q29tcG9zaXRpb25B
c3luYyhTdHJpbmcgdGV4dCwgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1
bmRlcmxpbmVzLCBWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25IaWdobGlnaHQ+IGhpZ2hsaWdo
dHMsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSBzZWxlY3Rpb25SYW5nZSwgc3RydWN0IFdl
YktpdDo6RWRpdGluZ1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCiAgICAgQ29uZmlybUNvbXBvc2l0
aW9uQXN5bmMoKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIEF0dHJpYnV0ZWRTdWJz
dHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSBy
YW5nZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nIHN0cmluZywgc3RydWN0
IFdlYktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKSBBc3luYworICAgIEF0dHJpYnV0ZWRTdWJzdHJp
bmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByYW5n
ZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nIHN0cmluZywgc3RydWN0IFdl
YktpdDo6RWRpdGluZ1JhbmdlIHJhbmdlKQogICAgIFJlcXVlc3RBY2NlcHRzRmlyc3RNb3VzZShp
bnQgZXZlbnROdW1iZXIsIFdlYktpdDo6V2ViTW91c2VFdmVudCBldmVudCkKICNlbmRpZgogCkBA
IC01MTIsMTEgKzUxMiwxMSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06
dWluCiAgICAgU2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKHVpbnQzMl90IHBpbm5pbmcpCiAgICAg
U2V0U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHNjcm9sbGJh
clN0eWxlKQogCi0gICAgR2V0Qnl0ZWNvZGVQcm9maWxlKCkgLT4gKFN0cmluZyBzdHJpbmcpIEFz
eW5jCisgICAgR2V0Qnl0ZWNvZGVQcm9maWxlKCkgLT4gKFN0cmluZyBzdHJpbmcpCiAKLSAgICBH
ZXRTYW1wbGluZ1Byb2ZpbGVyT3V0cHV0KCkgLT4gKFN0cmluZyBzdHJpbmcpIEFzeW5jCisgICAg
R2V0U2FtcGxpbmdQcm9maWxlck91dHB1dCgpIC0+IChTdHJpbmcgc3RyaW5nKQogICAgIAotICAg
IFRha2VTbmFwc2hvdChXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50
U2l6ZSBiaXRtYXBTaXplLCB1aW50MzJfdCBvcHRpb25zKSAtPiAoV2ViS2l0OjpTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSBpbWFnZSkgQXN5bmMKKyAgICBUYWtlU25hcHNob3QoV2ViQ29yZTo6SW50
UmVjdCBzbmFwc2hvdFJlY3QsIFdlYkNvcmU6OkludFNpemUgYml0bWFwU2l6ZSwgdWludDMyX3Qg
b3B0aW9ucykgLT4gKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaW1hZ2UpCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0QXRMb2NhdGlv
bihXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uKQogICAgIEltbWVkaWF0ZUFjdGlvbkRpZFVw
ZGF0ZSgpCkBAIC01NDQsNyArNTQ0LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSZXF1ZXN0QWN0
aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkgLT4gKGJvb2wgYWN0aXZlLCBib29sIHJlZ2lzdGVy
ZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiwgU3RyaW5nIHRpdGxlLCBkb3VibGUgZHVyYXRpb24s
IGRvdWJsZSBlbGFwc2VkVGltZSwgdWludDY0X3QgdW5pcXVlSWRlbnRpZmllcikgQXN5bmMKKyAg
ICBSZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkgLT4gKGJvb2wgYWN0aXZlLCBi
b29sIHJlZ2lzdGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiwgU3RyaW5nIHRpdGxlLCBkb3Vi
bGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSwgdWludDY0X3QgdW5pcXVlSWRlbnRpZmll
cikKICNlbmRpZgogCiAgICAgU2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKGJv
b2wgc2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKQpAQCAtNTcxLDcgKzU3MSw3IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KIAogICAgIFNldFVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24odWludDMyX3QgZGlyZWN0aW9uKQogCi0gICAgRGlkR2V0
TG9hZERlY2lzaW9uRm9ySWNvbihib29sIGRlY2lzaW9uLCBXZWJLaXQ6OkNhbGxiYWNrSUQgbG9h
ZElkZW50aWZpZXIpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgaWNvbkRhdGEpIEFzeW5jCisg
ICAgRGlkR2V0TG9hZERlY2lzaW9uRm9ySWNvbihib29sIGRlY2lzaW9uLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgbG9hZElkZW50aWZpZXIpIC0+IChJUEM6OlNoYXJlZEJ1ZmZlckNvcHkgaWNvbkRhdGEp
CiAgICAgU2V0VXNlSWNvbkxvYWRpbmdDbGllbnQoYm9vbCB1c2VJY29uTG9hZGluZ0NsaWVudCkK
IAogI2lmIEVOQUJMRShHQU1FUEFEKQpAQCAtNTgyLDcgKzU4Miw3IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KIAogICAgIFJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxl
cihXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJJZGVudGlmaWVyIGhhbmRsZXJJZGVudGlmaWVy
LCBTdHJpbmcgc2NoZW1lKQogCi0gICAgVVJMU2NoZW1lVGFza1dpbGxQZXJmb3JtUmVkaXJlY3Rp
b24oV2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cHJvcG9zZWRSZXF1ZXN0KSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGFjdHVhbFJlcXVl
c3QpIEFzeW5jCisgICAgVVJMU2NoZW1lVGFza1dpbGxQZXJmb3JtUmVkaXJlY3Rpb24oV2ViS2l0
OjpXZWJVUkxTY2hlbWVIYW5kbGVySWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcHJvcG9zZWRS
ZXF1ZXN0KSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGFjdHVhbFJlcXVlc3QpCiAgICAg
VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbihXZWJLaXQ6OldlYlVSTFNjaGVtZUhh
bmRsZXJJZGVudGlmaWVyIGhhbmRsZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRl
cklkZW50aWZpZXIgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBwcm9wb3NlZFJlcXVlc3QpCiAgICAgVVJM
U2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZShXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJJ
ZGVudGlmaWVyIGhhbmRsZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50
aWZpZXIgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Up
CiAgICAgVVJMU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFu
ZGxlcklkZW50aWZpZXIgaGFuZGxlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
SWRlbnRpZmllciB0YXNrSWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJDb3B5IGRhdGEpCkBA
IC01OTEsMTQgKzU5MSwxNCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06
dWluCiAgICAgU2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpCiAKICNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQotICAgIEluc2VydEF0dGFjaG1lbnQoU3RyaW5nIGlkZW50aWZpZXIs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXplLCBTdHJpbmcgZmlsZU5hbWUsIFN0cmlu
ZyBjb250ZW50VHlwZSkgLT4gKCkgQXN5bmMKLSAgICBVcGRhdGVBdHRhY2htZW50QXR0cmlidXRl
cyhTdHJpbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUsIFN0
cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIGZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1ZmZlckNvcHkg
ZW5jbG9zaW5nSW1hZ2VEYXRhKSAtPiAoKSBBc3luYworICAgIEluc2VydEF0dGFjaG1lbnQoU3Ry
aW5nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGZpbGVTaXplLCBTdHJpbmcg
ZmlsZU5hbWUsIFN0cmluZyBjb250ZW50VHlwZSkgLT4gKCkKKyAgICBVcGRhdGVBdHRhY2htZW50
QXR0cmlidXRlcyhTdHJpbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmls
ZVNpemUsIFN0cmluZyBjb250ZW50VHlwZSwgU3RyaW5nIGZpbGVOYW1lLCBJUEM6OlNoYXJlZEJ1
ZmZlckNvcHkgZW5jbG9zaW5nSW1hZ2VEYXRhKSAtPiAoKQogICAgIFVwZGF0ZUF0dGFjaG1lbnRU
aHVtYm5haWwoU3RyaW5nIGlkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUgcWxUaHVtYm5haWxIYW5kbGUpCiAgICAgVXBkYXRlQXR0YWNobWVudEljb24oU3RyaW5nIGlk
ZW50aWZpZXIsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaWNvbiwgV2ViQ29yZTo6
RmxvYXRTaXplIHNpemUpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVT
VCkKLSAgICBHZXRBcHBsaWNhdGlvbk1hbmlmZXN0KCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6QXBwbGljYXRpb25NYW5pZmVzdD4gbWFuaWZlc3QpIEFzeW5jCisgICAgR2V0QXBwbGljYXRp
b25NYW5pZmVzdCgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZl
c3Q+IG1hbmlmZXN0KQogI2VuZGlmCiAKICAgICBTZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJz
TG9hZGluZykKQEAgLTYwNiw4ICs2MDYsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kKGVudW06dWluCiAjaWYgRU5BQkxFKFVJX1BST0NFU1NfUERGX0hVRCkKICAgICBab29tUERG
SW4oV2ViS2l0OjpQREZQbHVnaW5JZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgWm9vbVBERk91
dChXZWJLaXQ6OlBERlBsdWdpbklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBTYXZlUERGKFdl
YktpdDo6UERGUGx1Z2luSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoU3RyaW5nIGZpbGVuYW1l
LCBVUkwgdXJsLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkgQXN5bmMKLSAgICBPcGVuUERGV2l0
aFByZXZpZXcoV2ViS2l0OjpQREZQbHVnaW5JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChTdHJp
bmcgZmlsZW5hbWUsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBJUEM6
OkRhdGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5nIHV1aWQpIEFzeW5jCisgICAgU2F2ZVBERihXZWJL
aXQ6OlBERlBsdWdpbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKFN0cmluZyBmaWxlbmFtZSwg
VVJMIHVybCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCisgICAgT3BlblBERldpdGhQcmV2aWV3
KFdlYktpdDo6UERGUGx1Z2luSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoU3RyaW5nIGZpbGVu
YW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgSVBDOjpEYXRhUmVm
ZXJlbmNlIGRhdGEsIFN0cmluZyB1dWlkKQogI2VuZGlmCiAKICAgICBVcGRhdGVDdXJyZW50TW9k
aWZpZXJTdGF0ZShPcHRpb25TZXQ8V2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1v
ZGlmaWVycykKQEAgLTYyNCw3ICs2MjQsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kKGVudW06dWluCiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CiAgICAgV2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpCiAg
ICAgQ2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKQotICAgIEdldExvYWRlZFN1YnJlc291
cmNlRG9tYWlucygpIC0+IChWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFp
bnMpIEFzeW5jCisgICAgR2V0TG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCkgLT4gKFZlY3RvcjxX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykKICNlbmRpZgogCiAjaWYgVVNFKFNZ
U1RFTV9QUkVWSUVXKQpAQCAtNjMzLDE0ICs2MzMsMTQgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbgogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgU2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbihzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2Fn
ZSB1c2VyTWVzc2FnZSkKLSAgICBTZW5kTWVzc2FnZVRvV2ViRXh0ZW5zaW9uV2l0aFJlcGx5KHN0
cnVjdCBXZWJLaXQ6OlVzZXJNZXNzYWdlIHVzZXJNZXNzYWdlKSAtPiAoc3RydWN0IFdlYktpdDo6
VXNlck1lc3NhZ2UgcmVwbHlNZXNzYWdlKSBBc3luYworICAgIFNlbmRNZXNzYWdlVG9XZWJFeHRl
bnNpb25XaXRoUmVwbHkoc3RydWN0IFdlYktpdDo6VXNlck1lc3NhZ2UgdXNlck1lc3NhZ2UpIC0+
IChzdHJ1Y3QgV2ViS2l0OjpVc2VyTWVzc2FnZSByZXBseU1lc3NhZ2UpCiAjZW5kaWYKIAotICAg
IFN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMoVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpFeGNsdXNpb25SdWxlPiBleGNsdXNpb25SdWxlcykgLT4gKCkgQXN5bmMKLSAg
ICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25JdGVtPiBpdGVtcykgLT4gKGJvb2wgYWxsRmFpbGVk
LCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlv
bkZhaWx1cmU+IGZhaWx1cmVzKSBBc3luYworICAgIFN0YXJ0VGV4dE1hbmlwdWxhdGlvbnMoVmVj
dG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpFeGNsdXNpb25SdWxlPiBl
eGNsdXNpb25SdWxlcykgLT4gKCkKKyAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oVmVjdG9y
PFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25JdGVtPiBp
dGVtcykgLT4gKGJvb2wgYWxsRmFpbGVkLCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvbkZhaWx1cmU+IGZhaWx1cmVzKQogCiAgICAgU2V0T3Zl
cnJpZGRlbk1lZGlhVHlwZShTdHJpbmcgbWVkaWFUeXBlKQotICAgIEdldFByb2Nlc3NEaXNwbGF5
TmFtZSgpIC0+IChTdHJpbmcgZGlzcGxheU5hbWUpIEFzeW5jCisgICAgR2V0UHJvY2Vzc0Rpc3Bs
YXlOYW1lKCkgLT4gKFN0cmluZyBkaXNwbGF5TmFtZSkKIAogICAgIFVwZGF0ZUNPUlNEaXNhYmxp
bmdQYXR0ZXJucyhWZWN0b3I8U3RyaW5nPiBwYXR0ZXJucykKIApAQCAtNjU2LDIxICs2NTYsMjEg
QEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbgogICAgIFNldEFwcEhp
Z2hsaWdodHNWaXNpYmlsaXR5KGVudW06Ym9vbCBXZWJDb3JlOjpIaWdobGlnaHRWaXNpYmlsaXR5
IGhpZ2hsaWdodFZpc2liaWxpdHkpCiAjZW5kaWYKIAotICAgIERpc3BhdGNoV2hlZWxFdmVudFdp
dGhvdXRTY3JvbGxpbmcoV2ViS2l0OjpXZWJXaGVlbEV2ZW50IGV2ZW50KSAtPiAoYm9vbCBoYW5k
bGVkKSBBc3luYworICAgIERpc3BhdGNoV2hlZWxFdmVudFdpdGhvdXRTY3JvbGxpbmcoV2ViS2l0
OjpXZWJXaGVlbEV2ZW50IGV2ZW50KSAtPiAoYm9vbCBoYW5kbGVkKQogCi0gICAgTGFzdE5hdmln
YXRpb25XYXNBcHBJbml0aWF0ZWQoKSAtPiAoYm9vbCB3YXNBcHBCb3VuZCkgQXN5bmMKKyAgICBM
YXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpIC0+IChib29sIHdhc0FwcEJvdW5kKQogCiAj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCi0gICAgQ3JlYXRlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IoU3RyaW5nIGlkZW50aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5j
CisgICAgQ3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU3RyaW5nIGlkZW50aWZpZXIpIC0+
IChib29sIHN1Y2Nlc3MpCiAgICAgSW52YWxpZGF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQotICAgIFVwZGF0ZVdpdGhUZXh0
UmVjb2duaXRpb25SZXN1bHQoc3RydWN0IFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvblJlc3VsdCBy
ZXN1bHQsIHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBlbGVtZW50LCBXZWJDb3JlOjpG
bG9hdFBvaW50IGxvY2F0aW9uKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6VGV4dFJlY29nbml0
aW9uVXBkYXRlUmVzdWx0IHJlc3VsdCkgQXN5bmMKKyAgICBVcGRhdGVXaXRoVGV4dFJlY29nbml0
aW9uUmVzdWx0KHN0cnVjdCBXZWJDb3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQgcmVzdWx0LCBz
dHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgZWxlbWVudCwgV2ViQ29yZTo6RmxvYXRQb2lu
dCBsb2NhdGlvbikgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OlRleHRSZWNvZ25pdGlvblVwZGF0
ZVJlc3VsdCByZXN1bHQpCiAgICAgU3RhcnRJbWFnZUFuYWx5c2lzKFN0cmluZyBpZGVudGlmaWVy
KQogI2VuZGlmCiAKICAgICBTY3JvbGxUb1JlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFJl
Y3QsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luKQogCi0gICAgSW50ZXJhY3RhYmxlUmVnaW9u
c0luUm9vdFZpZXdDb29yZGluYXRlcyhXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkgLT4gKFZlY3Rv
cjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHJlY3RzKSBBc3luYworICAgIEludGVyYWN0YWJsZVJlZ2lv
bnNJblJvb3RWaWV3Q29vcmRpbmF0ZXMoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpIC0+IChWZWN0
b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiByZWN0cykKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyOTA4OTcpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMzcsNiArMzcsNiBAQCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
IHsKICAgICBTZXRWaWRlb0xheWVyR3Jhdml0eUVudW0oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIHVuc2lnbmVkIGdyYXZpdHkpCiAgICAgRnVsbHNj
cmVlbk1vZGVDaGFuZ2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIg
Y29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKICAgICBGdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJv
b2wgaXNQYWdlVmlzaWJsZSkKLSAgICBSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4
dFVJRChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5n
UG9saWN5LCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQpIEFzeW5jCisgICAgUmVxdWVzdFJvdXRl
U2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSwgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKQog
fQogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>