<?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>30430</bug_id>
          
          <creation_ts>2009-10-15 23:13:11 -0700</creation_ts>
          <short_desc>Fix header indent style for FrameLoader and friends</short_desc>
          <delta_ts>2009-10-16 16:45:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155024</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-15 23:13:11 -0700</bug_when>
    <thetext>There&apos;s a new style in town.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155025</commentid>
    <comment_count>1</comment_count>
      <attachid>41271</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-15 23:13:46 -0700</bug_when>
    <thetext>Created attachment 41271
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155026</commentid>
    <comment_count>2</comment_count>
      <attachid>41272</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-15 23:14:35 -0700</bug_when>
    <thetext>Created attachment 41272
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155190</commentid>
    <comment_count>3</comment_count>
      <attachid>41272</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-16 13:21:59 -0700</bug_when>
    <thetext>Comment on attachment 41272
Patch v1

Do we have a script to do this?  LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155302</commentid>
    <comment_count>4</comment_count>
      <attachid>41272</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-16 16:44:56 -0700</bug_when>
    <thetext>Comment on attachment 41272
Patch v1

Clearing flags on attachment: 41272

Committed r49706: &lt;http://trac.webkit.org/changeset/49706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155303</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-16 16:45:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41271</attachid>
            <date>2009-10-15 23:13:46 -0700</date>
            <delta_ts>2009-10-15 23:14:29 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30430-20091015231345.patch</filename>
            <type>text/plain</type>
            <size>55986</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWJkMDI5Yi4uMjJlMjRlZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0MyBAQAogMjAwOS0xMC0xNSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZpeCBoZWFkZXIgaW5kZW50IHN0eWxlIGZvciBGcmFtZUxvYWRlciBhbmQg
ZnJpZW5kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzA0MzAKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwb2xpY3lDaGVja2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpub3RpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aXNMb2Fk
aW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkb2N1bWVu
dExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cG9saWN5RG9jdW1lbnRM
b2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnByb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aXNMb2FkaW5n
RnJvbUNhY2hlZFBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1pdHRp
bmdGaXJzdFJlYWxMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXR0
ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OmN1cnJl
bnRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpwcm92aXNpb25h
bEl0ZW0pOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDYWxsYmFjay5oOgorICAgICAgICAoV2Vi
Q29yZTo6UG9saWN5Q2FsbGJhY2s6OnJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lD
aGVja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpsb2FkVHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpzZXRMb2FkVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpkZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmRlbGVnYXRlSXNIYW5kbGluZ1Vu
aW1wbGVtZW50YWJsZVBvbGljeSk6CisgICAgICAgICogbG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVy
Lmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmg6CisKKzIwMDktMTAt
MTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KIAogICAgICAgICBGYWN0b3IgUmVzb3VyY2VMb2FkTm90aWZpZXIgb3V0
IG9mIEZyYW1lTG9hZGVyCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBlMGM4YThiLi5lZWNhYmNhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTQ0LDQ2NSArNDQsNDY1IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotICAgIGNsYXNzIEFyY2hpdmU7Ci0gICAgY2xhc3MgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U7Ci0gICAgY2xhc3MgQ2FjaGVkRnJhbWVCYXNlOwotICAgIGNsYXNzIENhY2hlZFBhZ2U7
Ci0gICAgY2xhc3MgQ2FjaGVkUmVzb3VyY2U7Ci0gICAgY2xhc3MgRG9jdW1lbnQ7Ci0gICAgY2xh
c3MgRG9jdW1lbnRMb2FkZXI7Ci0gICAgY2xhc3MgRXZlbnQ7Ci0gICAgY2xhc3MgRm9ybURhdGE7
Ci0gICAgY2xhc3MgRm9ybVN0YXRlOwotICAgIGNsYXNzIEZyYW1lOwotICAgIGNsYXNzIEZyYW1l
TG9hZGVyQ2xpZW50OwotICAgIGNsYXNzIEhpc3RvcnlJdGVtOwotICAgIGNsYXNzIEhUTUxBcHBs
ZXRFbGVtZW50OwotICAgIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKLSAgICBjbGFzcyBIVE1MRnJh
bWVPd25lckVsZW1lbnQ7Ci0gICAgY2xhc3MgSWNvbkxvYWRlcjsKLSAgICBjbGFzcyBJbnRTaXpl
OwotICAgIGNsYXNzIE5hdmlnYXRpb25BY3Rpb247Ci0gICAgY2xhc3MgUmVuZGVyUGFydDsKLSAg
ICBjbGFzcyBSZXNvdXJjZUVycm9yOwotICAgIGNsYXNzIFJlc291cmNlTG9hZGVyOwotICAgIGNs
YXNzIFJlc291cmNlUmVzcG9uc2U7Ci0gICAgY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKLSAgICBj
bGFzcyBTY3JpcHRTdHJpbmc7Ci0gICAgY2xhc3MgU2NyaXB0VmFsdWU7Ci0gICAgY2xhc3MgU2Vj
dXJpdHlPcmlnaW47Ci0gICAgY2xhc3MgU2hhcmVkQnVmZmVyOwotICAgIGNsYXNzIFN1YnN0aXR1
dGVEYXRhOwotICAgIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7Ci0gICAgY2xhc3MgV2lkZ2V0
OwotCi0gICAgc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7Ci0gICAgc3RydWN0IFdpbmRvd0ZlYXR1
cmVzOwotCi0gICAgYm9vbCBpc0JhY2tGb3J3YXJkTG9hZFR5cGUoRnJhbWVMb2FkVHlwZSk7Ci0K
LSAgICBjbGFzcyBGcmFtZUxvYWRlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Ci0gICAgcHVibGlj
OgotICAgICAgICBGcmFtZUxvYWRlcihGcmFtZSosIEZyYW1lTG9hZGVyQ2xpZW50Kik7Ci0gICAg
ICAgIH5GcmFtZUxvYWRlcigpOwotCi0gICAgICAgIHZvaWQgaW5pdCgpOwotCi0gICAgICAgIEZy
YW1lKiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KLQotICAgICAgICBQb2xpY3lD
aGVja2VyKiBwb2xpY3lDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gJm1fcG9saWN5Q2hlY2tlcjsg
fQotICAgICAgICBIaXN0b3J5Q29udHJvbGxlciogaGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuICZt
X2hpc3Rvcnk7IH0KLSAgICAgICAgUmVzb3VyY2VMb2FkTm90aWZpZXIqIG5vdGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gJm1fbm90aWZlcjsgfQotCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5v
dCBjb29sLCBwZW9wbGUuIFRoZXJlIGFyZSB0b28gbWFueSBkaWZmZXJlbnQgZnVuY3Rpb25zIHRo
YXQgYWxsIHN0YXJ0IGxvYWRzLgotICAgICAgICAvLyBXZSBzaG91bGQgYWltIHRvIGNvbnNvbGlk
YXRlIHRoZXNlIGludG8gYSBzbWFsbGVyIHNldCBvZiBmdW5jdGlvbnMsIGFuZCB0cnkgdG8gcmV1
c2UgbW9yZSBvZgotICAgICAgICAvLyB0aGUgbG9naWMgYnkgZXh0cmFjdGluZyBjb21tb24gY29k
ZSBwYXRocy4KLQotICAgICAgICB2b2lkIHByZXBhcmVGb3JMb2FkU3RhcnQoKTsKLSAgICAgICAg
dm9pZCBzZXR1cEZvclJlcGxhY2UoKTsKLSAgICAgICAgdm9pZCBzZXR1cEZvclJlcGxhY2VCeU1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgbmV3TUlNRVR5cGUpOwotCi0gICAgICAgIHZvaWQgbG9hZFVS
TEludG9DaGlsZEZyYW1lKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEZyYW1l
Kik7Ci0KLSAgICAgICAgdm9pZCBsb2FkRnJhbWVSZXF1ZXN0KGNvbnN0IEZyYW1lTG9hZFJlcXVl
c3QmLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QsICAvLyBDYWxs
ZWQgYnkgc3VibWl0Rm9ybSwgY2FsbHMgbG9hZFBvc3RSZXF1ZXN0IGFuZCBsb2FkVVJMLgotICAg
ICAgICAgICAgUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7Ci0KLSAg
ICAgICAgdm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgbG9ja0hpc3Rvcnkp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2Vi
RnJhbWUsIGNhbGxzIGxvYWQoUmVzb3VyY2VSZXF1ZXN0LCBTdWJzdGl0dXRlRGF0YSkuCi0gICAg
ICAgIHZvaWQgbG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0
YSYsIGJvb2wgbG9ja0hpc3RvcnkpOyAgICAgICAgICAgICAgICAgLy8gQ2FsbGVkIGJvdGggYnkg
V2ViRnJhbWUgYW5kIGludGVybmFsbHksIGNhbGxzIGxvYWQoRG9jdW1lbnRMb2FkZXIqKS4KLSAg
ICAgICAgdm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLCBib29sIGxvY2tIaXN0b3J5KTsgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2Vi
UGx1Z2luQ29udHJvbGxlci4KLSAgICAgICAgCi0gICAgICAgIHZvaWQgbG9hZEFyY2hpdmUoUGFz
c1JlZlB0cjxBcmNoaXZlPik7Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgcmVwb3J0TG9jYWxMb2Fk
RmFpbGVkKEZyYW1lKiwgY29uc3QgU3RyaW5nJiB1cmwpOwotCi0gICAgICAgIC8vIENhbGxlZCBi
eSBjcmVhdGVXaW5kb3cgaW4gSlNET01XaW5kb3dCYXNlLmNwcCwgZS5nLiB0byBmdWxmaWxsIGEg
bW9kYWwgZGlhbG9nIGNyZWF0aW9uCi0gICAgICAgIEZyYW1lKiBjcmVhdGVXaW5kb3coRnJhbWVM
b2FkZXIqIGZyYW1lTG9hZGVyRm9yRnJhbWVMb29rdXAsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3Qm
LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGJvb2wmIGNyZWF0ZWQpOwotCi0gICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBW
ZWN0b3I8Y2hhcj4mIGRhdGEpOwotCi0gICAgICAgIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKTsKLQotICAgICAgICAvLyBBbHNvIG5vdCBjb29sLgotICAgICAg
ICB2b2lkIHN0b3BBbGxMb2FkZXJzKERhdGFiYXNlUG9saWN5ID0gRGF0YWJhc2VQb2xpY3lTdG9w
KTsKLSAgICAgICAgdm9pZCBzdG9wRm9yVXNlckNhbmNlbChib29sIGRlZmVyQ2hlY2tMb2FkQ29t
cGxldGUgPSBmYWxzZSk7Ci0KLSAgICAgICAgYm9vbCBpc0xvYWRpbmdNYWluUmVzb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtX2lzTG9hZGluZ01haW5SZXNvdXJjZTsgfQotICAgICAgICBib29sIGlz
TG9hZGluZygpIGNvbnN0OwotICAgICAgICBib29sIGZyYW1lSGFzTG9hZGVkKCkgY29uc3Q7Ci0K
LSAgICAgICAgaW50IG51bVBlbmRpbmdPckxvYWRpbmdSZXF1ZXN0cyhib29sIHJlY3Vyc2UpIGNv
bnN0OwotICAgICAgICBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIG91
dGdvaW5nUmVmZXJyZXIoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIG91dGdvaW5nT3JpZ2luKCkg
Y29uc3Q7Ci0KLSAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGFjdGl2ZURvY3VtZW50TG9hZGVyKCkg
Y29uc3Q7Ci0gICAgICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCk7IH0KLSAgICAgICAgRG9jdW1lbnRMb2FkZXIq
IHBvbGljeURvY3VtZW50TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9wb2xpY3lEb2N1bWVudExv
YWRlci5nZXQoKTsgfQotICAgICAgICBEb2N1bWVudExvYWRlciogcHJvdmlzaW9uYWxEb2N1bWVu
dExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci5nZXQo
KTsgfQotICAgICAgICBGcmFtZVN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsg
fQotICAgICAgICBzdGF0aWMgZG91YmxlIHRpbWVPZkxhc3RDb21wbGV0ZWRMb2FkKCk7Ci0KLSAg
ICAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUxvYWRlciopOwot
ICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCgpIGNvbnN0Owot
ICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGluaXRpYWxSZXF1ZXN0KCkgY29uc3Q7Ci0g
ICAgICAgIHZvaWQgcmVjZWl2ZWRNYWluUmVzb3VyY2VFcnJvcihjb25zdCBSZXNvdXJjZUVycm9y
JiwgYm9vbCBpc0NvbXBsZXRlKTsKLSAgICAgICAgdm9pZCByZWNlaXZlZERhdGEoY29uc3QgY2hh
ciosIGludCk7CitjbGFzcyBBcmNoaXZlOworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7
CitjbGFzcyBDYWNoZWRGcmFtZUJhc2U7CitjbGFzcyBDYWNoZWRQYWdlOworY2xhc3MgQ2FjaGVk
UmVzb3VyY2U7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIERvY3VtZW50TG9hZGVyOworY2xhc3Mg
RXZlbnQ7CitjbGFzcyBGb3JtRGF0YTsKK2NsYXNzIEZvcm1TdGF0ZTsKK2NsYXNzIEZyYW1lOwor
Y2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CitjbGFzcyBIaXN0b3J5SXRlbTsKK2NsYXNzIEhUTUxB
cHBsZXRFbGVtZW50OworY2xhc3MgSFRNTEZvcm1FbGVtZW50OworY2xhc3MgSFRNTEZyYW1lT3du
ZXJFbGVtZW50OworY2xhc3MgSWNvbkxvYWRlcjsKK2NsYXNzIEludFNpemU7CitjbGFzcyBOYXZp
Z2F0aW9uQWN0aW9uOworY2xhc3MgUmVuZGVyUGFydDsKK2NsYXNzIFJlc291cmNlRXJyb3I7Citj
bGFzcyBSZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTY3Jp
cHRTb3VyY2VDb2RlOworY2xhc3MgU2NyaXB0U3RyaW5nOworY2xhc3MgU2NyaXB0VmFsdWU7Citj
bGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKK2NsYXNzIFN1YnN0aXR1
dGVEYXRhOworY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKK2NsYXNzIFdpZGdldDsKKworc3Ry
dWN0IEZyYW1lTG9hZFJlcXVlc3Q7CitzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CisKK2Jvb2wgaXNC
YWNrRm9yd2FyZExvYWRUeXBlKEZyYW1lTG9hZFR5cGUpOworCitjbGFzcyBGcmFtZUxvYWRlciA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgRnJhbWVMb2FkZXIoRnJhbWUqLCBG
cmFtZUxvYWRlckNsaWVudCopOworICAgIH5GcmFtZUxvYWRlcigpOworCisgICAgdm9pZCBpbml0
KCk7CisKKyAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CisKKyAg
ICBQb2xpY3lDaGVja2VyKiBwb2xpY3lDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gJm1fcG9saWN5
Q2hlY2tlcjsgfQorICAgIEhpc3RvcnlDb250cm9sbGVyKiBoaXN0b3J5KCkgY29uc3QgeyByZXR1
cm4gJm1faGlzdG9yeTsgfQorICAgIFJlc291cmNlTG9hZE5vdGlmaWVyKiBub3RpZmllcigpIGNv
bnN0IHsgcmV0dXJuICZtX25vdGlmZXI7IH0KKworICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5vdCBj
b29sLCBwZW9wbGUuIFRoZXJlIGFyZSB0b28gbWFueSBkaWZmZXJlbnQgZnVuY3Rpb25zIHRoYXQg
YWxsIHN0YXJ0IGxvYWRzLgorICAgIC8vIFdlIHNob3VsZCBhaW0gdG8gY29uc29saWRhdGUgdGhl
c2UgaW50byBhIHNtYWxsZXIgc2V0IG9mIGZ1bmN0aW9ucywgYW5kIHRyeSB0byByZXVzZSBtb3Jl
IG9mCisgICAgLy8gdGhlIGxvZ2ljIGJ5IGV4dHJhY3RpbmcgY29tbW9uIGNvZGUgcGF0aHMuCisK
KyAgICB2b2lkIHByZXBhcmVGb3JMb2FkU3RhcnQoKTsKKyAgICB2b2lkIHNldHVwRm9yUmVwbGFj
ZSgpOworICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlQnlNSU1FVHlwZShjb25zdCBTdHJpbmcmIG5l
d01JTUVUeXBlKTsKKworICAgIHZvaWQgbG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IEtVUkwm
LCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEZyYW1lKik7CisKKyAgICB2b2lkIGxvYWRGcmFtZVJl
cXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9j
a0JhY2tGb3J3YXJkTGlzdCwgIC8vIENhbGxlZCBieSBzdWJtaXRGb3JtLCBjYWxscyBsb2FkUG9z
dFJlcXVlc3QgYW5kIGxvYWRVUkwuCisgICAgICAgIFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVm
UHRyPEZvcm1TdGF0ZT4pOworCisgICAgdm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGJvb2wgbG9ja0hpc3RvcnkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBDYWxsZWQgYnkgV2ViRnJhbWUsIGNhbGxzIGxvYWQoUmVzb3VyY2VSZXF1ZXN0LCBTdWJz
dGl0dXRlRGF0YSkuCisgICAgdm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN1YnN0aXR1dGVEYXRhJiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAgICAgICAgICAvLyBD
YWxsZWQgYm90aCBieSBXZWJGcmFtZSBhbmQgaW50ZXJuYWxseSwgY2FsbHMgbG9hZChEb2N1bWVu
dExvYWRlciopLgorICAgIHZvaWQgbG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGZyYW1lTmFtZSwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAgICAgICAgLy8gQ2Fs
bGVkIGJ5IFdlYlBsdWdpbkNvbnRyb2xsZXIuCisgICAgCisgICAgdm9pZCBsb2FkQXJjaGl2ZShQ
YXNzUmVmUHRyPEFyY2hpdmU+KTsKKworICAgIHN0YXRpYyB2b2lkIHJlcG9ydExvY2FsTG9hZEZh
aWxlZChGcmFtZSosIGNvbnN0IFN0cmluZyYgdXJsKTsKKworICAgIC8vIENhbGxlZCBieSBjcmVh
dGVXaW5kb3cgaW4gSlNET01XaW5kb3dCYXNlLmNwcCwgZS5nLiB0byBmdWxmaWxsIGEgbW9kYWwg
ZGlhbG9nIGNyZWF0aW9uCisgICAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZUxvYWRlciogZnJh
bWVMb2FkZXJGb3JGcmFtZUxvb2t1cCwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdp
bmRvd0ZlYXR1cmVzJiwgYm9vbCYgY3JlYXRlZCk7CisKKyAgICB1bnNpZ25lZCBsb25nIGxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVu
dGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBk
YXRhKTsKKworICAgIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KTsKKworICAgIC8vIEFsc28gbm90IGNvb2wuCisgICAgdm9pZCBzdG9wQWxsTG9hZGVycyhEYXRh
YmFzZVBvbGljeSA9IERhdGFiYXNlUG9saWN5U3RvcCk7CisgICAgdm9pZCBzdG9wRm9yVXNlckNh
bmNlbChib29sIGRlZmVyQ2hlY2tMb2FkQ29tcGxldGUgPSBmYWxzZSk7CisKKyAgICBib29sIGlz
TG9hZGluZ01haW5SZXNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2FkaW5nTWFpblJlc291
cmNlOyB9CisgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsKKyAgICBib29sIGZyYW1lSGFzTG9h
ZGVkKCkgY29uc3Q7CisKKyAgICBpbnQgbnVtUGVuZGluZ09yTG9hZGluZ1JlcXVlc3RzKGJvb2wg
cmVjdXJzZSkgY29uc3Q7CisgICAgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisgICAgU3RyaW5n
IG91dGdvaW5nUmVmZXJyZXIoKSBjb25zdDsKKyAgICBTdHJpbmcgb3V0Z29pbmdPcmlnaW4oKSBj
b25zdDsKKworICAgIERvY3VtZW50TG9hZGVyKiBhY3RpdmVEb2N1bWVudExvYWRlcigpIGNvbnN0
OworICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1f
ZG9jdW1lbnRMb2FkZXIuZ2V0KCk7IH0KKyAgICBEb2N1bWVudExvYWRlciogcG9saWN5RG9jdW1l
bnRMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX3BvbGljeURvY3VtZW50TG9hZGVyLmdldCgpOyB9
CisgICAgRG9jdW1lbnRMb2FkZXIqIHByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSBjb25zdCB7
IHJldHVybiBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIuZ2V0KCk7IH0KKyAgICBGcmFtZVN0
YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQorICAgIHN0YXRpYyBkb3VibGUg
dGltZU9mTGFzdENvbXBsZXRlZExvYWQoKTsKKworICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UoUmVzb3VyY2VMb2FkZXIqKTsKKyAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCgpIGNvbnN0OworICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgaW5pdGlh
bFJlcXVlc3QoKSBjb25zdDsKKyAgICB2b2lkIHJlY2VpdmVkTWFpblJlc291cmNlRXJyb3IoY29u
c3QgUmVzb3VyY2VFcnJvciYsIGJvb2wgaXNDb21wbGV0ZSk7CisgICAgdm9pZCByZWNlaXZlZERh
dGEoY29uc3QgY2hhciosIGludCk7CiAKLSAgICAgICAgYm9vbCB3aWxsTG9hZE1lZGlhRWxlbWVu
dFVSTChLVVJMJik7CisgICAgYm9vbCB3aWxsTG9hZE1lZGlhRWxlbWVudFVSTChLVVJMJik7CiAK
LSAgICAgICAgdm9pZCBoYW5kbGVGYWxsYmFja0NvbnRlbnQoKTsKLSAgICAgICAgYm9vbCBpc1N0
b3BwaW5nKCkgY29uc3Q7CisgICAgdm9pZCBoYW5kbGVGYWxsYmFja0NvbnRlbnQoKTsKKyAgICBi
b29sIGlzU3RvcHBpbmcoKSBjb25zdDsKIAotICAgICAgICB2b2lkIGZpbmlzaGVkTG9hZGluZygp
OworICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nKCk7CiAKLSAgICAgICAgUmVzb3VyY2VFcnJvciBj
YW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKLSAgICAgICAgUmVz
b3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IGNvbnN0OwotICAgICAgICBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKSBjb25zdDsKLSAgICAgICAgUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJy
b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Ci0gICAgICAgIFJlc291cmNlRXJyb3Ig
aW50ZXJydXB0aW9uRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
CisgICAgUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBjb25zdDsKKyAgICBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJikgY29uc3Q7CisgICAgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3Io
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CisgICAgUmVzb3VyY2VFcnJvciBjYW5ub3RT
aG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CisgICAgUmVzb3VyY2VF
cnJvciBpbnRlcnJ1cHRpb25Gb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKIAotICAgICAgICBib29sIGlzSG9zdGVkQnlPYmplY3RFbGVtZW50KCkgY29uc3Q7Ci0g
ICAgICAgIGJvb2wgaXNMb2FkaW5nTWFpbkZyYW1lKCkgY29uc3Q7Ci0gICAgICAgIGJvb2wgY2Fu
U2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpIGNvbnN0OwotICAgICAgICBib29s
IHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgVVJMU2NoZW1l
KTsKLSAgICAgICAgU3RyaW5nIGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFN0
cmluZyYgVVJMU2NoZW1lKTsKKyAgICBib29sIGlzSG9zdGVkQnlPYmplY3RFbGVtZW50KCkgY29u
c3Q7CisgICAgYm9vbCBpc0xvYWRpbmdNYWluRnJhbWUoKSBjb25zdDsKKyAgICBib29sIGNhblNo
b3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdDsKKyAgICBib29sIHJlcHJl
c2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgVVJMU2NoZW1lKTsKKyAg
ICBTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxT
Y2hlbWUpOwogCi0gICAgICAgIHZvaWQgcmVsb2FkKGJvb2wgZW5kVG9FbmRSZWxvYWQgPSBmYWxz
ZSk7Ci0gICAgICAgIHZvaWQgcmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcoY29uc3QgU3RyaW5n
JiBvdmVycmlkZUVuY29kaW5nKTsKKyAgICB2b2lkIHJlbG9hZChib29sIGVuZFRvRW5kUmVsb2Fk
ID0gZmFsc2UpOworICAgIHZvaWQgcmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcoY29uc3QgU3Ry
aW5nJiBvdmVycmlkZUVuY29kaW5nKTsKIAotICAgICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKCk7Ci0gICAgICAgIHZvaWQgZmluaXNo
ZWRMb2FkaW5nRG9jdW1lbnQoRG9jdW1lbnRMb2FkZXIqKTsKLSAgICAgICAgdm9pZCBjb21taXR0
ZWRMb2FkKERvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCk7Ci0gICAgICAgIGJvb2wg
aXNSZXBsYWNpbmcoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRSZXBsYWNpbmcoKTsKLSAgICAg
ICAgdm9pZCByZXZlcnRUb1Byb3Zpc2lvbmFsKERvY3VtZW50TG9hZGVyKik7Ci0gICAgICAgIHZv
aWQgc2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJik7Ci0gICAgICAgIHZvaWQgbWFpblJlY2VpdmVkQ29tcGxldGVFcnJvcihEb2N1bWVudExv
YWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAgICAgYm9vbCBzdWJmcmFtZUlzTG9h
ZGluZygpIGNvbnN0OwotICAgICAgICB2b2lkIHdpbGxDaGFuZ2VUaXRsZShEb2N1bWVudExvYWRl
ciopOwotICAgICAgICB2b2lkIGRpZENoYW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKik7CisgICAg
dm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSgp
OworICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nRG9jdW1lbnQoRG9jdW1lbnRMb2FkZXIqKTsKKyAg
ICB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KTsK
KyAgICBib29sIGlzUmVwbGFjaW5nKCkgY29uc3Q7CisgICAgdm9pZCBzZXRSZXBsYWNpbmcoKTsK
KyAgICB2b2lkIHJldmVydFRvUHJvdmlzaW9uYWwoRG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2b2lk
IHNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYpOworICAgIHZvaWQgbWFpblJlY2VpdmVkQ29tcGxldGVFcnJvcihEb2N1bWVudExvYWRlcios
IGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICBib29sIHN1YmZyYW1lSXNMb2FkaW5nKCkgY29u
c3Q7CisgICAgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoRG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2b2lk
IGRpZENoYW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKik7CiAKLSAgICAgICAgRnJhbWVMb2FkVHlw
ZSBsb2FkVHlwZSgpIGNvbnN0OwotICAgICAgICBDYWNoZVBvbGljeSBzdWJyZXNvdXJjZUNhY2hl
UG9saWN5KCkgY29uc3Q7CisgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSgpIGNvbnN0OworICAg
IENhY2hlUG9saWN5IHN1YnJlc291cmNlQ2FjaGVQb2xpY3koKSBjb25zdDsKIAotICAgICAgICB2
b2lkIGRpZEZpcnN0TGF5b3V0KCk7Ci0gICAgICAgIGJvb2wgZmlyc3RMYXlvdXREb25lKCkgY29u
c3Q7CisgICAgdm9pZCBkaWRGaXJzdExheW91dCgpOworICAgIGJvb2wgZmlyc3RMYXlvdXREb25l
KCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQo
KTsKKyAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCgpOwogCi0gICAgICAg
IHZvaWQgbG9hZGVkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoY29uc3QgQ2FjaGVkUmVzb3VyY2Uq
KTsKLSAgICAgICAgdm9pZCB0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpOwor
ICAgIHZvaWQgbG9hZGVkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoY29uc3QgQ2FjaGVkUmVzb3Vy
Y2UqKTsKKyAgICB2b2lkIHRlbGxDbGllbnRBYm91dFBhc3RNZW1vcnlDYWNoZUxvYWRzKCk7CiAK
LSAgICAgICAgdm9pZCBjaGVja0xvYWRDb21wbGV0ZSgpOwotICAgICAgICB2b2lkIGRldGFjaEZy
b21QYXJlbnQoKTsKLSAgICAgICAgdm9pZCBkZXRhY2hWaWV3c0FuZERvY3VtZW50TG9hZGVyKCk7
CisgICAgdm9pZCBjaGVja0xvYWRDb21wbGV0ZSgpOworICAgIHZvaWQgZGV0YWNoRnJvbVBhcmVu
dCgpOworICAgIHZvaWQgZGV0YWNoVmlld3NBbmREb2N1bWVudExvYWRlcigpOwogCi0gICAgICAg
IHZvaWQgYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
KTsKLSAgICAgICAgdm9pZCBhZGRFeHRyYUZpZWxkc1RvTWFpblJlc291cmNlUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QmKTsKLSAgICAgICAgCi0gICAgICAgIHN0YXRpYyB2b2lkIGFkZEhUVFBPcmln
aW5JZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmLCBTdHJpbmcgb3JpZ2luKTsKKyAgICB2b2lkIGFk
ZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAg
dm9pZCBhZGRFeHRyYUZpZWxkc1RvTWFpblJlc291cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
KTsKKyAgICAKKyAgICBzdGF0aWMgdm9pZCBhZGRIVFRQT3JpZ2luSWZOZWVkZWQoUmVzb3VyY2VS
ZXF1ZXN0JiwgU3RyaW5nIG9yaWdpbik7CiAKLSAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisgICAgRnJhbWVMb2FkZXJDbGllbnQq
IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICAgICAgdm9pZCBzZXRE
ZWZlcnNMb2FkaW5nKGJvb2wpOworICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAot
ICAgICAgICB2b2lkIGNoYW5nZUxvY2F0aW9uKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJl
ZmVycmVyLCBib29sIGxvY2tIaXN0b3J5ID0gdHJ1ZSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0
ID0gdHJ1ZSwgYm9vbCB1c2VyR2VzdHVyZSA9IGZhbHNlLCBib29sIHJlZnJlc2ggPSBmYWxzZSk7
Ci0gICAgICAgIHZvaWQgdXJsU2VsZWN0ZWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiB0YXJnZXQsIFBhc3NSZWZQdHI8RXZlbnQ+LCBib29sIGxvY2tIaXN0b3J5LCBib29s
IGxvY2tCYWNrRm9yd2FyZExpc3QsIGJvb2wgdXNlckdlc3R1cmUpOwotICAgICAgICBib29sIHJl
cXVlc3RGcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUpOworICAgIHZvaWQgY2hhbmdlTG9jYXRpb24oY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgbG9ja0hpc3RvcnkgPSB0cnVl
LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QgPSB0cnVlLCBib29sIHVzZXJHZXN0dXJlID0gZmFs
c2UsIGJvb2wgcmVmcmVzaCA9IGZhbHNlKTsKKyAgICB2b2lkIHVybFNlbGVjdGVkKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBQYXNzUmVmUHRyPEV2ZW50Piwg
Ym9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0LCBib29sIHVzZXJHZXN0
dXJlKTsKKyAgICBib29sIHJlcXVlc3RGcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUpOwogCi0gICAgICAg
IHZvaWQgc3VibWl0Rm9ybShjb25zdCBjaGFyKiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdXJsLAot
ICAgICAgICAgICAgUGFzc1JlZlB0cjxGb3JtRGF0YT4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5LAotICAgICAg
ICAgICAgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Rm9y
bVN0YXRlPik7CisgICAgdm9pZCBzdWJtaXRGb3JtKGNvbnN0IGNoYXIqIGFjdGlvbiwgY29uc3Qg
U3RyaW5nJiB1cmwsCisgICAgICAgIFBhc3NSZWZQdHI8Rm9ybURhdGE+LCBjb25zdCBTdHJpbmcm
IHRhcmdldCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBib3VuZGFy
eSwKKyAgICAgICAgYm9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQ
dHI8Rm9ybVN0YXRlPik7CiAKLSAgICAgICAgdm9pZCBzdG9wKCk7Ci0gICAgICAgIHZvaWQgc3Rv
cExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3ksIERhdGFiYXNlUG9saWN5ID0gRGF0YWJhc2VQb2xp
Y3lTdG9wKTsKLSAgICAgICAgYm9vbCBjbG9zZVVSTCgpOworICAgIHZvaWQgc3RvcCgpOworICAg
IHZvaWQgc3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3ksIERhdGFiYXNlUG9saWN5ID0gRGF0
YWJhc2VQb2xpY3lTdG9wKTsKKyAgICBib29sIGNsb3NlVVJMKCk7CiAKLSAgICAgICAgdm9pZCBk
aWRFeHBsaWNpdE9wZW4oKTsKKyAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCi0gICAgICAg
IEtVUkwgaWNvblVSTCgpOwotICAgICAgICB2b2lkIGNvbW1pdEljb25VUkxUb0ljb25EYXRhYmFz
ZShjb25zdCBLVVJMJik7CisgICAgS1VSTCBpY29uVVJMKCk7CisgICAgdm9pZCBjb21taXRJY29u
VVJMVG9JY29uRGF0YWJhc2UoY29uc3QgS1VSTCYpOwogCi0gICAgICAgIEtVUkwgYmFzZVVSTCgp
IGNvbnN0OworICAgIEtVUkwgYmFzZVVSTCgpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgcmVwbGFj
ZURvY3VtZW50KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcmVwbGFjZURvY3VtZW50KGNvbnN0
IFN0cmluZyYpOwogCi0gICAgICAgIHZvaWQgYmVnaW4oKTsKLSAgICAgICAgdm9pZCBiZWdpbihj
b25zdCBLVVJMJiwgYm9vbCBkaXNwYXRjaFdpbmRvd09iamVjdEF2YWlsYWJsZSA9IHRydWUsIFNl
Y3VyaXR5T3JpZ2luKiBmb3JjZWRTZWN1cml0eU9yaWdpbiA9IDApOworICAgIHZvaWQgYmVnaW4o
KTsKKyAgICB2b2lkIGJlZ2luKGNvbnN0IEtVUkwmLCBib29sIGRpc3BhdGNoV2luZG93T2JqZWN0
QXZhaWxhYmxlID0gdHJ1ZSwgU2VjdXJpdHlPcmlnaW4qIGZvcmNlZFNlY3VyaXR5T3JpZ2luID0g
MCk7CiAKLSAgICAgICAgdm9pZCB3cml0ZShjb25zdCBjaGFyKiBzdHJpbmcsIGludCBsZW5ndGgg
PSAtMSwgYm9vbCBmbHVzaCA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCB3cml0ZShjb25zdCBTdHJp
bmcmKTsKLSAgICAgICAgdm9pZCBlbmQoKTsKLSAgICAgICAgdm9pZCBlbmRJZk5vdExvYWRpbmdN
YWluUmVzb3VyY2UoKTsKKyAgICB2b2lkIHdyaXRlKGNvbnN0IGNoYXIqIHN0cmluZywgaW50IGxl
bmd0aCA9IC0xLCBib29sIGZsdXNoID0gZmFsc2UpOworICAgIHZvaWQgd3JpdGUoY29uc3QgU3Ry
aW5nJik7CisgICAgdm9pZCBlbmQoKTsKKyAgICB2b2lkIGVuZElmTm90TG9hZGluZ01haW5SZXNv
dXJjZSgpOwogCi0gICAgICAgIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJiBlbmNvZGlu
ZywgYm9vbCB1c2VyQ2hvc2VuKTsKLSAgICAgICAgU3RyaW5nIGVuY29kaW5nKCkgY29uc3Q7Cisg
ICAgdm9pZCBzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBib29sIHVzZXJDaG9z
ZW4pOworICAgIFN0cmluZyBlbmNvZGluZygpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgdG9rZW5p
emVyUHJvY2Vzc2VkRGF0YSgpOworICAgIHZvaWQgdG9rZW5pemVyUHJvY2Vzc2VkRGF0YSgpOwog
Ci0gICAgICAgIHZvaWQgaGFuZGxlZE9ubG9hZEV2ZW50cygpOwotICAgICAgICBTdHJpbmcgdXNl
ckFnZW50KGNvbnN0IEtVUkwmKSBjb25zdDsKKyAgICB2b2lkIGhhbmRsZWRPbmxvYWRFdmVudHMo
KTsKKyAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IEtVUkwmKSBjb25zdDsKIAotICAgICAgICBQ
YXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwg
SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgYXJncyk7
CisgICAgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50
U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4m
IGFyZ3MpOwogCi0gICAgICAgIHZvaWQgZGlzcGF0Y2hXaW5kb3dPYmplY3RBdmFpbGFibGUoKTsK
LSAgICAgICAgdm9pZCBkaXNwYXRjaERvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOworICAgIHZv
aWQgZGlzcGF0Y2hXaW5kb3dPYmplY3RBdmFpbGFibGUoKTsKKyAgICB2b2lkIGRpc3BhdGNoRG9j
dW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CiAKLSAgICAgICAgLy8gTWl4ZWQgY29udGVudCByZWxh
dGVkIGZ1bmN0aW9ucy4KLSAgICAgICAgc3RhdGljIGJvb2wgaXNNaXhlZENvbnRlbnQoU2VjdXJp
dHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmKTsKLSAgICAgICAgdm9pZCBjaGVja0lmRGlz
cGxheUluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYp
OwotICAgICAgICB2b2lkIGNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4q
IGNvbnRleHQsIGNvbnN0IEtVUkwmKTsKKyAgICAvLyBNaXhlZCBjb250ZW50IHJlbGF0ZWQgZnVu
Y3Rpb25zLgorICAgIHN0YXRpYyBib29sIGlzTWl4ZWRDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBj
b250ZXh0LCBjb25zdCBLVVJMJik7CisgICAgdm9pZCBjaGVja0lmRGlzcGxheUluc2VjdXJlQ29u
dGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOworICAgIHZvaWQgY2hl
Y2tJZlJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VS
TCYpOwogCi0gICAgICAgIEZyYW1lKiBvcGVuZXIoKTsKLSAgICAgICAgdm9pZCBzZXRPcGVuZXIo
RnJhbWUqKTsKKyAgICBGcmFtZSogb3BlbmVyKCk7CisgICAgdm9pZCBzZXRPcGVuZXIoRnJhbWUq
KTsKIAotICAgICAgICBib29sIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CisgICAgYm9vbCBp
c1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwogCi0gICAgICAgIHZvaWQgcmVzZXRNdWx0aXBsZUZv
cm1TdWJtaXNzaW9uUHJvdGVjdGlvbigpOworICAgIHZvaWQgcmVzZXRNdWx0aXBsZUZvcm1TdWJt
aXNzaW9uUHJvdGVjdGlvbigpOwogCi0gICAgICAgIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiBi
eXRlcywgaW50IGxlbmd0aCk7CisgICAgdm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqIGJ5dGVzLCBp
bnQgbGVuZ3RoKTsKIAotICAgICAgICB2b2lkIGNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKTsKKyAg
ICB2b2lkIGNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKTsKIAotICAgICAgICB2b2lkIGZyYW1lRGV0
YWNoZWQoKTsKKyAgICB2b2lkIGZyYW1lRGV0YWNoZWQoKTsKIAotICAgICAgICBjb25zdCBLVVJM
JiB1cmwoKSBjb25zdCB7IHJldHVybiBtX1VSTDsgfQorICAgIGNvbnN0IEtVUkwmIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fVVJMOyB9CiAKLSAgICAgICAgdm9pZCBzZXRSZXNwb25zZU1JTUVUeXBl
KGNvbnN0IFN0cmluZyYpOwotICAgICAgICBjb25zdCBTdHJpbmcmIHJlc3BvbnNlTUlNRVR5cGUo
KSBjb25zdDsKKyAgICB2b2lkIHNldFJlc3BvbnNlTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7Cisg
ICAgY29uc3QgU3RyaW5nJiByZXNwb25zZU1JTUVUeXBlKCkgY29uc3Q7CiAKLSAgICAgICAgYm9v
bCBjb250YWluc1BsdWdpbnMoKSBjb25zdDsKKyAgICBib29sIGNvbnRhaW5zUGx1Z2lucygpIGNv
bnN0OwogCi0gICAgICAgIHZvaWQgbG9hZERvbmUoKTsKLSAgICAgICAgdm9pZCBmaW5pc2hlZFBh
cnNpbmcoKTsKLSAgICAgICAgdm9pZCBjaGVja0NvbXBsZXRlZCgpOworICAgIHZvaWQgbG9hZERv
bmUoKTsKKyAgICB2b2lkIGZpbmlzaGVkUGFyc2luZygpOworICAgIHZvaWQgY2hlY2tDb21wbGV0
ZWQoKTsKIAotICAgICAgICB2b2lkIGNoZWNrRGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpOwor
ICAgIHZvaWQgY2hlY2tEaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCk7CiAKLSAgICAgICAgYm9v
bCBpc0NvbXBsZXRlKCkgY29uc3Q7CisgICAgYm9vbCBpc0NvbXBsZXRlKCkgY29uc3Q7CiAKLSAg
ICAgICAgYm9vbCByZXF1ZXN0T2JqZWN0KFJlbmRlclBhcnQqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsCi0gICAgICAgICAgICBjb25zdCBT
dHJpbmcmIHNlcnZpY2VUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKKyAgICBib29sIHJlcXVlc3RPYmplY3Qo
UmVuZGVyUGFydCogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcm
IGZyYW1lTmFtZSwKKyAgICAgICAgY29uc3QgU3RyaW5nJiBzZXJ2aWNlVHlwZSwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVl
cyk7CiAKLSAgICAgICAgS1VSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCk7CisgICAg
S1VSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCk7CiAKLSAgICAgICAgdm9pZCBjYW5j
ZWxBbmRDbGVhcigpOworICAgIHZvaWQgY2FuY2VsQW5kQ2xlYXIoKTsKIAotICAgICAgICB2b2lk
IHNldFRpdGxlKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5n
Jik7CiAKLSAgICAgICAgdm9pZCBjb21taXRQcm92aXNpb25hbExvYWQoUGFzc1JlZlB0cjxDYWNo
ZWRQYWdlPik7Ci0gICAgICAgIGJvb2wgaXNMb2FkaW5nRnJvbUNhY2hlZFBhZ2UoKSBjb25zdCB7
IHJldHVybiBtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZTsgfQorICAgIHZvaWQgY29tbWl0UHJvdmlz
aW9uYWxMb2FkKFBhc3NSZWZQdHI8Q2FjaGVkUGFnZT4pOworICAgIGJvb2wgaXNMb2FkaW5nRnJv
bUNhY2hlZFBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZTsgfQog
Ci0gICAgICAgIGJvb2wgY29tbWl0dGluZ0ZpcnN0UmVhbExvYWQoKSBjb25zdCB7IHJldHVybiAh
bV9jcmVhdGluZ0luaXRpYWxFbXB0eURvY3VtZW50ICYmICFtX2NvbW1pdHRlZEZpcnN0UmVhbERv
Y3VtZW50TG9hZDsgfQotICAgICAgICBib29sIGNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9h
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkOyB9Ci0g
ICAgICAgIGJvb2wgY3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fY3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudDsgfQorICAgIGJvb2wgY29tbWl0dGluZ0Zp
cnN0UmVhbExvYWQoKSBjb25zdCB7IHJldHVybiAhbV9jcmVhdGluZ0luaXRpYWxFbXB0eURvY3Vt
ZW50ICYmICFtX2NvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZDsgfQorICAgIGJvb2wgY29t
bWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9jb21taXR0ZWRG
aXJzdFJlYWxEb2N1bWVudExvYWQ7IH0KKyAgICBib29sIGNyZWF0aW5nSW5pdGlhbEVtcHR5RG9j
dW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2NyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQ7IH0K
IAotICAgICAgICB2b2lkIGljb25Mb2FkRGVjaXNpb25BdmFpbGFibGUoKTsKKyAgICB2b2lkIGlj
b25Mb2FkRGVjaXNpb25BdmFpbGFibGUoKTsKIAotICAgICAgICBib29sIHNob3VsZEFsbG93TmF2
aWdhdGlvbihGcmFtZSogdGFyZ2V0RnJhbWUpIGNvbnN0OwotICAgICAgICBGcmFtZSogZmluZEZy
YW1lRm9yTmF2aWdhdGlvbihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpOworICAgIGJvb2wgc2hv
dWxkQWxsb3dOYXZpZ2F0aW9uKEZyYW1lKiB0YXJnZXRGcmFtZSkgY29uc3Q7CisgICAgRnJhbWUq
IGZpbmRGcmFtZUZvck5hdmlnYXRpb24oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKTsKIAotICAg
ICAgICB2b2lkIHN0YXJ0SWNvbkxvYWRlcigpOworICAgIHZvaWQgc3RhcnRJY29uTG9hZGVyKCk7
CiAKLSAgICAgICAgdm9pZCBhcHBseVVzZXJBZ2VudChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
OworICAgIHZvaWQgYXBwbHlVc2VyQWdlbnQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KTsKIAot
ICAgICAgICBib29sIHNob3VsZEludGVycnVwdExvYWRGb3JYRnJhbWVPcHRpb25zKGNvbnN0IFN0
cmluZyYsIGNvbnN0IEtVUkwmKTsKKyAgICBib29sIHNob3VsZEludGVycnVwdExvYWRGb3JYRnJh
bWVPcHRpb25zKGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwmKTsKIAotICAgICAgICB2b2lkIG9w
ZW4oQ2FjaGVkRnJhbWVCYXNlJik7CisgICAgdm9pZCBvcGVuKENhY2hlZEZyYW1lQmFzZSYpOwog
Ci0gICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdGhlc2UgcmVhbGx5IGJlIHB1YmxpYz8KLSAgICAg
ICAgdm9pZCBjb21wbGV0ZWQoKTsKLSAgICAgICAgYm9vbCBhbGxBbmNlc3RvcnNBcmVDb21wbGV0
ZSgpIGNvbnN0OyAvLyBpbmNsdWRpbmcgdGhpcwotICAgICAgICBib29sIGFsbENoaWxkcmVuQXJl
Q29tcGxldGUoKSBjb25zdDsgLy8gaW1tZWRpYXRlIGNoaWxkcmVuLCBub3QgYWxsIGRlc2NlbmRh
bnRzCi0gICAgICAgIHZvaWQgY2xpZW50UmVkaXJlY3RlZChjb25zdCBLVVJMJiwgZG91YmxlIGRl
bGF5LCBkb3VibGUgZmlyZURhdGUsIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCk7Ci0gICAgICAg
IHZvaWQgY2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKGJvb2wgY2FuY2VsV2l0aExv
YWRJblByb2dyZXNzKTsKLSAgICAgICAgdm9pZCBsb2FkSXRlbShIaXN0b3J5SXRlbSosIEZyYW1l
TG9hZFR5cGUpOworICAgIC8vIEZJWE1FOiBTaG91bGQgdGhlc2UgcmVhbGx5IGJlIHB1YmxpYz8K
KyAgICB2b2lkIGNvbXBsZXRlZCgpOworICAgIGJvb2wgYWxsQW5jZXN0b3JzQXJlQ29tcGxldGUo
KSBjb25zdDsgLy8gaW5jbHVkaW5nIHRoaXMKKyAgICBib29sIGFsbENoaWxkcmVuQXJlQ29tcGxl
dGUoKSBjb25zdDsgLy8gaW1tZWRpYXRlIGNoaWxkcmVuLCBub3QgYWxsIGRlc2NlbmRhbnRzCisg
ICAgdm9pZCBjbGllbnRSZWRpcmVjdGVkKGNvbnN0IEtVUkwmLCBkb3VibGUgZGVsYXksIGRvdWJs
ZSBmaXJlRGF0ZSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKKyAgICB2b2lkIGNsaWVudFJl
ZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZChib29sIGNhbmNlbFdpdGhMb2FkSW5Qcm9ncmVzcyk7
CisgICAgdm9pZCBsb2FkSXRlbShIaXN0b3J5SXRlbSosIEZyYW1lTG9hZFR5cGUpOwogCi0gICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIHB1YmxpYyBiZWNhdXNlIHRoaXMgYXN5bmNocm9ub3VzIGNh
bGxiYWNrIGZyb20gdGhlIEZyYW1lTG9hZGVyQ2xpZW50Ci0gICAgICAgIC8vIHVzZXMgdGhlIHBv
bGljeSBtYWNoaW5lcnkgKGFuZCB0aGVyZWZvcmUgaXMgY2FsbGVkIHZpYSB0aGUgUG9saWN5Q2hl
Y2tlcikuICBPbmNlIHdlCi0gICAgICAgIC8vIGludHJvZHVjZSBhIHByb3BlciBjYWxsYmFjayB0
eXBlIGZvciB0aGlzIGZ1bmN0aW9uLCB3ZSBzaG91bGQgbWFrZSBpdCBwcml2YXRlIGFnYWluLgot
ICAgICAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyV2lsbFN1Ym1pdEZvcm0oKTsKKyAgICAvLyBG
SVhNRTogVGhpcyBpcyBwdWJsaWMgYmVjYXVzZSB0aGlzIGFzeW5jaHJvbm91cyBjYWxsYmFjayBm
cm9tIHRoZSBGcmFtZUxvYWRlckNsaWVudAorICAgIC8vIHVzZXMgdGhlIHBvbGljeSBtYWNoaW5l
cnkgKGFuZCB0aGVyZWZvcmUgaXMgY2FsbGVkIHZpYSB0aGUgUG9saWN5Q2hlY2tlcikuICBPbmNl
IHdlCisgICAgLy8gaW50cm9kdWNlIGEgcHJvcGVyIGNhbGxiYWNrIHR5cGUgZm9yIHRoaXMgZnVu
Y3Rpb24sIHdlIHNob3VsZCBtYWtlIGl0IHByaXZhdGUgYWdhaW4uCisgICAgdm9pZCBjb250aW51
ZUxvYWRBZnRlcldpbGxTdWJtaXRGb3JtKCk7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBib29s
IGNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUoKTsKK3ByaXZhdGU6CisgICAgYm9vbCBj
YW5DYWNoZVBhZ2VDb250YWluaW5nVGhpc0ZyYW1lKCk7CiAjaWZuZGVmIE5ERUJVRwotICAgICAg
ICB2b2lkIGxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKCk7Ci0gICAgICAgIGJvb2wgbG9nQ2FuQ2Fj
aGVGcmFtZURlY2lzaW9uKGludCBpbmRlbnRMZXZlbCk7CisgICAgdm9pZCBsb2dDYW5DYWNoZVBh
Z2VEZWNpc2lvbigpOworICAgIGJvb2wgbG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKGludCBpbmRl
bnRMZXZlbCk7CiAjZW5kaWYKIAotICAgICAgICB2b2lkIGNoZWNrVGltZXJGaXJlZChUaW1lcjxG
cmFtZUxvYWRlcj4qKTsKKyAgICB2b2lkIGNoZWNrVGltZXJGaXJlZChUaW1lcjxGcmFtZUxvYWRl
cj4qKTsKIAotICAgICAgICB2b2lkIHN0YXJ0ZWQoKTsKKyAgICB2b2lkIHN0YXJ0ZWQoKTsKIAot
ICAgICAgICBib29sIHNob3VsZFVzZVBsdWdpbihjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spOwotICAgICAgICBi
b29sIGxvYWRQbHVnaW4oUmVuZGVyUGFydCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLAotICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKTsKLSAgICAgICAg
Ci0gICAgICAgIGJvb2wgbG9hZFByb3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKCk7Ci0gICAg
ICAgIHZvaWQgY2FjaGVQYWdlRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qKTsKLSAgICAgICAg
dm9pZCBwYWdlSGlkZGVuKCk7CisgICAgYm9vbCBzaG91bGRVc2VQbHVnaW4oY29uc3QgS1VSTCYs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgaGFzRmFsbGJhY2ssIGJvb2wmIHVzZUZhbGxi
YWNrKTsKKyAgICBib29sIGxvYWRQbHVnaW4oUmVuZGVyUGFydCosIGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLAorICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVz
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNlRmFsbGJhY2spOwor
ICAgIAorICAgIGJvb2wgbG9hZFByb3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKCk7CisgICAg
dm9pZCBjYWNoZVBhZ2VGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSopOworICAgIHZvaWQgcGFn
ZUhpZGRlbigpOwogCi0gICAgICAgIHZvaWQgcmVjZWl2ZWRGaXJzdERhdGEoKTsKKyAgICB2b2lk
IHJlY2VpdmVkRmlyc3REYXRhKCk7CiAKLSAgICAgICAgdm9pZCB1cGRhdGVGaXJzdFBhcnR5Rm9y
Q29va2llcygpOwotICAgICAgICB2b2lkIHNldEZpcnN0UGFydHlGb3JDb29raWVzKGNvbnN0IEtV
UkwmKTsKLSAgICAgICAgCi0gICAgICAgIHZvaWQgYWRkRXh0cmFGaWVsZHNUb1JlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgYm9vbCBpc01haW5SZXNvdXJj
ZSwgYm9vbCBjb29raWVQb2xpY3lVUkxGcm9tUmVxdWVzdCk7CisgICAgdm9pZCB1cGRhdGVGaXJz
dFBhcnR5Rm9yQ29va2llcygpOworICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoY29u
c3QgS1VSTCYpOworICAgIAorICAgIHZvaWQgYWRkRXh0cmFGaWVsZHNUb1JlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgYm9vbCBpc01haW5SZXNvdXJjZSwg
Ym9vbCBjb29raWVQb2xpY3lVUkxGcm9tUmVxdWVzdCk7CiAKLSAgICAgICAgLy8gQWxzbyBub3Qg
Y29vbC4KLSAgICAgICAgdm9pZCBzdG9wTG9hZGluZ1N1YmZyYW1lcygpOworICAgIC8vIEFsc28g
bm90IGNvb2wuCisgICAgdm9pZCBzdG9wTG9hZGluZ1N1YmZyYW1lcygpOwogCi0gICAgICAgIHZv
aWQgY2xlYXJQcm92aXNpb25hbExvYWQoKTsKLSAgICAgICAgdm9pZCBtYXJrTG9hZENvbXBsZXRl
KCk7Ci0gICAgICAgIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkKFBhc3NSZWZQdHI8Q2FjaGVk
UGFnZT4pOwotICAgICAgICB2b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgpOworICAgIHZvaWQgY2xl
YXJQcm92aXNpb25hbExvYWQoKTsKKyAgICB2b2lkIG1hcmtMb2FkQ29tcGxldGUoKTsKKyAgICB2
b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZChQYXNzUmVmUHRyPENhY2hlZFBhZ2U+KTsKKyAgICB2
b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgpOwogCi0gICAgICAgIHZvaWQgbWFpblJlY2VpdmVkRXJy
b3IoY29uc3QgUmVzb3VyY2VFcnJvciYsIGJvb2wgaXNDb21wbGV0ZSk7CisgICAgdm9pZCBtYWlu
UmVjZWl2ZWRFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiwgYm9vbCBpc0NvbXBsZXRlKTsKIAot
ICAgICAgICB2b2lkIHNldExvYWRUeXBlKEZyYW1lTG9hZFR5cGUpOworICAgIHZvaWQgc2V0TG9h
ZFR5cGUoRnJhbWVMb2FkVHlwZSk7CiAKLSAgICAgICAgc3RhdGljIHZvaWQgY2FsbENvbnRpbnVl
TG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeSh2b2lkKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBib29sIHNob3VsZENvbnRpbnVlKTsKLSAgICAgICAgc3Rh
dGljIHZvaWQgY2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHZvaWQqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lLCBib29sIHNob3VsZENvbnRpbnVlKTsKLSAgICAgICAgc3RhdGljIHZvaWQgY2Fs
bENvbnRpbnVlRnJhZ21lbnRTY3JvbGxBZnRlck5hdmlnYXRpb25Qb2xpY3kodm9pZCosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250
aW51ZSk7CisgICAgc3RhdGljIHZvaWQgY2FsbENvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBv
bGljeSh2b2lkKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+
LCBib29sIHNob3VsZENvbnRpbnVlKTsKKyAgICBzdGF0aWMgdm9pZCBjYWxsQ29udGludWVMb2Fk
QWZ0ZXJOZXdXaW5kb3dQb2xpY3kodm9pZCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NS
ZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgc2hvdWxkQ29u
dGludWUpOworICAgIHN0YXRpYyB2b2lkIGNhbGxDb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KHZvaWQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRy
PEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxkQ29udGludWUpOwogCi0gICAgICAgIHZvaWQgY29udGlu
dWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NS
ZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250aW51ZSk7Ci0gICAgICAgIHZvaWQgY29u
dGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgYm9vbCBzaG91bGRD
b250aW51ZSk7Ci0gICAgICAgIHZvaWQgY29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdh
dGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIHNob3VsZENvbnRpbnVlKTsK
KyAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxkQ29udGludWUpOwor
ICAgIHZvaWQgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwg
Ym9vbCBzaG91bGRDb250aW51ZSk7CisgICAgdm9pZCBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0
ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkQ29u
dGludWUpOwogCi0gICAgICAgIGJvb2wgc2hvdWxkU2Nyb2xsVG9BbmNob3IoYm9vbCBpc0Zvcm1T
dWJtaXNzaW9uLCBGcmFtZUxvYWRUeXBlLCBjb25zdCBLVVJMJik7CisgICAgYm9vbCBzaG91bGRT
Y3JvbGxUb0FuY2hvcihib29sIGlzRm9ybVN1Ym1pc3Npb24sIEZyYW1lTG9hZFR5cGUsIGNvbnN0
IEtVUkwmKTsKIAotICAgICAgICB2b2lkIGNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKCk7
CisgICAgdm9pZCBjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSgpOwogCi0gICAgICAgIHZv
aWQgc2V0RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqKTsKLSAgICAgICAgdm9pZCBzZXRQ
b2xpY3lEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciopOwotICAgICAgICB2b2lkIHNldFBy
b3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2b2lkIHNldERv
Y3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKik7CisgICAgdm9pZCBzZXRQb2xpY3lEb2N1bWVu
dExvYWRlcihEb2N1bWVudExvYWRlciopOworICAgIHZvaWQgc2V0UHJvdmlzaW9uYWxEb2N1bWVu
dExvYWRlcihEb2N1bWVudExvYWRlciopOwogCi0gICAgICAgIHZvaWQgc2V0U3RhdGUoRnJhbWVT
dGF0ZSk7CisgICAgdm9pZCBzZXRTdGF0ZShGcmFtZVN0YXRlKTsKIAotICAgICAgICB2b2lkIGNs
b3NlT2xkRGF0YVNvdXJjZXMoKTsKLSAgICAgICAgdm9pZCBvcGVuKENhY2hlZFBhZ2UmKTsKKyAg
ICB2b2lkIGNsb3NlT2xkRGF0YVNvdXJjZXMoKTsKKyAgICB2b2lkIG9wZW4oQ2FjaGVkUGFnZSYp
OwogCi0gICAgICAgIHZvaWQgdXBkYXRlSGlzdG9yeUFmdGVyQ2xpZW50UmVkaXJlY3QoKTsKKyAg
ICB2b2lkIHVwZGF0ZUhpc3RvcnlBZnRlckNsaWVudFJlZGlyZWN0KCk7CiAKLSAgICAgICAgdm9p
ZCBjbGVhcihib29sIGNsZWFyV2luZG93UHJvcGVydGllcyA9IHRydWUsIGJvb2wgY2xlYXJTY3Jp
cHRPYmplY3RzID0gdHJ1ZSwgYm9vbCBjbGVhckZyYW1lVmlldyA9IHRydWUpOworICAgIHZvaWQg
Y2xlYXIoYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMgPSB0cnVlLCBib29sIGNsZWFyU2NyaXB0
T2JqZWN0cyA9IHRydWUsIGJvb2wgY2xlYXJGcmFtZVZpZXcgPSB0cnVlKTsKIAotICAgICAgICBi
b29sIHNob3VsZFJlbG9hZFRvSGFuZGxlVW5yZWFjaGFibGVVUkwoRG9jdW1lbnRMb2FkZXIqKTsK
KyAgICBib29sIHNob3VsZFJlbG9hZFRvSGFuZGxlVW5yZWFjaGFibGVVUkwoRG9jdW1lbnRMb2Fk
ZXIqKTsKIAotICAgICAgICB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpOworICAgIHZvaWQg
ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCk7CiAKLSAgICAgICAgdm9pZCBsb2FkV2l0aERvY3VtZW50
TG9hZGVyKERvY3VtZW50TG9hZGVyKiwgRnJhbWVMb2FkVHlwZSwgUGFzc1JlZlB0cjxGb3JtU3Rh
dGU+KTsgLy8gQ2FsbHMgY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5Ci0gICAgICAg
IHZvaWQgbG9hZChEb2N1bWVudExvYWRlciopOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGxzIGxvYWRXaXRoRG9jdW1lbnRMb2Fk
ZXIgICAKKyAgICB2b2lkIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqLCBG
cmFtZUxvYWRUeXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pOyAvLyBDYWxscyBjb250aW51ZUxv
YWRBZnRlck5hdmlnYXRpb25Qb2xpY3kKKyAgICB2b2lkIGxvYWQoRG9jdW1lbnRMb2FkZXIqKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBDYWxscyBsb2FkV2l0aERvY3VtZW50TG9hZGVyICAgCiAKLSAgICAgICAgdm9pZCBsb2FkV2l0
aE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYsICAgICAgLy8gQ2FsbHMgbG9hZFdpdGhEb2N1bWVudExvYWRlcgotICAgICAgICAg
ICAgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+
KTsKKyAgICB2b2lkIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgICAgICAvLyBDYWxscyBsb2FkV2l0aERvY3Vt
ZW50TG9hZGVyCisgICAgICAgIGJvb2wgbG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUsIFBhc3NS
ZWZQdHI8Rm9ybVN0YXRlPik7CiAKLSAgICAgICAgdm9pZCBsb2FkUG9zdFJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgICAgICAgICAgICAgICAg
Ly8gQ2FsbGVkIGJ5IGxvYWRGcmFtZVJlcXVlc3QsIGNhbGxzIGxvYWRXaXRoTmF2aWdhdGlvbkFj
dGlvbgotICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgbG9ja0hpc3Rv
cnksIEZyYW1lTG9hZFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPEZvcm1TdGF0
ZT4pOwotICAgICAgICB2b2lkIGxvYWRVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCAgICAgICAgICAvLyBDYWxsZWQgYnkgbG9h
ZEZyYW1lUmVxdWVzdCwgY2FsbHMgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uIG9yIGRpc3BhdGNo
ZXMgdG8gbmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUKLSAgICAgICAgICAgIGJvb2wgbG9ja0hp
c3RvcnksIEZyYW1lTG9hZFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPEZvcm1T
dGF0ZT4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgIHZvaWQgbG9hZFBvc3RSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsICAgICAgICAgICAgICAgIC8vIENhbGxlZCBieSBsb2Fk
RnJhbWVSZXF1ZXN0LCBjYWxscyBsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24KKyAgICAgICAgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnksIEZyYW1lTG9hZFR5cGUsIFBh
c3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pOworICAgIHZvaWQgbG9hZFVS
TChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsICAgICAgICAgIC8vIENhbGxlZCBieSBsb2FkRnJhbWVSZXF1ZXN0LCBjYWxscyBsb2Fk
V2l0aE5hdmlnYXRpb25BY3Rpb24gb3IgZGlzcGF0Y2hlcyB0byBuYXZpZ2F0aW9uIHBvbGljeSBk
ZWxlZ2F0ZQorICAgICAgICBib29sIGxvY2tIaXN0b3J5LCBGcmFtZUxvYWRUeXBlLCBQYXNzUmVm
UHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAotICAgICAgICBib29sIHNob3Vs
ZFJlbG9hZChjb25zdCBLVVJMJiBjdXJyZW50VVJMLCBjb25zdCBLVVJMJiBkZXN0aW5hdGlvblVS
TCk7CisgICAgYm9vbCBzaG91bGRSZWxvYWQoY29uc3QgS1VSTCYgY3VycmVudFVSTCwgY29uc3Qg
S1VSTCYgZGVzdGluYXRpb25VUkwpOwogCi0gICAgICAgIHZvaWQgc2VuZFJlbWFpbmluZ0RlbGVn
YXRlTWVzc2FnZXModW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgaW50IGxlbmd0aCwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwotICAgICAgICB2b2lkIHJl
cXVlc3RGcm9tRGVsZWdhdGUoUmVzb3VyY2VSZXF1ZXN0JiwgdW5zaWduZWQgbG9uZyYgaWRlbnRp
ZmllciwgUmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgc2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVz
c2FnZXModW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwg
aW50IGxlbmd0aCwgY29uc3QgUmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgcmVxdWVzdEZyb21E
ZWxlZ2F0ZShSZXNvdXJjZVJlcXVlc3QmLCB1bnNpZ25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNv
dXJjZUVycm9yJik7CiAKLSAgICAgICAgdm9pZCByZWN1cnNpdmVDaGVja0xvYWRDb21wbGV0ZSgp
OworICAgIHZvaWQgcmVjdXJzaXZlQ2hlY2tMb2FkQ29tcGxldGUoKTsKIAotICAgICAgICB2b2lk
IGRldGFjaENoaWxkcmVuKCk7Ci0gICAgICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVDaGlsZChGcmFt
ZSopOworICAgIHZvaWQgZGV0YWNoQ2hpbGRyZW4oKTsKKyAgICB2b2lkIGNsb3NlQW5kUmVtb3Zl
Q2hpbGQoRnJhbWUqKTsKIAotICAgICAgICBGcmFtZSogbG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93
bmVyRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIpOworICAgIEZyYW1lKiBsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVt
ZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByZWZl
cnJlcik7CiAKLSAgICAgICAgdm9pZCBzY3JvbGxUb0FuY2hvcihjb25zdCBLVVJMJik7CisgICAg
dm9pZCBzY3JvbGxUb0FuY2hvcihjb25zdCBLVVJMJik7CiAKLSAgICAgICAgdm9pZCBwcm92aXNp
b25hbExvYWRTdGFydGVkKCk7CisgICAgdm9pZCBwcm92aXNpb25hbExvYWRTdGFydGVkKCk7CiAK
LSAgICAgICAgYm9vbCBjYW5DYWNoZVBhZ2UoKTsKKyAgICBib29sIGNhbkNhY2hlUGFnZSgpOwog
Ci0gICAgICAgIGJvb2wgZGlkT3BlblVSTChjb25zdCBLVVJMJik7CisgICAgYm9vbCBkaWRPcGVu
VVJMKGNvbnN0IEtVUkwmKTsKIAotICAgICAgICB2b2lkIHNjaGVkdWxlQ2hlY2tDb21wbGV0ZWQo
KTsKLSAgICAgICAgdm9pZCBzY2hlZHVsZUNoZWNrTG9hZENvbXBsZXRlKCk7Ci0gICAgICAgIHZv
aWQgc3RhcnRDaGVja0NvbXBsZXRlVGltZXIoKTsKKyAgICB2b2lkIHNjaGVkdWxlQ2hlY2tDb21w
bGV0ZWQoKTsKKyAgICB2b2lkIHNjaGVkdWxlQ2hlY2tMb2FkQ29tcGxldGUoKTsKKyAgICB2b2lk
IHN0YXJ0Q2hlY2tDb21wbGV0ZVRpbWVyKCk7CiAKLSAgICAgICAgS1VSTCBvcmlnaW5hbFJlcXVl
c3RVUkwoKSBjb25zdDsKKyAgICBLVVJMIG9yaWdpbmFsUmVxdWVzdFVSTCgpIGNvbnN0OwogCi0g
ICAgICAgIGJvb2wgc2hvdWxkVHJlYXRVUkxBc1NhbWVBc0N1cnJlbnQoY29uc3QgS1VSTCYpIGNv
bnN0OworICAgIGJvb2wgc2hvdWxkVHJlYXRVUkxBc1NhbWVBc0N1cnJlbnQoY29uc3QgS1VSTCYp
IGNvbnN0OwogCi0gICAgICAgIEZyYW1lKiBtX2ZyYW1lOwotICAgICAgICBGcmFtZUxvYWRlckNs
aWVudCogbV9jbGllbnQ7CisgICAgRnJhbWUqIG1fZnJhbWU7CisgICAgRnJhbWVMb2FkZXJDbGll
bnQqIG1fY2xpZW50OwogCi0gICAgICAgIG11dGFibGUgUG9saWN5Q2hlY2tlciBtX3BvbGljeUNo
ZWNrZXI7Ci0gICAgICAgIG11dGFibGUgSGlzdG9yeUNvbnRyb2xsZXIgbV9oaXN0b3J5OwotICAg
ICAgICBtdXRhYmxlIFJlc291cmNlTG9hZE5vdGlmaWVyIG1fbm90aWZlcjsKKyAgICBtdXRhYmxl
IFBvbGljeUNoZWNrZXIgbV9wb2xpY3lDaGVja2VyOworICAgIG11dGFibGUgSGlzdG9yeUNvbnRy
b2xsZXIgbV9oaXN0b3J5OworICAgIG11dGFibGUgUmVzb3VyY2VMb2FkTm90aWZpZXIgbV9ub3Rp
ZmVyOwogCi0gICAgICAgIEZyYW1lU3RhdGUgbV9zdGF0ZTsKLSAgICAgICAgRnJhbWVMb2FkVHlw
ZSBtX2xvYWRUeXBlOworICAgIEZyYW1lU3RhdGUgbV9zdGF0ZTsKKyAgICBGcmFtZUxvYWRUeXBl
IG1fbG9hZFR5cGU7CiAKLSAgICAgICAgLy8gRG9jdW1lbnQgbG9hZGVycyBmb3IgdGhlIHRocmVl
IHBoYXNlcyBvZiBmcmFtZSBsb2FkaW5nLiBOb3RlIHRoYXQgd2hpbGUgCi0gICAgICAgIC8vIGEg
bmV3IHJlcXVlc3QgaXMgYmVpbmcgbG9hZGVkLCB0aGUgb2xkIGRvY3VtZW50IGxvYWRlciBtYXkg
c3RpbGwgYmUgcmVmZXJlbmNlZC4KLSAgICAgICAgLy8gRS5nLiB3aGlsZSBhIG5ldyByZXF1ZXN0
IGlzIGluIHRoZSAicG9saWN5IiBzdGF0ZSwgdGhlIG9sZCBkb2N1bWVudCBsb2FkZXIgbWF5Ci0g
ICAgICAgIC8vIGJlIGNvbnN1bHRlZCBpbiBwYXJ0aWN1bGFyIGFzIGl0IG1ha2VzIHNlbnNlIHRv
IGltcGx5IGNlcnRhaW4gc2V0dGluZ3Mgb24gdGhlIG5ldyBsb2FkZXIuCi0gICAgICAgIFJlZlB0
cjxEb2N1bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsKLSAgICAgICAgUmVmUHRyPERvY3Vt
ZW50TG9hZGVyPiBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXI7Ci0gICAgICAgIFJlZlB0cjxE
b2N1bWVudExvYWRlcj4gbV9wb2xpY3lEb2N1bWVudExvYWRlcjsKKyAgICAvLyBEb2N1bWVudCBs
b2FkZXJzIGZvciB0aGUgdGhyZWUgcGhhc2VzIG9mIGZyYW1lIGxvYWRpbmcuIE5vdGUgdGhhdCB3
aGlsZSAKKyAgICAvLyBhIG5ldyByZXF1ZXN0IGlzIGJlaW5nIGxvYWRlZCwgdGhlIG9sZCBkb2N1
bWVudCBsb2FkZXIgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWQuCisgICAgLy8gRS5nLiB3aGlsZSBh
IG5ldyByZXF1ZXN0IGlzIGluIHRoZSAicG9saWN5IiBzdGF0ZSwgdGhlIG9sZCBkb2N1bWVudCBs
b2FkZXIgbWF5CisgICAgLy8gYmUgY29uc3VsdGVkIGluIHBhcnRpY3VsYXIgYXMgaXQgbWFrZXMg
c2Vuc2UgdG8gaW1wbHkgY2VydGFpbiBzZXR0aW5ncyBvbiB0aGUgbmV3IGxvYWRlci4KKyAgICBS
ZWZQdHI8RG9jdW1lbnRMb2FkZXI+IG1fZG9jdW1lbnRMb2FkZXI7CisgICAgUmVmUHRyPERvY3Vt
ZW50TG9hZGVyPiBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXI7CisgICAgUmVmUHRyPERvY3Vt
ZW50TG9hZGVyPiBtX3BvbGljeURvY3VtZW50TG9hZGVyOwogCi0gICAgICAgIGJvb2wgbV9kZWxl
Z2F0ZUlzSGFuZGxpbmdQcm92aXNpb25hbExvYWRFcnJvcjsKKyAgICBib29sIG1fZGVsZWdhdGVJ
c0hhbmRsaW5nUHJvdmlzaW9uYWxMb2FkRXJyb3I7CiAKLSAgICAgICAgYm9vbCBtX2ZpcnN0TGF5
b3V0RG9uZTsKLSAgICAgICAgYm9vbCBtX3F1aWNrUmVkaXJlY3RDb21pbmc7Ci0gICAgICAgIGJv
b2wgbV9zZW50UmVkaXJlY3ROb3RpZmljYXRpb247Ci0gICAgICAgIGJvb2wgbV9pblN0b3BBbGxM
b2FkZXJzOworICAgIGJvb2wgbV9maXJzdExheW91dERvbmU7CisgICAgYm9vbCBtX3F1aWNrUmVk
aXJlY3RDb21pbmc7CisgICAgYm9vbCBtX3NlbnRSZWRpcmVjdE5vdGlmaWNhdGlvbjsKKyAgICBi
b29sIG1faW5TdG9wQWxsTG9hZGVyczsKIAotICAgICAgICBTdHJpbmcgbV9vdXRnb2luZ1JlZmVy
cmVyOworICAgIFN0cmluZyBtX291dGdvaW5nUmVmZXJyZXI7CiAKLSAgICAgICAgYm9vbCBtX2lz
RXhlY3V0aW5nSmF2YVNjcmlwdEZvcm1BY3Rpb247CisgICAgYm9vbCBtX2lzRXhlY3V0aW5nSmF2
YVNjcmlwdEZvcm1BY3Rpb247CiAKLSAgICAgICAgU3RyaW5nIG1fcmVzcG9uc2VNSU1FVHlwZTsK
KyAgICBTdHJpbmcgbV9yZXNwb25zZU1JTUVUeXBlOwogCi0gICAgICAgIGJvb2wgbV9kaWRDYWxs
SW1wbGljaXRDbG9zZTsKLSAgICAgICAgYm9vbCBtX3dhc1VubG9hZEV2ZW50RW1pdHRlZDsKLSAg
ICAgICAgYm9vbCBtX3VubG9hZEV2ZW50QmVpbmdEaXNwYXRjaGVkOwotICAgICAgICBib29sIG1f
aXNDb21wbGV0ZTsKLSAgICAgICAgYm9vbCBtX2lzTG9hZGluZ01haW5SZXNvdXJjZTsKKyAgICBi
b29sIG1fZGlkQ2FsbEltcGxpY2l0Q2xvc2U7CisgICAgYm9vbCBtX3dhc1VubG9hZEV2ZW50RW1p
dHRlZDsKKyAgICBib29sIG1fdW5sb2FkRXZlbnRCZWluZ0Rpc3BhdGNoZWQ7CisgICAgYm9vbCBt
X2lzQ29tcGxldGU7CisgICAgYm9vbCBtX2lzTG9hZGluZ01haW5SZXNvdXJjZTsKIAotICAgICAg
ICBLVVJMIG1fVVJMOwotICAgICAgICBLVVJMIG1fd29ya2luZ1VSTDsKKyAgICBLVVJMIG1fVVJM
OworICAgIEtVUkwgbV93b3JraW5nVVJMOwogCi0gICAgICAgIE93blB0cjxJY29uTG9hZGVyPiBt
X2ljb25Mb2FkZXI7Ci0gICAgICAgIGJvb2wgbV9tYXlMb2FkSWNvbkxhdGVyOworICAgIE93blB0
cjxJY29uTG9hZGVyPiBtX2ljb25Mb2FkZXI7CisgICAgYm9vbCBtX21heUxvYWRJY29uTGF0ZXI7
CiAKLSAgICAgICAgYm9vbCBtX2NhbmNlbGxpbmdXaXRoTG9hZEluUHJvZ3Jlc3M7CisgICAgYm9v
bCBtX2NhbmNlbGxpbmdXaXRoTG9hZEluUHJvZ3Jlc3M7CiAKLSAgICAgICAgYm9vbCBtX25lZWRz
Q2xlYXI7Ci0gICAgICAgIGJvb2wgbV9yZWNlaXZlZERhdGE7CisgICAgYm9vbCBtX25lZWRzQ2xl
YXI7CisgICAgYm9vbCBtX3JlY2VpdmVkRGF0YTsKIAotICAgICAgICBib29sIG1fZW5jb2RpbmdX
YXNDaG9zZW5CeVVzZXI7Ci0gICAgICAgIFN0cmluZyBtX2VuY29kaW5nOwotICAgICAgICBSZWZQ
dHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOworICAgIGJvb2wgbV9lbmNvZGluZ1dh
c0Nob3NlbkJ5VXNlcjsKKyAgICBTdHJpbmcgbV9lbmNvZGluZzsKKyAgICBSZWZQdHI8VGV4dFJl
c291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwogCi0gICAgICAgIGJvb2wgbV9jb250YWluc1BsdWdJ
bnM7CisgICAgYm9vbCBtX2NvbnRhaW5zUGx1Z0luczsKIAotICAgICAgICBLVVJMIG1fc3VibWl0
dGVkRm9ybVVSTDsKKyAgICBLVVJMIG1fc3VibWl0dGVkRm9ybVVSTDsKIAotICAgICAgICBUaW1l
cjxGcmFtZUxvYWRlcj4gbV9jaGVja1RpbWVyOwotICAgICAgICBib29sIG1fc2hvdWxkQ2FsbENo
ZWNrQ29tcGxldGVkOwotICAgICAgICBib29sIG1fc2hvdWxkQ2FsbENoZWNrTG9hZENvbXBsZXRl
OworICAgIFRpbWVyPEZyYW1lTG9hZGVyPiBtX2NoZWNrVGltZXI7CisgICAgYm9vbCBtX3Nob3Vs
ZENhbGxDaGVja0NvbXBsZXRlZDsKKyAgICBib29sIG1fc2hvdWxkQ2FsbENoZWNrTG9hZENvbXBs
ZXRlOwogCi0gICAgICAgIEZyYW1lKiBtX29wZW5lcjsKLSAgICAgICAgSGFzaFNldDxGcmFtZSo+
IG1fb3BlbmVkRnJhbWVzOworICAgIEZyYW1lKiBtX29wZW5lcjsKKyAgICBIYXNoU2V0PEZyYW1l
Kj4gbV9vcGVuZWRGcmFtZXM7CiAKLSAgICAgICAgYm9vbCBtX2NyZWF0aW5nSW5pdGlhbEVtcHR5
RG9jdW1lbnQ7Ci0gICAgICAgIGJvb2wgbV9pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVu
dDsKLSAgICAgICAgYm9vbCBtX2NvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZDsKKyAgICBi
b29sIG1fY3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudDsKKyAgICBib29sIG1faXNEaXNwbGF5
aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQ7CisgICAgYm9vbCBtX2NvbW1pdHRlZEZpcnN0UmVhbERv
Y3VtZW50TG9hZDsKIAotICAgICAgICBib29sIG1fZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbjsK
LSAgICAgICAgYm9vbCBtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZTsKLSAgICAgICAgCisgICAgYm9v
bCBtX2RpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb247CisgICAgYm9vbCBtX2xvYWRpbmdGcm9tQ2Fj
aGVkUGFnZTsKKyAgICAKICNpZm5kZWYgTkRFQlVHCi0gICAgICAgIGJvb2wgbV9kaWREaXNwYXRj
aERpZENvbW1pdExvYWQ7CisgICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0TG9hZDsKICNl
bmRpZgotICAgIH07Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmggYi9XZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5oCmluZGV4IGMxNjE1MTYuLjRlY2FlNjkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvSGlzdG9y
eUNvbnRyb2xsZXIuaApAQCAtMzcsNTggKzM3LDU4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotICAgIGNsYXNzIEZyYW1lOwotICAgIGNsYXNzIEhpc3RvcnlJdGVtOworY2xhc3MgRnJhbWU7
CitjbGFzcyBIaXN0b3J5SXRlbTsKIAotICAgIGNsYXNzIEhpc3RvcnlDb250cm9sbGVyIDogcHVi
bGljIE5vbmNvcHlhYmxlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEhpc3RvcnlDb250cm9sbGVy
KEZyYW1lKik7Ci0gICAgICAgIH5IaXN0b3J5Q29udHJvbGxlcigpOworY2xhc3MgSGlzdG9yeUNv
bnRyb2xsZXIgOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAgIEhpc3RvcnlDb250
cm9sbGVyKEZyYW1lKik7CisgICAgfkhpc3RvcnlDb250cm9sbGVyKCk7CiAKLSAgICAgICAgdm9p
ZCBzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qKTsKLSAg
ICAgICAgdm9pZCByZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKTsKKyAgICB2b2lk
IHNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSopOworICAg
IHZvaWQgcmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCk7CiAKLSAgICAgICAgdm9p
ZCB1cGRhdGVCYWNrRm9yd2FyZExpc3RGb3JGcmFnbWVudFNjcm9sbCgpOworICAgIHZvaWQgdXBk
YXRlQmFja0ZvcndhcmRMaXN0Rm9yRnJhZ21lbnRTY3JvbGwoKTsKIAotICAgICAgICB2b2lkIHNh
dmVEb2N1bWVudFN0YXRlKCk7Ci0gICAgICAgIHZvaWQgc2F2ZURvY3VtZW50QW5kU2Nyb2xsU3Rh
dGUoKTsKLSAgICAgICAgdm9pZCByZXN0b3JlRG9jdW1lbnRTdGF0ZSgpOworICAgIHZvaWQgc2F2
ZURvY3VtZW50U3RhdGUoKTsKKyAgICB2b2lkIHNhdmVEb2N1bWVudEFuZFNjcm9sbFN0YXRlKCk7
CisgICAgdm9pZCByZXN0b3JlRG9jdW1lbnRTdGF0ZSgpOwogCi0gICAgICAgIHZvaWQgaW52YWxp
ZGF0ZUN1cnJlbnRJdGVtQ2FjaGVkUGFnZSgpOworICAgIHZvaWQgaW52YWxpZGF0ZUN1cnJlbnRJ
dGVtQ2FjaGVkUGFnZSgpOwogCi0gICAgICAgIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0qLCBG
cmFtZUxvYWRUeXBlKTsKLSAgICAgICAgYm9vbCB1cmxzTWF0Y2hJdGVtKEhpc3RvcnlJdGVtKikg
Y29uc3Q7CisgICAgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSosIEZyYW1lTG9hZFR5cGUpOwor
ICAgIGJvb2wgdXJsc01hdGNoSXRlbShIaXN0b3J5SXRlbSopIGNvbnN0OwogCi0gICAgICAgIHZv
aWQgdXBkYXRlRm9yQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7Ci0gICAgICAgIHZvaWQgdXBkYXRl
Rm9yUmVsb2FkKCk7Ci0gICAgICAgIHZvaWQgdXBkYXRlRm9yU3RhbmRhcmRMb2FkKCk7Ci0gICAg
ICAgIHZvaWQgdXBkYXRlRm9yUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0KCk7Ci0g
ICAgICAgIHZvaWQgdXBkYXRlRm9yQ2xpZW50UmVkaXJlY3QoKTsKLSAgICAgICAgdm9pZCB1cGRh
dGVGb3JDb21taXQoKTsKLSAgICAgICAgdm9pZCB1cGRhdGVGb3JBbmNob3JTY3JvbGwoKTsKLSAg
ICAgICAgdm9pZCB1cGRhdGVGb3JGcmFtZUxvYWRDb21wbGV0ZWQoKTsKKyAgICB2b2lkIHVwZGF0
ZUZvckJhY2tGb3J3YXJkTmF2aWdhdGlvbigpOworICAgIHZvaWQgdXBkYXRlRm9yUmVsb2FkKCk7
CisgICAgdm9pZCB1cGRhdGVGb3JTdGFuZGFyZExvYWQoKTsKKyAgICB2b2lkIHVwZGF0ZUZvclJl
ZGlyZWN0V2l0aExvY2tlZEJhY2tGb3J3YXJkTGlzdCgpOworICAgIHZvaWQgdXBkYXRlRm9yQ2xp
ZW50UmVkaXJlY3QoKTsKKyAgICB2b2lkIHVwZGF0ZUZvckNvbW1pdCgpOworICAgIHZvaWQgdXBk
YXRlRm9yQW5jaG9yU2Nyb2xsKCk7CisgICAgdm9pZCB1cGRhdGVGb3JGcmFtZUxvYWRDb21wbGV0
ZWQoKTsKIAotICAgICAgICBIaXN0b3J5SXRlbSogY3VycmVudEl0ZW0oKSBjb25zdCB7IHJldHVy
biBtX2N1cnJlbnRJdGVtLmdldCgpOyB9Ci0gICAgICAgIHZvaWQgc2V0Q3VycmVudEl0ZW0oSGlz
dG9yeUl0ZW0qKTsKLSAgICAgICAgdm9pZCBzZXRDdXJyZW50SXRlbVRpdGxlKGNvbnN0IFN0cmlu
ZyYpOworICAgIEhpc3RvcnlJdGVtKiBjdXJyZW50SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fY3Vy
cmVudEl0ZW0uZ2V0KCk7IH0KKyAgICB2b2lkIHNldEN1cnJlbnRJdGVtKEhpc3RvcnlJdGVtKik7
CisgICAgdm9pZCBzZXRDdXJyZW50SXRlbVRpdGxlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAg
IEhpc3RvcnlJdGVtKiBwcm92aXNpb25hbEl0ZW0oKSBjb25zdCB7IHJldHVybiBtX3Byb3Zpc2lv
bmFsSXRlbS5nZXQoKTsgfQotICAgICAgICB2b2lkIHNldFByb3Zpc2lvbmFsSXRlbShIaXN0b3J5
SXRlbSopOworICAgIEhpc3RvcnlJdGVtKiBwcm92aXNpb25hbEl0ZW0oKSBjb25zdCB7IHJldHVy
biBtX3Byb3Zpc2lvbmFsSXRlbS5nZXQoKTsgfQorICAgIHZvaWQgc2V0UHJvdmlzaW9uYWxJdGVt
KEhpc3RvcnlJdGVtKik7CiAKLSAgICBwcml2YXRlOgotICAgICAgICBQYXNzUmVmUHRyPEhpc3Rv
cnlJdGVtPiBjcmVhdGVJdGVtKGJvb2wgdXNlT3JpZ2luYWwpOwotICAgICAgICBQYXNzUmVmUHRy
PEhpc3RvcnlJdGVtPiBjcmVhdGVJdGVtVHJlZShGcmFtZSogdGFyZ2V0RnJhbWUsIGJvb2wgY2xp
cEF0VGFyZ2V0KTsKK3ByaXZhdGU6CisgICAgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4gY3JlYXRl
SXRlbShib29sIHVzZU9yaWdpbmFsKTsKKyAgICBQYXNzUmVmUHRyPEhpc3RvcnlJdGVtPiBjcmVh
dGVJdGVtVHJlZShGcmFtZSogdGFyZ2V0RnJhbWUsIGJvb2wgY2xpcEF0VGFyZ2V0KTsKIAotICAg
ICAgICB2b2lkIHJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtKiwgSGlzdG9yeUl0ZW0qLCBG
cmFtZUxvYWRUeXBlKTsKLSAgICAgICAgYm9vbCBjaGlsZEZyYW1lc01hdGNoSXRlbShIaXN0b3J5
SXRlbSopIGNvbnN0OwotICAgICAgICB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkTGlzdENsaXBwZWRB
dFRhcmdldChib29sIGRvQ2xpcCk7CisgICAgdm9pZCByZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5
SXRlbSosIEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlwZSk7CisgICAgYm9vbCBjaGlsZEZyYW1l
c01hdGNoSXRlbShIaXN0b3J5SXRlbSopIGNvbnN0OworICAgIHZvaWQgdXBkYXRlQmFja0Zvcndh
cmRMaXN0Q2xpcHBlZEF0VGFyZ2V0KGJvb2wgZG9DbGlwKTsKIAotICAgICAgICBGcmFtZSogbV9m
cmFtZTsKKyAgICBGcmFtZSogbV9mcmFtZTsKIAotICAgICAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+
IG1fY3VycmVudEl0ZW07Ci0gICAgICAgIFJlZlB0cjxIaXN0b3J5SXRlbT4gbV9wcmV2aW91c0l0
ZW07Ci0gICAgICAgIFJlZlB0cjxIaXN0b3J5SXRlbT4gbV9wcm92aXNpb25hbEl0ZW07Ci0gICAg
fTsKKyAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IG1fY3VycmVudEl0ZW07CisgICAgUmVmUHRyPEhp
c3RvcnlJdGVtPiBtX3ByZXZpb3VzSXRlbTsKKyAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IG1fcHJv
dmlzaW9uYWxJdGVtOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDYWxsYmFjay5oIGIvV2ViQ29yZS9sb2FkZXIvUG9saWN5
Q2FsbGJhY2suaAppbmRleCAyYWE3YzdjLi43NTdmZmY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9Qb2xpY3lDYWxsYmFjay5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNr
LmgKQEAgLTM3LDQzICszNyw0MyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFz
cyBGb3JtU3RhdGU7CitjbGFzcyBGb3JtU3RhdGU7CiAKLSAgICB0eXBlZGVmIHZvaWQgKCpOYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbikodm9pZCogYXJndW1lbnQsCi0gICAgICAgIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRD
b250aW51ZSk7Ci0gICAgdHlwZWRlZiB2b2lkICgqTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5j
dGlvbikodm9pZCogYXJndW1lbnQsCi0gICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBh
c3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgc2hvdWxk
Q29udGludWUpOwotICAgIHR5cGVkZWYgdm9pZCAoKkNvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0
aW9uKSh2b2lkKiBhcmd1bWVudCwgUG9saWN5QWN0aW9uKTsKK3R5cGVkZWYgdm9pZCAoKk5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uKSh2b2lkKiBhcmd1bWVudCwKKyAgICBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxkQ29udGlu
dWUpOwordHlwZWRlZiB2b2lkICgqTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbikodm9p
ZCogYXJndW1lbnQsCisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3Jt
U3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgYm9vbCBzaG91bGRDb250aW51ZSk7Cit0
eXBlZGVmIHZvaWQgKCpDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbikodm9pZCogYXJndW1l
bnQsIFBvbGljeUFjdGlvbik7CiAKLSAgICBjbGFzcyBQb2xpY3lDYWxsYmFjayB7Ci0gICAgcHVi
bGljOgotICAgICAgICBQb2xpY3lDYWxsYmFjaygpOwotICAgICAgICB+UG9saWN5Q2FsbGJhY2so
KTsKK2NsYXNzIFBvbGljeUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICBQb2xpY3lDYWxsYmFjaygp
OworICAgIH5Qb2xpY3lDYWxsYmFjaygpOwogCi0gICAgICAgIHZvaWQgY2xlYXIoKTsKLSAgICAg
ICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+
LAotICAgICAgICAgICAgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFy
Z3VtZW50KTsKLSAgICAgICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1Jl
ZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwKLSAgICAgICAgICAgIE5l
d1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsKLSAgICAgICAg
dm9pZCBzZXQoQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsK
KyAgICB2b2lkIGNsZWFyKCk7CisgICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UGFzc1JlZlB0cjxGb3JtU3RhdGU+LAorICAgICAgICBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25G
dW5jdGlvbiwgdm9pZCogYXJndW1lbnQpOworICAgIHZvaWQgc2V0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsCisg
ICAgICAgIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsK
KyAgICB2b2lkIHNldChDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgdm9pZCogYXJndW1l
bnQpOwogCi0gICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVxdWVzdDsgfQotICAgICAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOworICAgIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsg
fQorICAgIHZvaWQgY2xlYXJSZXF1ZXN0KCk7CiAKLSAgICAgICAgdm9pZCBjYWxsKGJvb2wgc2hv
dWxkQ29udGludWUpOwotICAgICAgICB2b2lkIGNhbGwoUG9saWN5QWN0aW9uKTsKLSAgICAgICAg
dm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIGNhbGwoYm9vbCBzaG91bGRDb250aW51ZSk7CisgICAg
dm9pZCBjYWxsKFBvbGljeUFjdGlvbik7CisgICAgdm9pZCBjYW5jZWwoKTsKIAotICAgIHByaXZh
dGU6Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7Ci0gICAgICAgIFJlZlB0cjxG
b3JtU3RhdGU+IG1fZm9ybVN0YXRlOwotICAgICAgICBTdHJpbmcgbV9mcmFtZU5hbWU7Citwcml2
YXRlOgorICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgUmVmUHRyPEZvcm1TdGF0
ZT4gbV9mb3JtU3RhdGU7CisgICAgU3RyaW5nIG1fZnJhbWVOYW1lOwogCi0gICAgICAgIE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIG1fbmF2aWdhdGlvbkZ1bmN0aW9uOwotICAgICAg
ICBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIG1fbmV3V2luZG93RnVuY3Rpb247Ci0g
ICAgICAgIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIG1fY29udGVudEZ1bmN0aW9uOwot
ICAgICAgICB2b2lkKiBtX2FyZ3VtZW50OwotICAgIH07CisgICAgTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uRnVuY3Rpb24gbV9uYXZpZ2F0aW9uRnVuY3Rpb247CisgICAgTmV3V2luZG93UG9saWN5
RGVjaXNpb25GdW5jdGlvbiBtX25ld1dpbmRvd0Z1bmN0aW9uOworICAgIENvbnRlbnRQb2xpY3lE
ZWNpc2lvbkZ1bmN0aW9uIG1fY29udGVudEZ1bmN0aW9uOworICAgIHZvaWQqIG1fYXJndW1lbnQ7
Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAppbmRl
eCBjNjY3ZjViLi41NDE3MjljIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVj
a2VyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCkBAIC0zOCw1OSArMzgs
NTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7
Ci0gICAgY2xhc3MgRm9ybVN0YXRlOwotICAgIGNsYXNzIEZyYW1lOwotICAgIGNsYXNzIE5hdmln
YXRpb25BY3Rpb247Ci0gICAgY2xhc3MgUmVzb3VyY2VFcnJvcjsKLSAgICBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOwotCi0gICAgY2xhc3MgUG9saWN5Q2hlY2tlciA6IHB1YmxpYyBOb25jb3B5YWJs
ZSB7Ci0gICAgcHVibGljOgotICAgICAgICBQb2xpY3lDaGVja2VyKEZyYW1lKik7Ci0KLSAgICAg
ICAgdm9pZCBjaGVja05hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRG9j
dW1lbnRMb2FkZXIqLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbkZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCk7Ci0gICAgICAgIHZvaWQgY2hlY2tOYXZpZ2F0
aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
bkZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCk7Ci0gICAgICAgIHZvaWQgY2hlY2tOZXdXaW5kb3dQ
b2xpY3koY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVu
Y3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIHZvaWQqIGFyZ3VtZW50KTsKLSAgICAgICAgdm9pZCBjaGVj
a0NvbnRlbnRQb2xpY3koY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgQ29udGVudFBvbGljeURlY2lz
aW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsKLQotICAgICAgICAvLyBGSVhNRTogVGhlc2Ug
YXJlIGRpZmZlcmVudC4gIFRoZXkgY291bGQgdXNlIGJldHRlciBuYW1lcy4KLSAgICAgICAgdm9p
ZCBjYW5jZWxDaGVjaygpOwotICAgICAgICB2b2lkIHN0b3BDaGVjaygpOwotCi0gICAgICAgIHZv
aWQgY2Fubm90U2hvd01JTUVUeXBlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLQotICAgICAg
ICBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkVHlwZTsgfQot
ICAgICAgICB2b2lkIHNldExvYWRUeXBlKEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUpIHsgbV9sb2Fk
VHlwZSA9IGxvYWRUeXBlOyB9Ci0KLSAgICAgICAgYm9vbCBkZWxlZ2F0ZUlzRGVjaWRpbmdOYXZp
Z2F0aW9uUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0
aW9uUG9saWN5OyB9Ci0gICAgICAgIGJvb2wgZGVsZWdhdGVJc0hhbmRsaW5nVW5pbXBsZW1lbnRh
YmxlUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9kZWxlZ2F0ZUlzSGFuZGxpbmdVbmltcGxlbWVu
dGFibGVQb2xpY3k7IH0KLQotICAgICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpcyBhIGNo
ZWF0LiAgQmFzaWNhbGx5LCB0aGlzIGlzIGp1c3QgYW4gYXN5bmNocm9ub3VjIGNhbGxiYWNrCi0g
ICAgICAgIC8vIGZyb20gdGhlIEZyYW1lTG9hZGVyQ2xpZW50LCBidXQgdGhpcyBjYWxsYmFjayB1
c2VzIHRoZSBwb2xpY3kgdHlwZXMgYW5kIHNvIGhhcyB0bwotICAgICAgICAvLyBsaXZlIG9uIHRo
aXMgb2JqZWN0LiAgSW4gdGhlIGxvbmcgdGVybSwgd2Ugc2hvdWxkIGNyZWF0ZSBhIHR5cGUgZm9y
IG5vbi1wb2xpY3kKLSAgICAgICAgLy8gY2FsbGJhY2tzIGZyb20gdGhlIEZyYW1lTG9hZGVyQ2xp
ZW50IGFuZCByZW1vdmUgdGhpcyB2ZXN0aWdlLiAgSSBqdXN0IGRvbid0IGhhdmUKLSAgICAgICAg
Ly8gdGhlIGhlYXJ0IHRvIGhhY2sgb24gYWxsIHRoZSBwbGF0Zm9ybXMgdG8gbWFrZSB0aGF0IGhh
cHBlbiByaWdodCBub3cuCi0gICAgICAgIHZvaWQgY29udGludWVMb2FkQWZ0ZXJXaWxsU3VibWl0
Rm9ybShQb2xpY3lBY3Rpb24pOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBjb250aW51
ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lBY3Rpb24pOwotICAgICAgICB2b2lkIGNvbnRp
bnVlQWZ0ZXJOZXdXaW5kb3dQb2xpY3koUG9saWN5QWN0aW9uKTsKLSAgICAgICAgdm9pZCBjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb24pOwotCi0gICAgICAgIHZvaWQgaGFu
ZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLQotICAgICAg
ICBGcmFtZSogbV9mcmFtZTsKLQotICAgICAgICBib29sIG1fZGVsZWdhdGVJc0RlY2lkaW5nTmF2
aWdhdGlvblBvbGljeTsKLSAgICAgICAgYm9vbCBtX2RlbGVnYXRlSXNIYW5kbGluZ1VuaW1wbGVt
ZW50YWJsZVBvbGljeTsKLQotICAgICAgICAvLyBUaGlzIGlkZW50aWZpZXMgdGhlIHR5cGUgb2Yg
bmF2aWdhdGlvbiBhY3Rpb24gd2hpY2ggcHJvbXB0ZWQgdGhpcyBsb2FkLiBOb3RlIAotICAgICAg
ICAvLyB0aGF0IFdlYktpdCBjb252ZXlzIHRoaXMgdmFsdWUgYXMgdGhlIFdlYkFjdGlvbk5hdmln
YXRpb25UeXBlS2V5IHZhbHVlCi0gICAgICAgIC8vIG9uIG5hdmlnYXRpb24gYWN0aW9uIGRlbGVn
YXRlIGNhbGxiYWNrcy4KLSAgICAgICAgRnJhbWVMb2FkVHlwZSBtX2xvYWRUeXBlOwotICAgICAg
ICBQb2xpY3lDYWxsYmFjayBtX2NhbGxiYWNrOwotICAgIH07CitjbGFzcyBEb2N1bWVudExvYWRl
cjsKK2NsYXNzIEZvcm1TdGF0ZTsKK2NsYXNzIEZyYW1lOworY2xhc3MgTmF2aWdhdGlvbkFjdGlv
bjsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworCitjbGFz
cyBQb2xpY3lDaGVja2VyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBQb2xp
Y3lDaGVja2VyKEZyYW1lKik7CisKKyAgICB2b2lkIGNoZWNrTmF2aWdhdGlvblBvbGljeShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBEb2N1bWVudExvYWRlciosIFBhc3NSZWZQdHI8Rm9ybVN0YXRl
PiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsKKyAg
ICB2b2lkIGNoZWNrTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpOworICAgIHZvaWQg
Y2hlY2tOZXdXaW5kb3dQb2xpY3koY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld1dpbmRvd1Bv
bGljeURlY2lzaW9uRnVuY3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8
Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHZvaWQqIGFyZ3VtZW50KTsKKyAg
ICB2b2lkIGNoZWNrQ29udGVudFBvbGljeShjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBDb250ZW50
UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpOworCisgICAgLy8gRklYTUU6
IFRoZXNlIGFyZSBkaWZmZXJlbnQuICBUaGV5IGNvdWxkIHVzZSBiZXR0ZXIgbmFtZXMuCisgICAg
dm9pZCBjYW5jZWxDaGVjaygpOworICAgIHZvaWQgc3RvcENoZWNrKCk7CisKKyAgICB2b2lkIGNh
bm5vdFNob3dNSU1FVHlwZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisKKyAgICBGcmFtZUxv
YWRUeXBlIGxvYWRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkVHlwZTsgfQorICAgIHZvaWQg
c2V0TG9hZFR5cGUoRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSkgeyBtX2xvYWRUeXBlID0gbG9hZFR5
cGU7IH0KKworICAgIGJvb2wgZGVsZWdhdGVJc0RlY2lkaW5nTmF2aWdhdGlvblBvbGljeSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsZWdhdGVJc0RlY2lkaW5nTmF2aWdhdGlvblBvbGljeTsgfQorICAg
IGJvb2wgZGVsZWdhdGVJc0hhbmRsaW5nVW5pbXBsZW1lbnRhYmxlUG9saWN5KCkgY29uc3QgeyBy
ZXR1cm4gbV9kZWxlZ2F0ZUlzSGFuZGxpbmdVbmltcGxlbWVudGFibGVQb2xpY3k7IH0KKworICAg
IC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzIGEgY2hlYXQuICBCYXNpY2FsbHksIHRoaXMgaXMg
anVzdCBhbiBhc3luY2hyb25vdWMgY2FsbGJhY2sKKyAgICAvLyBmcm9tIHRoZSBGcmFtZUxvYWRl
ckNsaWVudCwgYnV0IHRoaXMgY2FsbGJhY2sgdXNlcyB0aGUgcG9saWN5IHR5cGVzIGFuZCBzbyBo
YXMgdG8KKyAgICAvLyBsaXZlIG9uIHRoaXMgb2JqZWN0LiAgSW4gdGhlIGxvbmcgdGVybSwgd2Ug
c2hvdWxkIGNyZWF0ZSBhIHR5cGUgZm9yIG5vbi1wb2xpY3kKKyAgICAvLyBjYWxsYmFja3MgZnJv
bSB0aGUgRnJhbWVMb2FkZXJDbGllbnQgYW5kIHJlbW92ZSB0aGlzIHZlc3RpZ2UuICBJIGp1c3Qg
ZG9uJ3QgaGF2ZQorICAgIC8vIHRoZSBoZWFydCB0byBoYWNrIG9uIGFsbCB0aGUgcGxhdGZvcm1z
IHRvIG1ha2UgdGhhdCBoYXBwZW4gcmlnaHQgbm93LgorICAgIHZvaWQgY29udGludWVMb2FkQWZ0
ZXJXaWxsU3VibWl0Rm9ybShQb2xpY3lBY3Rpb24pOworCitwcml2YXRlOgorICAgIHZvaWQgY29u
dGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5QWN0aW9uKTsKKyAgICB2b2lkIGNvbnRp
bnVlQWZ0ZXJOZXdXaW5kb3dQb2xpY3koUG9saWN5QWN0aW9uKTsKKyAgICB2b2lkIGNvbnRpbnVl
QWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlvbik7CisKKyAgICB2b2lkIGhhbmRsZVVuaW1w
bGVtZW50YWJsZVBvbGljeShjb25zdCBSZXNvdXJjZUVycm9yJik7CisKKyAgICBGcmFtZSogbV9m
cmFtZTsKKworICAgIGJvb2wgbV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5Owor
ICAgIGJvb2wgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdVbmltcGxlbWVudGFibGVQb2xpY3k7CisKKyAg
ICAvLyBUaGlzIGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgbmF2aWdhdGlvbiBhY3Rpb24gd2hpY2gg
cHJvbXB0ZWQgdGhpcyBsb2FkLiBOb3RlIAorICAgIC8vIHRoYXQgV2ViS2l0IGNvbnZleXMgdGhp
cyB2YWx1ZSBhcyB0aGUgV2ViQWN0aW9uTmF2aWdhdGlvblR5cGVLZXkgdmFsdWUKKyAgICAvLyBv
biBuYXZpZ2F0aW9uIGFjdGlvbiBkZWxlZ2F0ZSBjYWxsYmFja3MuCisgICAgRnJhbWVMb2FkVHlw
ZSBtX2xvYWRUeXBlOworICAgIFBvbGljeUNhbGxiYWNrIG1fY2FsbGJhY2s7Cit9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1JlZGlyZWN0
U2NoZWR1bGVyLmggYi9XZWJDb3JlL2xvYWRlci9SZWRpcmVjdFNjaGVkdWxlci5oCmluZGV4IGJm
MDc2ZDYuLjAwNWExNzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1JlZGlyZWN0U2NoZWR1
bGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuaApAQCAtMzksNDIg
KzM5LDQyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEZvcm1TdGF0ZTsK
LSAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBTdHJpbmc7CitjbGFzcyBGb3JtU3RhdGU7Citj
bGFzcyBGcmFtZTsKK2NsYXNzIFN0cmluZzsKIAotICAgIHN0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0
OwotICAgIHN0cnVjdCBTY2hlZHVsZWRSZWRpcmVjdGlvbjsKK3N0cnVjdCBGcmFtZUxvYWRSZXF1
ZXN0Oworc3RydWN0IFNjaGVkdWxlZFJlZGlyZWN0aW9uOwogCi0gICAgY2xhc3MgUmVkaXJlY3RT
Y2hlZHVsZXIgOiBwdWJsaWMgTm9uY29weWFibGUgewotICAgIHB1YmxpYzoKLSAgICAgICAgUmVk
aXJlY3RTY2hlZHVsZXIoRnJhbWUqKTsKLSAgICAgICAgflJlZGlyZWN0U2NoZWR1bGVyKCk7Citj
bGFzcyBSZWRpcmVjdFNjaGVkdWxlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6Cisg
ICAgUmVkaXJlY3RTY2hlZHVsZXIoRnJhbWUqKTsKKyAgICB+UmVkaXJlY3RTY2hlZHVsZXIoKTsK
IAotICAgICAgICBib29sIHJlZGlyZWN0U2NoZWR1bGVkRHVyaW5nTG9hZCgpOwotICAgICAgICBi
b29sIGxvY2F0aW9uQ2hhbmdlUGVuZGluZygpOworICAgIGJvb2wgcmVkaXJlY3RTY2hlZHVsZWRE
dXJpbmdMb2FkKCk7CisgICAgYm9vbCBsb2NhdGlvbkNoYW5nZVBlbmRpbmcoKTsKIAotICAgICAg
ICB2b2lkIHNjaGVkdWxlUmVkaXJlY3QoZG91YmxlIGRlbGF5LCBjb25zdCBTdHJpbmcmIHVybCk7
Ci0gICAgICAgIHZvaWQgc2NoZWR1bGVMb2NhdGlvbkNoYW5nZShjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBsb2NrSGlzdG9yeSA9IHRydWUsIGJvb2wgbG9j
a0JhY2tGb3J3YXJkTGlzdCA9IHRydWUsIGJvb2wgdXNlckdlc3R1cmUgPSBmYWxzZSk7Ci0gICAg
ICAgIHZvaWQgc2NoZWR1bGVGb3JtU3VibWlzc2lvbihjb25zdCBGcmFtZUxvYWRSZXF1ZXN0Jiwg
Ym9vbCBsb2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRl
Pik7Ci0gICAgICAgIHZvaWQgc2NoZWR1bGVSZWZyZXNoKGJvb2wgdXNlckdlc3R1cmUgPSBmYWxz
ZSk7Ci0gICAgICAgIHZvaWQgc2NoZWR1bGVIaXN0b3J5TmF2aWdhdGlvbihpbnQgc3RlcHMpOwor
ICAgIHZvaWQgc2NoZWR1bGVSZWRpcmVjdChkb3VibGUgZGVsYXksIGNvbnN0IFN0cmluZyYgdXJs
KTsKKyAgICB2b2lkIHNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgbG9ja0hpc3RvcnkgPSB0cnVlLCBib29sIGxvY2tC
YWNrRm9yd2FyZExpc3QgPSB0cnVlLCBib29sIHVzZXJHZXN0dXJlID0gZmFsc2UpOworICAgIHZv
aWQgc2NoZWR1bGVGb3JtU3VibWlzc2lvbihjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgYm9vbCBs
b2NrSGlzdG9yeSwgUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7Cisg
ICAgdm9pZCBzY2hlZHVsZVJlZnJlc2goYm9vbCB1c2VyR2VzdHVyZSA9IGZhbHNlKTsKKyAgICB2
b2lkIHNjaGVkdWxlSGlzdG9yeU5hdmlnYXRpb24oaW50IHN0ZXBzKTsKIAotICAgICAgICB2b2lk
IHN0YXJ0VGltZXIoKTsKKyAgICB2b2lkIHN0YXJ0VGltZXIoKTsKIAotICAgICAgICB2b2lkIGNh
bmNlbChib29sIG5ld0xvYWRJblByb2dyZXNzID0gZmFsc2UpOwotICAgICAgICB2b2lkIGNsZWFy
KCk7CisgICAgdm9pZCBjYW5jZWwoYm9vbCBuZXdMb2FkSW5Qcm9ncmVzcyA9IGZhbHNlKTsKKyAg
ICB2b2lkIGNsZWFyKCk7CiAKLSAgICBwcml2YXRlOgotICAgICAgICB2b2lkIHRpbWVyRmlyZWQo
VGltZXI8UmVkaXJlY3RTY2hlZHVsZXI+Kik7Ci0gICAgICAgIHZvaWQgc2NoZWR1bGUoUGFzc093
blB0cjxTY2hlZHVsZWRSZWRpcmVjdGlvbj4pOworcHJpdmF0ZToKKyAgICB2b2lkIHRpbWVyRmly
ZWQoVGltZXI8UmVkaXJlY3RTY2hlZHVsZXI+Kik7CisgICAgdm9pZCBzY2hlZHVsZShQYXNzT3du
UHRyPFNjaGVkdWxlZFJlZGlyZWN0aW9uPik7CiAKLSAgICAgICAgc3RhdGljIGJvb2wgbXVzdExv
Y2tCYWNrRm9yd2FyZExpc3QoRnJhbWUqIHRhcmdldEZyYW1lKTsKKyAgICBzdGF0aWMgYm9vbCBt
dXN0TG9ja0JhY2tGb3J3YXJkTGlzdChGcmFtZSogdGFyZ2V0RnJhbWUpOwogCi0gICAgICAgIEZy
YW1lKiBtX2ZyYW1lOwotICAgICAgICBUaW1lcjxSZWRpcmVjdFNjaGVkdWxlcj4gbV90aW1lcjsK
LSAgICAgICAgT3duUHRyPFNjaGVkdWxlZFJlZGlyZWN0aW9uPiBtX3NjaGVkdWxlZFJlZGlyZWN0
aW9uOwotICAgIH07CisgICAgRnJhbWUqIG1fZnJhbWU7CisgICAgVGltZXI8UmVkaXJlY3RTY2hl
ZHVsZXI+IG1fdGltZXI7CisgICAgT3duUHRyPFNjaGVkdWxlZFJlZGlyZWN0aW9uPiBtX3NjaGVk
dWxlZFJlZGlyZWN0aW9uOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oIGIvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaAppbmRleCA5MzQxMTcxLi42MDVkM2U0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCisrKyBiL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgKQEAgLTM0LDQxICszNCw0MSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKLSAg
ICBjbGFzcyBEb2N1bWVudExvYWRlcjsKLSAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBSZXNv
dXJjZUVycm9yOwotICAgIGNsYXNzIFJlc291cmNlTG9hZGVyOwotICAgIGNsYXNzIFJlc291cmNl
UmVzcG9uc2U7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotICAgIGNsYXNzIFNjcmlwdFN0
cmluZzsKK2NsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOworY2xhc3MgRG9jdW1lbnRMb2Fk
ZXI7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFJlc291cmNlRXJyb3I7CitjbGFzcyBSZXNvdXJjZUxv
YWRlcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Citj
bGFzcyBTY3JpcHRTdHJpbmc7CiAKLSAgICBjbGFzcyBSZXNvdXJjZUxvYWROb3RpZmllciA6IHB1
YmxpYyBOb25jb3B5YWJsZSB7Ci0gICAgcHVibGljOgotICAgICAgICBSZXNvdXJjZUxvYWROb3Rp
ZmllcihGcmFtZSopOworY2xhc3MgUmVzb3VyY2VMb2FkTm90aWZpZXIgOiBwdWJsaWMgTm9uY29w
eWFibGUgeworcHVibGljOgorICAgIFJlc291cmNlTG9hZE5vdGlmaWVyKEZyYW1lKik7CiAKLSAg
ICAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VMb2Fk
ZXIqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwotICAgICAgICB2b2lkIGRpZENh
bmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7
CisgICAgdm9pZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUxvYWRl
ciosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAKLSAgICAgICAgdm9pZCBhc3Np
Z25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZUxvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOwotICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUxvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICAgICAgdm9pZCBkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUxvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNl
aXZlZCk7Ci0gICAgICAgIHZvaWQgZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRlciopOwotICAg
ICAgICB2b2lkIGRpZEZhaWxUb0xvYWQoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJik7Ci0gICAgICAgIHZvaWQgZGlkTG9hZFJlc291cmNlQnlYTUxIdHRwUmVxdWVzdCh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFNjcmlwdFN0cmluZyYgc291cmNlU3RyaW5nKTsK
KyAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCB3aWxsU2VuZFJl
cXVlc3QoUmVzb3VyY2VMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlTG9hZGVyKiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJl
Y2VpdmVkKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWQoUmVzb3VyY2VMb2FkZXIqKTsKKyAgICB2
b2lkIGRpZEZhaWxUb0xvYWQoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7
CisgICAgdm9pZCBkaWRMb2FkUmVzb3VyY2VCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgU2NyaXB0U3RyaW5nJiBzb3VyY2VTdHJpbmcpOwogCi0gICAgICAg
IHZvaWQgZGlzcGF0Y2hBc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
Ci0gICAgICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwotICAgICAgICB2b2lkIGRpc3BhdGNoRGlkUmVj
ZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZl
Q29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
aW50IGxlbmd0aCk7Ci0gICAgICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3Vt
ZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpc3BhdGNo
QXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgZGlz
cGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UpOworICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KTsKKyAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGgpOworICAgIHZvaWQgZGlz
cGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyKTsKIAotICAgIHByaXZhdGU6Ci0gICAgICAgIGlubGluZSBEb2N1bWVudExvYWRlciog
YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKK3ByaXZhdGU6CisgICAgaW5saW5lIERvY3Vt
ZW50TG9hZGVyKiBhY3RpdmVEb2N1bWVudExvYWRlcigpIGNvbnN0OwogCi0gICAgICAgIEZyYW1l
KiBtX2ZyYW1lOwotICAgIH07CisgICAgRnJhbWUqIG1fZnJhbWU7Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3Jl
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41272</attachid>
            <date>2009-10-15 23:14:35 -0700</date>
            <delta_ts>2009-10-16 16:44:56 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30430-20091015231433.patch</filename>
            <type>text/plain</type>
            <size>55895</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWJkMDI5Yi4uYTExYzFjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAwOS0xMC0xNiAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZpeCBoZWFkZXIgaW5kZW50IHN0eWxlIGZvciBGcmFtZUxvYWRlciBhbmQg
ZnJpZW5kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzA0MzAKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpw
b2xpY3lDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoaXN0b3J5KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpub3RpZmllcik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6aXNMb2FkaW5nTWFpblJlc291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpkb2N1bWVudExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6cG9saWN5RG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OnN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnVybCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6aXNMb2FkaW5nRnJvbUNhY2hlZFBhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmNvbW1pdHRpbmdGaXJzdFJlYWxMb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpjb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQpOgor
ICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6
SGlzdG9yeUNvbnRyb2xsZXI6OmN1cnJlbnRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3Rv
cnlDb250cm9sbGVyOjpwcm92aXNpb25hbEl0ZW0pOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lD
YWxsYmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5Q2FsbGJhY2s6OnJlcXVlc3QpOgor
ICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQb2xp
Y3lDaGVja2VyOjpsb2FkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpz
ZXRMb2FkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpkZWxlZ2F0ZUlz
RGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OlBvbGljeUNoZWNr
ZXI6OmRlbGVnYXRlSXNIYW5kbGluZ1VuaW1wbGVtZW50YWJsZVBvbGljeSk6CisgICAgICAgICog
bG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9h
ZE5vdGlmaWVyLmg6CisKIDIwMDktMTAtMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmlu
ZGV4IGUwYzhhOGIuLmVlY2FiY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtNDQsNDY1ICs0NCw0
NjUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgQXJjaGl2ZTsKLSAgICBj
bGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKLSAgICBjbGFzcyBDYWNoZWRGcmFtZUJhc2U7
Ci0gICAgY2xhc3MgQ2FjaGVkUGFnZTsKLSAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKLSAgICBj
bGFzcyBEb2N1bWVudDsKLSAgICBjbGFzcyBEb2N1bWVudExvYWRlcjsKLSAgICBjbGFzcyBFdmVu
dDsKLSAgICBjbGFzcyBGb3JtRGF0YTsKLSAgICBjbGFzcyBGb3JtU3RhdGU7Ci0gICAgY2xhc3Mg
RnJhbWU7Ci0gICAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7Ci0gICAgY2xhc3MgSGlzdG9yeUl0
ZW07Ci0gICAgY2xhc3MgSFRNTEFwcGxldEVsZW1lbnQ7Ci0gICAgY2xhc3MgSFRNTEZvcm1FbGVt
ZW50OwotICAgIGNsYXNzIEhUTUxGcmFtZU93bmVyRWxlbWVudDsKLSAgICBjbGFzcyBJY29uTG9h
ZGVyOwotICAgIGNsYXNzIEludFNpemU7Ci0gICAgY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKLSAg
ICBjbGFzcyBSZW5kZXJQYXJ0OwotICAgIGNsYXNzIFJlc291cmNlRXJyb3I7Ci0gICAgY2xhc3Mg
UmVzb3VyY2VMb2FkZXI7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLSAgICBjbGFzcyBT
Y3JpcHRTb3VyY2VDb2RlOwotICAgIGNsYXNzIFNjcmlwdFN0cmluZzsKLSAgICBjbGFzcyBTY3Jp
cHRWYWx1ZTsKLSAgICBjbGFzcyBTZWN1cml0eU9yaWdpbjsKLSAgICBjbGFzcyBTaGFyZWRCdWZm
ZXI7Ci0gICAgY2xhc3MgU3Vic3RpdHV0ZURhdGE7Ci0gICAgY2xhc3MgVGV4dFJlc291cmNlRGVj
b2RlcjsKLSAgICBjbGFzcyBXaWRnZXQ7Ci0KLSAgICBzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVzdDsK
LSAgICBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7Ci0KLSAgICBib29sIGlzQmFja0ZvcndhcmRMb2Fk
VHlwZShGcmFtZUxvYWRUeXBlKTsKLQotICAgIGNsYXNzIEZyYW1lTG9hZGVyIDogcHVibGljIE5v
bmNvcHlhYmxlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEZyYW1lTG9hZGVyKEZyYW1lKiwgRnJh
bWVMb2FkZXJDbGllbnQqKTsKLSAgICAgICAgfkZyYW1lTG9hZGVyKCk7Ci0KLSAgICAgICAgdm9p
ZCBpbml0KCk7Ci0KLSAgICAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFt
ZTsgfQotCi0gICAgICAgIFBvbGljeUNoZWNrZXIqIHBvbGljeUNoZWNrZXIoKSBjb25zdCB7IHJl
dHVybiAmbV9wb2xpY3lDaGVja2VyOyB9Ci0gICAgICAgIEhpc3RvcnlDb250cm9sbGVyKiBoaXN0
b3J5KCkgY29uc3QgeyByZXR1cm4gJm1faGlzdG9yeTsgfQotICAgICAgICBSZXNvdXJjZUxvYWRO
b3RpZmllciogbm90aWZpZXIoKSBjb25zdCB7IHJldHVybiAmbV9ub3RpZmVyOyB9Ci0KLSAgICAg
ICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGNvb2wsIHBlb3BsZS4gVGhlcmUgYXJlIHRvbyBtYW55
IGRpZmZlcmVudCBmdW5jdGlvbnMgdGhhdCBhbGwgc3RhcnQgbG9hZHMuCi0gICAgICAgIC8vIFdl
IHNob3VsZCBhaW0gdG8gY29uc29saWRhdGUgdGhlc2UgaW50byBhIHNtYWxsZXIgc2V0IG9mIGZ1
bmN0aW9ucywgYW5kIHRyeSB0byByZXVzZSBtb3JlIG9mCi0gICAgICAgIC8vIHRoZSBsb2dpYyBi
eSBleHRyYWN0aW5nIGNvbW1vbiBjb2RlIHBhdGhzLgotCi0gICAgICAgIHZvaWQgcHJlcGFyZUZv
ckxvYWRTdGFydCgpOwotICAgICAgICB2b2lkIHNldHVwRm9yUmVwbGFjZSgpOwotICAgICAgICB2
b2lkIHNldHVwRm9yUmVwbGFjZUJ5TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBuZXdNSU1FVHlwZSk7
Ci0KLSAgICAgICAgdm9pZCBsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgS1VSTCYsIGNvbnN0
IFN0cmluZyYgcmVmZXJlciwgRnJhbWUqKTsKLQotICAgICAgICB2b2lkIGxvYWRGcmFtZVJlcXVl
c3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCwgIC8vIENhbGxlZCBieSBzdWJtaXRGb3JtLCBjYWxscyBsb2FkUG9zdFJl
cXVlc3QgYW5kIGxvYWRVUkwuCi0gICAgICAgICAgICBQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1Jl
ZlB0cjxGb3JtU3RhdGU+KTsKLQotICAgICAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIENhbGxlZCBieSBXZWJGcmFtZSwgY2FsbHMgbG9hZChSZXNvdXJjZVJlcXVlc3Qs
IFN1YnN0aXR1dGVEYXRhKS4KLSAgICAgICAgdm9pZCBsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAgICAg
ICAgICAvLyBDYWxsZWQgYm90aCBieSBXZWJGcmFtZSBhbmQgaW50ZXJuYWxseSwgY2FsbHMgbG9h
ZChEb2N1bWVudExvYWRlciopLgotICAgICAgICB2b2lkIGxvYWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnkpOyAgICAgICAg
ICAgICAgIC8vIENhbGxlZCBieSBXZWJQbHVnaW5Db250cm9sbGVyLgotICAgICAgICAKLSAgICAg
ICAgdm9pZCBsb2FkQXJjaGl2ZShQYXNzUmVmUHRyPEFyY2hpdmU+KTsKLQotICAgICAgICBzdGF0
aWMgdm9pZCByZXBvcnRMb2NhbExvYWRGYWlsZWQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIHVybCk7
Ci0KLSAgICAgICAgLy8gQ2FsbGVkIGJ5IGNyZWF0ZVdpbmRvdyBpbiBKU0RPTVdpbmRvd0Jhc2Uu
Y3BwLCBlLmcuIHRvIGZ1bGZpbGwgYSBtb2RhbCBkaWFsb2cgY3JlYXRpb24KLSAgICAgICAgRnJh
bWUqIGNyZWF0ZVdpbmRvdyhGcmFtZUxvYWRlciogZnJhbWVMb2FkZXJGb3JGcmFtZUxvb2t1cCwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgYm9vbCYgY3Jl
YXRlZCk7Ci0KLSAgICAgICAgdW5zaWduZWQgbG9uZyBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9y
JiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7Ci0KLSAgICAgICAgYm9v
bCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotCi0gICAgICAgIC8v
IEFsc28gbm90IGNvb2wuCi0gICAgICAgIHZvaWQgc3RvcEFsbExvYWRlcnMoRGF0YWJhc2VQb2xp
Y3kgPSBEYXRhYmFzZVBvbGljeVN0b3ApOwotICAgICAgICB2b2lkIHN0b3BGb3JVc2VyQ2FuY2Vs
KGJvb2wgZGVmZXJDaGVja0xvYWRDb21wbGV0ZSA9IGZhbHNlKTsKLQotICAgICAgICBib29sIGlz
TG9hZGluZ01haW5SZXNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2FkaW5nTWFpblJlc291
cmNlOyB9Ci0gICAgICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7Ci0gICAgICAgIGJvb2wgZnJh
bWVIYXNMb2FkZWQoKSBjb25zdDsKLQotICAgICAgICBpbnQgbnVtUGVuZGluZ09yTG9hZGluZ1Jl
cXVlc3RzKGJvb2wgcmVjdXJzZSkgY29uc3Q7Ci0gICAgICAgIFN0cmluZyByZWZlcnJlcigpIGNv
bnN0OwotICAgICAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlcigpIGNvbnN0OwotICAgICAgICBT
dHJpbmcgb3V0Z29pbmdPcmlnaW4oKSBjb25zdDsKLQotICAgICAgICBEb2N1bWVudExvYWRlciog
YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKLSAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGRv
Y3VtZW50TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsgfQot
ICAgICAgICBEb2N1bWVudExvYWRlciogcG9saWN5RG9jdW1lbnRMb2FkZXIoKSBjb25zdCB7IHJl
dHVybiBtX3BvbGljeURvY3VtZW50TG9hZGVyLmdldCgpOyB9Ci0gICAgICAgIERvY3VtZW50TG9h
ZGVyKiBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNp
b25hbERvY3VtZW50TG9hZGVyLmdldCgpOyB9Ci0gICAgICAgIEZyYW1lU3RhdGUgc3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlOyB9Ci0gICAgICAgIHN0YXRpYyBkb3VibGUgdGltZU9mTGFz
dENvbXBsZXRlZExvYWQoKTsKLQotICAgICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKFJlc291cmNlTG9hZGVyKik7Ci0gICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0KCkgY29uc3Q7Ci0gICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgaW5p
dGlhbFJlcXVlc3QoKSBjb25zdDsKLSAgICAgICAgdm9pZCByZWNlaXZlZE1haW5SZXNvdXJjZUVy
cm9yKGNvbnN0IFJlc291cmNlRXJyb3ImLCBib29sIGlzQ29tcGxldGUpOwotICAgICAgICB2b2lk
IHJlY2VpdmVkRGF0YShjb25zdCBjaGFyKiwgaW50KTsKK2NsYXNzIEFyY2hpdmU7CitjbGFzcyBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKK2NsYXNzIENhY2hlZEZyYW1lQmFzZTsKK2NsYXNzIENh
Y2hlZFBhZ2U7CitjbGFzcyBDYWNoZWRSZXNvdXJjZTsKK2NsYXNzIERvY3VtZW50OworY2xhc3Mg
RG9jdW1lbnRMb2FkZXI7CitjbGFzcyBFdmVudDsKK2NsYXNzIEZvcm1EYXRhOworY2xhc3MgRm9y
bVN0YXRlOworY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZUxvYWRlckNsaWVudDsKK2NsYXNzIEhp
c3RvcnlJdGVtOworY2xhc3MgSFRNTEFwcGxldEVsZW1lbnQ7CitjbGFzcyBIVE1MRm9ybUVsZW1l
bnQ7CitjbGFzcyBIVE1MRnJhbWVPd25lckVsZW1lbnQ7CitjbGFzcyBJY29uTG9hZGVyOworY2xh
c3MgSW50U2l6ZTsKK2NsYXNzIE5hdmlnYXRpb25BY3Rpb247CitjbGFzcyBSZW5kZXJQYXJ0Owor
Y2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlTG9hZGVyOworY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKK2NsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CitjbGFzcyBTY3JpcHRTdHJpbmc7
CitjbGFzcyBTY3JpcHRWYWx1ZTsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgU2hhcmVk
QnVmZmVyOworY2xhc3MgU3Vic3RpdHV0ZURhdGE7CitjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVy
OworY2xhc3MgV2lkZ2V0OworCitzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVzdDsKK3N0cnVjdCBXaW5k
b3dGZWF0dXJlczsKKworYm9vbCBpc0JhY2tGb3J3YXJkTG9hZFR5cGUoRnJhbWVMb2FkVHlwZSk7
CisKK2NsYXNzIEZyYW1lTG9hZGVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAg
ICBGcmFtZUxvYWRlcihGcmFtZSosIEZyYW1lTG9hZGVyQ2xpZW50Kik7CisgICAgfkZyYW1lTG9h
ZGVyKCk7CisKKyAgICB2b2lkIGluaXQoKTsKKworICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWU7IH0KKworICAgIFBvbGljeUNoZWNrZXIqIHBvbGljeUNoZWNrZXIoKSBj
b25zdCB7IHJldHVybiAmbV9wb2xpY3lDaGVja2VyOyB9CisgICAgSGlzdG9yeUNvbnRyb2xsZXIq
IGhpc3RvcnkoKSBjb25zdCB7IHJldHVybiAmbV9oaXN0b3J5OyB9CisgICAgUmVzb3VyY2VMb2Fk
Tm90aWZpZXIqIG5vdGlmaWVyKCkgY29uc3QgeyByZXR1cm4gJm1fbm90aWZlcjsgfQorCisgICAg
Ly8gRklYTUU6IFRoaXMgaXMgbm90IGNvb2wsIHBlb3BsZS4gVGhlcmUgYXJlIHRvbyBtYW55IGRp
ZmZlcmVudCBmdW5jdGlvbnMgdGhhdCBhbGwgc3RhcnQgbG9hZHMuCisgICAgLy8gV2Ugc2hvdWxk
IGFpbSB0byBjb25zb2xpZGF0ZSB0aGVzZSBpbnRvIGEgc21hbGxlciBzZXQgb2YgZnVuY3Rpb25z
LCBhbmQgdHJ5IHRvIHJldXNlIG1vcmUgb2YKKyAgICAvLyB0aGUgbG9naWMgYnkgZXh0cmFjdGlu
ZyBjb21tb24gY29kZSBwYXRocy4KKworICAgIHZvaWQgcHJlcGFyZUZvckxvYWRTdGFydCgpOwor
ICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlKCk7CisgICAgdm9pZCBzZXR1cEZvclJlcGxhY2VCeU1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgbmV3TUlNRVR5cGUpOworCisgICAgdm9pZCBsb2FkVVJMSW50
b0NoaWxkRnJhbWUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJlciwgRnJhbWUqKTsK
KworICAgIHZvaWQgbG9hZEZyYW1lUmVxdWVzdChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgYm9v
bCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0LCAgLy8gQ2FsbGVkIGJ5IHN1
Ym1pdEZvcm0sIGNhbGxzIGxvYWRQb3N0UmVxdWVzdCBhbmQgbG9hZFVSTC4KKyAgICAgICAgUGFz
c1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7CisKKyAgICB2b2lkIGxvYWQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBsb2NrSGlzdG9yeSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBieSBXZWJGcmFtZSwgY2FsbHMgbG9h
ZChSZXNvdXJjZVJlcXVlc3QsIFN1YnN0aXR1dGVEYXRhKS4KKyAgICB2b2lkIGxvYWQoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmLCBib29sIGxvY2tIaXN0b3J5
KTsgICAgICAgICAgICAgICAgIC8vIENhbGxlZCBib3RoIGJ5IFdlYkZyYW1lIGFuZCBpbnRlcm5h
bGx5LCBjYWxscyBsb2FkKERvY3VtZW50TG9hZGVyKikuCisgICAgdm9pZCBsb2FkKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29sIGxvY2tIaXN0b3J5
KTsgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgV2ViUGx1Z2luQ29udHJvbGxlci4KKyAgICAK
KyAgICB2b2lkIGxvYWRBcmNoaXZlKFBhc3NSZWZQdHI8QXJjaGl2ZT4pOworCisgICAgc3RhdGlj
IHZvaWQgcmVwb3J0TG9jYWxMb2FkRmFpbGVkKEZyYW1lKiwgY29uc3QgU3RyaW5nJiB1cmwpOwor
CisgICAgLy8gQ2FsbGVkIGJ5IGNyZWF0ZVdpbmRvdyBpbiBKU0RPTVdpbmRvd0Jhc2UuY3BwLCBl
LmcuIHRvIGZ1bGZpbGwgYSBtb2RhbCBkaWFsb2cgY3JlYXRpb24KKyAgICBGcmFtZSogY3JlYXRl
V2luZG93KEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlckZvckZyYW1lTG9va3VwLCBjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBib29sJiBjcmVhdGVkKTsKKwor
ICAgIHVuc2lnbmVkIGxvbmcgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYsIFJlc291cmNlUmVz
cG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpOworCisgICAgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworCisgICAgLy8gQWxzbyBub3QgY29vbC4KKyAgICB2
b2lkIHN0b3BBbGxMb2FkZXJzKERhdGFiYXNlUG9saWN5ID0gRGF0YWJhc2VQb2xpY3lTdG9wKTsK
KyAgICB2b2lkIHN0b3BGb3JVc2VyQ2FuY2VsKGJvb2wgZGVmZXJDaGVja0xvYWRDb21wbGV0ZSA9
IGZhbHNlKTsKKworICAgIGJvb2wgaXNMb2FkaW5nTWFpblJlc291cmNlKCkgY29uc3QgeyByZXR1
cm4gbV9pc0xvYWRpbmdNYWluUmVzb3VyY2U7IH0KKyAgICBib29sIGlzTG9hZGluZygpIGNvbnN0
OworICAgIGJvb2wgZnJhbWVIYXNMb2FkZWQoKSBjb25zdDsKKworICAgIGludCBudW1QZW5kaW5n
T3JMb2FkaW5nUmVxdWVzdHMoYm9vbCByZWN1cnNlKSBjb25zdDsKKyAgICBTdHJpbmcgcmVmZXJy
ZXIoKSBjb25zdDsKKyAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlcigpIGNvbnN0OworICAgIFN0
cmluZyBvdXRnb2luZ09yaWdpbigpIGNvbnN0OworCisgICAgRG9jdW1lbnRMb2FkZXIqIGFjdGl2
ZURvY3VtZW50TG9hZGVyKCkgY29uc3Q7CisgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9h
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsgfQorICAgIERvY3Vt
ZW50TG9hZGVyKiBwb2xpY3lEb2N1bWVudExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5
RG9jdW1lbnRMb2FkZXIuZ2V0KCk7IH0KKyAgICBEb2N1bWVudExvYWRlciogcHJvdmlzaW9uYWxE
b2N1bWVudExvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRl
ci5nZXQoKTsgfQorICAgIEZyYW1lU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRl
OyB9CisgICAgc3RhdGljIGRvdWJsZSB0aW1lT2ZMYXN0Q29tcGxldGVkTG9hZCgpOworCisgICAg
Ym9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUxvYWRlciopOworICAgIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0KCkgY29uc3Q7CisgICAgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBpbml0aWFsUmVxdWVzdCgpIGNvbnN0OworICAgIHZvaWQgcmVjZWl2
ZWRNYWluUmVzb3VyY2VFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiwgYm9vbCBpc0NvbXBsZXRl
KTsKKyAgICB2b2lkIHJlY2VpdmVkRGF0YShjb25zdCBjaGFyKiwgaW50KTsKIAotICAgICAgICBi
b29sIHdpbGxMb2FkTWVkaWFFbGVtZW50VVJMKEtVUkwmKTsKKyAgICBib29sIHdpbGxMb2FkTWVk
aWFFbGVtZW50VVJMKEtVUkwmKTsKIAotICAgICAgICB2b2lkIGhhbmRsZUZhbGxiYWNrQ29udGVu
dCgpOwotICAgICAgICBib29sIGlzU3RvcHBpbmcoKSBjb25zdDsKKyAgICB2b2lkIGhhbmRsZUZh
bGxiYWNrQ29udGVudCgpOworICAgIGJvb2wgaXNTdG9wcGluZygpIGNvbnN0OwogCi0gICAgICAg
IHZvaWQgZmluaXNoZWRMb2FkaW5nKCk7CisgICAgdm9pZCBmaW5pc2hlZExvYWRpbmcoKTsKIAot
ICAgICAgICBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpIGNvbnN0OwotICAgICAgICBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJikgY29uc3Q7Ci0gICAgICAgIFJlc291cmNlRXJyb3IgYmxv
Y2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OwotICAgICAgICBSZXNvdXJj
ZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsK
LSAgICAgICAgUmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRpb25Gb3JQb2xpY3lDaGFuZ2VFcnJvcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OworICAgIFJlc291cmNlRXJyb3IgZmlsZURv
ZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBjb25zdDsKKyAgICBSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKKyAg
ICBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBjb25zdDsKKyAgICBSZXNvdXJjZUVycm9yIGludGVycnVwdGlvbkZvclBvbGljeUNoYW5nZUVy
cm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgICAgIGJvb2wgaXNIb3N0ZWRCeU9i
amVjdEVsZW1lbnQoKSBjb25zdDsKLSAgICAgICAgYm9vbCBpc0xvYWRpbmdNYWluRnJhbWUoKSBj
b25zdDsKLSAgICAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlw
ZSkgY29uc3Q7Ci0gICAgICAgIGJvb2wgcmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUo
Y29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpOwotICAgICAgICBTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5
cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpOworICAgIGJvb2wgaXNIb3N0
ZWRCeU9iamVjdEVsZW1lbnQoKSBjb25zdDsKKyAgICBib29sIGlzTG9hZGluZ01haW5GcmFtZSgp
IGNvbnN0OworICAgIGJvb2wgY2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUp
IGNvbnN0OworICAgIGJvb2wgcmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3Qg
U3RyaW5nJiBVUkxTY2hlbWUpOworICAgIFN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNj
aGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSk7CiAKLSAgICAgICAgdm9pZCByZWxvYWQoYm9v
bCBlbmRUb0VuZFJlbG9hZCA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCByZWxvYWRXaXRoT3ZlcnJp
ZGVFbmNvZGluZyhjb25zdCBTdHJpbmcmIG92ZXJyaWRlRW5jb2RpbmcpOworICAgIHZvaWQgcmVs
b2FkKGJvb2wgZW5kVG9FbmRSZWxvYWQgPSBmYWxzZSk7CisgICAgdm9pZCByZWxvYWRXaXRoT3Zl
cnJpZGVFbmNvZGluZyhjb25zdCBTdHJpbmcmIG92ZXJyaWRlRW5jb2RpbmcpOwogCi0gICAgICAg
IHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
KTsKLSAgICAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmdEb2N1bWVudChEb2N1bWVudExvYWRlciop
OwotICAgICAgICB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFy
KiwgaW50KTsKLSAgICAgICAgYm9vbCBpc1JlcGxhY2luZygpIGNvbnN0OwotICAgICAgICB2b2lk
IHNldFJlcGxhY2luZygpOwotICAgICAgICB2b2lkIHJldmVydFRvUHJvdmlzaW9uYWwoRG9jdW1l
bnRMb2FkZXIqKTsKLSAgICAgICAgdm9pZCBzZXRNYWluRG9jdW1lbnRFcnJvcihEb2N1bWVudExv
YWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAgICAgdm9pZCBtYWluUmVjZWl2ZWRD
b21wbGV0ZUVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwotICAg
ICAgICBib29sIHN1YmZyYW1lSXNMb2FkaW5nKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgd2lsbENo
YW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKik7Ci0gICAgICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUo
RG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKCk7CisgICAgdm9pZCBmaW5pc2hlZExvYWRpbmdEb2N1bWVu
dChEb2N1bWVudExvYWRlciopOworICAgIHZvaWQgY29tbWl0dGVkTG9hZChEb2N1bWVudExvYWRl
ciosIGNvbnN0IGNoYXIqLCBpbnQpOworICAgIGJvb2wgaXNSZXBsYWNpbmcoKSBjb25zdDsKKyAg
ICB2b2lkIHNldFJlcGxhY2luZygpOworICAgIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbChEb2N1
bWVudExvYWRlciopOworICAgIHZvaWQgc2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBtYWluUmVjZWl2ZWRDb21wbGV0
ZUVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOworICAgIGJvb2wg
c3ViZnJhbWVJc0xvYWRpbmcoKSBjb25zdDsKKyAgICB2b2lkIHdpbGxDaGFuZ2VUaXRsZShEb2N1
bWVudExvYWRlciopOworICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUoRG9jdW1lbnRMb2FkZXIqKTsK
IAotICAgICAgICBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlKCkgY29uc3Q7Ci0gICAgICAgIENhY2hl
UG9saWN5IHN1YnJlc291cmNlQ2FjaGVQb2xpY3koKSBjb25zdDsKKyAgICBGcmFtZUxvYWRUeXBl
IGxvYWRUeXBlKCkgY29uc3Q7CisgICAgQ2FjaGVQb2xpY3kgc3VicmVzb3VyY2VDYWNoZVBvbGlj
eSgpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgZGlkRmlyc3RMYXlvdXQoKTsKLSAgICAgICAgYm9v
bCBmaXJzdExheW91dERvbmUoKSBjb25zdDsKKyAgICB2b2lkIGRpZEZpcnN0TGF5b3V0KCk7Cisg
ICAgYm9vbCBmaXJzdExheW91dERvbmUoKSBjb25zdDsKIAotICAgICAgICB2b2lkIGRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dCgpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0KCk7CiAKLSAgICAgICAgdm9pZCBsb2FkZWRSZXNvdXJjZUZyb21NZW1vcnlDYWNo
ZShjb25zdCBDYWNoZWRSZXNvdXJjZSopOwotICAgICAgICB2b2lkIHRlbGxDbGllbnRBYm91dFBh
c3RNZW1vcnlDYWNoZUxvYWRzKCk7CisgICAgdm9pZCBsb2FkZWRSZXNvdXJjZUZyb21NZW1vcnlD
YWNoZShjb25zdCBDYWNoZWRSZXNvdXJjZSopOworICAgIHZvaWQgdGVsbENsaWVudEFib3V0UGFz
dE1lbW9yeUNhY2hlTG9hZHMoKTsKIAotICAgICAgICB2b2lkIGNoZWNrTG9hZENvbXBsZXRlKCk7
Ci0gICAgICAgIHZvaWQgZGV0YWNoRnJvbVBhcmVudCgpOwotICAgICAgICB2b2lkIGRldGFjaFZp
ZXdzQW5kRG9jdW1lbnRMb2FkZXIoKTsKKyAgICB2b2lkIGNoZWNrTG9hZENvbXBsZXRlKCk7Cisg
ICAgdm9pZCBkZXRhY2hGcm9tUGFyZW50KCk7CisgICAgdm9pZCBkZXRhY2hWaWV3c0FuZERvY3Vt
ZW50TG9hZGVyKCk7CiAKLSAgICAgICAgdm9pZCBhZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VS
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwotICAgICAgICB2b2lkIGFkZEV4dHJhRmllbGRzVG9N
YWluUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwotICAgICAgICAKLSAgICAgICAg
c3RhdGljIHZvaWQgYWRkSFRUUE9yaWdpbklmTmVlZGVkKFJlc291cmNlUmVxdWVzdCYsIFN0cmlu
ZyBvcmlnaW4pOworICAgIHZvaWQgYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGFkZEV4dHJhRmllbGRzVG9NYWluUmVzb3VyY2VS
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOworICAgIAorICAgIHN0YXRpYyB2b2lkIGFkZEhUVFBP
cmlnaW5JZk5lZWRlZChSZXNvdXJjZVJlcXVlc3QmLCBTdHJpbmcgb3JpZ2luKTsKIAotICAgICAg
ICBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0K
KyAgICBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7
IH0KIAotICAgICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CisgICAgdm9pZCBzZXRE
ZWZlcnNMb2FkaW5nKGJvb2wpOwogCi0gICAgICAgIHZvaWQgY2hhbmdlTG9jYXRpb24oY29uc3Qg
S1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wgbG9ja0hpc3RvcnkgPSB0cnVlLCBi
b29sIGxvY2tCYWNrRm9yd2FyZExpc3QgPSB0cnVlLCBib29sIHVzZXJHZXN0dXJlID0gZmFsc2Us
IGJvb2wgcmVmcmVzaCA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCB1cmxTZWxlY3RlZChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgUGFzc1JlZlB0cjxFdmVudD4s
IGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCwgYm9vbCB1c2VyR2Vz
dHVyZSk7Ci0gICAgICAgIGJvb2wgcmVxdWVzdEZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCos
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1lTmFtZSk7CisgICAg
dm9pZCBjaGFuZ2VMb2NhdGlvbihjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
Ym9vbCBsb2NrSGlzdG9yeSA9IHRydWUsIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IHRydWUs
IGJvb2wgdXNlckdlc3R1cmUgPSBmYWxzZSwgYm9vbCByZWZyZXNoID0gZmFsc2UpOworICAgIHZv
aWQgdXJsU2VsZWN0ZWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiB0YXJn
ZXQsIFBhc3NSZWZQdHI8RXZlbnQ+LCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9y
d2FyZExpc3QsIGJvb2wgdXNlckdlc3R1cmUpOworICAgIGJvb2wgcmVxdWVzdEZyYW1lKEhUTUxG
cmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcm
IGZyYW1lTmFtZSk7CiAKLSAgICAgICAgdm9pZCBzdWJtaXRGb3JtKGNvbnN0IGNoYXIqIGFjdGlv
biwgY29uc3QgU3RyaW5nJiB1cmwsCi0gICAgICAgICAgICBQYXNzUmVmUHRyPEZvcm1EYXRhPiwg
Y29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0
cmluZyYgYm91bmRhcnksCi0gICAgICAgICAgICBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRy
PEV2ZW50PiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KTsKKyAgICB2b2lkIHN1Ym1pdEZvcm0oY29u
c3QgY2hhciogYWN0aW9uLCBjb25zdCBTdHJpbmcmIHVybCwKKyAgICAgICAgUGFzc1JlZlB0cjxG
b3JtRGF0YT4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
LCBjb25zdCBTdHJpbmcmIGJvdW5kYXJ5LAorICAgICAgICBib29sIGxvY2tIaXN0b3J5LCBQYXNz
UmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KTsKIAotICAgICAgICB2b2lkIHN0
b3AoKTsKLSAgICAgICAgdm9pZCBzdG9wTG9hZGluZyhVbmxvYWRFdmVudFBvbGljeSwgRGF0YWJh
c2VQb2xpY3kgPSBEYXRhYmFzZVBvbGljeVN0b3ApOwotICAgICAgICBib29sIGNsb3NlVVJMKCk7
CisgICAgdm9pZCBzdG9wKCk7CisgICAgdm9pZCBzdG9wTG9hZGluZyhVbmxvYWRFdmVudFBvbGlj
eSwgRGF0YWJhc2VQb2xpY3kgPSBEYXRhYmFzZVBvbGljeVN0b3ApOworICAgIGJvb2wgY2xvc2VV
UkwoKTsKIAotICAgICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOworICAgIHZvaWQgZGlkRXhw
bGljaXRPcGVuKCk7CiAKLSAgICAgICAgS1VSTCBpY29uVVJMKCk7Ci0gICAgICAgIHZvaWQgY29t
bWl0SWNvblVSTFRvSWNvbkRhdGFiYXNlKGNvbnN0IEtVUkwmKTsKKyAgICBLVVJMIGljb25VUkwo
KTsKKyAgICB2b2lkIGNvbW1pdEljb25VUkxUb0ljb25EYXRhYmFzZShjb25zdCBLVVJMJik7CiAK
LSAgICAgICAgS1VSTCBiYXNlVVJMKCkgY29uc3Q7CisgICAgS1VSTCBiYXNlVVJMKCkgY29uc3Q7
CiAKLSAgICAgICAgdm9pZCByZXBsYWNlRG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CisgICAgdm9p
ZCByZXBsYWNlRG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgdm9pZCBiZWdpbigp
OwotICAgICAgICB2b2lkIGJlZ2luKGNvbnN0IEtVUkwmLCBib29sIGRpc3BhdGNoV2luZG93T2Jq
ZWN0QXZhaWxhYmxlID0gdHJ1ZSwgU2VjdXJpdHlPcmlnaW4qIGZvcmNlZFNlY3VyaXR5T3JpZ2lu
ID0gMCk7CisgICAgdm9pZCBiZWdpbigpOworICAgIHZvaWQgYmVnaW4oY29uc3QgS1VSTCYsIGJv
b2wgZGlzcGF0Y2hXaW5kb3dPYmplY3RBdmFpbGFibGUgPSB0cnVlLCBTZWN1cml0eU9yaWdpbiog
Zm9yY2VkU2VjdXJpdHlPcmlnaW4gPSAwKTsKIAotICAgICAgICB2b2lkIHdyaXRlKGNvbnN0IGNo
YXIqIHN0cmluZywgaW50IGxlbmd0aCA9IC0xLCBib29sIGZsdXNoID0gZmFsc2UpOwotICAgICAg
ICB2b2lkIHdyaXRlKGNvbnN0IFN0cmluZyYpOwotICAgICAgICB2b2lkIGVuZCgpOwotICAgICAg
ICB2b2lkIGVuZElmTm90TG9hZGluZ01haW5SZXNvdXJjZSgpOworICAgIHZvaWQgd3JpdGUoY29u
c3QgY2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoID0gLTEsIGJvb2wgZmx1c2ggPSBmYWxzZSk7Cisg
ICAgdm9pZCB3cml0ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGVuZCgpOworICAgIHZvaWQg
ZW5kSWZOb3RMb2FkaW5nTWFpblJlc291cmNlKCk7CiAKLSAgICAgICAgdm9pZCBzZXRFbmNvZGlu
Zyhjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBib29sIHVzZXJDaG9zZW4pOwotICAgICAgICBTdHJp
bmcgZW5jb2RpbmcoKSBjb25zdDsKKyAgICB2b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYg
ZW5jb2RpbmcsIGJvb2wgdXNlckNob3Nlbik7CisgICAgU3RyaW5nIGVuY29kaW5nKCkgY29uc3Q7
CiAKLSAgICAgICAgdm9pZCB0b2tlbml6ZXJQcm9jZXNzZWREYXRhKCk7CisgICAgdm9pZCB0b2tl
bml6ZXJQcm9jZXNzZWREYXRhKCk7CiAKLSAgICAgICAgdm9pZCBoYW5kbGVkT25sb2FkRXZlbnRz
KCk7Ci0gICAgICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0OworICAgIHZv
aWQgaGFuZGxlZE9ubG9hZEV2ZW50cygpOworICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgS1VS
TCYpIGNvbnN0OwogCi0gICAgICAgIFBhc3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0
V2lkZ2V0KGNvbnN0IEludFNpemUmLCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+JiBhcmdzKTsKKyAgICBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2
YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiYgYXJncyk7CiAKLSAgICAgICAgdm9pZCBkaXNwYXRjaFdp
bmRvd09iamVjdEF2YWlsYWJsZSgpOwotICAgICAgICB2b2lkIGRpc3BhdGNoRG9jdW1lbnRFbGVt
ZW50QXZhaWxhYmxlKCk7CisgICAgdm9pZCBkaXNwYXRjaFdpbmRvd09iamVjdEF2YWlsYWJsZSgp
OworICAgIHZvaWQgZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKIAotICAgICAg
ICAvLyBNaXhlZCBjb250ZW50IHJlbGF0ZWQgZnVuY3Rpb25zLgotICAgICAgICBzdGF0aWMgYm9v
bCBpc01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOwot
ICAgICAgICB2b2lkIGNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2lu
KiBjb250ZXh0LCBjb25zdCBLVVJMJik7Ci0gICAgICAgIHZvaWQgY2hlY2tJZlJ1bkluc2VjdXJl
Q29udGVudChTZWN1cml0eU9yaWdpbiogY29udGV4dCwgY29uc3QgS1VSTCYpOworICAgIC8vIE1p
eGVkIGNvbnRlbnQgcmVsYXRlZCBmdW5jdGlvbnMuCisgICAgc3RhdGljIGJvb2wgaXNNaXhlZENv
bnRlbnQoU2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IEtVUkwmKTsKKyAgICB2b2lkIGNo
ZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25z
dCBLVVJMJik7CisgICAgdm9pZCBjaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3Jp
Z2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7CiAKLSAgICAgICAgRnJhbWUqIG9wZW5lcigpOwot
ICAgICAgICB2b2lkIHNldE9wZW5lcihGcmFtZSopOworICAgIEZyYW1lKiBvcGVuZXIoKTsKKyAg
ICB2b2lkIHNldE9wZW5lcihGcmFtZSopOwogCi0gICAgICAgIGJvb2wgaXNQcm9jZXNzaW5nVXNl
ckdlc3R1cmUoKTsKKyAgICBib29sIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiAKLSAgICAg
ICAgdm9pZCByZXNldE11bHRpcGxlRm9ybVN1Ym1pc3Npb25Qcm90ZWN0aW9uKCk7CisgICAgdm9p
ZCByZXNldE11bHRpcGxlRm9ybVN1Ym1pc3Npb25Qcm90ZWN0aW9uKCk7CiAKLSAgICAgICAgdm9p
ZCBhZGREYXRhKGNvbnN0IGNoYXIqIGJ5dGVzLCBpbnQgbGVuZ3RoKTsKKyAgICB2b2lkIGFkZERh
dGEoY29uc3QgY2hhciogYnl0ZXMsIGludCBsZW5ndGgpOwogCi0gICAgICAgIHZvaWQgY2hlY2tD
YWxsSW1wbGljaXRDbG9zZSgpOworICAgIHZvaWQgY2hlY2tDYWxsSW1wbGljaXRDbG9zZSgpOwog
Ci0gICAgICAgIHZvaWQgZnJhbWVEZXRhY2hlZCgpOworICAgIHZvaWQgZnJhbWVEZXRhY2hlZCgp
OwogCi0gICAgICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fVVJMOyB9Cisg
ICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9VUkw7IH0KIAotICAgICAgICB2
b2lkIHNldFJlc3BvbnNlTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGNvbnN0IFN0
cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0OworICAgIHZvaWQgc2V0UmVzcG9uc2VNSU1F
VHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBTdHJpbmcmIHJlc3BvbnNlTUlNRVR5cGUo
KSBjb25zdDsKIAotICAgICAgICBib29sIGNvbnRhaW5zUGx1Z2lucygpIGNvbnN0OworICAgIGJv
b2wgY29udGFpbnNQbHVnaW5zKCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBsb2FkRG9uZSgpOwot
ICAgICAgICB2b2lkIGZpbmlzaGVkUGFyc2luZygpOwotICAgICAgICB2b2lkIGNoZWNrQ29tcGxl
dGVkKCk7CisgICAgdm9pZCBsb2FkRG9uZSgpOworICAgIHZvaWQgZmluaXNoZWRQYXJzaW5nKCk7
CisgICAgdm9pZCBjaGVja0NvbXBsZXRlZCgpOwogCi0gICAgICAgIHZvaWQgY2hlY2tEaWRQZXJm
b3JtRmlyc3ROYXZpZ2F0aW9uKCk7CisgICAgdm9pZCBjaGVja0RpZFBlcmZvcm1GaXJzdE5hdmln
YXRpb24oKTsKIAotICAgICAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdDsKKyAgICBib29sIGlz
Q29tcGxldGUoKSBjb25zdDsKIAotICAgICAgICBib29sIHJlcXVlc3RPYmplY3QoUmVuZGVyUGFy
dCogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1lTmFt
ZSwKLSAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgc2VydmljZVR5cGUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwor
ICAgIGJvb2wgcmVxdWVzdE9iamVjdChSZW5kZXJQYXJ0KiBmcmFtZSwgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLAorICAgICAgICBjb25zdCBTdHJpbmcm
IHNlcnZpY2VUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKIAotICAgICAgICBLVVJMIGNvbXBsZXRlVVJMKGNv
bnN0IFN0cmluZyYgdXJsKTsKKyAgICBLVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJs
KTsKIAotICAgICAgICB2b2lkIGNhbmNlbEFuZENsZWFyKCk7CisgICAgdm9pZCBjYW5jZWxBbmRD
bGVhcigpOwogCi0gICAgICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJik7CisgICAgdm9p
ZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmKTsKIAotICAgICAgICB2b2lkIGNvbW1pdFByb3Zpc2lv
bmFsTG9hZChQYXNzUmVmUHRyPENhY2hlZFBhZ2U+KTsKLSAgICAgICAgYm9vbCBpc0xvYWRpbmdG
cm9tQ2FjaGVkUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGluZ0Zyb21DYWNoZWRQYWdlOyB9
CisgICAgdm9pZCBjb21taXRQcm92aXNpb25hbExvYWQoUGFzc1JlZlB0cjxDYWNoZWRQYWdlPik7
CisgICAgYm9vbCBpc0xvYWRpbmdGcm9tQ2FjaGVkUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZGluZ0Zyb21DYWNoZWRQYWdlOyB9CiAKLSAgICAgICAgYm9vbCBjb21taXR0aW5nRmlyc3RSZWFs
TG9hZCgpIGNvbnN0IHsgcmV0dXJuICFtX2NyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQgJiYg
IW1fY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkOyB9Ci0gICAgICAgIGJvb2wgY29tbWl0
dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9jb21taXR0ZWRGaXJz
dFJlYWxEb2N1bWVudExvYWQ7IH0KLSAgICAgICAgYm9vbCBjcmVhdGluZ0luaXRpYWxFbXB0eURv
Y3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9jcmVhdGluZ0luaXRpYWxFbXB0eURvY3VtZW50OyB9
CisgICAgYm9vbCBjb21taXR0aW5nRmlyc3RSZWFsTG9hZCgpIGNvbnN0IHsgcmV0dXJuICFtX2Ny
ZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQgJiYgIW1fY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1l
bnRMb2FkOyB9CisgICAgYm9vbCBjb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSBjb25z
dCB7IHJldHVybiBtX2NvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZDsgfQorICAgIGJvb2wg
Y3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRpbmdJ
bml0aWFsRW1wdHlEb2N1bWVudDsgfQogCi0gICAgICAgIHZvaWQgaWNvbkxvYWREZWNpc2lvbkF2
YWlsYWJsZSgpOworICAgIHZvaWQgaWNvbkxvYWREZWNpc2lvbkF2YWlsYWJsZSgpOwogCi0gICAg
ICAgIGJvb2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEZyYW1lKiB0YXJnZXRGcmFtZSkgY29uc3Q7
Ci0gICAgICAgIEZyYW1lKiBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSk7CisgICAgYm9vbCBzaG91bGRBbGxvd05hdmlnYXRpb24oRnJhbWUqIHRhcmdldEZy
YW1lKSBjb25zdDsKKyAgICBGcmFtZSogZmluZEZyYW1lRm9yTmF2aWdhdGlvbihjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUpOwogCi0gICAgICAgIHZvaWQgc3RhcnRJY29uTG9hZGVyKCk7CisgICAg
dm9pZCBzdGFydEljb25Mb2FkZXIoKTsKIAotICAgICAgICB2b2lkIGFwcGx5VXNlckFnZW50KFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCk7CisgICAgdm9pZCBhcHBseVVzZXJBZ2VudChSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpOwogCi0gICAgICAgIGJvb2wgc2hvdWxkSW50ZXJydXB0TG9hZEZv
clhGcmFtZU9wdGlvbnMoY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYpOworICAgIGJvb2wgc2hv
dWxkSW50ZXJydXB0TG9hZEZvclhGcmFtZU9wdGlvbnMoY29uc3QgU3RyaW5nJiwgY29uc3QgS1VS
TCYpOwogCi0gICAgICAgIHZvaWQgb3BlbihDYWNoZWRGcmFtZUJhc2UmKTsKKyAgICB2b2lkIG9w
ZW4oQ2FjaGVkRnJhbWVCYXNlJik7CiAKLSAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGVzZSBy
ZWFsbHkgYmUgcHVibGljPwotICAgICAgICB2b2lkIGNvbXBsZXRlZCgpOwotICAgICAgICBib29s
IGFsbEFuY2VzdG9yc0FyZUNvbXBsZXRlKCkgY29uc3Q7IC8vIGluY2x1ZGluZyB0aGlzCi0gICAg
ICAgIGJvb2wgYWxsQ2hpbGRyZW5BcmVDb21wbGV0ZSgpIGNvbnN0OyAvLyBpbW1lZGlhdGUgY2hp
bGRyZW4sIG5vdCBhbGwgZGVzY2VuZGFudHMKLSAgICAgICAgdm9pZCBjbGllbnRSZWRpcmVjdGVk
KGNvbnN0IEtVUkwmLCBkb3VibGUgZGVsYXksIGRvdWJsZSBmaXJlRGF0ZSwgYm9vbCBsb2NrQmFj
a0ZvcndhcmRMaXN0KTsKLSAgICAgICAgdm9pZCBjbGllbnRSZWRpcmVjdENhbmNlbGxlZE9yRmlu
aXNoZWQoYm9vbCBjYW5jZWxXaXRoTG9hZEluUHJvZ3Jlc3MpOwotICAgICAgICB2b2lkIGxvYWRJ
dGVtKEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlwZSk7CisgICAgLy8gRklYTUU6IFNob3VsZCB0
aGVzZSByZWFsbHkgYmUgcHVibGljPworICAgIHZvaWQgY29tcGxldGVkKCk7CisgICAgYm9vbCBh
bGxBbmNlc3RvcnNBcmVDb21wbGV0ZSgpIGNvbnN0OyAvLyBpbmNsdWRpbmcgdGhpcworICAgIGJv
b2wgYWxsQ2hpbGRyZW5BcmVDb21wbGV0ZSgpIGNvbnN0OyAvLyBpbW1lZGlhdGUgY2hpbGRyZW4s
IG5vdCBhbGwgZGVzY2VuZGFudHMKKyAgICB2b2lkIGNsaWVudFJlZGlyZWN0ZWQoY29uc3QgS1VS
TCYsIGRvdWJsZSBkZWxheSwgZG91YmxlIGZpcmVEYXRlLCBib29sIGxvY2tCYWNrRm9yd2FyZExp
c3QpOworICAgIHZvaWQgY2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKGJvb2wgY2Fu
Y2VsV2l0aExvYWRJblByb2dyZXNzKTsKKyAgICB2b2lkIGxvYWRJdGVtKEhpc3RvcnlJdGVtKiwg
RnJhbWVMb2FkVHlwZSk7CiAKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgcHVibGljIGJlY2F1
c2UgdGhpcyBhc3luY2hyb25vdXMgY2FsbGJhY2sgZnJvbSB0aGUgRnJhbWVMb2FkZXJDbGllbnQK
LSAgICAgICAgLy8gdXNlcyB0aGUgcG9saWN5IG1hY2hpbmVyeSAoYW5kIHRoZXJlZm9yZSBpcyBj
YWxsZWQgdmlhIHRoZSBQb2xpY3lDaGVja2VyKS4gIE9uY2Ugd2UKLSAgICAgICAgLy8gaW50cm9k
dWNlIGEgcHJvcGVyIGNhbGxiYWNrIHR5cGUgZm9yIHRoaXMgZnVuY3Rpb24sIHdlIHNob3VsZCBt
YWtlIGl0IHByaXZhdGUgYWdhaW4uCi0gICAgICAgIHZvaWQgY29udGludWVMb2FkQWZ0ZXJXaWxs
U3VibWl0Rm9ybSgpOworICAgIC8vIEZJWE1FOiBUaGlzIGlzIHB1YmxpYyBiZWNhdXNlIHRoaXMg
YXN5bmNocm9ub3VzIGNhbGxiYWNrIGZyb20gdGhlIEZyYW1lTG9hZGVyQ2xpZW50CisgICAgLy8g
dXNlcyB0aGUgcG9saWN5IG1hY2hpbmVyeSAoYW5kIHRoZXJlZm9yZSBpcyBjYWxsZWQgdmlhIHRo
ZSBQb2xpY3lDaGVja2VyKS4gIE9uY2Ugd2UKKyAgICAvLyBpbnRyb2R1Y2UgYSBwcm9wZXIgY2Fs
bGJhY2sgdHlwZSBmb3IgdGhpcyBmdW5jdGlvbiwgd2Ugc2hvdWxkIG1ha2UgaXQgcHJpdmF0ZSBh
Z2Fpbi4KKyAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyV2lsbFN1Ym1pdEZvcm0oKTsKIAotICAg
IHByaXZhdGU6Ci0gICAgICAgIGJvb2wgY2FuQ2FjaGVQYWdlQ29udGFpbmluZ1RoaXNGcmFtZSgp
OworcHJpdmF0ZToKKyAgICBib29sIGNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUoKTsK
ICNpZm5kZWYgTkRFQlVHCi0gICAgICAgIHZvaWQgbG9nQ2FuQ2FjaGVQYWdlRGVjaXNpb24oKTsK
LSAgICAgICAgYm9vbCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNpb24oaW50IGluZGVudExldmVsKTsK
KyAgICB2b2lkIGxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKCk7CisgICAgYm9vbCBsb2dDYW5DYWNo
ZUZyYW1lRGVjaXNpb24oaW50IGluZGVudExldmVsKTsKICNlbmRpZgogCi0gICAgICAgIHZvaWQg
Y2hlY2tUaW1lckZpcmVkKFRpbWVyPEZyYW1lTG9hZGVyPiopOworICAgIHZvaWQgY2hlY2tUaW1l
ckZpcmVkKFRpbWVyPEZyYW1lTG9hZGVyPiopOwogCi0gICAgICAgIHZvaWQgc3RhcnRlZCgpOwor
ICAgIHZvaWQgc3RhcnRlZCgpOwogCi0gICAgICAgIGJvb2wgc2hvdWxkVXNlUGx1Z2luKGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBib29sJiB1
c2VGYWxsYmFjayk7Ci0gICAgICAgIGJvb2wgbG9hZFBsdWdpbihSZW5kZXJQYXJ0KiwgY29uc3Qg
S1VSTCYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsCi0gICAgICAgIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wg
dXNlRmFsbGJhY2spOwotICAgICAgICAKLSAgICAgICAgYm9vbCBsb2FkUHJvdmlzaW9uYWxJdGVt
RnJvbUNhY2hlZFBhZ2UoKTsKLSAgICAgICAgdm9pZCBjYWNoZVBhZ2VGb3JIaXN0b3J5SXRlbShI
aXN0b3J5SXRlbSopOwotICAgICAgICB2b2lkIHBhZ2VIaWRkZW4oKTsKKyAgICBib29sIHNob3Vs
ZFVzZVBsdWdpbihjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBoYXNG
YWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spOworICAgIGJvb2wgbG9hZFBsdWdpbihSZW5kZXJQ
YXJ0KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsCisgICAgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVl
cywgYm9vbCB1c2VGYWxsYmFjayk7CisgICAgCisgICAgYm9vbCBsb2FkUHJvdmlzaW9uYWxJdGVt
RnJvbUNhY2hlZFBhZ2UoKTsKKyAgICB2b2lkIGNhY2hlUGFnZUZvckhpc3RvcnlJdGVtKEhpc3Rv
cnlJdGVtKik7CisgICAgdm9pZCBwYWdlSGlkZGVuKCk7CiAKLSAgICAgICAgdm9pZCByZWNlaXZl
ZEZpcnN0RGF0YSgpOworICAgIHZvaWQgcmVjZWl2ZWRGaXJzdERhdGEoKTsKIAotICAgICAgICB2
b2lkIHVwZGF0ZUZpcnN0UGFydHlGb3JDb29raWVzKCk7Ci0gICAgICAgIHZvaWQgc2V0Rmlyc3RQ
YXJ0eUZvckNvb2tpZXMoY29uc3QgS1VSTCYpOwotICAgICAgICAKLSAgICAgICAgdm9pZCBhZGRF
eHRyYUZpZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlIGxvYWRU
eXBlLCBib29sIGlzTWFpblJlc291cmNlLCBib29sIGNvb2tpZVBvbGljeVVSTEZyb21SZXF1ZXN0
KTsKKyAgICB2b2lkIHVwZGF0ZUZpcnN0UGFydHlGb3JDb29raWVzKCk7CisgICAgdm9pZCBzZXRG
aXJzdFBhcnR5Rm9yQ29va2llcyhjb25zdCBLVVJMJik7CisgICAgCisgICAgdm9pZCBhZGRFeHRy
YUZpZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBl
LCBib29sIGlzTWFpblJlc291cmNlLCBib29sIGNvb2tpZVBvbGljeVVSTEZyb21SZXF1ZXN0KTsK
IAotICAgICAgICAvLyBBbHNvIG5vdCBjb29sLgotICAgICAgICB2b2lkIHN0b3BMb2FkaW5nU3Vi
ZnJhbWVzKCk7CisgICAgLy8gQWxzbyBub3QgY29vbC4KKyAgICB2b2lkIHN0b3BMb2FkaW5nU3Vi
ZnJhbWVzKCk7CiAKLSAgICAgICAgdm9pZCBjbGVhclByb3Zpc2lvbmFsTG9hZCgpOwotICAgICAg
ICB2b2lkIG1hcmtMb2FkQ29tcGxldGUoKTsKLSAgICAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21t
aXR0ZWQoUGFzc1JlZlB0cjxDYWNoZWRQYWdlPik7Ci0gICAgICAgIHZvaWQgZnJhbWVMb2FkQ29t
cGxldGVkKCk7CisgICAgdm9pZCBjbGVhclByb3Zpc2lvbmFsTG9hZCgpOworICAgIHZvaWQgbWFy
a0xvYWRDb21wbGV0ZSgpOworICAgIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkKFBhc3NSZWZQ
dHI8Q2FjaGVkUGFnZT4pOworICAgIHZvaWQgZnJhbWVMb2FkQ29tcGxldGVkKCk7CiAKLSAgICAg
ICAgdm9pZCBtYWluUmVjZWl2ZWRFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiwgYm9vbCBpc0Nv
bXBsZXRlKTsKKyAgICB2b2lkIG1haW5SZWNlaXZlZEVycm9yKGNvbnN0IFJlc291cmNlRXJyb3Im
LCBib29sIGlzQ29tcGxldGUpOwogCi0gICAgICAgIHZvaWQgc2V0TG9hZFR5cGUoRnJhbWVMb2Fk
VHlwZSk7CisgICAgdm9pZCBzZXRMb2FkVHlwZShGcmFtZUxvYWRUeXBlKTsKIAotICAgICAgICBz
dGF0aWMgdm9pZCBjYWxsQ29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHZvaWQqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxk
Q29udGludWUpOwotICAgICAgICBzdGF0aWMgdm9pZCBjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdX
aW5kb3dQb2xpY3kodm9pZCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9y
bVN0YXRlPiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgc2hvdWxkQ29udGludWUpOwot
ICAgICAgICBzdGF0aWMgdm9pZCBjYWxsQ29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdh
dGlvblBvbGljeSh2b2lkKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3Jt
U3RhdGU+LCBib29sIHNob3VsZENvbnRpbnVlKTsKKyAgICBzdGF0aWMgdm9pZCBjYWxsQ29udGlu
dWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHZvaWQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxkQ29udGludWUpOworICAgIHN0YXRp
YyB2b2lkIGNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSh2b2lkKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgYm9vbCBzaG91bGRDb250aW51ZSk7CisgICAgc3RhdGljIHZvaWQgY2FsbENvbnRp
bnVlRnJhZ21lbnRTY3JvbGxBZnRlck5hdmlnYXRpb25Qb2xpY3kodm9pZCosIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250aW51ZSk7
CiAKLSAgICAgICAgdm9pZCBjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBib29sIHNob3VsZENvbnRp
bnVlKTsKLSAgICAgICAgdm9pZCBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lLCBib29sIHNob3VsZENvbnRpbnVlKTsKLSAgICAgICAgdm9pZCBjb250aW51ZUZy
YWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGJvb2wgc2hvdWxkQ29udGludWUpOworICAgIHZvaWQgY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0
aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwg
Ym9vbCBzaG91bGRDb250aW51ZSk7CisgICAgdm9pZCBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRv
d1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29sIHNob3VsZENvbnRpbnVlKTsKKyAgICB2b2lkIGNv
bnRpbnVlRnJhZ21lbnRTY3JvbGxBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgYm9vbCBzaG91bGRDb250aW51ZSk7CiAKLSAgICAgICAgYm9vbCBzaG91bGRTY3Jv
bGxUb0FuY2hvcihib29sIGlzRm9ybVN1Ym1pc3Npb24sIEZyYW1lTG9hZFR5cGUsIGNvbnN0IEtV
UkwmKTsKKyAgICBib29sIHNob3VsZFNjcm9sbFRvQW5jaG9yKGJvb2wgaXNGb3JtU3VibWlzc2lv
biwgRnJhbWVMb2FkVHlwZSwgY29uc3QgS1VSTCYpOwogCi0gICAgICAgIHZvaWQgY2hlY2tMb2Fk
Q29tcGxldGVGb3JUaGlzRnJhbWUoKTsKKyAgICB2b2lkIGNoZWNrTG9hZENvbXBsZXRlRm9yVGhp
c0ZyYW1lKCk7CiAKLSAgICAgICAgdm9pZCBzZXREb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRl
ciopOwotICAgICAgICB2b2lkIHNldFBvbGljeURvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVy
Kik7Ci0gICAgICAgIHZvaWQgc2V0UHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcihEb2N1bWVudExv
YWRlciopOworICAgIHZvaWQgc2V0RG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqKTsKKyAg
ICB2b2lkIHNldFBvbGljeURvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKik7CisgICAgdm9p
ZCBzZXRQcm92aXNpb25hbERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAKLSAgICAg
ICAgdm9pZCBzZXRTdGF0ZShGcmFtZVN0YXRlKTsKKyAgICB2b2lkIHNldFN0YXRlKEZyYW1lU3Rh
dGUpOwogCi0gICAgICAgIHZvaWQgY2xvc2VPbGREYXRhU291cmNlcygpOwotICAgICAgICB2b2lk
IG9wZW4oQ2FjaGVkUGFnZSYpOworICAgIHZvaWQgY2xvc2VPbGREYXRhU291cmNlcygpOworICAg
IHZvaWQgb3BlbihDYWNoZWRQYWdlJik7CiAKLSAgICAgICAgdm9pZCB1cGRhdGVIaXN0b3J5QWZ0
ZXJDbGllbnRSZWRpcmVjdCgpOworICAgIHZvaWQgdXBkYXRlSGlzdG9yeUFmdGVyQ2xpZW50UmVk
aXJlY3QoKTsKIAotICAgICAgICB2b2lkIGNsZWFyKGJvb2wgY2xlYXJXaW5kb3dQcm9wZXJ0aWVz
ID0gdHJ1ZSwgYm9vbCBjbGVhclNjcmlwdE9iamVjdHMgPSB0cnVlLCBib29sIGNsZWFyRnJhbWVW
aWV3ID0gdHJ1ZSk7CisgICAgdm9pZCBjbGVhcihib29sIGNsZWFyV2luZG93UHJvcGVydGllcyA9
IHRydWUsIGJvb2wgY2xlYXJTY3JpcHRPYmplY3RzID0gdHJ1ZSwgYm9vbCBjbGVhckZyYW1lVmll
dyA9IHRydWUpOwogCi0gICAgICAgIGJvb2wgc2hvdWxkUmVsb2FkVG9IYW5kbGVVbnJlYWNoYWJs
ZVVSTChEb2N1bWVudExvYWRlciopOworICAgIGJvb2wgc2hvdWxkUmVsb2FkVG9IYW5kbGVVbnJl
YWNoYWJsZVVSTChEb2N1bWVudExvYWRlciopOwogCi0gICAgICAgIHZvaWQgZGlzcGF0Y2hEaWRD
b21taXRMb2FkKCk7CisgICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoKTsKIAotICAgICAg
ICB2b2lkIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqLCBGcmFtZUxvYWRU
eXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pOyAvLyBDYWxscyBjb250aW51ZUxvYWRBZnRlck5h
dmlnYXRpb25Qb2xpY3kKLSAgICAgICAgdm9pZCBsb2FkKERvY3VtZW50TG9hZGVyKik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2Fs
bHMgbG9hZFdpdGhEb2N1bWVudExvYWRlciAgIAorICAgIHZvaWQgbG9hZFdpdGhEb2N1bWVudExv
YWRlcihEb2N1bWVudExvYWRlciosIEZyYW1lTG9hZFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRl
Pik7IC8vIENhbGxzIGNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeQorICAgIHZvaWQg
bG9hZChEb2N1bWVudExvYWRlciopOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIENhbGxzIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIgICAK
IAotICAgICAgICB2b2lkIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgICAgICAvLyBDYWxscyBsb2FkV2l0aERv
Y3VtZW50TG9hZGVyCi0gICAgICAgICAgICBib29sIGxvY2tIaXN0b3J5LCBGcmFtZUxvYWRUeXBl
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pOworICAgIHZvaWQgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCAgICAg
IC8vIENhbGxzIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIKKyAgICAgICAgYm9vbCBsb2NrSGlzdG9y
eSwgRnJhbWVMb2FkVHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KTsKIAotICAgICAgICB2b2lk
IGxvYWRQb3N0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHJl
ZmVycmVyLCAgICAgICAgICAgICAgICAvLyBDYWxsZWQgYnkgbG9hZEZyYW1lUmVxdWVzdCwgY2Fs
bHMgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uCi0gICAgICAgICAgICBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlwZSwgUGFzc1JlZlB0cjxFdmVu
dD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7Ci0gICAgICAgIHZvaWQgbG9hZFVSTChjb25zdCBL
VVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsICAg
ICAgICAgIC8vIENhbGxlZCBieSBsb2FkRnJhbWVSZXF1ZXN0LCBjYWxscyBsb2FkV2l0aE5hdmln
YXRpb25BY3Rpb24gb3IgZGlzcGF0Y2hlcyB0byBuYXZpZ2F0aW9uIHBvbGljeSBkZWxlZ2F0ZQot
ICAgICAgICAgICAgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVMb2FkVHlwZSwgUGFzc1JlZlB0cjxF
dmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgdm9pZCBsb2FkUG9zdFJlcXVlc3Qo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgICAgICAgICAg
ICAgICAgLy8gQ2FsbGVkIGJ5IGxvYWRGcmFtZVJlcXVlc3QsIGNhbGxzIGxvYWRXaXRoTmF2aWdh
dGlvbkFjdGlvbgorICAgICAgICBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgYm9vbCBsb2NrSGlz
dG9yeSwgRnJhbWVMb2FkVHlwZSwgUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPik7CisgICAgdm9pZCBsb2FkVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgICAgICAgICAgLy8gQ2FsbGVkIGJ5IGxvYWRG
cmFtZVJlcXVlc3QsIGNhbGxzIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbiBvciBkaXNwYXRjaGVz
IHRvIG5hdmlnYXRpb24gcG9saWN5IGRlbGVnYXRlCisgICAgICAgIGJvb2wgbG9ja0hpc3Rvcnks
IEZyYW1lTG9hZFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4p
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogCi0gICAgICAgIGJvb2wgc2hvdWxkUmVsb2FkKGNvbnN0IEtVUkwmIGN1cnJlbnRVUkwsIGNv
bnN0IEtVUkwmIGRlc3RpbmF0aW9uVVJMKTsKKyAgICBib29sIHNob3VsZFJlbG9hZChjb25zdCBL
VVJMJiBjdXJyZW50VVJMLCBjb25zdCBLVVJMJiBkZXN0aW5hdGlvblVSTCk7CiAKLSAgICAgICAg
dm9pZCBzZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlcyh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoLCBjb25zdCBSZXNvdXJjZUVy
cm9yJik7Ci0gICAgICAgIHZvaWQgcmVxdWVzdEZyb21EZWxlZ2F0ZShSZXNvdXJjZVJlcXVlc3Qm
LCB1bnNpZ25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBz
ZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlcyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoLCBjb25zdCBSZXNvdXJjZUVycm9yJik7
CisgICAgdm9pZCByZXF1ZXN0RnJvbURlbGVnYXRlKFJlc291cmNlUmVxdWVzdCYsIHVuc2lnbmVk
IGxvbmcmIGlkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImKTsKIAotICAgICAgICB2b2lkIHJlY3Vy
c2l2ZUNoZWNrTG9hZENvbXBsZXRlKCk7CisgICAgdm9pZCByZWN1cnNpdmVDaGVja0xvYWRDb21w
bGV0ZSgpOwogCi0gICAgICAgIHZvaWQgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICAgICAgdm9pZCBj
bG9zZUFuZFJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAgdm9pZCBkZXRhY2hDaGlsZHJlbigpOwor
ICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVDaGlsZChGcmFtZSopOwogCi0gICAgICAgIEZyYW1lKiBs
b2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiByZWZlcnJlcik7CisgICAgRnJhbWUqIGxvYWRTdWJm
cmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKTsKIAotICAgICAgICB2b2lkIHNjcm9sbFRvQW5j
aG9yKGNvbnN0IEtVUkwmKTsKKyAgICB2b2lkIHNjcm9sbFRvQW5jaG9yKGNvbnN0IEtVUkwmKTsK
IAotICAgICAgICB2b2lkIHByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQoKTsKKyAgICB2b2lkIHByb3Zp
c2lvbmFsTG9hZFN0YXJ0ZWQoKTsKIAotICAgICAgICBib29sIGNhbkNhY2hlUGFnZSgpOworICAg
IGJvb2wgY2FuQ2FjaGVQYWdlKCk7CiAKLSAgICAgICAgYm9vbCBkaWRPcGVuVVJMKGNvbnN0IEtV
UkwmKTsKKyAgICBib29sIGRpZE9wZW5VUkwoY29uc3QgS1VSTCYpOwogCi0gICAgICAgIHZvaWQg
c2NoZWR1bGVDaGVja0NvbXBsZXRlZCgpOwotICAgICAgICB2b2lkIHNjaGVkdWxlQ2hlY2tMb2Fk
Q29tcGxldGUoKTsKLSAgICAgICAgdm9pZCBzdGFydENoZWNrQ29tcGxldGVUaW1lcigpOworICAg
IHZvaWQgc2NoZWR1bGVDaGVja0NvbXBsZXRlZCgpOworICAgIHZvaWQgc2NoZWR1bGVDaGVja0xv
YWRDb21wbGV0ZSgpOworICAgIHZvaWQgc3RhcnRDaGVja0NvbXBsZXRlVGltZXIoKTsKIAotICAg
ICAgICBLVVJMIG9yaWdpbmFsUmVxdWVzdFVSTCgpIGNvbnN0OworICAgIEtVUkwgb3JpZ2luYWxS
ZXF1ZXN0VVJMKCkgY29uc3Q7CiAKLSAgICAgICAgYm9vbCBzaG91bGRUcmVhdFVSTEFzU2FtZUFz
Q3VycmVudChjb25zdCBLVVJMJikgY29uc3Q7CisgICAgYm9vbCBzaG91bGRUcmVhdFVSTEFzU2Ft
ZUFzQ3VycmVudChjb25zdCBLVVJMJikgY29uc3Q7CiAKLSAgICAgICAgRnJhbWUqIG1fZnJhbWU7
Ci0gICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKKyAgICBGcmFtZSogbV9mcmFt
ZTsKKyAgICBGcmFtZUxvYWRlckNsaWVudCogbV9jbGllbnQ7CiAKLSAgICAgICAgbXV0YWJsZSBQ
b2xpY3lDaGVja2VyIG1fcG9saWN5Q2hlY2tlcjsKLSAgICAgICAgbXV0YWJsZSBIaXN0b3J5Q29u
dHJvbGxlciBtX2hpc3Rvcnk7Ci0gICAgICAgIG11dGFibGUgUmVzb3VyY2VMb2FkTm90aWZpZXIg
bV9ub3RpZmVyOworICAgIG11dGFibGUgUG9saWN5Q2hlY2tlciBtX3BvbGljeUNoZWNrZXI7Cisg
ICAgbXV0YWJsZSBIaXN0b3J5Q29udHJvbGxlciBtX2hpc3Rvcnk7CisgICAgbXV0YWJsZSBSZXNv
dXJjZUxvYWROb3RpZmllciBtX25vdGlmZXI7CiAKLSAgICAgICAgRnJhbWVTdGF0ZSBtX3N0YXRl
OwotICAgICAgICBGcmFtZUxvYWRUeXBlIG1fbG9hZFR5cGU7CisgICAgRnJhbWVTdGF0ZSBtX3N0
YXRlOworICAgIEZyYW1lTG9hZFR5cGUgbV9sb2FkVHlwZTsKIAotICAgICAgICAvLyBEb2N1bWVu
dCBsb2FkZXJzIGZvciB0aGUgdGhyZWUgcGhhc2VzIG9mIGZyYW1lIGxvYWRpbmcuIE5vdGUgdGhh
dCB3aGlsZSAKLSAgICAgICAgLy8gYSBuZXcgcmVxdWVzdCBpcyBiZWluZyBsb2FkZWQsIHRoZSBv
bGQgZG9jdW1lbnQgbG9hZGVyIG1heSBzdGlsbCBiZSByZWZlcmVuY2VkLgotICAgICAgICAvLyBF
LmcuIHdoaWxlIGEgbmV3IHJlcXVlc3QgaXMgaW4gdGhlICJwb2xpY3kiIHN0YXRlLCB0aGUgb2xk
IGRvY3VtZW50IGxvYWRlciBtYXkKLSAgICAgICAgLy8gYmUgY29uc3VsdGVkIGluIHBhcnRpY3Vs
YXIgYXMgaXQgbWFrZXMgc2Vuc2UgdG8gaW1wbHkgY2VydGFpbiBzZXR0aW5ncyBvbiB0aGUgbmV3
IGxvYWRlci4KLSAgICAgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBtX2RvY3VtZW50TG9hZGVy
OwotICAgICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IG1fcHJvdmlzaW9uYWxEb2N1bWVudExv
YWRlcjsKLSAgICAgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBtX3BvbGljeURvY3VtZW50TG9h
ZGVyOworICAgIC8vIERvY3VtZW50IGxvYWRlcnMgZm9yIHRoZSB0aHJlZSBwaGFzZXMgb2YgZnJh
bWUgbG9hZGluZy4gTm90ZSB0aGF0IHdoaWxlIAorICAgIC8vIGEgbmV3IHJlcXVlc3QgaXMgYmVp
bmcgbG9hZGVkLCB0aGUgb2xkIGRvY3VtZW50IGxvYWRlciBtYXkgc3RpbGwgYmUgcmVmZXJlbmNl
ZC4KKyAgICAvLyBFLmcuIHdoaWxlIGEgbmV3IHJlcXVlc3QgaXMgaW4gdGhlICJwb2xpY3kiIHN0
YXRlLCB0aGUgb2xkIGRvY3VtZW50IGxvYWRlciBtYXkKKyAgICAvLyBiZSBjb25zdWx0ZWQgaW4g
cGFydGljdWxhciBhcyBpdCBtYWtlcyBzZW5zZSB0byBpbXBseSBjZXJ0YWluIHNldHRpbmdzIG9u
IHRoZSBuZXcgbG9hZGVyLgorICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbV9kb2N1bWVudExv
YWRlcjsKKyAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IG1fcHJvdmlzaW9uYWxEb2N1bWVudExv
YWRlcjsKKyAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IG1fcG9saWN5RG9jdW1lbnRMb2FkZXI7
CiAKLSAgICAgICAgYm9vbCBtX2RlbGVnYXRlSXNIYW5kbGluZ1Byb3Zpc2lvbmFsTG9hZEVycm9y
OworICAgIGJvb2wgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdQcm92aXNpb25hbExvYWRFcnJvcjsKIAot
ICAgICAgICBib29sIG1fZmlyc3RMYXlvdXREb25lOwotICAgICAgICBib29sIG1fcXVpY2tSZWRp
cmVjdENvbWluZzsKLSAgICAgICAgYm9vbCBtX3NlbnRSZWRpcmVjdE5vdGlmaWNhdGlvbjsKLSAg
ICAgICAgYm9vbCBtX2luU3RvcEFsbExvYWRlcnM7CisgICAgYm9vbCBtX2ZpcnN0TGF5b3V0RG9u
ZTsKKyAgICBib29sIG1fcXVpY2tSZWRpcmVjdENvbWluZzsKKyAgICBib29sIG1fc2VudFJlZGly
ZWN0Tm90aWZpY2F0aW9uOworICAgIGJvb2wgbV9pblN0b3BBbGxMb2FkZXJzOwogCi0gICAgICAg
IFN0cmluZyBtX291dGdvaW5nUmVmZXJyZXI7CisgICAgU3RyaW5nIG1fb3V0Z29pbmdSZWZlcnJl
cjsKIAotICAgICAgICBib29sIG1faXNFeGVjdXRpbmdKYXZhU2NyaXB0Rm9ybUFjdGlvbjsKKyAg
ICBib29sIG1faXNFeGVjdXRpbmdKYXZhU2NyaXB0Rm9ybUFjdGlvbjsKIAotICAgICAgICBTdHJp
bmcgbV9yZXNwb25zZU1JTUVUeXBlOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CiAK
LSAgICAgICAgYm9vbCBtX2RpZENhbGxJbXBsaWNpdENsb3NlOwotICAgICAgICBib29sIG1fd2Fz
VW5sb2FkRXZlbnRFbWl0dGVkOwotICAgICAgICBib29sIG1fdW5sb2FkRXZlbnRCZWluZ0Rpc3Bh
dGNoZWQ7Ci0gICAgICAgIGJvb2wgbV9pc0NvbXBsZXRlOwotICAgICAgICBib29sIG1faXNMb2Fk
aW5nTWFpblJlc291cmNlOworICAgIGJvb2wgbV9kaWRDYWxsSW1wbGljaXRDbG9zZTsKKyAgICBi
b29sIG1fd2FzVW5sb2FkRXZlbnRFbWl0dGVkOworICAgIGJvb2wgbV91bmxvYWRFdmVudEJlaW5n
RGlzcGF0Y2hlZDsKKyAgICBib29sIG1faXNDb21wbGV0ZTsKKyAgICBib29sIG1faXNMb2FkaW5n
TWFpblJlc291cmNlOwogCi0gICAgICAgIEtVUkwgbV9VUkw7Ci0gICAgICAgIEtVUkwgbV93b3Jr
aW5nVVJMOworICAgIEtVUkwgbV9VUkw7CisgICAgS1VSTCBtX3dvcmtpbmdVUkw7CiAKLSAgICAg
ICAgT3duUHRyPEljb25Mb2FkZXI+IG1faWNvbkxvYWRlcjsKLSAgICAgICAgYm9vbCBtX21heUxv
YWRJY29uTGF0ZXI7CisgICAgT3duUHRyPEljb25Mb2FkZXI+IG1faWNvbkxvYWRlcjsKKyAgICBi
b29sIG1fbWF5TG9hZEljb25MYXRlcjsKIAotICAgICAgICBib29sIG1fY2FuY2VsbGluZ1dpdGhM
b2FkSW5Qcm9ncmVzczsKKyAgICBib29sIG1fY2FuY2VsbGluZ1dpdGhMb2FkSW5Qcm9ncmVzczsK
IAotICAgICAgICBib29sIG1fbmVlZHNDbGVhcjsKLSAgICAgICAgYm9vbCBtX3JlY2VpdmVkRGF0
YTsKKyAgICBib29sIG1fbmVlZHNDbGVhcjsKKyAgICBib29sIG1fcmVjZWl2ZWREYXRhOwogCi0g
ICAgICAgIGJvb2wgbV9lbmNvZGluZ1dhc0Nob3NlbkJ5VXNlcjsKLSAgICAgICAgU3RyaW5nIG1f
ZW5jb2Rpbmc7Ci0gICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7
CisgICAgYm9vbCBtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyOworICAgIFN0cmluZyBtX2VuY29k
aW5nOworICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7CiAKLSAgICAg
ICAgYm9vbCBtX2NvbnRhaW5zUGx1Z0luczsKKyAgICBib29sIG1fY29udGFpbnNQbHVnSW5zOwog
Ci0gICAgICAgIEtVUkwgbV9zdWJtaXR0ZWRGb3JtVVJMOworICAgIEtVUkwgbV9zdWJtaXR0ZWRG
b3JtVVJMOwogCi0gICAgICAgIFRpbWVyPEZyYW1lTG9hZGVyPiBtX2NoZWNrVGltZXI7Ci0gICAg
ICAgIGJvb2wgbV9zaG91bGRDYWxsQ2hlY2tDb21wbGV0ZWQ7Ci0gICAgICAgIGJvb2wgbV9zaG91
bGRDYWxsQ2hlY2tMb2FkQ29tcGxldGU7CisgICAgVGltZXI8RnJhbWVMb2FkZXI+IG1fY2hlY2tU
aW1lcjsKKyAgICBib29sIG1fc2hvdWxkQ2FsbENoZWNrQ29tcGxldGVkOworICAgIGJvb2wgbV9z
aG91bGRDYWxsQ2hlY2tMb2FkQ29tcGxldGU7CiAKLSAgICAgICAgRnJhbWUqIG1fb3BlbmVyOwot
ICAgICAgICBIYXNoU2V0PEZyYW1lKj4gbV9vcGVuZWRGcmFtZXM7CisgICAgRnJhbWUqIG1fb3Bl
bmVyOworICAgIEhhc2hTZXQ8RnJhbWUqPiBtX29wZW5lZEZyYW1lczsKIAotICAgICAgICBib29s
IG1fY3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudDsKLSAgICAgICAgYm9vbCBtX2lzRGlzcGxh
eWluZ0luaXRpYWxFbXB0eURvY3VtZW50OwotICAgICAgICBib29sIG1fY29tbWl0dGVkRmlyc3RS
ZWFsRG9jdW1lbnRMb2FkOworICAgIGJvb2wgbV9jcmVhdGluZ0luaXRpYWxFbXB0eURvY3VtZW50
OworICAgIGJvb2wgbV9pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudDsKKyAgICBib29s
IG1fY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkOwogCi0gICAgICAgIGJvb2wgbV9kaWRQ
ZXJmb3JtRmlyc3ROYXZpZ2F0aW9uOwotICAgICAgICBib29sIG1fbG9hZGluZ0Zyb21DYWNoZWRQ
YWdlOwotICAgICAgICAKKyAgICBib29sIG1fZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbjsKKyAg
ICBib29sIG1fbG9hZGluZ0Zyb21DYWNoZWRQYWdlOworICAgIAogI2lmbmRlZiBOREVCVUcKLSAg
ICAgICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0TG9hZDsKKyAgICBib29sIG1fZGlkRGlz
cGF0Y2hEaWRDb21taXRMb2FkOwogI2VuZGlmCi0gICAgfTsKK307CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIu
aCBiL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKaW5kZXggYzE2MTUxNi4uNGVj
YWU2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaAorKysg
Yi9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC0zNyw1OCArMzcsNTggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgRnJhbWU7Ci0gICAgY2xhc3MgSGlz
dG9yeUl0ZW07CitjbGFzcyBGcmFtZTsKK2NsYXNzIEhpc3RvcnlJdGVtOwogCi0gICAgY2xhc3Mg
SGlzdG9yeUNvbnRyb2xsZXIgOiBwdWJsaWMgTm9uY29weWFibGUgewotICAgIHB1YmxpYzoKLSAg
ICAgICAgSGlzdG9yeUNvbnRyb2xsZXIoRnJhbWUqKTsKLSAgICAgICAgfkhpc3RvcnlDb250cm9s
bGVyKCk7CitjbGFzcyBIaXN0b3J5Q29udHJvbGxlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Citw
dWJsaWM6CisgICAgSGlzdG9yeUNvbnRyb2xsZXIoRnJhbWUqKTsKKyAgICB+SGlzdG9yeUNvbnRy
b2xsZXIoKTsKIAotICAgICAgICB2b2lkIHNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRv
SXRlbShIaXN0b3J5SXRlbSopOwotICAgICAgICB2b2lkIHJlc3RvcmVTY3JvbGxQb3NpdGlvbkFu
ZFZpZXdTdGF0ZSgpOworICAgIHZvaWQgc2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlVG9J
dGVtKEhpc3RvcnlJdGVtKik7CisgICAgdm9pZCByZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3
U3RhdGUoKTsKIAotICAgICAgICB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvckZyYWdtZW50
U2Nyb2xsKCk7CisgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZExpc3RGb3JGcmFnbWVudFNjcm9s
bCgpOwogCi0gICAgICAgIHZvaWQgc2F2ZURvY3VtZW50U3RhdGUoKTsKLSAgICAgICAgdm9pZCBz
YXZlRG9jdW1lbnRBbmRTY3JvbGxTdGF0ZSgpOwotICAgICAgICB2b2lkIHJlc3RvcmVEb2N1bWVu
dFN0YXRlKCk7CisgICAgdm9pZCBzYXZlRG9jdW1lbnRTdGF0ZSgpOworICAgIHZvaWQgc2F2ZURv
Y3VtZW50QW5kU2Nyb2xsU3RhdGUoKTsKKyAgICB2b2lkIHJlc3RvcmVEb2N1bWVudFN0YXRlKCk7
CiAKLSAgICAgICAgdm9pZCBpbnZhbGlkYXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCk7CisgICAg
dm9pZCBpbnZhbGlkYXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCk7CiAKLSAgICAgICAgdm9pZCBn
b1RvSXRlbShIaXN0b3J5SXRlbSosIEZyYW1lTG9hZFR5cGUpOwotICAgICAgICBib29sIHVybHNN
YXRjaEl0ZW0oSGlzdG9yeUl0ZW0qKSBjb25zdDsKKyAgICB2b2lkIGdvVG9JdGVtKEhpc3RvcnlJ
dGVtKiwgRnJhbWVMb2FkVHlwZSk7CisgICAgYm9vbCB1cmxzTWF0Y2hJdGVtKEhpc3RvcnlJdGVt
KikgY29uc3Q7CiAKLSAgICAgICAgdm9pZCB1cGRhdGVGb3JCYWNrRm9yd2FyZE5hdmlnYXRpb24o
KTsKLSAgICAgICAgdm9pZCB1cGRhdGVGb3JSZWxvYWQoKTsKLSAgICAgICAgdm9pZCB1cGRhdGVG
b3JTdGFuZGFyZExvYWQoKTsKLSAgICAgICAgdm9pZCB1cGRhdGVGb3JSZWRpcmVjdFdpdGhMb2Nr
ZWRCYWNrRm9yd2FyZExpc3QoKTsKLSAgICAgICAgdm9pZCB1cGRhdGVGb3JDbGllbnRSZWRpcmVj
dCgpOwotICAgICAgICB2b2lkIHVwZGF0ZUZvckNvbW1pdCgpOwotICAgICAgICB2b2lkIHVwZGF0
ZUZvckFuY2hvclNjcm9sbCgpOwotICAgICAgICB2b2lkIHVwZGF0ZUZvckZyYW1lTG9hZENvbXBs
ZXRlZCgpOworICAgIHZvaWQgdXBkYXRlRm9yQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7CisgICAg
dm9pZCB1cGRhdGVGb3JSZWxvYWQoKTsKKyAgICB2b2lkIHVwZGF0ZUZvclN0YW5kYXJkTG9hZCgp
OworICAgIHZvaWQgdXBkYXRlRm9yUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0KCk7
CisgICAgdm9pZCB1cGRhdGVGb3JDbGllbnRSZWRpcmVjdCgpOworICAgIHZvaWQgdXBkYXRlRm9y
Q29tbWl0KCk7CisgICAgdm9pZCB1cGRhdGVGb3JBbmNob3JTY3JvbGwoKTsKKyAgICB2b2lkIHVw
ZGF0ZUZvckZyYW1lTG9hZENvbXBsZXRlZCgpOwogCi0gICAgICAgIEhpc3RvcnlJdGVtKiBjdXJy
ZW50SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudEl0ZW0uZ2V0KCk7IH0KLSAgICAgICAg
dm9pZCBzZXRDdXJyZW50SXRlbShIaXN0b3J5SXRlbSopOwotICAgICAgICB2b2lkIHNldEN1cnJl
bnRJdGVtVGl0bGUoY29uc3QgU3RyaW5nJik7CisgICAgSGlzdG9yeUl0ZW0qIGN1cnJlbnRJdGVt
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50SXRlbS5nZXQoKTsgfQorICAgIHZvaWQgc2V0Q3Vy
cmVudEl0ZW0oSGlzdG9yeUl0ZW0qKTsKKyAgICB2b2lkIHNldEN1cnJlbnRJdGVtVGl0bGUoY29u
c3QgU3RyaW5nJik7CiAKLSAgICAgICAgSGlzdG9yeUl0ZW0qIHByb3Zpc2lvbmFsSXRlbSgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9uYWxJdGVtLmdldCgpOyB9Ci0gICAgICAgIHZvaWQgc2V0
UHJvdmlzaW9uYWxJdGVtKEhpc3RvcnlJdGVtKik7CisgICAgSGlzdG9yeUl0ZW0qIHByb3Zpc2lv
bmFsSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9uYWxJdGVtLmdldCgpOyB9CisgICAg
dm9pZCBzZXRQcm92aXNpb25hbEl0ZW0oSGlzdG9yeUl0ZW0qKTsKIAotICAgIHByaXZhdGU6Ci0g
ICAgICAgIFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+IGNyZWF0ZUl0ZW0oYm9vbCB1c2VPcmlnaW5h
bCk7Ci0gICAgICAgIFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+IGNyZWF0ZUl0ZW1UcmVlKEZyYW1l
KiB0YXJnZXRGcmFtZSwgYm9vbCBjbGlwQXRUYXJnZXQpOworcHJpdmF0ZToKKyAgICBQYXNzUmVm
UHRyPEhpc3RvcnlJdGVtPiBjcmVhdGVJdGVtKGJvb2wgdXNlT3JpZ2luYWwpOworICAgIFBhc3NS
ZWZQdHI8SGlzdG9yeUl0ZW0+IGNyZWF0ZUl0ZW1UcmVlKEZyYW1lKiB0YXJnZXRGcmFtZSwgYm9v
bCBjbGlwQXRUYXJnZXQpOwogCi0gICAgICAgIHZvaWQgcmVjdXJzaXZlR29Ub0l0ZW0oSGlzdG9y
eUl0ZW0qLCBIaXN0b3J5SXRlbSosIEZyYW1lTG9hZFR5cGUpOwotICAgICAgICBib29sIGNoaWxk
RnJhbWVzTWF0Y2hJdGVtKEhpc3RvcnlJdGVtKikgY29uc3Q7Ci0gICAgICAgIHZvaWQgdXBkYXRl
QmFja0ZvcndhcmRMaXN0Q2xpcHBlZEF0VGFyZ2V0KGJvb2wgZG9DbGlwKTsKKyAgICB2b2lkIHJl
Y3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtKiwgSGlzdG9yeUl0ZW0qLCBGcmFtZUxvYWRUeXBl
KTsKKyAgICBib29sIGNoaWxkRnJhbWVzTWF0Y2hJdGVtKEhpc3RvcnlJdGVtKikgY29uc3Q7Cisg
ICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZExpc3RDbGlwcGVkQXRUYXJnZXQoYm9vbCBkb0NsaXAp
OwogCi0gICAgICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIEZyYW1lKiBtX2ZyYW1lOwogCi0gICAg
ICAgIFJlZlB0cjxIaXN0b3J5SXRlbT4gbV9jdXJyZW50SXRlbTsKLSAgICAgICAgUmVmUHRyPEhp
c3RvcnlJdGVtPiBtX3ByZXZpb3VzSXRlbTsKLSAgICAgICAgUmVmUHRyPEhpc3RvcnlJdGVtPiBt
X3Byb3Zpc2lvbmFsSXRlbTsKLSAgICB9OworICAgIFJlZlB0cjxIaXN0b3J5SXRlbT4gbV9jdXJy
ZW50SXRlbTsKKyAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IG1fcHJldmlvdXNJdGVtOworICAgIFJl
ZlB0cjxIaXN0b3J5SXRlbT4gbV9wcm92aXNpb25hbEl0ZW07Cit9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNrLmgg
Yi9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDYWxsYmFjay5oCmluZGV4IDJhYTdjN2MuLjc1N2ZmZjgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNrLmgKKysrIGIvV2ViQ29y
ZS9sb2FkZXIvUG9saWN5Q2FsbGJhY2suaApAQCAtMzcsNDMgKzM3LDQzIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEZvcm1TdGF0ZTsKK2NsYXNzIEZvcm1TdGF0ZTsKIAot
ICAgIHR5cGVkZWYgdm9pZCAoKk5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uKSh2b2lk
KiBhcmd1bWVudCwKLSAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxG
b3JtU3RhdGU+LCBib29sIHNob3VsZENvbnRpbnVlKTsKLSAgICB0eXBlZGVmIHZvaWQgKCpOZXdX
aW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uKSh2b2lkKiBhcmd1bWVudCwKLSAgICAgICAgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwgYm9vbCBzaG91bGRDb250aW51ZSk7Ci0gICAgdHlwZWRlZiB2b2lkICgqQ29u
dGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24pKHZvaWQqIGFyZ3VtZW50LCBQb2xpY3lBY3Rpb24p
OwordHlwZWRlZiB2b2lkICgqTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24pKHZvaWQq
IGFyZ3VtZW50LAorICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPiwgYm9vbCBzaG91bGRDb250aW51ZSk7Cit0eXBlZGVmIHZvaWQgKCpOZXdXaW5kb3dQb2xp
Y3lEZWNpc2lvbkZ1bmN0aW9uKSh2b2lkKiBhcmd1bWVudCwKKyAgICBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBi
b29sIHNob3VsZENvbnRpbnVlKTsKK3R5cGVkZWYgdm9pZCAoKkNvbnRlbnRQb2xpY3lEZWNpc2lv
bkZ1bmN0aW9uKSh2b2lkKiBhcmd1bWVudCwgUG9saWN5QWN0aW9uKTsKIAotICAgIGNsYXNzIFBv
bGljeUNhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFBvbGljeUNhbGxiYWNrKCk7Ci0g
ICAgICAgIH5Qb2xpY3lDYWxsYmFjaygpOworY2xhc3MgUG9saWN5Q2FsbGJhY2sgeworcHVibGlj
OgorICAgIFBvbGljeUNhbGxiYWNrKCk7CisgICAgflBvbGljeUNhbGxiYWNrKCk7CiAKLSAgICAg
ICAgdm9pZCBjbGVhcigpOwotICAgICAgICB2b2lkIHNldChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sCi0gICAgICAgICAgICBOYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb25GdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpOwotICAgICAgICB2b2lkIHNldChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLAotICAgICAgICAgICAgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgdm9p
ZCogYXJndW1lbnQpOwotICAgICAgICB2b2lkIHNldChDb250ZW50UG9saWN5RGVjaXNpb25GdW5j
dGlvbiwgdm9pZCogYXJndW1lbnQpOworICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lkIHNldChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sCisgICAgICAgIE5h
dmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCk7CisgICAgdm9p
ZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwKKyAgICAgICAgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5j
dGlvbiwgdm9pZCogYXJndW1lbnQpOworICAgIHZvaWQgc2V0KENvbnRlbnRQb2xpY3lEZWNpc2lv
bkZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCk7CiAKLSAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9Ci0gICAgICAgIHZvaWQg
Y2xlYXJSZXF1ZXN0KCk7CisgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgY29u
c3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKIAotICAg
ICAgICB2b2lkIGNhbGwoYm9vbCBzaG91bGRDb250aW51ZSk7Ci0gICAgICAgIHZvaWQgY2FsbChQ
b2xpY3lBY3Rpb24pOwotICAgICAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgY2FsbChib29s
IHNob3VsZENvbnRpbnVlKTsKKyAgICB2b2lkIGNhbGwoUG9saWN5QWN0aW9uKTsKKyAgICB2b2lk
IGNhbmNlbCgpOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVx
dWVzdDsKLSAgICAgICAgUmVmUHRyPEZvcm1TdGF0ZT4gbV9mb3JtU3RhdGU7Ci0gICAgICAgIFN0
cmluZyBtX2ZyYW1lTmFtZTsKK3ByaXZhdGU6CisgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVz
dDsKKyAgICBSZWZQdHI8Rm9ybVN0YXRlPiBtX2Zvcm1TdGF0ZTsKKyAgICBTdHJpbmcgbV9mcmFt
ZU5hbWU7CiAKLSAgICAgICAgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24gbV9uYXZp
Z2F0aW9uRnVuY3Rpb247Ci0gICAgICAgIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24g
bV9uZXdXaW5kb3dGdW5jdGlvbjsKLSAgICAgICAgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rp
b24gbV9jb250ZW50RnVuY3Rpb247Ci0gICAgICAgIHZvaWQqIG1fYXJndW1lbnQ7Ci0gICAgfTsK
KyAgICBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX25hdmlnYXRpb25GdW5jdGlv
bjsKKyAgICBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIG1fbmV3V2luZG93RnVuY3Rp
b247CisgICAgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24gbV9jb250ZW50RnVuY3Rpb247
CisgICAgdm9pZCogbV9hcmd1bWVudDsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oIGIvV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2tlci5oCmluZGV4IGM2NjdmNWIuLjU0MTcyOWMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9Qb2xpY3lD
aGVja2VyLmgKQEAgLTM4LDU5ICszOCw1OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAg
ICBjbGFzcyBEb2N1bWVudExvYWRlcjsKLSAgICBjbGFzcyBGb3JtU3RhdGU7Ci0gICAgY2xhc3Mg
RnJhbWU7Ci0gICAgY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKLSAgICBjbGFzcyBSZXNvdXJjZUVy
cm9yOwotICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci0KLSAgICBjbGFzcyBQb2xpY3lDaGVj
a2VyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFBvbGljeUNo
ZWNrZXIoRnJhbWUqKTsKLQotICAgICAgICB2b2lkIGNoZWNrTmF2aWdhdGlvblBvbGljeShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBEb2N1bWVudExvYWRlciosIFBhc3NSZWZQdHI8Rm9ybVN0YXRl
PiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsKLSAg
ICAgICAgdm9pZCBjaGVja05hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
TmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsKLSAgICAg
ICAgdm9pZCBjaGVja05ld1dpbmRvd1BvbGljeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3
V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdm9pZCogYXJndW1l
bnQpOwotICAgICAgICB2b2lkIGNoZWNrQ29udGVudFBvbGljeShjb25zdCBTdHJpbmcmIE1JTUVU
eXBlLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpOwotCi0g
ICAgICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZGlmZmVyZW50LiAgVGhleSBjb3VsZCB1c2UgYmV0
dGVyIG5hbWVzLgotICAgICAgICB2b2lkIGNhbmNlbENoZWNrKCk7Ci0gICAgICAgIHZvaWQgc3Rv
cENoZWNrKCk7Ci0KLSAgICAgICAgdm9pZCBjYW5ub3RTaG93TUlNRVR5cGUoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwotCi0gICAgICAgIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUoKSBjb25zdCB7
IHJldHVybiBtX2xvYWRUeXBlOyB9Ci0gICAgICAgIHZvaWQgc2V0TG9hZFR5cGUoRnJhbWVMb2Fk
VHlwZSBsb2FkVHlwZSkgeyBtX2xvYWRUeXBlID0gbG9hZFR5cGU7IH0KLQotICAgICAgICBib29s
IGRlbGVnYXRlSXNEZWNpZGluZ05hdmlnYXRpb25Qb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2Rl
bGVnYXRlSXNEZWNpZGluZ05hdmlnYXRpb25Qb2xpY3k7IH0KLSAgICAgICAgYm9vbCBkZWxlZ2F0
ZUlzSGFuZGxpbmdVbmltcGxlbWVudGFibGVQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2RlbGVn
YXRlSXNIYW5kbGluZ1VuaW1wbGVtZW50YWJsZVBvbGljeTsgfQotCi0gICAgICAgIC8vIEZJWE1F
OiBUaGlzIGZ1bmN0aW9uIGlzIGEgY2hlYXQuICBCYXNpY2FsbHksIHRoaXMgaXMganVzdCBhbiBh
c3luY2hyb25vdWMgY2FsbGJhY2sKLSAgICAgICAgLy8gZnJvbSB0aGUgRnJhbWVMb2FkZXJDbGll
bnQsIGJ1dCB0aGlzIGNhbGxiYWNrIHVzZXMgdGhlIHBvbGljeSB0eXBlcyBhbmQgc28gaGFzIHRv
Ci0gICAgICAgIC8vIGxpdmUgb24gdGhpcyBvYmplY3QuICBJbiB0aGUgbG9uZyB0ZXJtLCB3ZSBz
aG91bGQgY3JlYXRlIGEgdHlwZSBmb3Igbm9uLXBvbGljeQotICAgICAgICAvLyBjYWxsYmFja3Mg
ZnJvbSB0aGUgRnJhbWVMb2FkZXJDbGllbnQgYW5kIHJlbW92ZSB0aGlzIHZlc3RpZ2UuICBJIGp1
c3QgZG9uJ3QgaGF2ZQotICAgICAgICAvLyB0aGUgaGVhcnQgdG8gaGFjayBvbiBhbGwgdGhlIHBs
YXRmb3JtcyB0byBtYWtlIHRoYXQgaGFwcGVuIHJpZ2h0IG5vdy4KLSAgICAgICAgdm9pZCBjb250
aW51ZUxvYWRBZnRlcldpbGxTdWJtaXRGb3JtKFBvbGljeUFjdGlvbik7Ci0KLSAgICBwcml2YXRl
OgotICAgICAgICB2b2lkIGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUFjdGlv
bik7Ci0gICAgICAgIHZvaWQgY29udGludWVBZnRlck5ld1dpbmRvd1BvbGljeShQb2xpY3lBY3Rp
b24pOwotICAgICAgICB2b2lkIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlv
bik7Ci0KLSAgICAgICAgdm9pZCBoYW5kbGVVbmltcGxlbWVudGFibGVQb2xpY3koY29uc3QgUmVz
b3VyY2VFcnJvciYpOwotCi0gICAgICAgIEZyYW1lKiBtX2ZyYW1lOwotCi0gICAgICAgIGJvb2wg
bV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5OwotICAgICAgICBib29sIG1fZGVs
ZWdhdGVJc0hhbmRsaW5nVW5pbXBsZW1lbnRhYmxlUG9saWN5OwotCi0gICAgICAgIC8vIFRoaXMg
aWRlbnRpZmllcyB0aGUgdHlwZSBvZiBuYXZpZ2F0aW9uIGFjdGlvbiB3aGljaCBwcm9tcHRlZCB0
aGlzIGxvYWQuIE5vdGUgCi0gICAgICAgIC8vIHRoYXQgV2ViS2l0IGNvbnZleXMgdGhpcyB2YWx1
ZSBhcyB0aGUgV2ViQWN0aW9uTmF2aWdhdGlvblR5cGVLZXkgdmFsdWUKLSAgICAgICAgLy8gb24g
bmF2aWdhdGlvbiBhY3Rpb24gZGVsZWdhdGUgY2FsbGJhY2tzLgotICAgICAgICBGcmFtZUxvYWRU
eXBlIG1fbG9hZFR5cGU7Ci0gICAgICAgIFBvbGljeUNhbGxiYWNrIG1fY2FsbGJhY2s7Ci0gICAg
fTsKK2NsYXNzIERvY3VtZW50TG9hZGVyOworY2xhc3MgRm9ybVN0YXRlOworY2xhc3MgRnJhbWU7
CitjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJl
c291cmNlUmVzcG9uc2U7CisKK2NsYXNzIFBvbGljeUNoZWNrZXIgOiBwdWJsaWMgTm9uY29weWFi
bGUgeworcHVibGljOgorICAgIFBvbGljeUNoZWNrZXIoRnJhbWUqKTsKKworICAgIHZvaWQgY2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIERvY3VtZW50TG9hZGVy
KiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlv
biwgdm9pZCogYXJndW1lbnQpOworICAgIHZvaWQgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uLCB2b2lk
KiBhcmd1bWVudCk7CisgICAgdm9pZCBjaGVja05ld1dpbmRvd1BvbGljeShjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiwgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgdm9pZCogYXJndW1lbnQpOworICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFN0
cmluZyYgTUlNRVR5cGUsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uLCB2b2lkKiBhcmd1
bWVudCk7CisKKyAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGRpZmZlcmVudC4gIFRoZXkgY291bGQg
dXNlIGJldHRlciBuYW1lcy4KKyAgICB2b2lkIGNhbmNlbENoZWNrKCk7CisgICAgdm9pZCBzdG9w
Q2hlY2soKTsKKworICAgIHZvaWQgY2Fubm90U2hvd01JTUVUeXBlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKKworICAgIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUoKSBjb25zdCB7IHJldHVybiBt
X2xvYWRUeXBlOyB9CisgICAgdm9pZCBzZXRMb2FkVHlwZShGcmFtZUxvYWRUeXBlIGxvYWRUeXBl
KSB7IG1fbG9hZFR5cGUgPSBsb2FkVHlwZTsgfQorCisgICAgYm9vbCBkZWxlZ2F0ZUlzRGVjaWRp
bmdOYXZpZ2F0aW9uUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9kZWxlZ2F0ZUlzRGVjaWRpbmdO
YXZpZ2F0aW9uUG9saWN5OyB9CisgICAgYm9vbCBkZWxlZ2F0ZUlzSGFuZGxpbmdVbmltcGxlbWVu
dGFibGVQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2RlbGVnYXRlSXNIYW5kbGluZ1VuaW1wbGVt
ZW50YWJsZVBvbGljeTsgfQorCisgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gaXMgYSBjaGVh
dC4gIEJhc2ljYWxseSwgdGhpcyBpcyBqdXN0IGFuIGFzeW5jaHJvbm91YyBjYWxsYmFjaworICAg
IC8vIGZyb20gdGhlIEZyYW1lTG9hZGVyQ2xpZW50LCBidXQgdGhpcyBjYWxsYmFjayB1c2VzIHRo
ZSBwb2xpY3kgdHlwZXMgYW5kIHNvIGhhcyB0bworICAgIC8vIGxpdmUgb24gdGhpcyBvYmplY3Qu
ICBJbiB0aGUgbG9uZyB0ZXJtLCB3ZSBzaG91bGQgY3JlYXRlIGEgdHlwZSBmb3Igbm9uLXBvbGlj
eQorICAgIC8vIGNhbGxiYWNrcyBmcm9tIHRoZSBGcmFtZUxvYWRlckNsaWVudCBhbmQgcmVtb3Zl
IHRoaXMgdmVzdGlnZS4gIEkganVzdCBkb24ndCBoYXZlCisgICAgLy8gdGhlIGhlYXJ0IHRvIGhh
Y2sgb24gYWxsIHRoZSBwbGF0Zm9ybXMgdG8gbWFrZSB0aGF0IGhhcHBlbiByaWdodCBub3cuCisg
ICAgdm9pZCBjb250aW51ZUxvYWRBZnRlcldpbGxTdWJtaXRGb3JtKFBvbGljeUFjdGlvbik7CisK
K3ByaXZhdGU6CisgICAgdm9pZCBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lB
Y3Rpb24pOworICAgIHZvaWQgY29udGludWVBZnRlck5ld1dpbmRvd1BvbGljeShQb2xpY3lBY3Rp
b24pOworICAgIHZvaWQgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uKTsK
KworICAgIHZvaWQgaGFuZGxlVW5pbXBsZW1lbnRhYmxlUG9saWN5KGNvbnN0IFJlc291cmNlRXJy
b3ImKTsKKworICAgIEZyYW1lKiBtX2ZyYW1lOworCisgICAgYm9vbCBtX2RlbGVnYXRlSXNEZWNp
ZGluZ05hdmlnYXRpb25Qb2xpY3k7CisgICAgYm9vbCBtX2RlbGVnYXRlSXNIYW5kbGluZ1VuaW1w
bGVtZW50YWJsZVBvbGljeTsKKworICAgIC8vIFRoaXMgaWRlbnRpZmllcyB0aGUgdHlwZSBvZiBu
YXZpZ2F0aW9uIGFjdGlvbiB3aGljaCBwcm9tcHRlZCB0aGlzIGxvYWQuIE5vdGUgCisgICAgLy8g
dGhhdCBXZWJLaXQgY29udmV5cyB0aGlzIHZhbHVlIGFzIHRoZSBXZWJBY3Rpb25OYXZpZ2F0aW9u
VHlwZUtleSB2YWx1ZQorICAgIC8vIG9uIG5hdmlnYXRpb24gYWN0aW9uIGRlbGVnYXRlIGNhbGxi
YWNrcy4KKyAgICBGcmFtZUxvYWRUeXBlIG1fbG9hZFR5cGU7CisgICAgUG9saWN5Q2FsbGJhY2sg
bV9jYWxsYmFjazsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1JlZGly
ZWN0U2NoZWR1bGVyLmgKaW5kZXggYmYwNzZkNi4uMDA1YTE3MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9SZWRpcmVj
dFNjaGVkdWxlci5oCkBAIC0zOSw0MiArMzksNDIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0gICAgY2xhc3MgRm9ybVN0YXRlOwotICAgIGNsYXNzIEZyYW1lOwotICAgIGNsYXNzIFN0cmlu
ZzsKK2NsYXNzIEZvcm1TdGF0ZTsKK2NsYXNzIEZyYW1lOworY2xhc3MgU3RyaW5nOwogCi0gICAg
c3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7Ci0gICAgc3RydWN0IFNjaGVkdWxlZFJlZGlyZWN0aW9u
Oworc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7CitzdHJ1Y3QgU2NoZWR1bGVkUmVkaXJlY3Rpb247
CiAKLSAgICBjbGFzcyBSZWRpcmVjdFNjaGVkdWxlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Ci0g
ICAgcHVibGljOgotICAgICAgICBSZWRpcmVjdFNjaGVkdWxlcihGcmFtZSopOwotICAgICAgICB+
UmVkaXJlY3RTY2hlZHVsZXIoKTsKK2NsYXNzIFJlZGlyZWN0U2NoZWR1bGVyIDogcHVibGljIE5v
bmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBSZWRpcmVjdFNjaGVkdWxlcihGcmFtZSopOworICAg
IH5SZWRpcmVjdFNjaGVkdWxlcigpOwogCi0gICAgICAgIGJvb2wgcmVkaXJlY3RTY2hlZHVsZWRE
dXJpbmdMb2FkKCk7Ci0gICAgICAgIGJvb2wgbG9jYXRpb25DaGFuZ2VQZW5kaW5nKCk7CisgICAg
Ym9vbCByZWRpcmVjdFNjaGVkdWxlZER1cmluZ0xvYWQoKTsKKyAgICBib29sIGxvY2F0aW9uQ2hh
bmdlUGVuZGluZygpOwogCi0gICAgICAgIHZvaWQgc2NoZWR1bGVSZWRpcmVjdChkb3VibGUgZGVs
YXksIGNvbnN0IFN0cmluZyYgdXJsKTsKLSAgICAgICAgdm9pZCBzY2hlZHVsZUxvY2F0aW9uQ2hh
bmdlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGxvY2tI
aXN0b3J5ID0gdHJ1ZSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0ID0gdHJ1ZSwgYm9vbCB1c2Vy
R2VzdHVyZSA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCBzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKGNv
bnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRyPEV2ZW50
PiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KTsKLSAgICAgICAgdm9pZCBzY2hlZHVsZVJlZnJlc2go
Ym9vbCB1c2VyR2VzdHVyZSA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCBzY2hlZHVsZUhpc3RvcnlO
YXZpZ2F0aW9uKGludCBzdGVwcyk7CisgICAgdm9pZCBzY2hlZHVsZVJlZGlyZWN0KGRvdWJsZSBk
ZWxheSwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZvaWQgc2NoZWR1bGVMb2NhdGlvbkNoYW5n
ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBsb2NrSGlz
dG9yeSA9IHRydWUsIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IHRydWUsIGJvb2wgdXNlckdl
c3R1cmUgPSBmYWxzZSk7CisgICAgdm9pZCBzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKGNvbnN0IEZy
YW1lTG9hZFJlcXVlc3QmLCBib29sIGxvY2tIaXN0b3J5LCBQYXNzUmVmUHRyPEV2ZW50PiwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+KTsKKyAgICB2b2lkIHNjaGVkdWxlUmVmcmVzaChib29sIHVzZXJH
ZXN0dXJlID0gZmFsc2UpOworICAgIHZvaWQgc2NoZWR1bGVIaXN0b3J5TmF2aWdhdGlvbihpbnQg
c3RlcHMpOwogCi0gICAgICAgIHZvaWQgc3RhcnRUaW1lcigpOworICAgIHZvaWQgc3RhcnRUaW1l
cigpOwogCi0gICAgICAgIHZvaWQgY2FuY2VsKGJvb2wgbmV3TG9hZEluUHJvZ3Jlc3MgPSBmYWxz
ZSk7Ci0gICAgICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lkIGNhbmNlbChib29sIG5ld0xvYWRJ
blByb2dyZXNzID0gZmFsc2UpOworICAgIHZvaWQgY2xlYXIoKTsKIAotICAgIHByaXZhdGU6Ci0g
ICAgICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxSZWRpcmVjdFNjaGVkdWxlcj4qKTsKLSAgICAg
ICAgdm9pZCBzY2hlZHVsZShQYXNzT3duUHRyPFNjaGVkdWxlZFJlZGlyZWN0aW9uPik7Citwcml2
YXRlOgorICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxSZWRpcmVjdFNjaGVkdWxlcj4qKTsKKyAg
ICB2b2lkIHNjaGVkdWxlKFBhc3NPd25QdHI8U2NoZWR1bGVkUmVkaXJlY3Rpb24+KTsKIAotICAg
ICAgICBzdGF0aWMgYm9vbCBtdXN0TG9ja0JhY2tGb3J3YXJkTGlzdChGcmFtZSogdGFyZ2V0RnJh
bWUpOworICAgIHN0YXRpYyBib29sIG11c3RMb2NrQmFja0ZvcndhcmRMaXN0KEZyYW1lKiB0YXJn
ZXRGcmFtZSk7CiAKLSAgICAgICAgRnJhbWUqIG1fZnJhbWU7Ci0gICAgICAgIFRpbWVyPFJlZGly
ZWN0U2NoZWR1bGVyPiBtX3RpbWVyOwotICAgICAgICBPd25QdHI8U2NoZWR1bGVkUmVkaXJlY3Rp
b24+IG1fc2NoZWR1bGVkUmVkaXJlY3Rpb247Ci0gICAgfTsKKyAgICBGcmFtZSogbV9mcmFtZTsK
KyAgICBUaW1lcjxSZWRpcmVjdFNjaGVkdWxlcj4gbV90aW1lcjsKKyAgICBPd25QdHI8U2NoZWR1
bGVkUmVkaXJlY3Rpb24+IG1fc2NoZWR1bGVkUmVkaXJlY3Rpb247Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5v
dGlmaWVyLmggYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCmluZGV4IDkz
NDExNzEuLjYwNWQzZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5v
dGlmaWVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaApAQCAt
MzQsNDEgKzM0LDQxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOwotICAgIGNsYXNzIERvY3VtZW50TG9hZGVyOwotICAgIGNsYXNz
IEZyYW1lOwotICAgIGNsYXNzIFJlc291cmNlRXJyb3I7Ci0gICAgY2xhc3MgUmVzb3VyY2VMb2Fk
ZXI7Ci0gICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLSAgICBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7Ci0gICAgY2xhc3MgU2NyaXB0U3RyaW5nOworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U7CitjbGFzcyBEb2N1bWVudExvYWRlcjsKK2NsYXNzIEZyYW1lOworY2xhc3MgUmVzb3VyY2VF
cnJvcjsKK2NsYXNzIFJlc291cmNlTG9hZGVyOworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2Ns
YXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFNjcmlwdFN0cmluZzsKIAotICAgIGNsYXNzIFJl
c291cmNlTG9hZE5vdGlmaWVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIFJlc291cmNlTG9hZE5vdGlmaWVyKEZyYW1lKik7CitjbGFzcyBSZXNvdXJjZUxvYWRO
b3RpZmllciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgUmVzb3VyY2VMb2Fk
Tm90aWZpZXIoRnJhbWUqKTsKIAotICAgICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Jik7Ci0gICAgICAgIHZvaWQgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3Vy
Y2VMb2FkZXIqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KTsKIAotICAgICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgICAgIHZv
aWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlTG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7Ci0gICAgICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwotICAgICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZGVyKiwgY29uc3QgY2hh
ciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICAgICAgdm9pZCBkaWRGaW5pc2hMb2Fk
KFJlc291cmNlTG9hZGVyKik7Ci0gICAgICAgIHZvaWQgZGlkRmFpbFRvTG9hZChSZXNvdXJjZUxv
YWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAgICAgdm9pZCBkaWRMb2FkUmVzb3Vy
Y2VCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU2NyaXB0
U3RyaW5nJiBzb3VyY2VTdHJpbmcpOworICAgIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlh
bFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KTsKKyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUxvYWRlciosIFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOworICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBj
aGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZChS
ZXNvdXJjZUxvYWRlciopOworICAgIHZvaWQgZGlkRmFpbFRvTG9hZChSZXNvdXJjZUxvYWRlcios
IGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGRpZExvYWRSZXNvdXJjZUJ5WE1MSHR0
cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTY3JpcHRTdHJpbmcmIHNv
dXJjZVN0cmluZyk7CiAKLSAgICAgICAgdm9pZCBkaXNwYXRjaEFzc2lnbklkZW50aWZpZXJUb0lu
aXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICAgICAgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVx
dWVzdChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7Ci0gICAg
ICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICAgICAg
dm9pZCBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoKTsKLSAgICAgICAgdm9pZCBkaXNwYXRj
aERpZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIpOworICAgIHZvaWQgZGlzcGF0Y2hBc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0Jik7CisgICAgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRl
ciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgdm9pZCBkaXNwYXRjaERpZFJl
Y2VpdmVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQ29u
dGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50
IGxlbmd0aCk7CisgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
aW5saW5lIERvY3VtZW50TG9hZGVyKiBhY3RpdmVEb2N1bWVudExvYWRlcigpIGNvbnN0OworcHJp
dmF0ZToKKyAgICBpbmxpbmUgRG9jdW1lbnRMb2FkZXIqIGFjdGl2ZURvY3VtZW50TG9hZGVyKCkg
Y29uc3Q7CiAKLSAgICAgICAgRnJhbWUqIG1fZnJhbWU7Ci0gICAgfTsKKyAgICBGcmFtZSogbV9m
cmFtZTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmU=
</data>

          </attachment>
      

    </bug>

</bugzilla>