<?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>28773</bug_id>
          
          <creation_ts>2009-08-27 07:32:44 -0700</creation_ts>
          <short_desc>Change functions and constants in CanvasRenderingContext3D to bring it up to spec</short_desc>
          <delta_ts>2009-11-06 16:58:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>143104</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-08-27 07:32:44 -0700</bug_when>
    <thetext>The latest WebGL (Canvas 3D) spec removes the gl prefix from functions and constants. We need to do that in the WebKit implementation. There are also a couple of other small API changes I will make at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143265</commentid>
    <comment_count>1</comment_count>
      <attachid>38706</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-08-27 17:56:30 -0700</bug_when>
    <thetext>Created attachment 38706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143268</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-08-27 18:21:17 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/bindings/js/JSCanvasRenderingContext3DCustom.cpp
Sending        WebCore/html/canvas/CanvasRenderingContext3D.cpp
Sending        WebCore/html/canvas/CanvasRenderingContext3D.h
Sending        WebCore/html/canvas/CanvasRenderingContext3D.idl
Sending        WebCore/platform/graphics/GraphicsContext3D.h
Sending        WebCore/platform/graphics/mac/GraphicsContext3DMac.cpp
Transmitting file data .......
Committed revision 47851.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143275</commentid>
    <comment_count>3</comment_count>
      <attachid>38706</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-27 18:47:00 -0700</bug_when>
    <thetext>Comment on attachment 38706
Patch

Clearing review flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38706</attachid>
            <date>2009-08-27 17:56:30 -0700</date>
            <delta_ts>2009-08-27 18:46:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>28773.patch</filename>
            <type>text/plain</type>
            <size>156099</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzg0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDgtMjcgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisJUmVtb3ZlZCBH
TF8gZnJvbSBhbGwgY29uc3RhbnRzLCBhbmQgZ2wgcHJlZml4IGZyb20gYWxsIGNhbGxzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODc3MworCisgICAg
ICAgIFRoaXMgd2FzIGRvbmUgZm9yIHRoZSBleHRlcm5hbCBBUEkgaW4gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDNEIGFuZAorICAgICAgICB0aGUgaW50ZXJuYWwgQVBJIGluIEdyYXBoaWNzQ29udGV4
dDNELgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmNw
cDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0M0QuaWRsOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcDoKKwogMjAwOS0wOC0y
NyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQzRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0M0QuY3BwCShyZXZpc2lvbiA0Nzg0MykKKysrIFdlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjksMTA2ICs2OSwxMDYgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OnJlc2hhcGUo
aQogICAgIG1fY29udGV4dC5yZXNoYXBlKHdpZHRoLCBoZWlnaHQpOwogfQogCi12b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xBY3RpdmVUZXh0dXJlKHVuc2lnbmVkIGxvbmcgdGV4dHVy
ZSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjphY3RpdmVUZXh0dXJlKHVuc2lnbmVk
IGxvbmcgdGV4dHVyZSkKIHsKLSAgICBtX2NvbnRleHQuZ2xBY3RpdmVUZXh0dXJlKHRleHR1cmUp
OworICAgIG1fY29udGV4dC5hY3RpdmVUZXh0dXJlKHRleHR1cmUpOwogICAgIGNsZWFudXBBZnRl
ckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNE
OjpnbEF0dGFjaFNoYWRlcihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBDYW52YXNTaGFkZXIqIHNo
YWRlcikKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjphdHRhY2hTaGFkZXIoQ2FudmFz
UHJvZ3JhbSogcHJvZ3JhbSwgQ2FudmFzU2hhZGVyKiBzaGFkZXIpCiB7CiAgICAgaWYgKCFwcm9n
cmFtIHx8ICFzaGFkZXIpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHQuZ2xBdHRhY2hT
aGFkZXIocHJvZ3JhbSwgc2hhZGVyKTsKKyAgICBtX2NvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dy
YW0sIHNoYWRlcik7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAot
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsQmluZEF0dHJpYkxvY2F0aW9uKENhbnZh
c1Byb2dyYW0qIHByb2dyYW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFt
ZSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpiaW5kQXR0cmliTG9jYXRpb24oQ2Fu
dmFzUHJvZ3JhbSogcHJvZ3JhbSwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgU3RyaW5nJiBu
YW1lKQogewogICAgIGlmICghcHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4
dC5nbEJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCBpbmRleCwgbmFtZSk7CisgICAgbV9jb250
ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCBpbmRleCwgbmFtZSk7CiAgICAgY2xlYW51
cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0M0Q6OmdsQmluZEJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzQnVmZmVyKiBi
dWZmZXIpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6YmluZEJ1ZmZlcih1bnNpZ25l
ZCBsb25nIHRhcmdldCwgQ2FudmFzQnVmZmVyKiBidWZmZXIpCiB7Ci0gICAgbV9jb250ZXh0Lmds
QmluZEJ1ZmZlcih0YXJnZXQsIGJ1ZmZlcik7CisgICAgbV9jb250ZXh0LmJpbmRCdWZmZXIodGFy
Z2V0LCBidWZmZXIpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAK
IAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsQmluZEZyYW1lYnVmZmVyKHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNGcmFtZWJ1ZmZlciogYnVmZmVyKQordm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwg
Q2FudmFzRnJhbWVidWZmZXIqIGJ1ZmZlcikKIHsKLSAgICBtX2NvbnRleHQuZ2xCaW5kRnJhbWVi
dWZmZXIodGFyZ2V0LCBidWZmZXIpOworICAgIG1fY29udGV4dC5iaW5kRnJhbWVidWZmZXIodGFy
Z2V0LCBidWZmZXIpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAK
LXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbEJpbmRSZW5kZXJidWZmZXIodW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIENhbnZhc1JlbmRlcmJ1ZmZlciogcmVuZGVyYnVmZmVyKQordm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmJpbmRSZW5kZXJidWZmZXIodW5zaWduZWQgbG9uZyB0
YXJnZXQsIENhbnZhc1JlbmRlcmJ1ZmZlciogcmVuZGVyYnVmZmVyKQogewotICAgIG1fY29udGV4
dC5nbEJpbmRSZW5kZXJidWZmZXIodGFyZ2V0LCByZW5kZXJidWZmZXIpOworICAgIG1fY29udGV4
dC5iaW5kUmVuZGVyYnVmZmVyKHRhcmdldCwgcmVuZGVyYnVmZmVyKTsKICAgICBjbGVhbnVwQWZ0
ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEOjpnbEJpbmRUZXh0dXJlKHVuc2lnbmVkIHRhcmdldCwgQ2FudmFzVGV4dHVyZSogdGV4dHVy
ZSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpiaW5kVGV4dHVyZSh1bnNpZ25lZCB0
YXJnZXQsIENhbnZhc1RleHR1cmUqIHRleHR1cmUpCiB7Ci0gICAgbV9jb250ZXh0LmdsQmluZFRl
eHR1cmUodGFyZ2V0LCB0ZXh0dXJlKTsKKyAgICBtX2NvbnRleHQuYmluZFRleHR1cmUodGFyZ2V0
LCB0ZXh0dXJlKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xCbGVuZENvbG9yKGRvdWJsZSByZWQsIGRv
dWJsZSBncmVlbiwgZG91YmxlIGJsdWUsIGRvdWJsZSBhbHBoYSkKK3ZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDNEOjpibGVuZENvbG9yKGRvdWJsZSByZWQsIGRvdWJsZSBncmVlbiwgZG91Ymxl
IGJsdWUsIGRvdWJsZSBhbHBoYSkKIHsKLSAgICBtX2NvbnRleHQuZ2xCbGVuZENvbG9yKHJlZCwg
Z3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgICBtX2NvbnRleHQuYmxlbmRDb2xvcihyZWQsIGdyZWVu
LCBibHVlLCBhbHBoYSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0K
IAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsQmxlbmRFcXVhdGlvbiggdW5zaWdu
ZWQgbG9uZyBtb2RlICkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpibGVuZEVxdWF0
aW9uKCB1bnNpZ25lZCBsb25nIG1vZGUgKQogewotICAgIG1fY29udGV4dC5nbEJsZW5kRXF1YXRp
b24obW9kZSk7CisgICAgbV9jb250ZXh0LmJsZW5kRXF1YXRpb24obW9kZSk7CiAgICAgY2xlYW51
cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0M0Q6OmdsQmxlbmRFcXVhdGlvblNlcGFyYXRlKHVuc2lnbmVkIGxvbmcgbW9kZVJHQiwgdW5z
aWduZWQgbG9uZyBtb2RlQWxwaGEpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Ymxl
bmRFcXVhdGlvblNlcGFyYXRlKHVuc2lnbmVkIGxvbmcgbW9kZVJHQiwgdW5zaWduZWQgbG9uZyBt
b2RlQWxwaGEpCiB7Ci0gICAgbV9jb250ZXh0LmdsQmxlbmRFcXVhdGlvblNlcGFyYXRlKG1vZGVS
R0IsIG1vZGVBbHBoYSk7CisgICAgbV9jb250ZXh0LmJsZW5kRXF1YXRpb25TZXBhcmF0ZShtb2Rl
UkdCLCBtb2RlQWxwaGEpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9
CiAKIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsQmxlbmRGdW5jKHVuc2lnbmVk
IGxvbmcgc2ZhY3RvciwgdW5zaWduZWQgbG9uZyBkZmFjdG9yKQordm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0M0Q6OmJsZW5kRnVuYyh1bnNpZ25lZCBsb25nIHNmYWN0b3IsIHVuc2lnbmVkIGxv
bmcgZGZhY3RvcikKIHsKLSAgICBtX2NvbnRleHQuZ2xCbGVuZEZ1bmMoc2ZhY3RvciwgZGZhY3Rv
cik7CisgICAgbV9jb250ZXh0LmJsZW5kRnVuYyhzZmFjdG9yLCBkZmFjdG9yKTsKICAgICBjbGVh
bnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfSAgICAgICAKIAotdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0Q6OmdsQmxlbmRGdW5jU2VwYXJhdGUodW5zaWduZWQgbG9uZyBzcmNSR0Is
IHVuc2lnbmVkIGxvbmcgZHN0UkdCLCB1bnNpZ25lZCBsb25nIHNyY0FscGhhLCB1bnNpZ25lZCBs
b25nIGRzdEFscGhhKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmJsZW5kRnVuY1Nl
cGFyYXRlKHVuc2lnbmVkIGxvbmcgc3JjUkdCLCB1bnNpZ25lZCBsb25nIGRzdFJHQiwgdW5zaWdu
ZWQgbG9uZyBzcmNBbHBoYSwgdW5zaWduZWQgbG9uZyBkc3RBbHBoYSkKIHsKLSAgICBtX2NvbnRl
eHQuZ2xCbGVuZEZ1bmNTZXBhcmF0ZShzcmNSR0IsIGRzdFJHQiwgc3JjQWxwaGEsIGRzdEFscGhh
KTsKKyAgICBtX2NvbnRleHQuYmxlbmRGdW5jU2VwYXJhdGUoc3JjUkdCLCBkc3RSR0IsIHNyY0Fs
cGhhLCBkc3RBbHBoYSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0K
IAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsQnVmZmVyRGF0YSh1bnNpZ25lZCBs
b25nIHRhcmdldCwgQ2FudmFzTnVtYmVyQXJyYXkqIGFycmF5LCB1bnNpZ25lZCBsb25nIHVzYWdl
KQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmJ1ZmZlckRhdGEodW5zaWduZWQgbG9u
ZyB0YXJnZXQsIENhbnZhc051bWJlckFycmF5KiBhcnJheSwgdW5zaWduZWQgbG9uZyB1c2FnZSkK
IHsKLSAgICBtX2NvbnRleHQuZ2xCdWZmZXJEYXRhKHRhcmdldCwgYXJyYXksIHVzYWdlKTsKKyAg
ICBtX2NvbnRleHQuYnVmZmVyRGF0YSh0YXJnZXQsIGFycmF5LCB1c2FnZSk7CiAgICAgY2xlYW51
cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0M0Q6OmdsQnVmZmVyU3ViRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBvZmZzZXQs
IENhbnZhc051bWJlckFycmF5KiBhcnJheSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNE
OjpidWZmZXJTdWJEYXRhKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIG9mZnNldCwgQ2FudmFz
TnVtYmVyQXJyYXkqIGFycmF5KQogewogICAgIGlmICghYXJyYXkgfHwgIWFycmF5LT5kYXRhKCku
c2l6ZSgpKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIG1fY29udGV4dC5nbEJ1ZmZl
clN1YkRhdGEodGFyZ2V0LCBvZmZzZXQsIGFycmF5KTsKKyAgICBtX2NvbnRleHQuYnVmZmVyU3Vi
RGF0YSh0YXJnZXQsIG9mZnNldCwgYXJyYXkpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2Fs
bChmYWxzZSk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpn
bENoZWNrRnJhbWVidWZmZXJTdGF0dXMoQ2FudmFzRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQor
dW5zaWduZWQgbG9uZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoQ2FudmFzRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQogewotICAgIHJldHVybiBtX2Nv
bnRleHQuZ2xDaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGZyYW1lYnVmZmVyKTsKKyAgICByZXR1cm4g
bV9jb250ZXh0LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZnJhbWVidWZmZXIpOwogfQogCi12b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xDbGVhckNvbG9yKGRvdWJsZSByLCBkb3VibGUg
ZywgZG91YmxlIGIsIGRvdWJsZSBhKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmNs
ZWFyQ29sb3IoZG91YmxlIHIsIGRvdWJsZSBnLCBkb3VibGUgYiwgZG91YmxlIGEpCiB7CiAgICAg
aWYgKGlzbmFuKHIpKQogICAgICAgICByID0gMDsKQEAgLTE3OCw0NTMgKzE3OCw0NTMgQEAgdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsQ2xlYXJDbwogICAgICAgICBiID0gMDsKICAg
ICBpZiAoaXNuYW4oYSkpCiAgICAgICAgIGEgPSAxOwotICAgIG1fY29udGV4dC5nbENsZWFyQ29s
b3IociwgZywgYiwgYSk7CisgICAgbV9jb250ZXh0LmNsZWFyQ29sb3IociwgZywgYiwgYSk7CiAg
ICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0Q6OmdsQ2xlYXIodW5zaWduZWQgbG9uZyBtYXNrKQordm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0Q6OmNsZWFyKHVuc2lnbmVkIGxvbmcgbWFzaykKIHsKLSAgICBtX2Nv
bnRleHQuZ2xDbGVhcihtYXNrKTsKKyAgICBtX2NvbnRleHQuY2xlYXIobWFzayk7CiAgICAgY2xl
YW51cEFmdGVyR3JhcGhpY3NDYWxsKHRydWUpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRDo6Z2xDbGVhckRlcHRoKGRvdWJsZSBkZXB0aCkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDNEOjpjbGVhckRlcHRoKGRvdWJsZSBkZXB0aCkKIHsKLSAgICBtX2NvbnRleHQuZ2xD
bGVhckRlcHRoKGRlcHRoKTsKKyAgICBtX2NvbnRleHQuY2xlYXJEZXB0aChkZXB0aCk7CiAgICAg
Y2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0M0Q6OmdsQ2xlYXJTdGVuY2lsKGxvbmcgcykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDNEOjpjbGVhclN0ZW5jaWwobG9uZyBzKQogewotICAgIG1fY29udGV4dC5nbENsZWFy
U3RlbmNpbChzKTsKKyAgICBtX2NvbnRleHQuY2xlYXJTdGVuY2lsKHMpOwogICAgIGNsZWFudXBB
ZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEOjpnbENvbG9yTWFzayhib29sIHJlZCwgYm9vbCBncmVlbiwgYm9vbCBibHVlLCBib29sIGFs
cGhhKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmNvbG9yTWFzayhib29sIHJlZCwg
Ym9vbCBncmVlbiwgYm9vbCBibHVlLCBib29sIGFscGhhKQogewotICAgIG1fY29udGV4dC5nbENv
bG9yTWFzayhyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSk7CisgICAgbV9jb250ZXh0LmNvbG9yTWFz
ayhyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxs
KGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsQ29tcGlsZVNo
YWRlcihDYW52YXNTaGFkZXIqIHNoYWRlcikKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNE
Ojpjb21waWxlU2hhZGVyKENhbnZhc1NoYWRlciogc2hhZGVyKQogewotICAgIG1fY29udGV4dC5n
bENvbXBpbGVTaGFkZXIoc2hhZGVyKTsKKyAgICBtX2NvbnRleHQuY29tcGlsZVNoYWRlcihzaGFk
ZXIpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbENvcHlUZXhJbWFnZTJEKHVuc2lnbmVkIGxvbmcgdGFy
Z2V0LCBsb25nIGxldmVsLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBsb25nIHgsIGxv
bmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIGxvbmcgYm9y
ZGVyKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCBsb25nIGxldmVsLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0
LCBsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWln
aHQsIGxvbmcgYm9yZGVyKQogewotICAgIG1fY29udGV4dC5nbENvcHlUZXhJbWFnZTJEKHRhcmdl
dCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIpOwor
ICAgIG1fY29udGV4dC5jb3B5VGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1h
dCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgYm9yZGVyKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGlj
c0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xDb3B5
VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zm
c2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1
bnNpZ25lZCBsb25nIGhlaWdodCkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpjb3B5
VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zm
c2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1
bnNpZ25lZCBsb25nIGhlaWdodCkKIHsKLSAgICBtX2NvbnRleHQuZ2xDb3B5VGV4U3ViSW1hZ2Uy
RCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsK
KyAgICBtX2NvbnRleHQuY29weVRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwg
eW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3ND
YWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsQ3VsbEZh
Y2UodW5zaWduZWQgbG9uZyBtb2RlKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmN1
bGxGYWNlKHVuc2lnbmVkIGxvbmcgbW9kZSkKIHsKLSAgICBtX2NvbnRleHQuZ2xDdWxsRmFjZSht
b2RlKTsKKyAgICBtX2NvbnRleHQuY3VsbEZhY2UobW9kZSk7CiAgICAgY2xlYW51cEFmdGVyR3Jh
cGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6Omds
RGVwdGhGdW5jKHVuc2lnbmVkIGxvbmcgZnVuYykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEOjpkZXB0aEZ1bmModW5zaWduZWQgbG9uZyBmdW5jKQogewotICAgIG1fY29udGV4dC5nbERl
cHRoRnVuYyhmdW5jKTsKKyAgICBtX2NvbnRleHQuZGVwdGhGdW5jKGZ1bmMpOwogICAgIGNsZWFu
dXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDNEOjpnbERlcHRoTWFzayhib29sIGZsYWcpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRDo6ZGVwdGhNYXNrKGJvb2wgZmxhZykKIHsKLSAgICBtX2NvbnRleHQuZ2xEZXB0aE1hc2so
ZmxhZyk7CisgICAgbV9jb250ZXh0LmRlcHRoTWFzayhmbGFnKTsKICAgICBjbGVhbnVwQWZ0ZXJH
cmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6
Z2xEZXB0aFJhbmdlKGRvdWJsZSB6TmVhciwgZG91YmxlIHpGYXIpCit2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQzRDo6ZGVwdGhSYW5nZShkb3VibGUgek5lYXIsIGRvdWJsZSB6RmFyKQogewot
ICAgIG1fY29udGV4dC5nbERlcHRoUmFuZ2Uoek5lYXIsIHpGYXIpOworICAgIG1fY29udGV4dC5k
ZXB0aFJhbmdlKHpOZWFyLCB6RmFyKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFs
c2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xEZXRhY2hTaGFkZXIo
Q2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwgQ2FudmFzU2hhZGVyKiBzaGFkZXIpCit2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQzRDo6ZGV0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qIHByb2dyYW0s
IENhbnZhc1NoYWRlciogc2hhZGVyKQogewogICAgIGlmICghcHJvZ3JhbSB8fCAhc2hhZGVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbnRleHQuZ2xEZXRhY2hTaGFkZXIocHJvZ3JhbSwg
c2hhZGVyKTsKKyAgICBtX2NvbnRleHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIHNoYWRlcik7CiAg
ICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAogCi12b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQzRDo6Z2xEaXNhYmxlKHVuc2lnbmVkIGxvbmcgY2FwKQordm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmRpc2FibGUodW5zaWduZWQgbG9uZyBjYXApCiB7Ci0gICAg
bV9jb250ZXh0LmdsRGlzYWJsZShjYXApOworICAgIG1fY29udGV4dC5kaXNhYmxlKGNhcCk7CiAg
ICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0Q6OmdsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KHVuc2lnbmVkIGxvbmcg
aW5kZXgpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6ZGlzYWJsZVZlcnRleEF0dHJp
YkFycmF5KHVuc2lnbmVkIGxvbmcgaW5kZXgpCiB7Ci0gICAgbV9jb250ZXh0LmdsRGlzYWJsZVZl
cnRleEF0dHJpYkFycmF5KGluZGV4KTsKKyAgICBtX2NvbnRleHQuZGlzYWJsZVZlcnRleEF0dHJp
YkFycmF5KGluZGV4KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQog
CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbERyYXdBcnJheXModW5zaWduZWQg
bG9uZyBtb2RlLCBsb25nIGZpcnN0LCB1bnNpZ25lZCBsb25nIGNvdW50KQordm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0Q6OmRyYXdBcnJheXModW5zaWduZWQgbG9uZyBtb2RlLCBsb25nIGZp
cnN0LCB1bnNpZ25lZCBsb25nIGNvdW50KQogewotICAgIG1fY29udGV4dC5nbERyYXdBcnJheXMo
bW9kZSwgZmlyc3QsIGNvdW50KTsKKyAgICBtX2NvbnRleHQuZHJhd0FycmF5cyhtb2RlLCBmaXJz
dCwgY291bnQpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbCh0cnVlKTsKIH0KIAotdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsRHJhd0VsZW1lbnRzKHVuc2lnbmVkIGxvbmcg
bW9kZSwgdW5zaWduZWQgbG9uZyBjb3VudCwgdW5zaWduZWQgbG9uZyB0eXBlLCB2b2lkKiBhcnJh
eSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpkcmF3RWxlbWVudHModW5zaWduZWQg
bG9uZyBtb2RlLCB1bnNpZ25lZCBsb25nIGNvdW50LCB1bnNpZ25lZCBsb25nIHR5cGUsIHZvaWQq
IGFycmF5KQogewotICAgIG1fY29udGV4dC5nbERyYXdFbGVtZW50cyhtb2RlLCBjb3VudCwgdHlw
ZSwgYXJyYXkpOworICAgIG1fY29udGV4dC5kcmF3RWxlbWVudHMobW9kZSwgY291bnQsIHR5cGUs
IGFycmF5KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwodHJ1ZSk7CiB9CiAKLXZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbEVuYWJsZSh1bnNpZ25lZCBsb25nIGNhcCkKK3Zv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjplbmFibGUodW5zaWduZWQgbG9uZyBjYXApCiB7
Ci0gICAgbV9jb250ZXh0LmdsRW5hYmxlKGNhcCk7CisgICAgbV9jb250ZXh0LmVuYWJsZShjYXAp
OwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDNEOjpnbEVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHVuc2lnbmVkIGxv
bmcgaW5kZXgpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6ZW5hYmxlVmVydGV4QXR0
cmliQXJyYXkodW5zaWduZWQgbG9uZyBpbmRleCkKIHsKLSAgICBtX2NvbnRleHQuZ2xFbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheShpbmRleCk7CisgICAgbV9jb250ZXh0LmVuYWJsZVZlcnRleEF0dHJp
YkFycmF5KGluZGV4KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQog
Ci12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xGaW5pc2goKQordm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0Q6OmZpbmlzaCgpCiB7Ci0gICAgbV9jb250ZXh0LmdsRmluaXNoKCk7
CisgICAgbV9jb250ZXh0LmZpbmlzaCgpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbCh0
cnVlKTsKIH0KIAogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xGbHVzaCgpCit2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Zmx1c2goKQogewotICAgIG1fY29udGV4dC5n
bEZsdXNoKCk7CisgICAgbV9jb250ZXh0LmZsdXNoKCk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhp
Y3NDYWxsKHRydWUpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xGcmFt
ZWJ1ZmZlclJlbmRlcmJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBh
dHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHJlbmRlcmJ1ZmZlcnRhcmdldCwgQ2FudmFzUmVuZGVy
YnVmZmVyKiBidWZmZXIpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6ZnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgYXR0YWNo
bWVudCwgdW5zaWduZWQgbG9uZyByZW5kZXJidWZmZXJ0YXJnZXQsIENhbnZhc1JlbmRlcmJ1ZmZl
ciogYnVmZmVyKQogewogICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgICAg
IAotICAgIG1fY29udGV4dC5nbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNo
bWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0LCBidWZmZXIpOworICAgIG1fY29udGV4dC5mcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcih0YXJnZXQsIGF0dGFjaG1lbnQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwg
YnVmZmVyKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xGcmFtZWJ1ZmZlclRleHR1cmUyRCh1bnNpZ25l
ZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHRl
eHRhcmdldCwgQ2FudmFzVGV4dHVyZSogdGV4dHVyZSwgbG9uZyBsZXZlbCkKK3ZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDNEOjpmcmFtZWJ1ZmZlclRleHR1cmUyRCh1bnNpZ25lZCBsb25nIHRh
cmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHRleHRhcmdldCwg
Q2FudmFzVGV4dHVyZSogdGV4dHVyZSwgbG9uZyBsZXZlbCkKIHsKICAgICBpZiAoIXRleHR1cmUp
CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgbV9jb250ZXh0LmdsRnJhbWVidWZmZXJU
ZXh0dXJlMkQodGFyZ2V0LCBhdHRhY2htZW50LCB0ZXh0YXJnZXQsIHRleHR1cmUsIGxldmVsKTsK
KyAgICBtX2NvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQodGFyZ2V0LCBhdHRhY2htZW50LCB0
ZXh0YXJnZXQsIHRleHR1cmUsIGxldmVsKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwo
ZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xGcm9udEZhY2Uo
dW5zaWduZWQgbG9uZyBtb2RlKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmZyb250
RmFjZSh1bnNpZ25lZCBsb25nIG1vZGUpCiB7Ci0gICAgbV9jb250ZXh0LmdsRnJvbnRGYWNlKG1v
ZGUpOworICAgIG1fY29udGV4dC5mcm9udEZhY2UobW9kZSk7CiAgICAgY2xlYW51cEFmdGVyR3Jh
cGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6Omds
R2VuZXJhdGVNaXBtYXAodW5zaWduZWQgbG9uZyB0YXJnZXQpCit2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQzRDo6Z2VuZXJhdGVNaXBtYXAodW5zaWduZWQgbG9uZyB0YXJnZXQpCiB7Ci0gICAg
bV9jb250ZXh0LmdsR2VuZXJhdGVNaXBtYXAodGFyZ2V0KTsKKyAgICBtX2NvbnRleHQuZ2VuZXJh
dGVNaXBtYXAodGFyZ2V0KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwog
fQogCi1pbnQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbEdldEF0dHJpYkxvY2F0aW9uKENh
bnZhc1Byb2dyYW0qIHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkKK2ludCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0Q6OmdldEF0dHJpYkxvY2F0aW9uKENhbnZhc1Byb2dyYW0qIHByb2dyYW0s
IGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICByZXR1cm4gbV9jb250ZXh0LmdsR2V0QXR0cmli
TG9jYXRpb24ocHJvZ3JhbSwgbmFtZSk7CisgICAgcmV0dXJuIG1fY29udGV4dC5nZXRBdHRyaWJM
b2NhdGlvbihwcm9ncmFtLCBuYW1lKTsKIH0KIAotdW5zaWduZWQgbG9uZyBDYW52YXNSZW5kZXJp
bmdDb250ZXh0M0Q6OmdsR2V0RXJyb3IoKQordW5zaWduZWQgbG9uZyBDYW52YXNSZW5kZXJpbmdD
b250ZXh0M0Q6OmdldEVycm9yKCkKIHsKLSAgICByZXR1cm4gbV9jb250ZXh0LmdsR2V0RXJyb3Io
KTsKKyAgICByZXR1cm4gbV9jb250ZXh0LmdldEVycm9yKCk7CiB9CiAKLVN0cmluZyBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0Q6OmdsR2V0U3RyaW5nKHVuc2lnbmVkIGxvbmcgbmFtZSkKK1N0cmlu
ZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdldFN0cmluZyh1bnNpZ25lZCBsb25nIG5hbWUp
CiB7Ci0gICAgcmV0dXJuIG1fY29udGV4dC5nbEdldFN0cmluZyhuYW1lKTsKKyAgICByZXR1cm4g
bV9jb250ZXh0LmdldFN0cmluZyhuYW1lKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0M0Q6OmdsSGludCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBtb2RlKQor
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmhpbnQodW5zaWduZWQgbG9uZyB0YXJnZXQs
IHVuc2lnbmVkIGxvbmcgbW9kZSkKIHsKLSAgICBtX2NvbnRleHQuZ2xIaW50KHRhcmdldCwgbW9k
ZSk7CisgICAgbV9jb250ZXh0LmhpbnQodGFyZ2V0LCBtb2RlKTsKICAgICBjbGVhbnVwQWZ0ZXJH
cmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi1ib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6
Z2xJc0J1ZmZlcihDYW52YXNCdWZmZXIqIGJ1ZmZlcikKK2Jvb2wgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDNEOjppc0J1ZmZlcihDYW52YXNCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBpZiAoIWJ1ZmZl
cikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICByZXR1cm4gbV9jb250ZXh0
LmdsSXNCdWZmZXIoYnVmZmVyKTsKKyAgICByZXR1cm4gbV9jb250ZXh0LmlzQnVmZmVyKGJ1ZmZl
cik7CiB9CiAKLWJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbElzRW5hYmxlZCh1bnNp
Z25lZCBsb25nIGNhcCkKK2Jvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjppc0VuYWJsZWQo
dW5zaWduZWQgbG9uZyBjYXApCiB7Ci0gICAgcmV0dXJuIG1fY29udGV4dC5nbElzRW5hYmxlZChj
YXApOworICAgIHJldHVybiBtX2NvbnRleHQuaXNFbmFibGVkKGNhcCk7CiB9CiAKLWJvb2wgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbElzRnJhbWVidWZmZXIoQ2FudmFzRnJhbWVidWZmZXIq
IGZyYW1lYnVmZmVyKQorYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmlzRnJhbWVidWZm
ZXIoQ2FudmFzRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQogewotICAgIHJldHVybiBtX2NvbnRl
eHQuZ2xJc0ZyYW1lYnVmZmVyKGZyYW1lYnVmZmVyKTsKKyAgICByZXR1cm4gbV9jb250ZXh0Lmlz
RnJhbWVidWZmZXIoZnJhbWVidWZmZXIpOwogfQogCi1ib29sIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRDo6Z2xJc1Byb2dyYW0oQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSkKK2Jvb2wgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDNEOjppc1Byb2dyYW0oQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSkKIHsKLSAg
ICByZXR1cm4gbV9jb250ZXh0LmdsSXNQcm9ncmFtKHByb2dyYW0pOworICAgIHJldHVybiBtX2Nv
bnRleHQuaXNQcm9ncmFtKHByb2dyYW0pOwogfQogCi1ib29sIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRDo6Z2xJc1JlbmRlcmJ1ZmZlcihDYW52YXNSZW5kZXJidWZmZXIqIHJlbmRlcmJ1ZmZlcikK
K2Jvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjppc1JlbmRlcmJ1ZmZlcihDYW52YXNSZW5k
ZXJidWZmZXIqIHJlbmRlcmJ1ZmZlcikKIHsKLSAgICByZXR1cm4gbV9jb250ZXh0LmdsSXNSZW5k
ZXJidWZmZXIocmVuZGVyYnVmZmVyKTsKKyAgICByZXR1cm4gbV9jb250ZXh0LmlzUmVuZGVyYnVm
ZmVyKHJlbmRlcmJ1ZmZlcik7CiB9CiAKLWJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpn
bElzU2hhZGVyKENhbnZhc1NoYWRlciogc2hhZGVyKQorYm9vbCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0M0Q6OmlzU2hhZGVyKENhbnZhc1NoYWRlciogc2hhZGVyKQogewotICAgIHJldHVybiBtX2Nv
bnRleHQuZ2xJc1NoYWRlcihzaGFkZXIpOworICAgIHJldHVybiBtX2NvbnRleHQuaXNTaGFkZXIo
c2hhZGVyKTsKIH0KIAotYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsSXNUZXh0dXJl
KENhbnZhc1RleHR1cmUqIHRleHR1cmUpCitib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6
aXNUZXh0dXJlKENhbnZhc1RleHR1cmUqIHRleHR1cmUpCiB7Ci0gICAgcmV0dXJuIG1fY29udGV4
dC5nbElzVGV4dHVyZSh0ZXh0dXJlKTsKKyAgICByZXR1cm4gbV9jb250ZXh0LmlzVGV4dHVyZSh0
ZXh0dXJlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsTGluZVdpZHRo
KGRvdWJsZSB3aWR0aCkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpsaW5lV2lkdGgo
ZG91YmxlIHdpZHRoKQogewotICAgIG1fY29udGV4dC5nbExpbmVXaWR0aCgoZmxvYXQpIHdpZHRo
KTsKKyAgICBtX2NvbnRleHQubGluZVdpZHRoKChmbG9hdCkgd2lkdGgpOwogICAgIGNsZWFudXBB
ZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEOjpnbExpbmtQcm9ncmFtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0pCit2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQzRDo6bGlua1Byb2dyYW0oQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSkKIHsK
ICAgICBpZiAoIXByb2dyYW0pCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgbV9jb250
ZXh0LmdsTGlua1Byb2dyYW0ocHJvZ3JhbSk7CisgICAgbV9jb250ZXh0LmxpbmtQcm9ncmFtKHBy
b2dyYW0pOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbFBpeGVsU3RvcmVpKHVuc2lnbmVkIGxvbmcgcG5h
bWUsIGxvbmcgcGFyYW0pCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6cGl4ZWxTdG9y
ZWkodW5zaWduZWQgbG9uZyBwbmFtZSwgbG9uZyBwYXJhbSkKIHsKLSAgICBtX2NvbnRleHQuZ2xQ
aXhlbFN0b3JlaShwbmFtZSwgcGFyYW0pOworICAgIG1fY29udGV4dC5waXhlbFN0b3JlaShwbmFt
ZSwgcGFyYW0pOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbFBvbHlnb25PZmZzZXQoZG91YmxlIGZhY3Rv
ciwgZG91YmxlIHVuaXRzKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OnBvbHlnb25P
ZmZzZXQoZG91YmxlIGZhY3RvciwgZG91YmxlIHVuaXRzKQogewotICAgIG1fY29udGV4dC5nbFBv
bHlnb25PZmZzZXQoKGZsb2F0KSBmYWN0b3IsIChmbG9hdCkgdW5pdHMpOworICAgIG1fY29udGV4
dC5wb2x5Z29uT2Zmc2V0KChmbG9hdCkgZmFjdG9yLCAoZmxvYXQpIHVuaXRzKTsKICAgICBjbGVh
bnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRDo6Z2xSZWxlYXNlU2hhZGVyQ29tcGlsZXIoKQordm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0M0Q6OnJlbGVhc2VTaGFkZXJDb21waWxlcigpCiB7Ci0gICAgbV9jb250ZXh0LmdsUmVs
ZWFzZVNoYWRlckNvbXBpbGVyKCk7CisgICAgbV9jb250ZXh0LnJlbGVhc2VTaGFkZXJDb21waWxl
cigpOwogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbFJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9u
ZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lk
dGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6
OnJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcg
aW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0
KQogewotICAgIG1fY29udGV4dC5nbFJlbmRlcmJ1ZmZlclN0b3JhZ2UodGFyZ2V0LCBpbnRlcm5h
bGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CisgICAgbV9jb250ZXh0LnJlbmRlcmJ1ZmZlclN0b3Jh
Z2UodGFyZ2V0LCBpbnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAgICAgY2xlYW51cEFm
dGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
M0Q6OmdsU2FtcGxlQ292ZXJhZ2UoZG91YmxlIHZhbHVlLCBib29sIGludmVydCkKK3ZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDNEOjpzYW1wbGVDb3ZlcmFnZShkb3VibGUgdmFsdWUsIGJvb2wg
aW52ZXJ0KQogewotICAgIG1fY29udGV4dC5nbFNhbXBsZUNvdmVyYWdlKChmbG9hdCkgdmFsdWUs
IGludmVydCk7CisgICAgbV9jb250ZXh0LnNhbXBsZUNvdmVyYWdlKChmbG9hdCkgdmFsdWUsIGlu
dmVydCk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsU2Npc3Nvcihsb25nIHgsIGxvbmcgeSwgdW5zaWdu
ZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpCit2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQzRDo6c2Npc3Nvcihsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwg
dW5zaWduZWQgbG9uZyBoZWlnaHQpCiB7Ci0gICAgbV9jb250ZXh0LmdsU2Npc3Nvcih4LCB5LCB3
aWR0aCwgaGVpZ2h0KTsKKyAgICBtX2NvbnRleHQuc2Npc3Nvcih4LCB5LCB3aWR0aCwgaGVpZ2h0
KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xTaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiBzaGFkZXIs
IGNvbnN0IFN0cmluZyYgc3RyaW5nKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OnNo
YWRlclNvdXJjZShDYW52YXNTaGFkZXIqIHNoYWRlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
Ci0gICAgbV9jb250ZXh0LmdsU2hhZGVyU291cmNlKHNoYWRlciwgc3RyaW5nKTsKKyAgICBtX2Nv
bnRleHQuc2hhZGVyU291cmNlKHNoYWRlciwgc3RyaW5nKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFw
aGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xT
dGVuY2lsRnVuYyh1bnNpZ25lZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1bnNpZ25lZCBsb25nIG1h
c2spCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6c3RlbmNpbEZ1bmModW5zaWduZWQg
bG9uZyBmdW5jLCBsb25nIHJlZiwgdW5zaWduZWQgbG9uZyBtYXNrKQogewotICAgIG1fY29udGV4
dC5nbFN0ZW5jaWxGdW5jKGZ1bmMsIHJlZiwgbWFzayk7CisgICAgbV9jb250ZXh0LnN0ZW5jaWxG
dW5jKGZ1bmMsIHJlZiwgbWFzayk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNl
KTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsU3RlbmNpbEZ1bmNTZXBh
cmF0ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVuc2lnbmVkIGxvbmcgZnVuYywgbG9uZyByZWYsIHVu
c2lnbmVkIGxvbmcgbWFzaykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpzdGVuY2ls
RnVuY1NlcGFyYXRlKHVuc2lnbmVkIGxvbmcgZmFjZSwgdW5zaWduZWQgbG9uZyBmdW5jLCBsb25n
IHJlZiwgdW5zaWduZWQgbG9uZyBtYXNrKQogewotICAgIG1fY29udGV4dC5nbFN0ZW5jaWxGdW5j
U2VwYXJhdGUoZmFjZSwgZnVuYywgcmVmLCBtYXNrKTsKKyAgICBtX2NvbnRleHQuc3RlbmNpbEZ1
bmNTZXBhcmF0ZShmYWNlLCBmdW5jLCByZWYsIG1hc2spOwogICAgIGNsZWFudXBBZnRlckdyYXBo
aWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbFN0
ZW5jaWxNYXNrKHVuc2lnbmVkIGxvbmcgbWFzaykKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDNEOjpzdGVuY2lsTWFzayh1bnNpZ25lZCBsb25nIG1hc2spCiB7Ci0gICAgbV9jb250ZXh0Lmds
U3RlbmNpbE1hc2sobWFzayk7CisgICAgbV9jb250ZXh0LnN0ZW5jaWxNYXNrKG1hc2spOwogICAg
IGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDNEOjpnbFN0ZW5jaWxNYXNrU2VwYXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1
bnNpZ25lZCBsb25nIG1hc2spCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6c3RlbmNp
bE1hc2tTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVuc2lnbmVkIGxvbmcgbWFzaykKIHsK
LSAgICBtX2NvbnRleHQuZ2xTdGVuY2lsTWFza1NlcGFyYXRlKGZhY2UsIG1hc2spOworICAgIG1f
Y29udGV4dC5zdGVuY2lsTWFza1NlcGFyYXRlKGZhY2UsIG1hc2spOwogICAgIGNsZWFudXBBZnRl
ckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNE
OjpnbFN0ZW5jaWxPcCh1bnNpZ25lZCBsb25nIGZhaWwsIHVuc2lnbmVkIGxvbmcgemZhaWwsIHVu
c2lnbmVkIGxvbmcgenBhc3MpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6c3RlbmNp
bE9wKHVuc2lnbmVkIGxvbmcgZmFpbCwgdW5zaWduZWQgbG9uZyB6ZmFpbCwgdW5zaWduZWQgbG9u
ZyB6cGFzcykKIHsKLSAgICBtX2NvbnRleHQuZ2xTdGVuY2lsT3AoZmFpbCwgemZhaWwsIHpwYXNz
KTsKKyAgICBtX2NvbnRleHQuc3RlbmNpbE9wKGZhaWwsIHpmYWlsLCB6cGFzcyk7CiAgICAgY2xl
YW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0M0Q6OmdsU3RlbmNpbE9wU2VwYXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1bnNpZ25l
ZCBsb25nIGZhaWwsIHVuc2lnbmVkIGxvbmcgemZhaWwsIHVuc2lnbmVkIGxvbmcgenBhc3MpCit2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6c3RlbmNpbE9wU2VwYXJhdGUodW5zaWduZWQg
bG9uZyBmYWNlLCB1bnNpZ25lZCBsb25nIGZhaWwsIHVuc2lnbmVkIGxvbmcgemZhaWwsIHVuc2ln
bmVkIGxvbmcgenBhc3MpCiB7Ci0gICAgbV9jb250ZXh0LmdsU3RlbmNpbE9wU2VwYXJhdGUoZmFj
ZSwgZmFpbCwgemZhaWwsIHpwYXNzKTsKKyAgICBtX2NvbnRleHQuc3RlbmNpbE9wU2VwYXJhdGUo
ZmFjZSwgZmFpbCwgemZhaWwsIHpwYXNzKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwo
ZmFsc2UpOwogfQogCiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbFRleFBhcmFt
ZXRlcih1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBDYW52YXNOdW1iZXJBcnJheSog
YXJyYXkpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6dGV4UGFyYW1ldGVyKHVuc2ln
bmVkIHRhcmdldCwgdW5zaWduZWQgcG5hbWUsIENhbnZhc051bWJlckFycmF5KiBhcnJheSkKIHsK
LSAgICBtX2NvbnRleHQuZ2xUZXhQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSxhcnJheSk7CisgICAg
bV9jb250ZXh0LnRleFBhcmFtZXRlcih0YXJnZXQsIHBuYW1lLGFycmF5KTsKICAgICBjbGVhbnVw
QWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRDo6Z2xUZXhQYXJhbWV0ZXIodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBwbmFtZSwgZG91
YmxlIHZhbHVlKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OnRleFBhcmFtZXRlcih1
bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBkb3VibGUgdmFsdWUpCiB7Ci0gICAgbV9j
b250ZXh0LmdsVGV4UGFyYW1ldGVyKHRhcmdldCwgcG5hbWUsIHZhbHVlKTsKKyAgICBtX2NvbnRl
eHQudGV4UGFyYW1ldGVyKHRhcmdldCwgcG5hbWUsIHZhbHVlKTsKICAgICBjbGVhbnVwQWZ0ZXJH
cmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6
Z2xVbmlmb3JtKGxvbmcgbG9jYXRpb24sIENhbnZhc051bWJlckFycmF5KiBhcnJheSkKK3ZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcgbG9jYXRpb24sIENhbnZhc051
bWJlckFycmF5KiBhcnJheSkKIHsKLSAgICBtX2NvbnRleHQuZ2xVbmlmb3JtKGxvY2F0aW9uLCBh
cnJheSk7CisgICAgbV9jb250ZXh0LnVuaWZvcm0obG9jYXRpb24sIGFycmF5KTsKICAgICBjbGVh
bnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRDo6Z2xVbmlmb3JtKGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwKQordm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0Q6OnVuaWZvcm0obG9uZyBsb2NhdGlvbiwgZmxvYXQgdjApCiB7Ci0g
ICAgbV9jb250ZXh0LmdsVW5pZm9ybShsb2NhdGlvbiwgdjApOworICAgIG1fY29udGV4dC51bmlm
b3JtKGxvY2F0aW9uLCB2MCk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsK
IH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsVW5pZm9ybShsb25nIGxvY2F0
aW9uLCBmbG9hdCB2MCwgZmxvYXQgdjEpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6
dW5pZm9ybShsb25nIGxvY2F0aW9uLCBmbG9hdCB2MCwgZmxvYXQgdjEpCiB7Ci0gICAgbV9jb250
ZXh0LmdsVW5pZm9ybShsb2NhdGlvbiwgdjAsIHYxKTsKKyAgICBtX2NvbnRleHQudW5pZm9ybShs
b2NhdGlvbiwgdjAsIHYxKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwog
fQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xVbmlmb3JtKGxvbmcgbG9jYXRp
b24sIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQgdjIpCit2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRDo6dW5pZm9ybShsb25nIGxvY2F0aW9uLCBmbG9hdCB2MCwgZmxvYXQgdjEsIGZsb2F0
IHYyKQogewotICAgIG1fY29udGV4dC5nbFVuaWZvcm0obG9jYXRpb24sIHYwLCB2MSwgdjIpOwor
ICAgIG1fY29udGV4dC51bmlmb3JtKGxvY2F0aW9uLCB2MCwgdjEsIHYyKTsKICAgICBjbGVhbnVw
QWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRDo6Z2xVbmlmb3JtKGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQg
djIsIGZsb2F0IHYzKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OnVuaWZvcm0obG9u
ZyBsb2NhdGlvbiwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2MiwgZmxvYXQgdjMpCiB7Ci0g
ICAgbV9jb250ZXh0LmdsVW5pZm9ybShsb2NhdGlvbiwgdjAsIHYxLCB2MiwgdjMpOworICAgIG1f
Y29udGV4dC51bmlmb3JtKGxvY2F0aW9uLCB2MCwgdjEsIHYyLCB2Myk7CiAgICAgY2xlYW51cEFm
dGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
M0Q6OmdsVW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjApCit2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQzRDo6dW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjApCiB7Ci0gICAgbV9jb250
ZXh0LmdsVW5pZm9ybShsb2NhdGlvbiwgdjApOworICAgIG1fY29udGV4dC51bmlmb3JtKGxvY2F0
aW9uLCB2MCk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsVW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQg
djAsIGludCB2MSkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcg
bG9jYXRpb24sIGludCB2MCwgaW50IHYxKQogewotICAgIG1fY29udGV4dC5nbFVuaWZvcm0obG9j
YXRpb24sIHYwLCB2MSk7CisgICAgbV9jb250ZXh0LnVuaWZvcm0obG9jYXRpb24sIHYwLCB2MSk7
CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0Q6OmdsVW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjAsIGludCB2
MSwgaW50IHYyKQordm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OnVuaWZvcm0obG9uZyBs
b2NhdGlvbiwgaW50IHYwLCBpbnQgdjEsIGludCB2MikKIHsKLSAgICBtX2NvbnRleHQuZ2xVbmlm
b3JtKGxvY2F0aW9uLCB2MCwgdjEsIHYyKTsKKyAgICBtX2NvbnRleHQudW5pZm9ybShsb2NhdGlv
biwgdjAsIHYxLCB2Mik7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0K
IAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsVW5pZm9ybShsb25nIGxvY2F0aW9u
LCBpbnQgdjAsIGludCB2MSwgaW50IHYyLCBpbnQgdjMpCit2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRDo6dW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjAsIGludCB2MSwgaW50IHYyLCBp
bnQgdjMpCiB7Ci0gICAgbV9jb250ZXh0LmdsVW5pZm9ybShsb2NhdGlvbiwgdjAsIHYxLCB2Miwg
djMpOworICAgIG1fY29udGV4dC51bmlmb3JtKGxvY2F0aW9uLCB2MCwgdjEsIHYyLCB2Myk7CiAg
ICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0Q6OmdsVW5pZm9ybU1hdHJpeChsb25nIGxvY2F0aW9uLCBsb25nIGNvdW50
LCBib29sIHRyYW5zcG9zZSwgQ2FudmFzTnVtYmVyQXJyYXkqYXJyYXkpCit2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQzRDo6dW5pZm9ybU1hdHJpeChsb25nIGxvY2F0aW9uLCBsb25nIGNvdW50
LCBib29sIHRyYW5zcG9zZSwgQ2FudmFzTnVtYmVyQXJyYXkqYXJyYXkpCiB7Ci0gICAgbV9jb250
ZXh0LmdsVW5pZm9ybU1hdHJpeChsb2NhdGlvbiwgY291bnQsIHRyYW5zcG9zZSwgYXJyYXkpOwor
ICAgIG1fY29udGV4dC51bmlmb3JtTWF0cml4KGxvY2F0aW9uLCBjb3VudCwgdHJhbnNwb3NlLCBh
cnJheSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsVW5pZm9ybU1hdHJpeChsb25nIGxvY2F0aW9uLCBi
b29sIHRyYW5zcG9zZSwgY29uc3QgVmVjdG9yPFdlYktpdENTU01hdHJpeCo+JiBhcnJheSkKK3Zv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjp1bmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24s
IGJvb2wgdHJhbnNwb3NlLCBjb25zdCBWZWN0b3I8V2ViS2l0Q1NTTWF0cml4Kj4mIGFycmF5KQog
ewotICAgIG1fY29udGV4dC5nbFVuaWZvcm1NYXRyaXgobG9jYXRpb24sIHRyYW5zcG9zZSwgYXJy
YXkpOworICAgIG1fY29udGV4dC51bmlmb3JtTWF0cml4KGxvY2F0aW9uLCB0cmFuc3Bvc2UsIGFy
cmF5KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xVbmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24sIGJv
b2wgdHJhbnNwb3NlLCBjb25zdCBXZWJLaXRDU1NNYXRyaXgqIG1hdHJpeCkKK3ZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDNEOjp1bmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24sIGJvb2wgdHJh
bnNwb3NlLCBjb25zdCBXZWJLaXRDU1NNYXRyaXgqIG1hdHJpeCkKIHsKLSAgICBtX2NvbnRleHQu
Z2xVbmlmb3JtTWF0cml4KGxvY2F0aW9uLCB0cmFuc3Bvc2UsIG1hdHJpeCk7CisgICAgbV9jb250
ZXh0LnVuaWZvcm1NYXRyaXgobG9jYXRpb24sIHRyYW5zcG9zZSwgbWF0cml4KTsKICAgICBjbGVh
bnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQzRDo6Z2xVc2VQcm9ncmFtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0pCit2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQzRDo6dXNlUHJvZ3JhbShDYW52YXNQcm9ncmFtKiBwcm9ncmFtKQog
ewotICAgIG1fY29udGV4dC5nbFVzZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgbV9jb250ZXh0LnVz
ZVByb2dyYW0ocHJvZ3JhbSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsK
IH0KIAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsVmFsaWRhdGVQcm9ncmFtKENh
bnZhc1Byb2dyYW0qIHByb2dyYW0pCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6dmFs
aWRhdGVQcm9ncmFtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0pCiB7Ci0gICAgbV9jb250ZXh0Lmds
VmFsaWRhdGVQcm9ncmFtKHByb2dyYW0pOworICAgIG1fY29udGV4dC52YWxpZGF0ZVByb2dyYW0o
cHJvZ3JhbSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAotdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsVmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcg
aW5keCwgZmxvYXQgdjApCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6dmVydGV4QXR0
cmliKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgdjApCiB7Ci0gICAgbV9jb250ZXh0LmdsVmVy
dGV4QXR0cmliKGluZHgsIHYwKTsKKyAgICBtX2NvbnRleHQudmVydGV4QXR0cmliKGluZHgsIHYw
KTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xWZXJ0ZXhBdHRyaWIodW5zaWduZWQgbG9uZyBpbmR4LCBm
bG9hdCB2MCwgZmxvYXQgdjEpCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6dmVydGV4
QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgdjAsIGZsb2F0IHYxKQogewotICAgIG1f
Y29udGV4dC5nbFZlcnRleEF0dHJpYihpbmR4LCB2MCwgdjEpOworICAgIG1fY29udGV4dC52ZXJ0
ZXhBdHRyaWIoaW5keCwgdjAsIHYxKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFs
c2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xWZXJ0ZXhBdHRyaWIo
dW5zaWduZWQgbG9uZyBpbmR4LCBmbG9hdCB2MCwgZmxvYXQgdjEsIGZsb2F0IHYyKQordm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OnZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25nIGluZHgs
IGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQgdjIpCiB7Ci0gICAgbV9jb250ZXh0LmdsVmVydGV4
QXR0cmliKGluZHgsIHYwLCB2MSwgdjIpOworICAgIG1fY29udGV4dC52ZXJ0ZXhBdHRyaWIoaW5k
eCwgdjAsIHYxLCB2Mik7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0K
IAotdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsVmVydGV4QXR0cmliKHVuc2lnbmVk
IGxvbmcgaW5keCwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2MiwgZmxvYXQgdjMpCit2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6dmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5k
eCwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2MiwgZmxvYXQgdjMpCiB7Ci0gICAgbV9jb250
ZXh0LmdsVmVydGV4QXR0cmliKGluZHgsIHYwLCB2MSwgdjIsIHYzKTsKKyAgICBtX2NvbnRleHQu
dmVydGV4QXR0cmliKGluZHgsIHYwLCB2MSwgdjIsIHYzKTsKICAgICBjbGVhbnVwQWZ0ZXJHcmFw
aGljc0NhbGwoZmFsc2UpOwogfQogCi12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xW
ZXJ0ZXhBdHRyaWIodW5zaWduZWQgbG9uZyBpbmR4LCBDYW52YXNOdW1iZXJBcnJheSogYXJyYXkp
Cit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6dmVydGV4QXR0cmliKHVuc2lnbmVkIGxv
bmcgaW5keCwgQ2FudmFzTnVtYmVyQXJyYXkqIGFycmF5KQogewotICAgIG1fY29udGV4dC5nbFZl
cnRleEF0dHJpYihpbmR4LCBhcnJheSk7CisgICAgbV9jb250ZXh0LnZlcnRleEF0dHJpYihpbmR4
LCBhcnJheSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIAogCi12
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xWZXJ0ZXhBdHRyaWJQb2ludGVyKHVuc2ln
bmVkIGxvbmcgaW5keCwgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIHR5cGUsIGJvb2wgbm9ybWFs
aXplZCwgdW5zaWduZWQgbG9uZyBzdHJpZGUsIENhbnZhc051bWJlckFycmF5KiBhcnJheSkKK3Zv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKHVuc2lnbmVk
IGxvbmcgaW5keCwgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIHR5cGUsIGJvb2wgbm9ybWFsaXpl
ZCwgdW5zaWduZWQgbG9uZyBzdHJpZGUsIENhbnZhc051bWJlckFycmF5KiBhcnJheSkKIHsKLSAg
ICBtX2NvbnRleHQuZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyKGluZHgsIHNpemUsIHR5cGUsIG5vcm1h
bGl6ZWQsIHN0cmlkZSwgYXJyYXkpOworICAgIG1fY29udGV4dC52ZXJ0ZXhBdHRyaWJQb2ludGVy
KGluZHgsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgYXJyYXkpOwogICAgIGNsZWFu
dXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDNEOjpnbFZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1
bnNpZ25lZCBsb25nIGhlaWdodCkKK3ZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjp2aWV3
cG9ydChsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBo
ZWlnaHQpCiB7CiAgICAgaWYgKGlzbmFuKHgpKQogICAgICAgICB4ID0gMDsKQEAgLTYzNCw3ICs2
MzQsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2xWaWV3cG9yCiAgICAgICAg
IHdpZHRoID0gMTAwOwogICAgIGlmIChpc25hbihoZWlnaHQpKQogICAgICAgICBoZWlnaHQgPSAx
MDA7Ci0gICAgbV9jb250ZXh0LmdsVmlld3BvcnQoeCwgeSwgd2lkdGgsIGhlaWdodCk7CisgICAg
bV9jb250ZXh0LnZpZXdwb3J0KHgsIHksIHdpZHRoLCBoZWlnaHQpOwogICAgIGNsZWFudXBBZnRl
ckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKQEAgLTc2Myw5ICs3NjMsOSBAQCBQYXNzUmVmUHRy
PENhbnZhc051bWJlckFycmF5PiBDYW52YXNSZW5kCiAgICAgcmV0dXJuIGFycmF5OwogfQogCi1T
dHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnbEdldFByb2dyYW1JbmZvTG9nKENhbnZh
c1Byb2dyYW0qIHByb2dyYW0pCitTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEOjpnZXRQ
cm9ncmFtSW5mb0xvZyhDYW52YXNQcm9ncmFtKiBwcm9ncmFtKQogewotICAgIFN0cmluZyBzID0g
bV9jb250ZXh0LmdsR2V0UHJvZ3JhbUluZm9Mb2cocHJvZ3JhbSk7CisgICAgU3RyaW5nIHMgPSBt
X2NvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2cocHJvZ3JhbSk7CiAgICAgY2xlYW51cEFmdGVyR3Jh
cGhpY3NDYWxsKGZhbHNlKTsKICAgICByZXR1cm4gczsKIH0KQEAgLTc4NCwxNiArNzg0LDE2IEBA
IFBhc3NSZWZQdHI8Q2FudmFzTnVtYmVyQXJyYXk+IENhbnZhc1JlbmQKICAgICByZXR1cm4gYXJy
YXk7CiB9CiAKLVN0cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0Q6OmdsR2V0U2hhZGVySW5m
b0xvZyhDYW52YXNTaGFkZXIqIHNoYWRlcikKK1N0cmluZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0
M0Q6OmdldFNoYWRlckluZm9Mb2coQ2FudmFzU2hhZGVyKiBzaGFkZXIpCiB7Ci0gICAgU3RyaW5n
IHMgPSBtX2NvbnRleHQuZ2xHZXRTaGFkZXJJbmZvTG9nKHNoYWRlcik7CisgICAgU3RyaW5nIHMg
PSBtX2NvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyhzaGFkZXIpOwogICAgIGNsZWFudXBBZnRlckdy
YXBoaWNzQ2FsbChmYWxzZSk7CiAgICAgcmV0dXJuIHM7CiB9CiAKLVN0cmluZyBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0M0Q6OmdsR2V0U2hhZGVyU291cmNlKENhbnZhc1NoYWRlciogc2hhZGVyKQor
U3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQzRDo6Z2V0U2hhZGVyU291cmNlKENhbnZhc1No
YWRlciogc2hhZGVyKQogewotICAgIFN0cmluZyBzID0gbV9jb250ZXh0LmdsR2V0U2hhZGVyU291
cmNlKHNoYWRlcik7CisgICAgU3RyaW5nIHMgPSBtX2NvbnRleHQuZ2V0U2hhZGVyU291cmNlKHNo
YWRlcik7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKICAgICByZXR1cm4g
czsKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNE
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0M0QuaAkocmV2aXNpb24gNDc4NDMpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMDMgKzUxLDEwMyBAQCBj
bGFzcyBXZWJLaXRDU1NNYXRyaXg7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzM2QoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdm9pZCBnbEFjdGl2ZVRleHR1cmUodW5zaWdu
ZWQgbG9uZyB0ZXh0dXJlKTsKLSAgICAgICAgdm9pZCBnbEF0dGFjaFNoYWRlcihDYW52YXNQcm9n
cmFtKiwgQ2FudmFzU2hhZGVyKik7Ci0gICAgICAgIHZvaWQgZ2xCaW5kQXR0cmliTG9jYXRpb24o
Q2FudmFzUHJvZ3JhbSosIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSk7
Ci0gICAgICAgIHZvaWQgZ2xCaW5kQnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNC
dWZmZXIqKTsKLSAgICAgICAgdm9pZCBnbEJpbmRGcmFtZWJ1ZmZlcih1bnNpZ25lZCBsb25nIHRh
cmdldCwgQ2FudmFzRnJhbWVidWZmZXIqKTsKLSAgICAgICAgdm9pZCBnbEJpbmRSZW5kZXJidWZm
ZXIodW5zaWduZWQgbG9uZyB0YXJnZXQsIENhbnZhc1JlbmRlcmJ1ZmZlciopOwotICAgICAgICB2
b2lkIGdsQmluZFRleHR1cmUodW5zaWduZWQgdGFyZ2V0LCBDYW52YXNUZXh0dXJlKik7Ci0gICAg
ICAgIHZvaWQgZ2xCbGVuZENvbG9yKGRvdWJsZSByZWQsIGRvdWJsZSBncmVlbiwgZG91YmxlIGJs
dWUsIGRvdWJsZSBhbHBoYSk7Ci0gICAgICAgIHZvaWQgZ2xCbGVuZEVxdWF0aW9uKCB1bnNpZ25l
ZCBsb25nIG1vZGUgKTsKLSAgICAgICAgdm9pZCBnbEJsZW5kRXF1YXRpb25TZXBhcmF0ZSh1bnNp
Z25lZCBsb25nIG1vZGVSR0IsIHVuc2lnbmVkIGxvbmcgbW9kZUFscGhhKTsKLSAgICAgICAgdm9p
ZCBnbEJsZW5kRnVuYyh1bnNpZ25lZCBsb25nIHNmYWN0b3IsIHVuc2lnbmVkIGxvbmcgZGZhY3Rv
cik7Ci0gICAgICAgIHZvaWQgZ2xCbGVuZEZ1bmNTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIHNyY1JH
QiwgdW5zaWduZWQgbG9uZyBkc3RSR0IsIHVuc2lnbmVkIGxvbmcgc3JjQWxwaGEsIHVuc2lnbmVk
IGxvbmcgZHN0QWxwaGEpOwotICAgICAgICB2b2lkIGdsQnVmZmVyRGF0YSh1bnNpZ25lZCBsb25n
IHRhcmdldCwgQ2FudmFzTnVtYmVyQXJyYXkqLCB1bnNpZ25lZCBsb25nIHVzYWdlKTsKLSAgICAg
ICAgdm9pZCBnbEJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0
LCBDYW52YXNOdW1iZXJBcnJheSopOwotICAgICAgICB1bnNpZ25lZCBsb25nIGdsQ2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhDYW52YXNGcmFtZWJ1ZmZlciopOwotICAgICAgICB2b2lkIGdsQ2xlYXIo
dW5zaWduZWQgbG9uZyBtYXNrKTsKLSAgICAgICAgdm9pZCBnbENsZWFyQ29sb3IoZG91YmxlIHJl
ZCwgZG91YmxlIGdyZWVuLCBkb3VibGUgYmx1ZSwgZG91YmxlIGFscGhhKTsKLSAgICAgICAgdm9p
ZCBnbENsZWFyRGVwdGgoZG91YmxlKTsKLSAgICAgICAgdm9pZCBnbENsZWFyU3RlbmNpbChsb25n
KTsKLSAgICAgICAgdm9pZCBnbENvbG9yTWFzayhib29sIHJlZCwgYm9vbCBncmVlbiwgYm9vbCBi
bHVlLCBib29sIGFscGhhKTsKLSAgICAgICAgdm9pZCBnbENvbXBpbGVTaGFkZXIoQ2FudmFzU2hh
ZGVyKik7Ci0gICAgICAgIAotICAgICAgICAvL3ZvaWQgZ2xDb21wcmVzc2VkVGV4SW1hZ2UyRCh1
bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZv
cm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIGxvbmcgYm9y
ZGVyLCB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7Ci0gICAgICAg
IC8vdm9pZCBnbENvbXByZXNzZWRUZXhTdWJJbWFnZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBs
b25nIGxldmVsLCBsb25nIHhvZmZzZXQsIGxvbmcgeW9mZnNldCwgdW5zaWduZWQgbG9uZyB3aWR0
aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCB1bnNpZ25lZCBs
b25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7Ci0gICAgICAgIAotICAgICAgICB2b2lk
IGdsQ29weVRleEltYWdlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgbGV2ZWwsIHVuc2ln
bmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdp
ZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCwgbG9uZyBib3JkZXIpOwotICAgICAgICB2b2lkIGds
Q29weVRleFN1YkltYWdlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgbGV2ZWwsIGxvbmcg
eG9mZnNldCwgbG9uZyB5b2Zmc2V0LCBsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0
aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOwotICAgICAgICB2b2lkIGdsQ3VsbEZhY2UodW5zaWdu
ZWQgbG9uZyBtb2RlKTsKLSAgICAgICAgdm9pZCBnbERlcHRoRnVuYyh1bnNpZ25lZCBsb25nKTsK
LSAgICAgICAgdm9pZCBnbERlcHRoTWFzayhib29sKTsKLSAgICAgICAgdm9pZCBnbERlcHRoUmFu
Z2UoZG91YmxlIHpOZWFyLCBkb3VibGUgekZhcik7Ci0gICAgICAgIHZvaWQgZ2xEZXRhY2hTaGFk
ZXIoQ2FudmFzUHJvZ3JhbSosIENhbnZhc1NoYWRlciopOwotICAgICAgICB2b2lkIGdsRGlzYWJs
ZSh1bnNpZ25lZCBsb25nIGNhcCk7Ci0gICAgICAgIHZvaWQgZ2xEaXNhYmxlVmVydGV4QXR0cmli
QXJyYXkodW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAgICAgIHZvaWQgZ2xEcmF3QXJyYXlzKHVu
c2lnbmVkIGxvbmcgbW9kZSwgbG9uZyBmaXJzdCwgdW5zaWduZWQgbG9uZyBjb3VudCk7Ci0gICAg
ICAgIHZvaWQgZ2xEcmF3RWxlbWVudHModW5zaWduZWQgbG9uZyBtb2RlLCB1bnNpZ25lZCBsb25n
IGNvdW50LCB1bnNpZ25lZCBsb25nIHR5cGUsIHZvaWQqIGFycmF5KTsKLSAgICAgICAgdm9pZCBn
bEVuYWJsZSh1bnNpZ25lZCBsb25nIGNhcCk7Ci0gICAgICAgIHZvaWQgZ2xFbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAgICAgdm9pZCBnbEZpbmlzaCgp
OwotICAgICAgICB2b2lkIGdsRmx1c2goKTsKLSAgICAgICAgdm9pZCBnbEZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQs
IHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFyZ2V0LCBDYW52YXNSZW5kZXJidWZmZXIqKTsK
LSAgICAgICAgdm9pZCBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBDYW52
YXNUZXh0dXJlKiwgbG9uZyBsZXZlbCk7Ci0gICAgICAgIHZvaWQgZ2xGcm9udEZhY2UodW5zaWdu
ZWQgbG9uZyBtb2RlKTsKLSAgICAgICAgdm9pZCBnbEdlbmVyYXRlTWlwbWFwKHVuc2lnbmVkIGxv
bmcgdGFyZ2V0KTsKLSAgICAgICAgCi0gICAgICAgIGludCAgZ2xHZXRBdHRyaWJMb2NhdGlvbihD
YW52YXNQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICAgICAgdW5zaWduZWQgbG9u
ZyBnbEdldEVycm9yKCk7Ci0gICAgICAgIFN0cmluZyBnbEdldFN0cmluZyh1bnNpZ25lZCBsb25n
IG5hbWUpOwotICAgICAgICB2b2lkIGdsSGludCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWdu
ZWQgbG9uZyBtb2RlKTsKLSAgICAgICAgYm9vbCBnbElzQnVmZmVyKENhbnZhc0J1ZmZlciopOwot
ICAgICAgICBib29sIGdsSXNFbmFibGVkKHVuc2lnbmVkIGxvbmcgY2FwKTsKLSAgICAgICAgYm9v
bCBnbElzRnJhbWVidWZmZXIoQ2FudmFzRnJhbWVidWZmZXIqKTsKLSAgICAgICAgYm9vbCBnbElz
UHJvZ3JhbShDYW52YXNQcm9ncmFtKik7Ci0gICAgICAgIGJvb2wgZ2xJc1JlbmRlcmJ1ZmZlcihD
YW52YXNSZW5kZXJidWZmZXIqKTsKLSAgICAgICAgYm9vbCBnbElzU2hhZGVyKENhbnZhc1NoYWRl
ciopOwotICAgICAgICBib29sIGdsSXNUZXh0dXJlKENhbnZhc1RleHR1cmUqKTsKLSAgICAgICAg
dm9pZCBnbExpbmVXaWR0aChkb3VibGUpOwotICAgICAgICB2b2lkIGdsTGlua1Byb2dyYW0oQ2Fu
dmFzUHJvZ3JhbSopOwotICAgICAgICB2b2lkIGdsUGl4ZWxTdG9yZWkodW5zaWduZWQgbG9uZyBw
bmFtZSwgbG9uZyBwYXJhbSk7Ci0gICAgICAgIHZvaWQgZ2xQb2x5Z29uT2Zmc2V0KGRvdWJsZSBm
YWN0b3IsIGRvdWJsZSB1bml0cyk7CisgICAgICAgIHZvaWQgYWN0aXZlVGV4dHVyZSh1bnNpZ25l
ZCBsb25nIHRleHR1cmUpOworICAgICAgICB2b2lkIGF0dGFjaFNoYWRlcihDYW52YXNQcm9ncmFt
KiwgQ2FudmFzU2hhZGVyKik7CisgICAgICAgIHZvaWQgYmluZEF0dHJpYkxvY2F0aW9uKENhbnZh
c1Byb2dyYW0qLCB1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAg
ICAgICB2b2lkIGJpbmRCdWZmZXIodW5zaWduZWQgbG9uZyB0YXJnZXQsIENhbnZhc0J1ZmZlciop
OworICAgICAgICB2b2lkIGJpbmRGcmFtZWJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2Fu
dmFzRnJhbWVidWZmZXIqKTsKKyAgICAgICAgdm9pZCBiaW5kUmVuZGVyYnVmZmVyKHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBDYW52YXNSZW5kZXJidWZmZXIqKTsKKyAgICAgICAgdm9pZCBiaW5kVGV4
dHVyZSh1bnNpZ25lZCB0YXJnZXQsIENhbnZhc1RleHR1cmUqKTsKKyAgICAgICAgdm9pZCBibGVu
ZENvbG9yKGRvdWJsZSByZWQsIGRvdWJsZSBncmVlbiwgZG91YmxlIGJsdWUsIGRvdWJsZSBhbHBo
YSk7CisgICAgICAgIHZvaWQgYmxlbmRFcXVhdGlvbiggdW5zaWduZWQgbG9uZyBtb2RlICk7Cisg
ICAgICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKHVuc2lnbmVkIGxvbmcgbW9kZVJHQiwg
dW5zaWduZWQgbG9uZyBtb2RlQWxwaGEpOworICAgICAgICB2b2lkIGJsZW5kRnVuYyh1bnNpZ25l
ZCBsb25nIHNmYWN0b3IsIHVuc2lnbmVkIGxvbmcgZGZhY3Rvcik7CisgICAgICAgIHZvaWQgYmxl
bmRGdW5jU2VwYXJhdGUodW5zaWduZWQgbG9uZyBzcmNSR0IsIHVuc2lnbmVkIGxvbmcgZHN0UkdC
LCB1bnNpZ25lZCBsb25nIHNyY0FscGhhLCB1bnNpZ25lZCBsb25nIGRzdEFscGhhKTsKKyAgICAg
ICAgdm9pZCBidWZmZXJEYXRhKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNOdW1iZXJBcnJh
eSosIHVuc2lnbmVkIGxvbmcgdXNhZ2UpOworICAgICAgICB2b2lkIGJ1ZmZlclN1YkRhdGEodW5z
aWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0LCBDYW52YXNOdW1iZXJBcnJheSopOworICAg
ICAgICB1bnNpZ25lZCBsb25nIGNoZWNrRnJhbWVidWZmZXJTdGF0dXMoQ2FudmFzRnJhbWVidWZm
ZXIqKTsKKyAgICAgICAgdm9pZCBjbGVhcih1bnNpZ25lZCBsb25nIG1hc2spOworICAgICAgICB2
b2lkIGNsZWFyQ29sb3IoZG91YmxlIHJlZCwgZG91YmxlIGdyZWVuLCBkb3VibGUgYmx1ZSwgZG91
YmxlIGFscGhhKTsKKyAgICAgICAgdm9pZCBjbGVhckRlcHRoKGRvdWJsZSk7CisgICAgICAgIHZv
aWQgY2xlYXJTdGVuY2lsKGxvbmcpOworICAgICAgICB2b2lkIGNvbG9yTWFzayhib29sIHJlZCwg
Ym9vbCBncmVlbiwgYm9vbCBibHVlLCBib29sIGFscGhhKTsKKyAgICAgICAgdm9pZCBjb21waWxl
U2hhZGVyKENhbnZhc1NoYWRlciopOworICAgICAgICAKKyAgICAgICAgLy92b2lkIGNvbXByZXNz
ZWRUZXhJbWFnZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIGxldmVsLCB1bnNpZ25lZCBs
b25nIGludGVybmFsZm9ybWF0LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhl
aWdodCwgbG9uZyBib3JkZXIsIHVuc2lnbmVkIGxvbmcgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBk
YXRhKTsKKyAgICAgICAgLy92b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBsb25nIGxldmVsLCBsb25nIHhvZmZzZXQsIGxvbmcgeW9mZnNldCwgdW5zaWdu
ZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIHVuc2lnbmVkIGxvbmcgZm9ybWF0
LCB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CisgICAgICAgIAor
ICAgICAgICB2b2lkIGNvcHlUZXhJbWFnZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIGxl
dmVsLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBsb25nIHgsIGxvbmcgeSwgdW5zaWdu
ZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIGxvbmcgYm9yZGVyKTsKKyAgICAg
ICAgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZl
bCwgbG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBs
b25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIHZvaWQgY3VsbEZhY2Uo
dW5zaWduZWQgbG9uZyBtb2RlKTsKKyAgICAgICAgdm9pZCBkZXB0aEZ1bmModW5zaWduZWQgbG9u
Zyk7CisgICAgICAgIHZvaWQgZGVwdGhNYXNrKGJvb2wpOworICAgICAgICB2b2lkIGRlcHRoUmFu
Z2UoZG91YmxlIHpOZWFyLCBkb3VibGUgekZhcik7CisgICAgICAgIHZvaWQgZGV0YWNoU2hhZGVy
KENhbnZhc1Byb2dyYW0qLCBDYW52YXNTaGFkZXIqKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlKHVu
c2lnbmVkIGxvbmcgY2FwKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXko
dW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIHZvaWQgZHJhd0FycmF5cyh1bnNpZ25lZCBs
b25nIG1vZGUsIGxvbmcgZmlyc3QsIHVuc2lnbmVkIGxvbmcgY291bnQpOworICAgICAgICB2b2lk
IGRyYXdFbGVtZW50cyh1bnNpZ25lZCBsb25nIG1vZGUsIHVuc2lnbmVkIGxvbmcgY291bnQsIHVu
c2lnbmVkIGxvbmcgdHlwZSwgdm9pZCogYXJyYXkpOworICAgICAgICB2b2lkIGVuYWJsZSh1bnNp
Z25lZCBsb25nIGNhcCk7CisgICAgICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodW5z
aWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIHZvaWQgZmluaXNoKCk7CisgICAgICAgIHZvaWQg
Zmx1c2goKTsKKyAgICAgICAgdm9pZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih1bnNpZ25lZCBs
b25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHJlbmRl
cmJ1ZmZlcnRhcmdldCwgQ2FudmFzUmVuZGVyYnVmZmVyKik7CisgICAgICAgIHZvaWQgZnJhbWVi
dWZmZXJUZXh0dXJlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgYXR0YWNo
bWVudCwgdW5zaWduZWQgbG9uZyB0ZXh0YXJnZXQsIENhbnZhc1RleHR1cmUqLCBsb25nIGxldmVs
KTsKKyAgICAgICAgdm9pZCBmcm9udEZhY2UodW5zaWduZWQgbG9uZyBtb2RlKTsKKyAgICAgICAg
dm9pZCBnZW5lcmF0ZU1pcG1hcCh1bnNpZ25lZCBsb25nIHRhcmdldCk7CisgICAgICAgIAorICAg
ICAgICBpbnQgIGdldEF0dHJpYkxvY2F0aW9uKENhbnZhc1Byb2dyYW0qLCBjb25zdCBTdHJpbmcm
IG5hbWUpOworICAgICAgICB1bnNpZ25lZCBsb25nIGdldEVycm9yKCk7CisgICAgICAgIFN0cmlu
ZyBnZXRTdHJpbmcodW5zaWduZWQgbG9uZyBuYW1lKTsKKyAgICAgICAgdm9pZCBoaW50KHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIG1vZGUpOworICAgICAgICBib29sIGlzQnVm
ZmVyKENhbnZhc0J1ZmZlciopOworICAgICAgICBib29sIGlzRW5hYmxlZCh1bnNpZ25lZCBsb25n
IGNhcCk7CisgICAgICAgIGJvb2wgaXNGcmFtZWJ1ZmZlcihDYW52YXNGcmFtZWJ1ZmZlciopOwor
ICAgICAgICBib29sIGlzUHJvZ3JhbShDYW52YXNQcm9ncmFtKik7CisgICAgICAgIGJvb2wgaXNS
ZW5kZXJidWZmZXIoQ2FudmFzUmVuZGVyYnVmZmVyKik7CisgICAgICAgIGJvb2wgaXNTaGFkZXIo
Q2FudmFzU2hhZGVyKik7CisgICAgICAgIGJvb2wgaXNUZXh0dXJlKENhbnZhc1RleHR1cmUqKTsK
KyAgICAgICAgdm9pZCBsaW5lV2lkdGgoZG91YmxlKTsKKyAgICAgICAgdm9pZCBsaW5rUHJvZ3Jh
bShDYW52YXNQcm9ncmFtKik7CisgICAgICAgIHZvaWQgcGl4ZWxTdG9yZWkodW5zaWduZWQgbG9u
ZyBwbmFtZSwgbG9uZyBwYXJhbSk7CisgICAgICAgIHZvaWQgcG9seWdvbk9mZnNldChkb3VibGUg
ZmFjdG9yLCBkb3VibGUgdW5pdHMpOwogICAgICAgICAKICAgICAgICAgLy92b2lkIGdsUmVhZFBp
eGVscyhsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBo
ZWlnaHQsIHVuc2lnbmVkIGxvbmcgZm9ybWF0LCB1bnNpZ25lZCBsb25nIHR5cGUsIHZvaWQqIHBp
eGVscyk7CiAgICAgICAgIAotICAgICAgICB2b2lkIGdsUmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7
Ci0gICAgICAgIHZvaWQgZ2xSZW5kZXJidWZmZXJTdG9yYWdlKHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNp
Z25lZCBsb25nIGhlaWdodCk7Ci0gICAgICAgIHZvaWQgZ2xTYW1wbGVDb3ZlcmFnZShkb3VibGUg
dmFsdWUsIGJvb2wgaW52ZXJ0KTsKLSAgICAgICAgdm9pZCBnbFNjaXNzb3IobG9uZyB4LCBsb25n
IHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKLSAgICAgICAg
dm9pZCBnbFNoYWRlclNvdXJjZShDYW52YXNTaGFkZXIqLCBjb25zdCBTdHJpbmcmKTsKLSAgICAg
ICAgdm9pZCBnbFN0ZW5jaWxGdW5jKHVuc2lnbmVkIGxvbmcgZnVuYywgbG9uZyByZWYsIHVuc2ln
bmVkIGxvbmcgbWFzayk7Ci0gICAgICAgIHZvaWQgZ2xTdGVuY2lsRnVuY1NlcGFyYXRlKHVuc2ln
bmVkIGxvbmcgZmFjZSwgdW5zaWduZWQgbG9uZyBmdW5jLCBsb25nIHJlZiwgdW5zaWduZWQgbG9u
ZyBtYXNrKTsKLSAgICAgICAgdm9pZCBnbFN0ZW5jaWxNYXNrKHVuc2lnbmVkIGxvbmcpOwotICAg
ICAgICB2b2lkIGdsU3RlbmNpbE1hc2tTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVuc2ln
bmVkIGxvbmcgbWFzayk7Ci0gICAgICAgIHZvaWQgZ2xTdGVuY2lsT3AodW5zaWduZWQgbG9uZyBm
YWlsLCB1bnNpZ25lZCBsb25nIHpmYWlsLCB1bnNpZ25lZCBsb25nIHpwYXNzKTsKLSAgICAgICAg
dm9pZCBnbFN0ZW5jaWxPcFNlcGFyYXRlKHVuc2lnbmVkIGxvbmcgZmFjZSwgdW5zaWduZWQgbG9u
ZyBmYWlsLCB1bnNpZ25lZCBsb25nIHpmYWlsLCB1bnNpZ25lZCBsb25nIHpwYXNzKTsKLSAgICAg
ICAgdm9pZCBnbFRleFBhcmFtZXRlcih1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBD
YW52YXNOdW1iZXJBcnJheSopOwotICAgICAgICB2b2lkIGdsVGV4UGFyYW1ldGVyKHVuc2lnbmVk
IHRhcmdldCwgdW5zaWduZWQgcG5hbWUsIGRvdWJsZSB2YWx1ZSk7Ci0gICAgICAgIHZvaWQgZ2xV
bmlmb3JtKGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwKTsKLSAgICAgICAgdm9pZCBnbFVuaWZvcm0o
bG9uZyBsb2NhdGlvbiwgZmxvYXQgdjAsIGZsb2F0IHYxKTsKLSAgICAgICAgdm9pZCBnbFVuaWZv
cm0obG9uZyBsb2NhdGlvbiwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2Mik7Ci0gICAgICAg
IHZvaWQgZ2xVbmlmb3JtKGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQg
djIsIGZsb2F0IHYzKTsKLSAgICAgICAgdm9pZCBnbFVuaWZvcm0obG9uZyBsb2NhdGlvbiwgaW50
IHYwKTsKLSAgICAgICAgdm9pZCBnbFVuaWZvcm0obG9uZyBsb2NhdGlvbiwgaW50IHYwLCBpbnQg
djEpOwotICAgICAgICB2b2lkIGdsVW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjAsIGludCB2
MSwgaW50IHYyKTsKLSAgICAgICAgdm9pZCBnbFVuaWZvcm0obG9uZyBsb2NhdGlvbiwgaW50IHYw
LCBpbnQgdjEsIGludCB2MiwgaW50IHYzKTsKLSAgICAgICAgdm9pZCBnbFVuaWZvcm0obG9uZyBs
b2NhdGlvbiwgQ2FudmFzTnVtYmVyQXJyYXkqKTsKLSAgICAgICAgdm9pZCBnbFVuaWZvcm1NYXRy
aXgobG9uZyBsb2NhdGlvbiwgbG9uZyBjb3VudCwgYm9vbCB0cmFuc3Bvc2UsIENhbnZhc051bWJl
ckFycmF5Kik7Ci0gICAgICAgIHZvaWQgZ2xVbmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24sIGJv
b2wgdHJhbnNwb3NlLCBjb25zdCBWZWN0b3I8V2ViS2l0Q1NTTWF0cml4Kj4mKTsKLSAgICAgICAg
dm9pZCBnbFVuaWZvcm1NYXRyaXgobG9uZyBsb2NhdGlvbiwgYm9vbCB0cmFuc3Bvc2UsIGNvbnN0
IFdlYktpdENTU01hdHJpeCopOwotICAgICAgICB2b2lkIGdsVXNlUHJvZ3JhbShDYW52YXNQcm9n
cmFtKik7Ci0gICAgICAgIHZvaWQgZ2xWYWxpZGF0ZVByb2dyYW0oQ2FudmFzUHJvZ3JhbSopOwot
ICAgICAgICB2b2lkIGdsVmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgdjAp
OwotICAgICAgICB2b2lkIGdsVmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQg
djAsIGZsb2F0IHYxKTsKLSAgICAgICAgdm9pZCBnbFZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25n
IGluZHgsIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQgdjIpOwotICAgICAgICB2b2lkIGdsVmVy
dGV4QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2
MiwgZmxvYXQgdjMpOwotICAgICAgICB2b2lkIGdsVmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcg
aW5keCwgQ2FudmFzTnVtYmVyQXJyYXkqKTsKLSAgICAgICAgdm9pZCBnbFZlcnRleEF0dHJpYlBv
aW50ZXIodW5zaWduZWQgbG9uZyBpbmR4LCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgdHlwZSwg
Ym9vbCBub3JtYWxpemVkLCB1bnNpZ25lZCBsb25nIHN0cmlkZSwgQ2FudmFzTnVtYmVyQXJyYXkq
KTsKLSAgICAgICAgdm9pZCBnbFZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25n
IHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIHZvaWQgcmVsZWFzZVNoYWRl
ckNvbXBpbGVyKCk7CisgICAgICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZSh1bnNpZ25lZCBs
b25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3
aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICB2b2lkIHNhbXBsZUNvdmVyYWdl
KGRvdWJsZSB2YWx1ZSwgYm9vbCBpbnZlcnQpOworICAgICAgICB2b2lkIHNjaXNzb3IobG9uZyB4
LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKyAg
ICAgICAgdm9pZCBzaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgICAgIHZvaWQgc3RlbmNpbEZ1bmModW5zaWduZWQgbG9uZyBmdW5jLCBsb25nIHJlZiwgdW5z
aWduZWQgbG9uZyBtYXNrKTsKKyAgICAgICAgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRlKHVuc2ln
bmVkIGxvbmcgZmFjZSwgdW5zaWduZWQgbG9uZyBmdW5jLCBsb25nIHJlZiwgdW5zaWduZWQgbG9u
ZyBtYXNrKTsKKyAgICAgICAgdm9pZCBzdGVuY2lsTWFzayh1bnNpZ25lZCBsb25nKTsKKyAgICAg
ICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKHVuc2lnbmVkIGxvbmcgZmFjZSwgdW5zaWduZWQg
bG9uZyBtYXNrKTsKKyAgICAgICAgdm9pZCBzdGVuY2lsT3AodW5zaWduZWQgbG9uZyBmYWlsLCB1
bnNpZ25lZCBsb25nIHpmYWlsLCB1bnNpZ25lZCBsb25nIHpwYXNzKTsKKyAgICAgICAgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVuc2lnbmVkIGxvbmcgZmFpbCwg
dW5zaWduZWQgbG9uZyB6ZmFpbCwgdW5zaWduZWQgbG9uZyB6cGFzcyk7CisgICAgICAgIHZvaWQg
dGV4UGFyYW1ldGVyKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgcG5hbWUsIENhbnZhc051bWJl
ckFycmF5Kik7CisgICAgICAgIHZvaWQgdGV4UGFyYW1ldGVyKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgcG5hbWUsIGRvdWJsZSB2YWx1ZSk7CisgICAgICAgIHZvaWQgdW5pZm9ybShsb25nIGxv
Y2F0aW9uLCBmbG9hdCB2MCk7CisgICAgICAgIHZvaWQgdW5pZm9ybShsb25nIGxvY2F0aW9uLCBm
bG9hdCB2MCwgZmxvYXQgdjEpOworICAgICAgICB2b2lkIHVuaWZvcm0obG9uZyBsb2NhdGlvbiwg
ZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2Mik7CisgICAgICAgIHZvaWQgdW5pZm9ybShsb25n
IGxvY2F0aW9uLCBmbG9hdCB2MCwgZmxvYXQgdjEsIGZsb2F0IHYyLCBmbG9hdCB2Myk7CisgICAg
ICAgIHZvaWQgdW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjApOworICAgICAgICB2b2lkIHVu
aWZvcm0obG9uZyBsb2NhdGlvbiwgaW50IHYwLCBpbnQgdjEpOworICAgICAgICB2b2lkIHVuaWZv
cm0obG9uZyBsb2NhdGlvbiwgaW50IHYwLCBpbnQgdjEsIGludCB2Mik7CisgICAgICAgIHZvaWQg
dW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjAsIGludCB2MSwgaW50IHYyLCBpbnQgdjMpOwor
ICAgICAgICB2b2lkIHVuaWZvcm0obG9uZyBsb2NhdGlvbiwgQ2FudmFzTnVtYmVyQXJyYXkqKTsK
KyAgICAgICAgdm9pZCB1bmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24sIGxvbmcgY291bnQsIGJv
b2wgdHJhbnNwb3NlLCBDYW52YXNOdW1iZXJBcnJheSopOworICAgICAgICB2b2lkIHVuaWZvcm1N
YXRyaXgobG9uZyBsb2NhdGlvbiwgYm9vbCB0cmFuc3Bvc2UsIGNvbnN0IFZlY3RvcjxXZWJLaXRD
U1NNYXRyaXgqPiYpOworICAgICAgICB2b2lkIHVuaWZvcm1NYXRyaXgobG9uZyBsb2NhdGlvbiwg
Ym9vbCB0cmFuc3Bvc2UsIGNvbnN0IFdlYktpdENTU01hdHJpeCopOworICAgICAgICB2b2lkIHVz
ZVByb2dyYW0oQ2FudmFzUHJvZ3JhbSopOworICAgICAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShD
YW52YXNQcm9ncmFtKik7CisgICAgICAgIHZvaWQgdmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcg
aW5keCwgZmxvYXQgdjApOworICAgICAgICB2b2lkIHZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25n
IGluZHgsIGZsb2F0IHYwLCBmbG9hdCB2MSk7CisgICAgICAgIHZvaWQgdmVydGV4QXR0cmliKHVu
c2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2Mik7CisgICAgICAg
IHZvaWQgdmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgdjAsIGZsb2F0IHYx
LCBmbG9hdCB2MiwgZmxvYXQgdjMpOworICAgICAgICB2b2lkIHZlcnRleEF0dHJpYih1bnNpZ25l
ZCBsb25nIGluZHgsIENhbnZhc051bWJlckFycmF5Kik7CisgICAgICAgIHZvaWQgdmVydGV4QXR0
cmliUG9pbnRlcih1bnNpZ25lZCBsb25nIGluZHgsIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyB0
eXBlLCBib29sIG5vcm1hbGl6ZWQsIHVuc2lnbmVkIGxvbmcgc3RyaWRlLCBDYW52YXNOdW1iZXJB
cnJheSopOworICAgICAgICB2b2lkIHZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBs
b25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CiAKICAgICAgICAgLy8gTm9uLUdMIGZ1
bmN0aW9ucwogICAgICAgICBQYXNzUmVmUHRyPENhbnZhc0J1ZmZlcj4gY3JlYXRlQnVmZmVyKCk7
CkBAIC0xNjgsMTEgKzE2OCwxMSBAQCBjbGFzcyBXZWJLaXRDU1NNYXRyaXg7CiAgICAgICAgIFBh
c3NSZWZQdHI8Q2FudmFzTnVtYmVyQXJyYXk+IGdldEJ1ZmZlclBhcmFtZXRlcih1bnNpZ25lZCBs
b25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBwbmFtZSk7IC8vIHJlcGxhY2VzIGdsR2V0QnVmZmVy
UGFyYW1ldGVyaXYKICAgICAgICAgUGFzc1JlZlB0cjxDYW52YXNOdW1iZXJBcnJheT4gZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25l
ZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgcG5hbWUpOyAvLyByZXBsYWNlcyBnbEdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2CiAgICAgICAgIFBhc3NSZWZQdHI8Q2Fu
dmFzTnVtYmVyQXJyYXk+IGdldFByb2dyYW0oQ2FudmFzUHJvZ3JhbSosIHVuc2lnbmVkIGxvbmcg
cG5hbWUpOyAvLyByZXBsYWNlcyBnbEdldFByb2dyYW1pdgotICAgICAgICBTdHJpbmcgZ2xHZXRQ
cm9ncmFtSW5mb0xvZyhDYW52YXNQcm9ncmFtKik7IC8vIHJlcGxhY2VzIGdsR2V0UHJvZ3JhbUlu
Zm9Mb2cKKyAgICAgICAgU3RyaW5nIGdldFByb2dyYW1JbmZvTG9nKENhbnZhc1Byb2dyYW0qKTsg
Ly8gcmVwbGFjZXMgZ2xHZXRQcm9ncmFtSW5mb0xvZwogICAgICAgICBQYXNzUmVmUHRyPENhbnZh
c051bWJlckFycmF5PiBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIodW5zaWduZWQgbG9uZyB0YXJn
ZXQsIHVuc2lnbmVkIGxvbmcgcG5hbWUpOyAvLyByZXBsYWNlcyBnbEdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcml2CiAgICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzTnVtYmVyQXJyYXk+IGdldFNoYWRl
cihDYW52YXNTaGFkZXIqLCB1bnNpZ25lZCBsb25nIHBuYW1lKTsgLy8gcmVwbGFjZXMgZ2xHZXRT
aGFkZXJpdgotICAgICAgICBTdHJpbmcgZ2xHZXRTaGFkZXJJbmZvTG9nKENhbnZhc1NoYWRlciop
OwotICAgICAgICBTdHJpbmcgZ2xHZXRTaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKik7CisgICAg
ICAgIFN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKENhbnZhc1NoYWRlciopOworICAgICAgICBTdHJp
bmcgZ2V0U2hhZGVyU291cmNlKENhbnZhc1NoYWRlciopOwogCiAgICAgICAgIFBhc3NSZWZQdHI8
Q2FudmFzTnVtYmVyQXJyYXk+IGdldFRleFBhcmFtZXRlcih1bnNpZ25lZCBsb25nIHRhcmdldCwg
dW5zaWduZWQgbG9uZyBwbmFtZSk7IC8vIHJlcGxhY2VzIGdsR2V0VGV4UGFyYW1ldGVyZnYKICAg
ICAgICAgUGFzc1JlZlB0cjxDYW52YXNOdW1iZXJBcnJheT4gZ2V0VW5pZm9ybShDYW52YXNQcm9n
cmFtKiwgbG9uZyBsb2NhdGlvbiwgbG9uZyBzaXplKTsgLy8gcmVwbGFjZXMgZ2xHZXRVbmlmb3Jt
ZnYKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNELmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQzRC5pZGwJKHJldmlzaW9uIDQ3ODQyKQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw1MzkgKzMzLDU0MCBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgXSBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0QgOiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0IHsKIAogICAgICAgICAvKiBDbGVhckJ1ZmZlck1hc2sgKi8KLSAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0RFUFRIX0JVRkZFUl9CSVQgICAgICAgICAgICAgICA9
IDB4MDAwMDAxMDA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9TVEVOQ0lMX0JVRkZF
Ul9CSVQgICAgICAgICAgICAgPSAweDAwMDAwNDAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgR0xfQ09MT1JfQlVGRkVSX0JJVCAgICAgICAgICAgICAgID0gMHgwMDAwNDAwMDsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IERFUFRIX0JVRkZFUl9CSVQgICAgICAgICAgICAgICA9IDB4
MDAwMDAxMDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTVEVOQ0lMX0JVRkZFUl9CSVQg
ICAgICAgICAgICAgPSAweDAwMDAwNDAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09M
T1JfQlVGRkVSX0JJVCAgICAgICAgICAgICAgID0gMHgwMDAwNDAwMDsKIAogICAgICAgICAvKiBC
b29sZWFuICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GQUxTRSAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfVFJVRSAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEZBTFNFICAgICAgICAgICAgICAgICAgICAgICAgICA9IDA7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBUUlVFICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxOwogCiAgICAgICAgIC8q
IEJlZ2luTW9kZSAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfUE9JTlRTICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMHgwMDAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
R0xfTElORVMgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAxOwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgR0xfTElORV9MT09QICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAy
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTElORV9TVFJJUCAgICAgICAgICAgICAg
ICAgICAgID0gMHgwMDAzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfVFJJQU5HTEVT
ICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDA0OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgR0xfVFJJQU5HTEVfU1RSSVAgICAgICAgICAgICAgICAgID0gMHgwMDA1OwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfVFJJQU5HTEVfRkFOICAgICAgICAgICAgICAgICAgID0gMHgw
MDA2OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgUE9JTlRTICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMHgwMDAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgTElORVMgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMHgwMDAxOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
TElORV9MT09QICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAyOworICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgTElORV9TVFJJUCAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAzOworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVFJJQU5HTEVTICAgICAgICAgICAgICAgICAgICAgID0g
MHgwMDA0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVFJJQU5HTEVfU1RSSVAgICAgICAg
ICAgICAgICAgID0gMHgwMDA1OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVFJJQU5HTEVf
RkFOICAgICAgICAgICAgICAgICAgID0gMHgwMDA2OwogCiAgICAgICAgIC8qIEFscGhhRnVuY3Rp
b24gKG5vdCBzdXBwb3J0ZWQgaW4gRVMyMCkgKi8KLSAgICAgICAgLyogICAgICBHTF9ORVZFUiAq
LwotICAgICAgICAvKiAgICAgIEdMX0xFU1MgKi8KLSAgICAgICAgLyogICAgICBHTF9FUVVBTCAq
LwotICAgICAgICAvKiAgICAgIEdMX0xFUVVBTCAqLwotICAgICAgICAvKiAgICAgIEdMX0dSRUFU
RVIgKi8KLSAgICAgICAgLyogICAgICBHTF9OT1RFUVVBTCAqLwotICAgICAgICAvKiAgICAgIEdM
X0dFUVVBTCAqLwotICAgICAgICAvKiAgICAgIEdMX0FMV0FZUyAqLworICAgICAgICAvKiAgICAg
IE5FVkVSICovCisgICAgICAgIC8qICAgICAgTEVTUyAqLworICAgICAgICAvKiAgICAgIEVRVUFM
ICovCisgICAgICAgIC8qICAgICAgTEVRVUFMICovCisgICAgICAgIC8qICAgICAgR1JFQVRFUiAq
LworICAgICAgICAvKiAgICAgIE5PVEVRVUFMICovCisgICAgICAgIC8qICAgICAgR0VRVUFMICov
CisgICAgICAgIC8qICAgICAgQUxXQVlTICovCiAKICAgICAgICAgLyogQmxlbmRpbmdGYWN0b3JE
ZXN0ICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9aRVJPICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfT05FICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdM
X1NSQ19DT0xPUiAgICAgICAgICAgICAgICAgICAgICA9IDB4MDMwMDsKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IEdMX09ORV9NSU5VU19TUkNfQ09MT1IgICAgICAgICAgICA9IDB4MDMwMTsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1NSQ19BTFBIQSAgICAgICAgICAgICAgICAg
ICAgICA9IDB4MDMwMjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX09ORV9NSU5VU19T
UkNfQUxQSEEgICAgICAgICAgICA9IDB4MDMwMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX0RTVF9BTFBIQSAgICAgICAgICAgICAgICAgICAgICA9IDB4MDMwNDsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IEdMX09ORV9NSU5VU19EU1RfQUxQSEEgICAgICAgICAgICA9IDB4MDMw
NTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFpFUk8gICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBPTkUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgU1JDX0NPTE9SICAg
ICAgICAgICAgICAgICAgICAgID0gMHgwMzAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
T05FX01JTlVTX1NSQ19DT0xPUiAgICAgICAgICAgID0gMHgwMzAxOworICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgU1JDX0FMUEhBICAgICAgICAgICAgICAgICAgICAgID0gMHgwMzAyOworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgT05FX01JTlVTX1NSQ19BTFBIQSAgICAgICAgICAgID0g
MHgwMzAzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRFNUX0FMUEhBICAgICAgICAgICAg
ICAgICAgICAgID0gMHgwMzA0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgT05FX01JTlVT
X0RTVF9BTFBIQSAgICAgICAgICAgID0gMHgwMzA1OwogCiAgICAgICAgIC8qIEJsZW5kaW5nRmFj
dG9yU3JjICovCi0gICAgICAgIC8qICAgICAgR0xfWkVSTyAqLwotICAgICAgICAvKiAgICAgIEdM
X09ORSAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfRFNUX0NPTE9SICAgICAgICAg
ICAgICAgICAgICAgID0gMHgwMzA2OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfT05F
X01JTlVTX0RTVF9DT0xPUiAgICAgICAgICAgID0gMHgwMzA3OwotICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgR0xfU1JDX0FMUEhBX1NBVFVSQVRFICAgICAgICAgICAgID0gMHgwMzA4OwotICAg
ICAgICAvKiAgICAgIEdMX1NSQ19BTFBIQSAqLwotICAgICAgICAvKiAgICAgIEdMX09ORV9NSU5V
U19TUkNfQUxQSEEgKi8KLSAgICAgICAgLyogICAgICBHTF9EU1RfQUxQSEEgKi8KLSAgICAgICAg
LyogICAgICBHTF9PTkVfTUlOVVNfRFNUX0FMUEhBICovCisgICAgICAgIC8qICAgICAgWkVSTyAq
LworICAgICAgICAvKiAgICAgIE9ORSAqLworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRFNU
X0NPTE9SICAgICAgICAgICAgICAgICAgICAgID0gMHgwMzA2OworICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgT05FX01JTlVTX0RTVF9DT0xPUiAgICAgICAgICAgID0gMHgwMzA3OworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgU1JDX0FMUEhBX1NBVFVSQVRFICAgICAgICAgICAgID0gMHgw
MzA4OworICAgICAgICAvKiAgICAgIFNSQ19BTFBIQSAqLworICAgICAgICAvKiAgICAgIE9ORV9N
SU5VU19TUkNfQUxQSEEgKi8KKyAgICAgICAgLyogICAgICBEU1RfQUxQSEEgKi8KKyAgICAgICAg
LyogICAgICBPTkVfTUlOVVNfRFNUX0FMUEhBICovCiAKICAgICAgICAgLyogQmxlbmRFcXVhdGlv
blNlcGFyYXRlICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GVU5DX0FERCAgICAg
ICAgICAgICAgICAgICAgICAgPSAweDgwMDY7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBH
TF9CTEVORF9FUVVBVElPTiAgICAgICAgICAgICAgICAgPSAweDgwMDk7Ci0gICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBHTF9CTEVORF9FUVVBVElPTl9SR0IgICAgICAgICAgICAgPSAweDgwMDk7
ICAgLyogc2FtZSBhcyBCTEVORF9FUVVBVElPTiAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgR0xfQkxFTkRfRVFVQVRJT05fQUxQSEEgICAgICAgICAgID0gMHg4ODNEOworICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgRlVOQ19BREQgICAgICAgICAgICAgICAgICAgICAgID0gMHg4MDA2
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQkxFTkRfRVFVQVRJT04gICAgICAgICAgICAg
ICAgID0gMHg4MDA5OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQkxFTkRfRVFVQVRJT05f
UkdCICAgICAgICAgICAgID0gMHg4MDA5OyAgIC8qIHNhbWUgYXMgQkxFTkRfRVFVQVRJT04gKi8K
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEJMRU5EX0VRVUFUSU9OX0FMUEhBICAgICAgICAg
ICA9IDB4ODgzRDsKIAogICAgICAgICAvKiBCbGVuZFN1YnRyYWN0ICovCi0gICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBHTF9GVU5DX1NVQlRSQUNUICAgICAgICAgICAgICAgICAgPSAweDgwMEE7
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GVU5DX1JFVkVSU0VfU1VCVFJBQ1QgICAg
ICAgICAgPSAweDgwMEI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGVU5DX1NVQlRSQUNU
ICAgICAgICAgICAgICAgICAgPSAweDgwMEE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBG
VU5DX1JFVkVSU0VfU1VCVFJBQ1QgICAgICAgICAgPSAweDgwMEI7CiAKICAgICAgICAgLyogU2Vw
YXJhdGUgQmxlbmQgRnVuY3Rpb25zICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9C
TEVORF9EU1RfUkdCICAgICAgICAgICAgICAgICAgPSAweDgwQzg7Ci0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBHTF9CTEVORF9TUkNfUkdCICAgICAgICAgICAgICAgICAgPSAweDgwQzk7Ci0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9CTEVORF9EU1RfQUxQSEEgICAgICAgICAgICAg
ICAgPSAweDgwQ0E7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9CTEVORF9TUkNfQUxQ
SEEgICAgICAgICAgICAgICAgPSAweDgwQ0I7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBH
TF9DT05TVEFOVF9DT0xPUiAgICAgICAgICAgICAgICAgPSAweDgwMDE7Ci0gICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBHTF9PTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1IgICAgICAgPSAweDgwMDI7
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9DT05TVEFOVF9BTFBIQSAgICAgICAgICAg
ICAgICAgPSAweDgwMDM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9PTkVfTUlOVVNf
Q09OU1RBTlRfQUxQSEEgICAgICAgPSAweDgwMDQ7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBHTF9CTEVORF9DT0xPUiAgICAgICAgICAgICAgICAgICAgPSAweDgwMDU7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBCTEVORF9EU1RfUkdCICAgICAgICAgICAgICAgICAgPSAweDgwQzg7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBCTEVORF9TUkNfUkdCICAgICAgICAgICAgICAg
ICAgPSAweDgwQzk7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBCTEVORF9EU1RfQUxQSEEg
ICAgICAgICAgICAgICAgPSAweDgwQ0E7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBCTEVO
RF9TUkNfQUxQSEEgICAgICAgICAgICAgICAgPSAweDgwQ0I7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBDT05TVEFOVF9DT0xPUiAgICAgICAgICAgICAgICAgPSAweDgwMDE7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1IgICAgICAgPSAweDgw
MDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT05TVEFOVF9BTFBIQSAgICAgICAgICAg
ICAgICAgPSAweDgwMDM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBPTkVfTUlOVVNfQ09O
U1RBTlRfQUxQSEEgICAgICAgPSAweDgwMDQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBC
TEVORF9DT0xPUiAgICAgICAgICAgICAgICAgICAgPSAweDgwMDU7CiAKICAgICAgICAgLyogQnVm
ZmVyIE9iamVjdHMgKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0FSUkFZX0JVRkZF
UiAgICAgICAgICAgICAgICAgICA9IDB4ODg5MjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX0VMRU1FTlRfQVJSQVlfQlVGRkVSICAgICAgICAgICA9IDB4ODg5MzsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IEdMX0FSUkFZX0JVRkZFUl9CSU5ESU5HICAgICAgICAgICA9IDB4ODg5
NDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0VMRU1FTlRfQVJSQVlfQlVGRkVSX0JJ
TkRJTkcgICA9IDB4ODg5NTsKLQotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RSRUFN
X0RSQVcgICAgICAgICAgICAgICAgICAgID0gMHg4OEUwOwotICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgR0xfU1RBVElDX0RSQVcgICAgICAgICAgICAgICAgICAgID0gMHg4OEU0OwotICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfRFlOQU1JQ19EUkFXICAgICAgICAgICAgICAgICAgID0g
MHg4OEU4OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQVJSQVlfQlVGRkVSICAgICAgICAg
ICAgICAgICAgID0gMHg4ODkyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRUxFTUVOVF9B
UlJBWV9CVUZGRVIgICAgICAgICAgID0gMHg4ODkzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgQVJSQVlfQlVGRkVSX0JJTkRJTkcgICAgICAgICAgID0gMHg4ODk0OworICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORyAgID0gMHg4ODk1Owor
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTVFJFQU1fRFJBVyAgICAgICAgICAgICAgICAg
ICAgPSAweDg4RTA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTVEFUSUNfRFJBVyAgICAg
ICAgICAgICAgICAgICAgPSAweDg4RTQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBEWU5B
TUlDX0RSQVcgICAgICAgICAgICAgICAgICAgPSAweDg4RTg7CiAKLSAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IEdMX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgICAgICA9IDB4ODc2NDsKLSAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0JVRkZFUl9VU0FHRSAgICAgICAgICAgICAgICAg
ICA9IDB4ODc2NTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEJVRkZFUl9TSVpFICAgICAg
ICAgICAgICAgICAgICA9IDB4ODc2NDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEJVRkZF
Ul9VU0FHRSAgICAgICAgICAgICAgICAgICA9IDB4ODc2NTsKIAotICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgR0xfQ1VSUkVOVF9WRVJURVhfQVRUUklCICAgICAgICAgID0gMHg4NjI2OworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ1VSUkVOVF9WRVJURVhfQVRUUklCICAgICAgICAgID0g
MHg4NjI2OwogCiAgICAgICAgIC8qIEN1bGxGYWNlTW9kZSAqLwotICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgR0xfRlJPTlQgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNDA0OwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMHgwNDA1OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfRlJPTlRfQU5EX0JBQ0sg
ICAgICAgICAgICAgICAgID0gMHgwNDA4OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRlJP
TlQgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNDA0OworICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgQkFDSyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNDA1OworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgRlJPTlRfQU5EX0JBQ0sgICAgICAgICAgICAgICAgID0gMHgw
NDA4OwogCiAgICAgICAgIC8qIERlcHRoRnVuY3Rpb24gKi8KLSAgICAgICAgLyogICAgICBHTF9O
RVZFUiAqLwotICAgICAgICAvKiAgICAgIEdMX0xFU1MgKi8KLSAgICAgICAgLyogICAgICBHTF9F
UVVBTCAqLwotICAgICAgICAvKiAgICAgIEdMX0xFUVVBTCAqLwotICAgICAgICAvKiAgICAgIEdM
X0dSRUFURVIgKi8KLSAgICAgICAgLyogICAgICBHTF9OT1RFUVVBTCAqLwotICAgICAgICAvKiAg
ICAgIEdMX0dFUVVBTCAqLwotICAgICAgICAvKiAgICAgIEdMX0FMV0FZUyAqLworICAgICAgICAv
KiAgICAgIE5FVkVSICovCisgICAgICAgIC8qICAgICAgTEVTUyAqLworICAgICAgICAvKiAgICAg
IEVRVUFMICovCisgICAgICAgIC8qICAgICAgTEVRVUFMICovCisgICAgICAgIC8qICAgICAgR1JF
QVRFUiAqLworICAgICAgICAvKiAgICAgIE5PVEVRVUFMICovCisgICAgICAgIC8qICAgICAgR0VR
VUFMICovCisgICAgICAgIC8qICAgICAgQUxXQVlTICovCiAKICAgICAgICAgLyogRW5hYmxlQ2Fw
ICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9URVhUVVJFXzJEICAgICAgICAgICAg
ICAgICAgICAgPSAweDBERTE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9DVUxMX0ZB
Q0UgICAgICAgICAgICAgICAgICAgICAgPSAweDBCNDQ7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBHTF9CTEVORCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDBCRTI7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBHTF9ESVRIRVIgICAgICAgICAgICAgICAgICAgICAgICAgPSAw
eDBCRDA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9TVEVOQ0lMX1RFU1QgICAgICAg
ICAgICAgICAgICAgPSAweDBCOTA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9ERVBU
SF9URVNUICAgICAgICAgICAgICAgICAgICAgPSAweDBCNzE7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBHTF9TQ0lTU09SX1RFU1QgICAgICAgICAgICAgICAgICAgPSAweDBDMTE7Ci0gICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9QT0xZR09OX09GRlNFVF9GSUxMICAgICAgICAgICAg
PSAweDgwMzc7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9TQU1QTEVfQUxQSEFfVE9f
Q09WRVJBR0UgICAgICAgPSAweDgwOUU7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9T
QU1QTEVfQ09WRVJBR0UgICAgICAgICAgICAgICAgPSAweDgwQTA7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBURVhUVVJFXzJEICAgICAgICAgICAgICAgICAgICAgPSAweDBERTE7CisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGludCBDVUxMX0ZBQ0UgICAgICAgICAgICAgICAgICAgICAgPSAw
eDBCNDQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBCTEVORCAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAweDBCRTI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBESVRIRVIgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAweDBCRDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBTVEVOQ0lMX1RFU1QgICAgICAgICAgICAgICAgICAgPSAweDBCOTA7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBERVBUSF9URVNUICAgICAgICAgICAgICAgICAgICAgPSAweDBCNzE7Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTQ0lTU09SX1RFU1QgICAgICAgICAgICAgICAgICAg
PSAweDBDMTE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBQT0xZR09OX09GRlNFVF9GSUxM
ICAgICAgICAgICAgPSAweDgwMzc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTQU1QTEVf
QUxQSEFfVE9fQ09WRVJBR0UgICAgICAgPSAweDgwOUU7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBTQU1QTEVfQ09WRVJBR0UgICAgICAgICAgICAgICAgPSAweDgwQTA7CiAKICAgICAgICAg
LyogRXJyb3JDb2RlICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9OT19FUlJPUiAg
ICAgICAgICAgICAgICAgICAgICAgPSAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xf
SU5WQUxJRF9FTlVNICAgICAgICAgICAgICAgICAgID0gMHgwNTAwOwotICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgR0xfSU5WQUxJRF9WQUxVRSAgICAgICAgICAgICAgICAgID0gMHgwNTAxOwot
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfSU5WQUxJRF9PUEVSQVRJT04gICAgICAgICAg
ICAgID0gMHgwNTAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfT1VUX09GX01FTU9S
WSAgICAgICAgICAgICAgICAgID0gMHgwNTA1OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
Tk9fRVJST1IgICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IElOVkFMSURfRU5VTSAgICAgICAgICAgICAgICAgICA9IDB4MDUwMDsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IElOVkFMSURfVkFMVUUgICAgICAgICAgICAgICAgICA9IDB4MDUw
MTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IElOVkFMSURfT1BFUkFUSU9OICAgICAgICAg
ICAgICA9IDB4MDUwMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IE9VVF9PRl9NRU1PUlkg
ICAgICAgICAgICAgICAgICA9IDB4MDUwNTsKIAogICAgICAgICAvKiBGcm9udEZhY2VEaXJlY3Rp
b24gKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0NXICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4MDkwMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0NDVyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDkwMTsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IENXICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDkwMDsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IENDVyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDkw
MTsKIAogICAgICAgICAvKiBHZXRQTmFtZSAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
R0xfTElORV9XSURUSCAgICAgICAgICAgICAgICAgICAgID0gMHgwQjIxOwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgR0xfQUxJQVNFRF9QT0lOVF9TSVpFX1JBTkdFICAgICAgID0gMHg4NDZE
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdF
ICAgICAgID0gMHg4NDZFOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQ1VMTF9GQUNF
X01PREUgICAgICAgICAgICAgICAgID0gMHgwQjQ1OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgR0xfRlJPTlRfRkFDRSAgICAgICAgICAgICAgICAgICAgID0gMHgwQjQ2OwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfREVQVEhfUkFOR0UgICAgICAgICAgICAgICAgICAgID0gMHgw
QjcwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfREVQVEhfV1JJVEVNQVNLICAgICAg
ICAgICAgICAgID0gMHgwQjcyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfREVQVEhf
Q0xFQVJfVkFMVUUgICAgICAgICAgICAgID0gMHgwQjczOwotICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgR0xfREVQVEhfRlVOQyAgICAgICAgICAgICAgICAgICAgID0gMHgwQjc0OwotICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9DTEVBUl9WQUxVRSAgICAgICAgICAgID0g
MHgwQjkxOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9GVU5DICAgICAg
ICAgICAgICAgICAgID0gMHgwQjkyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RF
TkNJTF9GQUlMICAgICAgICAgICAgICAgICAgID0gMHgwQjk0OwotICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgR0xfU1RFTkNJTF9QQVNTX0RFUFRIX0ZBSUwgICAgICAgID0gMHgwQjk1OwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgICAgICAg
ID0gMHgwQjk2OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9SRUYgICAg
ICAgICAgICAgICAgICAgID0gMHgwQjk3OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xf
U1RFTkNJTF9WQUxVRV9NQVNLICAgICAgICAgICAgID0gMHgwQjkzOwotICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9XUklURU1BU0sgICAgICAgICAgICAgID0gMHgwQjk4Owot
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9CQUNLX0ZVTkMgICAgICAgICAg
ICAgID0gMHg4ODAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9CQUNL
X0ZBSUwgICAgICAgICAgICAgID0gMHg4ODAxOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
R0xfU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCAgID0gMHg4ODAyOwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyAgID0gMHg4ODAz
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9CQUNLX1JFRiAgICAgICAg
ICAgICAgID0gMHg4Q0EzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9C
QUNLX1ZBTFVFX01BU0sgICAgICAgID0gMHg4Q0E0OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgR0xfU1RFTkNJTF9CQUNLX1dSSVRFTUFTSyAgICAgICAgID0gMHg4Q0E1OwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfVklFV1BPUlQgICAgICAgICAgICAgICAgICAgICAgID0gMHgw
QkEyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU0NJU1NPUl9CT1ggICAgICAgICAg
ICAgICAgICAgID0gMHgwQzEwOwotICAgICAgICAvKiAgICAgIEdMX1NDSVNTT1JfVEVTVCAqLwot
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQ09MT1JfQ0xFQVJfVkFMVUUgICAgICAgICAg
ICAgID0gMHgwQzIyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQ09MT1JfV1JJVEVN
QVNLICAgICAgICAgICAgICAgID0gMHgwQzIzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
R0xfVU5QQUNLX0FMSUdOTUVOVCAgICAgICAgICAgICAgID0gMHgwQ0Y1OwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgR0xfUEFDS19BTElHTk1FTlQgICAgICAgICAgICAgICAgID0gMHgwRDA1
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTUFYX1RFWFRVUkVfU0laRSAgICAgICAg
ICAgICAgID0gMHgwRDMzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTUFYX1ZJRVdQ
T1JUX0RJTVMgICAgICAgICAgICAgID0gMHgwRDNBOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgR0xfU1VCUElYRUxfQklUUyAgICAgICAgICAgICAgICAgID0gMHgwRDUwOwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfUkVEX0JJVFMgICAgICAgICAgICAgICAgICAgICAgID0gMHgw
RDUyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfR1JFRU5fQklUUyAgICAgICAgICAg
ICAgICAgICAgID0gMHgwRDUzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQkxVRV9C
SVRTICAgICAgICAgICAgICAgICAgICAgID0gMHgwRDU0OwotICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgR0xfQUxQSEFfQklUUyAgICAgICAgICAgICAgICAgICAgID0gMHgwRDU1OwotICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfREVQVEhfQklUUyAgICAgICAgICAgICAgICAgICAgID0g
MHgwRDU2OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfU1RFTkNJTF9CSVRTICAgICAg
ICAgICAgICAgICAgID0gMHgwRDU3OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfUE9M
WUdPTl9PRkZTRVRfVU5JVFMgICAgICAgICAgID0gMHgyQTAwOwotICAgICAgICAvKiAgICAgIEdM
X1BPTFlHT05fT0ZGU0VUX0ZJTEwgKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1BP
TFlHT05fT0ZGU0VUX0ZBQ1RPUiAgICAgICAgICA9IDB4ODAzODsKLSAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IEdMX1RFWFRVUkVfQklORElOR18yRCAgICAgICAgICAgICA9IDB4ODA2OTsKLSAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1NBTVBMRV9CVUZGRVJTICAgICAgICAgICAgICAg
ICA9IDB4ODBBODsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1NBTVBMRVMgICAgICAg
ICAgICAgICAgICAgICAgICA9IDB4ODBBOTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdM
X1NBTVBMRV9DT1ZFUkFHRV9WQUxVRSAgICAgICAgICA9IDB4ODBBQTsKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IEdMX1NBTVBMRV9DT1ZFUkFHRV9JTlZFUlQgICAgICAgICA9IDB4ODBBQjsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IExJTkVfV0lEVEggICAgICAgICAgICAgICAgICAg
ICA9IDB4MEIyMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEFMSUFTRURfUE9JTlRfU0la
RV9SQU5HRSAgICAgICA9IDB4ODQ2RDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEFMSUFT
RURfTElORV9XSURUSF9SQU5HRSAgICAgICA9IDB4ODQ2RTsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IENVTExfRkFDRV9NT0RFICAgICAgICAgICAgICAgICA9IDB4MEI0NTsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IEZST05UX0ZBQ0UgICAgICAgICAgICAgICAgICAgICA9IDB4MEI0
NjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IERFUFRIX1JBTkdFICAgICAgICAgICAgICAg
ICAgICA9IDB4MEI3MDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IERFUFRIX1dSSVRFTUFT
SyAgICAgICAgICAgICAgICA9IDB4MEI3MjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IERF
UFRIX0NMRUFSX1ZBTFVFICAgICAgICAgICAgICA9IDB4MEI3MzsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IERFUFRIX0ZVTkMgICAgICAgICAgICAgICAgICAgICA9IDB4MEI3NDsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxfQ0xFQVJfVkFMVUUgICAgICAgICAgICA9IDB4
MEI5MTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxfRlVOQyAgICAgICAgICAg
ICAgICAgICA9IDB4MEI5MjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxfRkFJ
TCAgICAgICAgICAgICAgICAgICA9IDB4MEI5NDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IFNURU5DSUxfUEFTU19ERVBUSF9GQUlMICAgICAgICA9IDB4MEI5NTsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IFNURU5DSUxfUEFTU19ERVBUSF9QQVNTICAgICAgICA9IDB4MEI5NjsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxfUkVGICAgICAgICAgICAgICAgICAgICA9
IDB4MEI5NzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxfVkFMVUVfTUFTSyAg
ICAgICAgICAgICA9IDB4MEI5MzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxf
V1JJVEVNQVNLICAgICAgICAgICAgICA9IDB4MEI5ODsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IFNURU5DSUxfQkFDS19GVU5DICAgICAgICAgICAgICA9IDB4ODgwMDsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IFNURU5DSUxfQkFDS19GQUlMICAgICAgICAgICAgICA9IDB4ODgwMTsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwg
ICA9IDB4ODgwMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxfQkFDS19QQVNT
X0RFUFRIX1BBU1MgICA9IDB4ODgwMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNURU5D
SUxfQkFDS19SRUYgICAgICAgICAgICAgICA9IDB4OENBMzsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IFNURU5DSUxfQkFDS19WQUxVRV9NQVNLICAgICAgICA9IDB4OENBNDsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IFNURU5DSUxfQkFDS19XUklURU1BU0sgICAgICAgICA9IDB4OENB
NTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFZJRVdQT1JUICAgICAgICAgICAgICAgICAg
ICAgICA9IDB4MEJBMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNDSVNTT1JfQk9YICAg
ICAgICAgICAgICAgICAgICA9IDB4MEMxMDsKKyAgICAgICAgLyogICAgICBTQ0lTU09SX1RFU1Qg
Ki8KKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IENPTE9SX0NMRUFSX1ZBTFVFICAgICAgICAg
ICAgICA9IDB4MEMyMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IENPTE9SX1dSSVRFTUFT
SyAgICAgICAgICAgICAgICA9IDB4MEMyMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFVO
UEFDS19BTElHTk1FTlQgICAgICAgICAgICAgICA9IDB4MENGNTsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IFBBQ0tfQUxJR05NRU5UICAgICAgICAgICAgICAgICA9IDB4MEQwNTsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IE1BWF9URVhUVVJFX1NJWkUgICAgICAgICAgICAgICA9IDB4
MEQzMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IE1BWF9WSUVXUE9SVF9ESU1TICAgICAg
ICAgICAgICA9IDB4MEQzQTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNVQlBJWEVMX0JJ
VFMgICAgICAgICAgICAgICAgICA9IDB4MEQ1MDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IFJFRF9CSVRTICAgICAgICAgICAgICAgICAgICAgICA9IDB4MEQ1MjsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IEdSRUVOX0JJVFMgICAgICAgICAgICAgICAgICAgICA9IDB4MEQ1MzsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IEJMVUVfQklUUyAgICAgICAgICAgICAgICAgICAgICA9
IDB4MEQ1NDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEFMUEhBX0JJVFMgICAgICAgICAg
ICAgICAgICAgICA9IDB4MEQ1NTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IERFUFRIX0JJ
VFMgICAgICAgICAgICAgICAgICAgICA9IDB4MEQ1NjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IFNURU5DSUxfQklUUyAgICAgICAgICAgICAgICAgICA9IDB4MEQ1NzsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IFBPTFlHT05fT0ZGU0VUX1VOSVRTICAgICAgICAgICA9IDB4MkEwMDsK
KyAgICAgICAgLyogICAgICBQT0xZR09OX09GRlNFVF9GSUxMICovCisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBQT0xZR09OX09GRlNFVF9GQUNUT1IgICAgICAgICAgPSAweDgwMzg7CisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGludCBURVhUVVJFX0JJTkRJTkdfMkQgICAgICAgICAgICAgPSAw
eDgwNjk7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTQU1QTEVfQlVGRkVSUyAgICAgICAg
ICAgICAgICAgPSAweDgwQTg7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTQU1QTEVTICAg
ICAgICAgICAgICAgICAgICAgICAgPSAweDgwQTk7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBTQU1QTEVfQ09WRVJBR0VfVkFMVUUgICAgICAgICAgPSAweDgwQUE7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBTQU1QTEVfQ09WRVJBR0VfSU5WRVJUICAgICAgICAgPSAweDgwQUI7CiAK
ICAgICAgICAgLyogR2V0VGV4dHVyZVBhcmFtZXRlciAqLwotICAgICAgICAvKiAgICAgIEdMX1RF
WFRVUkVfTUFHX0ZJTFRFUiAqLwotICAgICAgICAvKiAgICAgIEdMX1RFWFRVUkVfTUlOX0ZJTFRF
UiAqLwotICAgICAgICAvKiAgICAgIEdMX1RFWFRVUkVfV1JBUF9TICovCi0gICAgICAgIC8qICAg
ICAgR0xfVEVYVFVSRV9XUkFQX1QgKi8KKyAgICAgICAgLyogICAgICBURVhUVVJFX01BR19GSUxU
RVIgKi8KKyAgICAgICAgLyogICAgICBURVhUVVJFX01JTl9GSUxURVIgKi8KKyAgICAgICAgLyog
ICAgICBURVhUVVJFX1dSQVBfUyAqLworICAgICAgICAvKiAgICAgIFRFWFRVUkVfV1JBUF9UICov
CiAKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX05VTV9DT01QUkVTU0VEX1RFWFRVUkVf
Rk9STUFUUyA9IDB4ODZBMjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0NPTVBSRVNT
RURfVEVYVFVSRV9GT1JNQVRTICAgICA9IDB4ODZBMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IE5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMjsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IENPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTICAgICA9IDB4ODZBMzsK
IAogICAgICAgICAvKiBIaW50TW9kZSAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xf
RE9OVF9DQVJFICAgICAgICAgICAgICAgICAgICAgID0gMHgxMTAwOwotICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgR0xfRkFTVEVTVCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMTAxOwot
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTklDRVNUICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMHgxMTAyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRE9OVF9DQVJFICAgICAg
ICAgICAgICAgICAgICAgID0gMHgxMTAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRkFT
VEVTVCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMTAxOworICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgTklDRVNUICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMTAyOwogCiAgICAg
ICAgIC8qIEhpbnRUYXJnZXQgKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0dFTkVS
QVRFX01JUE1BUF9ISU5UICAgICAgICAgICAgPSAweDgxOTI7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBHRU5FUkFURV9NSVBNQVBfSElOVCAgICAgICAgICAgID0gMHg4MTkyOwogCiAgICAg
ICAgIC8qIERhdGFUeXBlICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9CWVRFICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDE0MDA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBHTF9VTlNJR05FRF9CWVRFICAgICAgICAgICAgICAgICAgPSAweDE0MDE7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBHTF9TSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAw
eDE0MDI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9VTlNJR05FRF9TSE9SVCAgICAg
ICAgICAgICAgICAgPSAweDE0MDM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9JTlQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDE0MDQ7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBHTF9VTlNJR05FRF9JTlQgICAgICAgICAgICAgICAgICAgPSAweDE0MDU7Ci0gICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GTE9BVCAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAweDE0MDY7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GSVhFRCAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAweDE0MEM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBCWVRF
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDE0MDA7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBVTlNJR05FRF9CWVRFICAgICAgICAgICAgICAgICAgPSAweDE0MDE7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDE0
MDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBVTlNJR05FRF9TSE9SVCAgICAgICAgICAg
ICAgICAgPSAweDE0MDM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBJTlQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAweDE0MDQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBV
TlNJR05FRF9JTlQgICAgICAgICAgICAgICAgICAgPSAweDE0MDU7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBGTE9BVCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDE0MDY7CisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGludCBGSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAw
eDE0MEM7CiAKICAgICAgICAgLyogUGl4ZWxGb3JtYXQgKi8KLSAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IEdMX0RFUFRIX0NPTVBPTkVOVCAgICAgICAgICAgICAgICA9IDB4MTkwMjsKLSAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0FMUEhBICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDB4MTkwNjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1JHQiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDB4MTkwNzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1JH
QkEgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTkwODsKLSAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IEdMX0xVTUlOQU5DRSAgICAgICAgICAgICAgICAgICAgICA9IDB4MTkwOTsKLSAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0xVTUlOQU5DRV9BTFBIQSAgICAgICAgICAgICAg
ICA9IDB4MTkwQTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IERFUFRIX0NPTVBPTkVOVCAg
ICAgICAgICAgICAgICA9IDB4MTkwMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEFMUEhB
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTkwNjsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IFJHQiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTkwNzsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IFJHQkEgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTkw
ODsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IExVTUlOQU5DRSAgICAgICAgICAgICAgICAg
ICAgICA9IDB4MTkwOTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IExVTUlOQU5DRV9BTFBI
QSAgICAgICAgICAgICAgICA9IDB4MTkwQTsKIAogICAgICAgICAvKiBQaXhlbFR5cGUgKi8KLSAg
ICAgICAgLyogICAgICBHTF9VTlNJR05FRF9CWVRFICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBHTF9VTlNJR05FRF9TSE9SVF80XzRfNF80ICAgICAgICAgPSAweDgwMzM7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBHTF9VTlNJR05FRF9TSE9SVF81XzVfNV8xICAgICAgICAgPSAw
eDgwMzQ7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9VTlNJR05FRF9TSE9SVF81XzZf
NSAgICAgICAgICAgPSAweDgzNjM7CisgICAgICAgIC8qICAgICAgVU5TSUdORURfQllURSAqLwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5TSUdORURfU0hPUlRfNF80XzRfNCAgICAgICAg
ID0gMHg4MDMzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5TSUdORURfU0hPUlRfNV81
XzVfMSAgICAgICAgID0gMHg4MDM0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5TSUdO
RURfU0hPUlRfNV82XzUgICAgICAgICAgID0gMHg4MzYzOwogCiAgICAgICAgIC8qIFNoYWRlcnMg
Ki8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0ZSQUdNRU5UX1NIQURFUiAgICAgICAg
ICAgICAgICAgID0gMHg4QjMwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfVkVSVEVY
X1NIQURFUiAgICAgICAgICAgICAgICAgICAgPSAweDhCMzE7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBHTF9NQVhfVkVSVEVYX0FUVFJJQlMgICAgICAgICAgICAgICA9IDB4ODg2OTsKLSAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX01BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTICAg
ICAgID0gMHg4REZCOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTUFYX1ZBUllJTkdf
VkVDVE9SUyAgICAgICAgICAgICAgPSAweDhERkM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBHTF9NQVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4OEI0RDsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IEdMX01BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyAgID0g
MHg4QjRDOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTUFYX1RFWFRVUkVfSU1BR0Vf
VU5JVFMgICAgICAgICAgPSAweDg4NzI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9N
QVhfRlJBR01FTlRfVU5JRk9STV9WRUNUT1JTICAgICA9IDB4OERGRDsKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IEdMX1NIQURFUl9UWVBFICAgICAgICAgICAgICAgICAgICAgID0gMHg4QjRG
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfREVMRVRFX1NUQVRVUyAgICAgICAgICAg
ICAgICAgICAgPSAweDhCODA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9MSU5LX1NU
QVRVUyAgICAgICAgICAgICAgICAgICAgICA9IDB4OEI4MjsKLSAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IEdMX1ZBTElEQVRFX1NUQVRVUyAgICAgICAgICAgICAgICAgID0gMHg4QjgzOwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQVRUQUNIRURfU0hBREVSUyAgICAgICAgICAgICAg
ICAgPSAweDhCODU7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9BQ1RJVkVfVU5JRk9S
TVMgICAgICAgICAgICAgICAgICA9IDB4OEI4NjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX0FDVElWRV9VTklGT1JNX01BWF9MRU5HVEggICAgICAgID0gMHg4Qjg3OwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfQUNUSVZFX0FUVFJJQlVURVMgICAgICAgICAgICAgICAgPSAw
eDhCODk7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9BQ1RJVkVfQVRUUklCVVRFX01B
WF9MRU5HVEggICAgICA9IDB4OEI4QTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1NI
QURJTkdfTEFOR1VBR0VfVkVSU0lPTiAgICAgICAgID0gMHg4QjhDOwotICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgR0xfQ1VSUkVOVF9QUk9HUkFNICAgICAgICAgICAgICAgICAgPSAweDhCOEQ7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGUkFHTUVOVF9TSEFERVIgICAgICAgICAgICAg
ICAgICA9IDB4OEIzMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFZFUlRFWF9TSEFERVIg
ICAgICAgICAgICAgICAgICAgID0gMHg4QjMxOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
TUFYX1ZFUlRFWF9BVFRSSUJTICAgICAgICAgICAgICAgPSAweDg4Njk7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBNQVhfVkVSVEVYX1VOSUZPUk1fVkVDVE9SUyAgICAgICA9IDB4OERGQjsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IE1BWF9WQVJZSU5HX1ZFQ1RPUlMgICAgICAgICAg
ICAgID0gMHg4REZDOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgTUFYX0NPTUJJTkVEX1RF
WFRVUkVfSU1BR0VfVU5JVFMgPSAweDhCNEQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBN
QVhfVkVSVEVYX1RFWFRVUkVfSU1BR0VfVU5JVFMgICA9IDB4OEI0QzsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IE1BWF9URVhUVVJFX0lNQUdFX1VOSVRTICAgICAgICAgID0gMHg4ODcyOwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyAg
ICAgPSAweDhERkQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTSEFERVJfVFlQRSAgICAg
ICAgICAgICAgICAgICAgICA9IDB4OEI0RjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IERF
TEVURV9TVEFUVVMgICAgICAgICAgICAgICAgICAgID0gMHg4QjgwOworICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgTElOS19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgPSAweDhCODI7Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBWQUxJREFURV9TVEFUVVMgICAgICAgICAgICAgICAg
ICA9IDB4OEI4MzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEFUVEFDSEVEX1NIQURFUlMg
ICAgICAgICAgICAgICAgID0gMHg4Qjg1OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQUNU
SVZFX1VOSUZPUk1TICAgICAgICAgICAgICAgICAgPSAweDhCODY7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBBQ1RJVkVfVU5JRk9STV9NQVhfTEVOR1RIICAgICAgICA9IDB4OEI4NzsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IEFDVElWRV9BVFRSSUJVVEVTICAgICAgICAgICAgICAg
ID0gMHg4Qjg5OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQUNUSVZFX0FUVFJJQlVURV9N
QVhfTEVOR1RIICAgICAgPSAweDhCOEE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04gICAgICAgICA9IDB4OEI4QzsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IENVUlJFTlRfUFJPR1JBTSAgICAgICAgICAgICAgICAgID0gMHg4QjhEOwogCiAg
ICAgICAgIC8qIFN0ZW5jaWxGdW5jdGlvbiAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
R0xfTkVWRVIgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjAwOwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgR0xfTEVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjAx
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfRVFVQUwgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMHgwMjAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTEVRVUFMICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjAzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgR0xfR1JFQVRFUiAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjA0OwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfTk9URVFVQUwgICAgICAgICAgICAgICAgICAgICAgID0gMHgw
MjA1OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfR0VRVUFMICAgICAgICAgICAgICAg
ICAgICAgICAgID0gMHgwMjA2OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQUxXQVlT
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjA3OworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgTkVWRVIgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjAwOworICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgTEVTUyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjAx
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRVFVQUwgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMHgwMjAyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgTEVRVUFMICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMHgwMjAzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR1JF
QVRFUiAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjA0OworICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgTk9URVFVQUwgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjA1OworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgR0VRVUFMICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgw
MjA2OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQUxXQVlTICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMHgwMjA3OwogCiAgICAgICAgIC8qIFN0ZW5jaWxPcCAqLwotICAgICAgICAvKiAg
ICAgIEdMX1pFUk8gKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0tFRVAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDB4MUUwMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX1JFUExBQ0UgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUUwMTsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IEdMX0lOQ1IgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUUw
MjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0RFQ1IgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDB4MUUwMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0lOVkVSVCAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTUwQTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IEdMX0lOQ1JfV1JBUCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODUwNzsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IEdMX0RFQ1JfV1JBUCAgICAgICAgICAgICAgICAgICAgICA9IDB4
ODUwODsKKyAgICAgICAgLyogICAgICBaRVJPICovCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBLRUVQICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDFFMDA7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBSRVBMQUNFICAgICAgICAgICAgICAgICAgICAgICAgPSAweDFFMDE7Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBJTkNSICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAweDFFMDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBERUNSICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAweDFFMDM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBJTlZFUlQg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDE1MEE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBJTkNSX1dSQVAgICAgICAgICAgICAgICAgICAgICAgPSAweDg1MDc7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBERUNSX1dSQVAgICAgICAgICAgICAgICAgICAgICAgPSAweDg1MDg7
CiAKICAgICAgICAgLyogU3RyaW5nTmFtZSAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
R0xfVkVORE9SICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxRjAwOwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgR0xfUkVOREVSRVIgICAgICAgICAgICAgICAgICAgICAgID0gMHgxRjAx
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfVkVSU0lPTiAgICAgICAgICAgICAgICAg
ICAgICAgID0gMHgxRjAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfRVhURU5TSU9O
UyAgICAgICAgICAgICAgICAgICAgID0gMHgxRjAzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgVkVORE9SICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxRjAwOworICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgUkVOREVSRVIgICAgICAgICAgICAgICAgICAgICAgID0gMHgxRjAxOwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgICAg
ID0gMHgxRjAyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRVhURU5TSU9OUyAgICAgICAg
ICAgICAgICAgICAgID0gMHgxRjAzOwogCiAgICAgICAgIC8qIFRleHR1cmVNYWdGaWx0ZXIgKi8K
LSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX05FQVJFU1QgICAgICAgICAgICAgICAgICAg
ICAgICA9IDB4MjYwMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0xJTkVBUiAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDB4MjYwMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IE5FQVJFU1QgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MjYwMDsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IExJTkVBUiAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MjYwMTsKIAog
ICAgICAgICAvKiBUZXh0dXJlTWluRmlsdGVyICovCi0gICAgICAgIC8qICAgICAgR0xfTkVBUkVT
VCAqLwotICAgICAgICAvKiAgICAgIEdMX0xJTkVBUiAqLwotICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgR0xfTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCAgICAgICAgID0gMHgyNzAwOwotICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTElORUFSX01JUE1BUF9ORUFSRVNUICAgICAgICAgID0g
MHgyNzAxOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTkVBUkVTVF9NSVBNQVBfTElO
RUFSICAgICAgICAgID0gMHgyNzAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfTElO
RUFSX01JUE1BUF9MSU5FQVIgICAgICAgICAgID0gMHgyNzAzOworICAgICAgICAvKiAgICAgIE5F
QVJFU1QgKi8KKyAgICAgICAgLyogICAgICBMSU5FQVIgKi8KKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IE5FQVJFU1RfTUlQTUFQX05FQVJFU1QgICAgICAgICA9IDB4MjcwMDsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IExJTkVBUl9NSVBNQVBfTkVBUkVTVCAgICAgICAgICA9IDB4Mjcw
MTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IE5FQVJFU1RfTUlQTUFQX0xJTkVBUiAgICAg
ICAgICA9IDB4MjcwMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IExJTkVBUl9NSVBNQVBf
TElORUFSICAgICAgICAgICA9IDB4MjcwMzsKIAogICAgICAgICAvKiBUZXh0dXJlUGFyYW1ldGVy
TmFtZSAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfVEVYVFVSRV9NQUdfRklMVEVS
ICAgICAgICAgICAgID0gMHgyODAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfVEVY
VFVSRV9NSU5fRklMVEVSICAgICAgICAgICAgID0gMHgyODAxOwotICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgR0xfVEVYVFVSRV9XUkFQX1MgICAgICAgICAgICAgICAgID0gMHgyODAyOwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfVEVYVFVSRV9XUkFQX1QgICAgICAgICAgICAgICAg
ID0gMHgyODAzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVEVYVFVSRV9NQUdfRklMVEVS
ICAgICAgICAgICAgID0gMHgyODAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVEVYVFVS
RV9NSU5fRklMVEVSICAgICAgICAgICAgID0gMHgyODAxOworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgVEVYVFVSRV9XUkFQX1MgICAgICAgICAgICAgICAgID0gMHgyODAyOworICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgVEVYVFVSRV9XUkFQX1QgICAgICAgICAgICAgICAgID0gMHgyODAz
OwogCiAgICAgICAgIC8qIFRleHR1cmVUYXJnZXQgKi8KLSAgICAgICAgLyogICAgICBHTF9URVhU
VVJFXzJEICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9URVhUVVJFICAgICAgICAg
ICAgICAgICAgICAgICAgPSAweDE3MDI7CisgICAgICAgIC8qICAgICAgVEVYVFVSRV8yRCAqLwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVEVYVFVSRSAgICAgICAgICAgICAgICAgICAgICAg
ID0gMHgxNzAyOwogCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9URVhUVVJFX0NVQkVf
TUFQICAgICAgICAgICAgICAgPSAweDg1MTM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBH
TF9URVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgICAgICAgPSAweDg1MTQ7Ci0gICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBHTF9URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ggICAgPSAweDg1MTU7
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1ggICAgPSAweDg1MTY7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9URVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1kgICAgPSAweDg1MTc7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBHTF9URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgICAgPSAweDg1MTg7Ci0gICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBHTF9URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ogICAgPSAweDg1
MTk7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9URVhUVVJFX0NVQkVfTUFQX05FR0FU
SVZFX1ogICAgPSAweDg1MUE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9NQVhfQ1VC
RV9NQVBfVEVYVFVSRV9TSVpFICAgICAgPSAweDg1MUM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBURVhUVVJFX0NVQkVfTUFQICAgICAgICAgICAgICAgPSAweDg1MTM7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgICAgICAgPSAweDg1MTQ7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1gg
ICAgPSAweDg1MTU7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBURVhUVVJFX0NVQkVfTUFQ
X05FR0FUSVZFX1ggICAgPSAweDg1MTY7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBURVhU
VVJFX0NVQkVfTUFQX1BPU0lUSVZFX1kgICAgPSAweDg1MTc7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgICAgPSAweDg1MTg7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ogICAgPSAweDg1
MTk7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1ogICAgPSAweDg1MUE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBNQVhfQ1VCRV9NQVBf
VEVYVFVSRV9TSVpFICAgICAgPSAweDg1MUM7CiAKICAgICAgICAgLyogVGV4dHVyZVVuaXQgKi8K
LSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUwICAgICAgICAgICAgICAgICAg
ICAgICA9IDB4ODRDMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUxICAg
ICAgICAgICAgICAgICAgICAgICA9IDB4ODRDMTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX1RFWFRVUkUyICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDMjsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUzICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRD
MzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkU0ICAgICAgICAgICAgICAg
ICAgICAgICA9IDB4ODRDNDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkU1
ICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDNTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IEdMX1RFWFRVUkU2ICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDNjsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkU3ICAgICAgICAgICAgICAgICAgICAgICA9IDB4
ODRDNzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkU4ICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4ODRDODsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRV
UkU5ICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDOTsKLSAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IEdMX1RFWFRVUkUxMCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDQTsKLSAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUxMSAgICAgICAgICAgICAgICAgICAgICA9
IDB4ODRDQjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUxMiAgICAgICAg
ICAgICAgICAgICAgICA9IDB4ODRDQzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RF
WFRVUkUxMyAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDRDsKLSAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IEdMX1RFWFRVUkUxNCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDRTsKLSAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUxNSAgICAgICAgICAgICAgICAgICAg
ICA9IDB4ODRDRjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUxNiAgICAg
ICAgICAgICAgICAgICAgICA9IDB4ODREMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdM
X1RFWFRVUkUxNyAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREMTsKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IEdMX1RFWFRVUkUxOCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREMjsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUxOSAgICAgICAgICAgICAgICAg
ICAgICA9IDB4ODREMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUyMCAg
ICAgICAgICAgICAgICAgICAgICA9IDB4ODRENDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX1RFWFRVUkUyMSAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRENTsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUyMiAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRE
NjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUyMyAgICAgICAgICAgICAg
ICAgICAgICA9IDB4ODRENzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUy
NCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREODsKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IEdMX1RFWFRVUkUyNSAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREOTsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUyNiAgICAgICAgICAgICAgICAgICAgICA9IDB4
ODREQTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUyNyAgICAgICAgICAg
ICAgICAgICAgICA9IDB4ODREQjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRV
UkUyOCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREQzsKLSAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IEdMX1RFWFRVUkUyOSAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRERDsKLSAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUzMCAgICAgICAgICAgICAgICAgICAgICA9
IDB4ODRERTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1RFWFRVUkUzMSAgICAgICAg
ICAgICAgICAgICAgICA9IDB4ODRERjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0FD
VElWRV9URVhUVVJFICAgICAgICAgICAgICAgICA9IDB4ODRFMDsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IFRFWFRVUkUwICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDMDsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUxICAgICAgICAgICAgICAgICAgICAgICA9IDB4
ODRDMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUyICAgICAgICAgICAgICAg
ICAgICAgICA9IDB4ODRDMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUzICAg
ICAgICAgICAgICAgICAgICAgICA9IDB4ODRDMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IFRFWFRVUkU0ICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDNDsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IFRFWFRVUkU1ICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDNTsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkU2ICAgICAgICAgICAgICAgICAgICAgICA9
IDB4ODRDNjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkU3ICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4ODRDNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkU4
ICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDODsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IFRFWFRVUkU5ICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDOTsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IFRFWFRVUkUxMCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDQTsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUxMSAgICAgICAgICAgICAgICAgICAg
ICA9IDB4ODRDQjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUxMiAgICAgICAg
ICAgICAgICAgICAgICA9IDB4ODRDQzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRV
UkUxMyAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDRDsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IFRFWFRVUkUxNCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRDRTsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUxNSAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRD
RjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUxNiAgICAgICAgICAgICAgICAg
ICAgICA9IDB4ODREMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUxNyAgICAg
ICAgICAgICAgICAgICAgICA9IDB4ODREMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRF
WFRVUkUxOCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREMjsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IFRFWFRVUkUxOSAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREMzsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUyMCAgICAgICAgICAgICAgICAgICAgICA9IDB4
ODRENDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUyMSAgICAgICAgICAgICAg
ICAgICAgICA9IDB4ODRENTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUyMiAg
ICAgICAgICAgICAgICAgICAgICA9IDB4ODRENjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IFRFWFRVUkUyMyAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRENzsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IFRFWFRVUkUyNCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREODsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUyNSAgICAgICAgICAgICAgICAgICAgICA9
IDB4ODREOTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUyNiAgICAgICAgICAg
ICAgICAgICAgICA9IDB4ODREQTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUy
NyAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREQjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IFRFWFRVUkUyOCAgICAgICAgICAgICAgICAgICAgICA9IDB4ODREQzsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IFRFWFRVUkUyOSAgICAgICAgICAgICAgICAgICAgICA9IDB4ODRERDsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUzMCAgICAgICAgICAgICAgICAgICAg
ICA9IDB4ODRERTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkUzMSAgICAgICAg
ICAgICAgICAgICAgICA9IDB4ODRERjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEFDVElW
RV9URVhUVVJFICAgICAgICAgICAgICAgICA9IDB4ODRFMDsKIAogICAgICAgICAvKiBUZXh0dXJl
V3JhcE1vZGUgKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1JFUEVBVCAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDB4MjkwMTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdM
X0NMQU1QX1RPX0VER0UgICAgICAgICAgICAgICAgICA9IDB4ODEyRjsKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IEdMX01JUlJPUkVEX1JFUEVBVCAgICAgICAgICAgICAgICA9IDB4ODM3MDsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFJFUEVBVCAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDB4MjkwMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IENMQU1QX1RPX0VER0UgICAg
ICAgICAgICAgICAgICA9IDB4ODEyRjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IE1JUlJP
UkVEX1JFUEVBVCAgICAgICAgICAgICAgICA9IDB4ODM3MDsKIAogICAgICAgICAvKiBVbmlmb3Jt
IFR5cGVzICovCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GTE9BVF9WRUMyICAgICAg
ICAgICAgICAgICAgICAgPSAweDhCNTA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9G
TE9BVF9WRUMzICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTE7Ci0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBHTF9GTE9BVF9WRUM0ICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTI7Ci0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9JTlRfVkVDMiAgICAgICAgICAgICAgICAgICAg
ICAgPSAweDhCNTM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9JTlRfVkVDMyAgICAg
ICAgICAgICAgICAgICAgICAgPSAweDhCNTQ7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBH
TF9JTlRfVkVDNCAgICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTU7Ci0gICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBHTF9CT09MICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTY7
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9CT09MX1ZFQzIgICAgICAgICAgICAgICAg
ICAgICAgPSAweDhCNTc7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9CT09MX1ZFQzMg
ICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTg7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBHTF9CT09MX1ZFQzQgICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTk7Ci0gICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBHTF9GTE9BVF9NQVQyICAgICAgICAgICAgICAgICAgICAgPSAweDhC
NUE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GTE9BVF9NQVQzICAgICAgICAgICAg
ICAgICAgICAgPSAweDhCNUI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GTE9BVF9N
QVQ0ICAgICAgICAgICAgICAgICAgICAgPSAweDhCNUM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBHTF9TQU1QTEVSXzJEICAgICAgICAgICAgICAgICAgICAgPSAweDhCNUU7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBHTF9TQU1QTEVSX0NVQkUgICAgICAgICAgICAgICAgICAgPSAw
eDhCNjA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGTE9BVF9WRUMyICAgICAgICAgICAg
ICAgICAgICAgPSAweDhCNTA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGTE9BVF9WRUMz
ICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBGTE9BVF9WRUM0ICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTI7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBJTlRfVkVDMiAgICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTM7Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBJTlRfVkVDMyAgICAgICAgICAgICAgICAgICAgICAg
PSAweDhCNTQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBJTlRfVkVDNCAgICAgICAgICAg
ICAgICAgICAgICAgPSAweDhCNTU7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBCT09MICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTY7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBCT09MX1ZFQzIgICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTc7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBCT09MX1ZFQzMgICAgICAgICAgICAgICAgICAgICAgPSAweDhCNTg7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBCT09MX1ZFQzQgICAgICAgICAgICAgICAgICAg
ICAgPSAweDhCNTk7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGTE9BVF9NQVQyICAgICAg
ICAgICAgICAgICAgICAgPSAweDhCNUE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGTE9B
VF9NQVQzICAgICAgICAgICAgICAgICAgICAgPSAweDhCNUI7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBGTE9BVF9NQVQ0ICAgICAgICAgICAgICAgICAgICAgPSAweDhCNUM7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBTQU1QTEVSXzJEICAgICAgICAgICAgICAgICAgICAgPSAweDhC
NUU7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTQU1QTEVSX0NVQkUgICAgICAgICAgICAg
ICAgICAgPSAweDhCNjA7CiAKICAgICAgICAgLyogVmVydGV4IEFycmF5cyAqLwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEICAgICAgICA9
IDB4ODYyMjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1ZFUlRFWF9BVFRSSUJfQVJS
QVlfU0laRSAgICAgICAgICAgPSAweDg2MjM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBH
TF9WRVJURVhfQVRUUklCX0FSUkFZX1NUUklERSAgICAgICAgID0gMHg4NjI0OwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFICAgICAgICAgICA9
IDB4ODYyNTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1ZFUlRFWF9BVFRSSUJfQVJS
QVlfTk9STUFMSVpFRCAgICAgPSAweDg4NkE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBH
TF9WRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIgICAgICAgID0gMHg4NjQ1OwotICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgR0xfVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyA9
IDB4ODg5RjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFZFUlRFWF9BVFRSSUJfQVJSQVlf
RU5BQkxFRCAgICAgICAgPSAweDg2MjI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBWRVJU
RVhfQVRUUklCX0FSUkFZX1NJWkUgICAgICAgICAgID0gMHg4NjIzOworICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUgICAgICAgICA9IDB4ODYyNDsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSAgICAg
ICAgICAgPSAweDg2MjU7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBWRVJURVhfQVRUUklC
X0FSUkFZX05PUk1BTElaRUQgICAgID0gMHg4ODZBOworICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSICAgICAgICA9IDB4ODY0NTsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IFZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAw
eDg4OUY7CiAKICAgICAgICAgLyogUmVhZCBGb3JtYXQgKi8KLSAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IEdMX0lNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQRSAgID0gMHg4QjlBOwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfSU1QTEVNRU5UQVRJT05fQ09MT1JfUkVBRF9GT1JN
QVQgPSAweDhCOUI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBJTVBMRU1FTlRBVElPTl9D
T0xPUl9SRUFEX1RZUEUgICA9IDB4OEI5QTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IElN
UExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFUID0gMHg4QjlCOwogCiAgICAgICAgIC8qIFNo
YWRlciBTb3VyY2UgKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0NPTVBJTEVfU1RB
VFVTICAgICAgICAgICAgICAgICA9IDB4OEI4MTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX0lORk9fTE9HX0xFTkdUSCAgICAgICAgICAgICAgICA9IDB4OEI4NDsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IEdMX1NIQURFUl9TT1VSQ0VfTEVOR1RIICAgICAgICAgICA9IDB4OEI4
ODsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1NIQURFUl9DT01QSUxFUiAgICAgICAg
ICAgICAgICA9IDB4OERGQTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IENPTVBJTEVfU1RB
VFVTICAgICAgICAgICAgICAgICA9IDB4OEI4MTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IElORk9fTE9HX0xFTkdUSCAgICAgICAgICAgICAgICA9IDB4OEI4NDsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IFNIQURFUl9TT1VSQ0VfTEVOR1RIICAgICAgICAgICA9IDB4OEI4ODsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IFNIQURFUl9DT01QSUxFUiAgICAgICAgICAgICAgICA9
IDB4OERGQTsKIAogICAgICAgICAvKiBTaGFkZXIgQmluYXJ5ICovCi0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBHTF9TSEFERVJfQklOQVJZX0ZPUk1BVFMgICAgICAgICAgPSAweDhERjg7Ci0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9OVU1fU0hBREVSX0JJTkFSWV9GT1JNQVRTICAg
ICAgPSAweDhERjk7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBTSEFERVJfQklOQVJZX0ZP
Uk1BVFMgICAgICAgICAgPSAweDhERjg7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBOVU1f
U0hBREVSX0JJTkFSWV9GT1JNQVRTICAgICAgPSAweDhERjk7CiAKICAgICAgICAgLyogU2hhZGVy
IFByZWNpc2lvbi1TcGVjaWZpZWQgVHlwZXMgKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX0xPV19GTE9BVCAgICAgICAgICAgICAgICAgICAgICA9IDB4OERGMDsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IEdMX01FRElVTV9GTE9BVCAgICAgICAgICAgICAgICAgICA9IDB4OERG
MTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0hJR0hfRkxPQVQgICAgICAgICAgICAg
ICAgICAgICA9IDB4OERGMjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0xPV19JTlQg
ICAgICAgICAgICAgICAgICAgICAgICA9IDB4OERGMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IEdMX01FRElVTV9JTlQgICAgICAgICAgICAgICAgICAgICA9IDB4OERGNDsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgaW50IEdMX0hJR0hfSU5UICAgICAgICAgICAgICAgICAgICAgICA9IDB4
OERGNTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IExPV19GTE9BVCAgICAgICAgICAgICAg
ICAgICAgICA9IDB4OERGMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IE1FRElVTV9GTE9B
VCAgICAgICAgICAgICAgICAgICA9IDB4OERGMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEhJR0hfRkxPQVQgICAgICAgICAgICAgICAgICAgICA9IDB4OERGMjsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IExPV19JTlQgICAgICAgICAgICAgICAgICAgICAgICA9IDB4OERGMzsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IE1FRElVTV9JTlQgICAgICAgICAgICAgICAgICAgICA9
IDB4OERGNDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEhJR0hfSU5UICAgICAgICAgICAg
ICAgICAgICAgICA9IDB4OERGNTsKIAogICAgICAgICAvKiBGcmFtZWJ1ZmZlciBPYmplY3QuICov
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GUkFNRUJVRkZFUiAgICAgICAgICAgICAg
ICAgICAgPSAweDhENDA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9SRU5ERVJCVUZG
RVIgICAgICAgICAgICAgICAgICAgPSAweDhENDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBGUkFNRUJVRkZFUiAgICAgICAgICAgICAgICAgICAgPSAweDhENDA7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBSRU5ERVJCVUZGRVIgICAgICAgICAgICAgICAgICAgPSAweDhENDE7CiAK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1JHQkE0ICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDB4ODA1NjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1JHQjVfQTEgICAg
ICAgICAgICAgICAgICAgICAgICA9IDB4ODA1NzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX1JHQjU2NSAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4OEQ2MjsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IEdMX0RFUFRIX0NPTVBPTkVOVDE2ICAgICAgICAgICAgICA9IDB4ODFB
NTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1NURU5DSUxfSU5ERVggICAgICAgICAg
ICAgICAgICA9IDB4MTkwMTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX1NURU5DSUxf
SU5ERVg4ICAgICAgICAgICAgICAgICA9IDB4OEQ0ODsKLQotICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgR0xfUkVOREVSQlVGRkVSX1dJRFRIICAgICAgICAgICAgID0gMHg4RDQyOwotICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfUkVOREVSQlVGRkVSX0hFSUdIVCAgICAgICAgICAgID0g
MHg4RDQzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfUkVOREVSQlVGRkVSX0lOVEVS
TkFMX0ZPUk1BVCAgID0gMHg4RDQ0OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfUkVO
REVSQlVGRkVSX1JFRF9TSVpFICAgICAgICAgID0gMHg4RDUwOwotICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgR0xfUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUgICAgICAgID0gMHg4RDUxOwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfUkVOREVSQlVGRkVSX0JMVUVfU0laRSAgICAgICAg
ID0gMHg4RDUyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfUkVOREVSQlVGRkVSX0FM
UEhBX1NJWkUgICAgICAgID0gMHg4RDUzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xf
UkVOREVSQlVGRkVSX0RFUFRIX1NJWkUgICAgICAgID0gMHg4RDU0OwotICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgR0xfUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRSAgICAgID0gMHg4RDU1Owot
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09C
SkVDVF9UWVBFICAgICAgICAgICA9IDB4OENEMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEdMX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUgICAgICAgICAgID0gMHg4Q0Qx
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9U
RVhUVVJFX0xFVkVMICAgICAgICAgPSAweDhDRDI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBHTF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRSA9IDB4OENE
MzsKLQotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfQ09MT1JfQVRUQUNITUVOVDAgICAg
ICAgICAgICAgID0gMHg4Q0UwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfREVQVEhf
QVRUQUNITUVOVCAgICAgICAgICAgICAgID0gMHg4RDAwOwotICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgR0xfU1RFTkNJTF9BVFRBQ0hNRU5UICAgICAgICAgICAgID0gMHg4RDIwOwotCi0gICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9OT05FICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAwOwotCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9GUkFNRUJVRkZFUl9DT01QTEVU
RSAgICAgICAgICAgICAgICAgICAgICA9IDB4OENENTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IEdMX0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCAgICAgICAgID0gMHg4Q0Q2
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgR0xfRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgPSAweDhDRDc7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBH
TF9GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgICAgICAgICA9IDB4OENEOTsKLSAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0ZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEICAgICAg
ICAgICAgICAgICAgID0gMHg4Q0REOwotCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9G
UkFNRUJVRkZFUl9CSU5ESU5HICAgICAgICAgICAgPSAweDhDQTY7Ci0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBHTF9SRU5ERVJCVUZGRVJfQklORElORyAgICAgICAgICAgPSAweDhDQTc7Ci0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBHTF9NQVhfUkVOREVSQlVGRkVSX1NJWkUgICAgICAg
ICAgPSAweDg0RTg7Ci0KLSAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEdMX0lOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OICA9IDB4MDUwNjsKLQotICAgICAgICB2b2lkICAgICAgICAgZ2xB
Y3RpdmVUZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGV4dHVyZSk7Ci0gICAgICAgIHZvaWQgICAg
ICAgICBnbEF0dGFjaFNoYWRlcihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIENhbnZhc1No
YWRlciBzaGFkZXIpOwotICAgICAgICB2b2lkICAgICAgICAgZ2xCaW5kQXR0cmliTG9jYXRpb24o
aW4gQ2FudmFzUHJvZ3JhbSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4LCBpbiBET01T
dHJpbmcgbmFtZSk7Ci0gICAgICAgIHZvaWQgICAgICAgICBnbEJpbmRCdWZmZXIoaW4gdW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGluIENhbnZhc0J1ZmZlciBidWZmZXIpOwotICAgICAgICB2b2lkICAg
ICAgICAgZ2xCaW5kRnJhbWVidWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIENhbnZh
c0ZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGdsQmluZFJl
bmRlcmJ1ZmZlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gQ2FudmFzUmVuZGVyYnVmZmVy
IHJlbmRlcmJ1ZmZlcik7Ci0gICAgICAgIHZvaWQgICAgICAgICBnbEJpbmRUZXh0dXJlKGluIHVu
c2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBDYW52YXNUZXh0dXJlIHRleHR1cmUpOwotICAgICAgICB2
b2lkICAgICAgICAgZ2xCbGVuZENvbG9yKGluIGRvdWJsZSByZWQsIGluIGRvdWJsZSBncmVlbiwg
aW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBoYSk7Ci0gICAgICAgIHZvaWQgICAgICAgICBn
bEJsZW5kRXF1YXRpb24oIGluIHVuc2lnbmVkIGxvbmcgbW9kZSApOwotICAgICAgICB2b2lkICAg
ICAgICAgZ2xCbGVuZEVxdWF0aW9uU2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBtb2RlUkdCLCBp
biB1bnNpZ25lZCBsb25nIG1vZGVBbHBoYSk7Ci0gICAgICAgIHZvaWQgICAgICAgICBnbEJsZW5k
RnVuYyhpbiB1bnNpZ25lZCBsb25nIHNmYWN0b3IsIGluIHVuc2lnbmVkIGxvbmcgZGZhY3Rvcik7
Ci0gICAgICAgIHZvaWQgICAgICAgICBnbEJsZW5kRnVuY1NlcGFyYXRlKGluIHVuc2lnbmVkIGxv
bmcgc3JjUkdCLCBpbiB1bnNpZ25lZCBsb25nIGRzdFJHQiwgaW4gdW5zaWduZWQgbG9uZyBzcmNB
bHBoYSwgaW4gdW5zaWduZWQgbG9uZyBkc3RBbHBoYSk7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQg
Z2xCdWZmZXJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBDYW52YXNCeXRlQXJyYXkg
ZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1c2FnZSk7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2xC
dWZmZXJTdWJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIG9mZnNldCwgaW4g
Q2FudmFzQnl0ZUFycmF5IGRhdGEpOwotICAgICAgICB1bnNpZ25lZCBsb25nIGdsQ2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhpbiBDYW52YXNGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7Ci0gICAgICAg
IHZvaWQgICAgICAgICBnbENsZWFyKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7Ci0gICAgICAgIHZv
aWQgICAgICAgICBnbENsZWFyQ29sb3IoaW4gZG91YmxlIHJlZCwgaW4gZG91YmxlIGdyZWVuLCBp
biBkb3VibGUgYmx1ZSwgaW4gZG91YmxlIGFscGhhKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGds
Q2xlYXJEZXB0aChpbiBkb3VibGUgZGVwdGgpOwotICAgICAgICB2b2lkICAgICAgICAgZ2xDbGVh
clN0ZW5jaWwoaW4gbG9uZyBzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGdsQ29sb3JNYXNrKGlu
IGJvb2xlYW4gcmVkLCBpbiBib29sZWFuIGdyZWVuLCBpbiBib29sZWFuIGJsdWUsIGluIGJvb2xl
YW4gYWxwaGEpOwotICAgICAgICB2b2lkICAgICAgICAgZ2xDb21waWxlU2hhZGVyKGluIENhbnZh
c1NoYWRlciBzaGFkZXIpOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgUkdCQTQgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMHg4MDU2OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQg
UkdCNV9BMSAgICAgICAgICAgICAgICAgICAgICAgID0gMHg4MDU3OworICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgUkdCNTY1ICAgICAgICAgICAgICAgICAgICAgICAgID0gMHg4RDYyOworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgREVQVEhfQ09NUE9ORU5UMTYgICAgICAgICAgICAgID0g
MHg4MUE1OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgU1RFTkNJTF9JTkRFWCAgICAgICAg
ICAgICAgICAgID0gMHgxOTAxOworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgU1RFTkNJTF9J
TkRFWDggICAgICAgICAgICAgICAgID0gMHg4RDQ4OworCisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBSRU5ERVJCVUZGRVJfV0lEVEggICAgICAgICAgICAgPSAweDhENDI7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBSRU5ERVJCVUZGRVJfSEVJR0hUICAgICAgICAgICAgPSAweDhENDM7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFU
ICAgPSAweDhENDQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBSRU5ERVJCVUZGRVJfUkVE
X1NJWkUgICAgICAgICAgPSAweDhENTA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBSRU5E
RVJCVUZGRVJfR1JFRU5fU0laRSAgICAgICAgPSAweDhENTE7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBSRU5ERVJCVUZGRVJfQkxVRV9TSVpFICAgICAgICAgPSAweDhENTI7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBSRU5ERVJCVUZGRVJfQUxQSEFfU0laRSAgICAgICAgPSAweDhE
NTM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBSRU5ERVJCVUZGRVJfREVQVEhfU0laRSAg
ICAgICAgPSAweDhENTQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBSRU5ERVJCVUZGRVJf
U1RFTkNJTF9TSVpFICAgICAgPSAweDhENTU7CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUgICAgICAgICAgID0gMHg4Q0QwOwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
TkFNRSAgICAgICAgICAgPSAweDhDRDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUwgICAgICAgICA9IDB4OENEMjsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgaW50IEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJF
X01BUF9GQUNFID0gMHg4Q0QzOworCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT0xPUl9B
VFRBQ0hNRU5UMCAgICAgICAgICAgICAgPSAweDhDRTA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IGludCBERVBUSF9BVFRBQ0hNRU5UICAgICAgICAgICAgICAgPSAweDhEMDA7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIGludCBTVEVOQ0lMX0FUVEFDSE1FTlQgICAgICAgICAgICAgPSAweDhEMjA7
CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IE5PTkUgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDA7CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEZSQU1FQlVGRkVSX0NPTVBM
RVRFICAgICAgICAgICAgICAgICAgICAgID0gMHg4Q0Q1OworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBpbnQgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UICAgICAgICAgPSAweDhDRDY7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJ
TkdfQVRUQUNITUVOVCA9IDB4OENENzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEZSQU1F
QlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyAgICAgICAgID0gMHg4Q0Q5OworICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQgICAgICAgICAgICAgICAg
ICAgPSAweDhDREQ7CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEZSQU1FQlVGRkVSX0JJ
TkRJTkcgICAgICAgICAgICA9IDB4OENBNjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFJF
TkRFUkJVRkZFUl9CSU5ESU5HICAgICAgICAgICA9IDB4OENBNzsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgaW50IE1BWF9SRU5ERVJCVUZGRVJfU0laRSAgICAgICAgICA9IDB4ODRFODsKKworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gID0g
MHgwNTA2OworCisgICAgICAgIHZvaWQgICAgICAgICBhY3RpdmVUZXh0dXJlKGluIHVuc2lnbmVk
IGxvbmcgdGV4dHVyZSk7CisgICAgICAgIHZvaWQgICAgICAgICBhdHRhY2hTaGFkZXIoaW4gQ2Fu
dmFzUHJvZ3JhbSBwcm9ncmFtLCBpbiBDYW52YXNTaGFkZXIgc2hhZGVyKTsKKyAgICAgICAgdm9p
ZCAgICAgICAgIGJpbmRBdHRyaWJMb2NhdGlvbihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgdm9pZCAg
ICAgICAgIGJpbmRCdWZmZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIENhbnZhc0J1ZmZl
ciBidWZmZXIpOworICAgICAgICB2b2lkICAgICAgICAgYmluZEZyYW1lYnVmZmVyKGluIHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCBpbiBDYW52YXNGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisgICAg
ICAgIHZvaWQgICAgICAgICBiaW5kUmVuZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbiBDYW52YXNSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsKKyAgICAgICAgdm9pZCAgICAg
ICAgIGJpbmRUZXh0dXJlKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBDYW52YXNUZXh0dXJl
IHRleHR1cmUpOworICAgICAgICB2b2lkICAgICAgICAgYmxlbmRDb2xvcihpbiBkb3VibGUgcmVk
LCBpbiBkb3VibGUgZ3JlZW4sIGluIGRvdWJsZSBibHVlLCBpbiBkb3VibGUgYWxwaGEpOworICAg
ICAgICB2b2lkICAgICAgICAgYmxlbmRFcXVhdGlvbiggaW4gdW5zaWduZWQgbG9uZyBtb2RlICk7
CisgICAgICAgIHZvaWQgICAgICAgICBibGVuZEVxdWF0aW9uU2VwYXJhdGUoaW4gdW5zaWduZWQg
bG9uZyBtb2RlUkdCLCBpbiB1bnNpZ25lZCBsb25nIG1vZGVBbHBoYSk7CisgICAgICAgIHZvaWQg
ICAgICAgICBibGVuZEZ1bmMoaW4gdW5zaWduZWQgbG9uZyBzZmFjdG9yLCBpbiB1bnNpZ25lZCBs
b25nIGRmYWN0b3IpOworICAgICAgICB2b2lkICAgICAgICAgYmxlbmRGdW5jU2VwYXJhdGUoaW4g
dW5zaWduZWQgbG9uZyBzcmNSR0IsIGluIHVuc2lnbmVkIGxvbmcgZHN0UkdCLCBpbiB1bnNpZ25l
ZCBsb25nIHNyY0FscGhhLCBpbiB1bnNpZ25lZCBsb25nIGRzdEFscGhhKTsKKyAgICAgICAgW0N1
c3RvbV0gdm9pZCBidWZmZXJEYXRhKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBDYW52YXNC
eXRlQXJyYXkgZGF0YSwgaW4gdW5zaWduZWQgbG9uZyB1c2FnZSk7CisgICAgICAgIFtDdXN0b21d
IHZvaWQgYnVmZmVyU3ViRGF0YShpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBvZmZz
ZXQsIGluIENhbnZhc0J5dGVBcnJheSBkYXRhKTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBjaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGluIENhbnZhc0ZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKyAg
ICAgICAgdm9pZCAgICAgICAgIGNsZWFyKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CisgICAgICAg
IHZvaWQgICAgICAgICBjbGVhckNvbG9yKGluIGRvdWJsZSByZWQsIGluIGRvdWJsZSBncmVlbiwg
aW4gZG91YmxlIGJsdWUsIGluIGRvdWJsZSBhbHBoYSk7CisgICAgICAgIHZvaWQgICAgICAgICBj
bGVhckRlcHRoKGluIGRvdWJsZSBkZXB0aCk7CisgICAgICAgIHZvaWQgICAgICAgICBjbGVhclN0
ZW5jaWwoaW4gbG9uZyBzKTsKKyAgICAgICAgdm9pZCAgICAgICAgIGNvbG9yTWFzayhpbiBib29s
ZWFuIHJlZCwgaW4gYm9vbGVhbiBncmVlbiwgaW4gYm9vbGVhbiBibHVlLCBpbiBib29sZWFuIGFs
cGhhKTsKKyAgICAgICAgdm9pZCAgICAgICAgIGNvbXBpbGVTaGFkZXIoaW4gQ2FudmFzU2hhZGVy
IHNoYWRlcik7CiAgICAgICAgIAotICAgICAgICAvL3ZvaWQgICAgICAgICBnbENvbXByZXNzZWRU
ZXhJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25nIGxldmVsLCBpbiB1bnNp
Z25lZCBsb25nIGludGVybmFsZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNp
Z25lZCBsb25nIGhlaWdodCwgaW4gbG9uZyBib3JkZXIsIGluIHVuc2lnbmVkIGxvbmcgaW1hZ2VT
aXplLCBjb25zdCB2b2lkKiBkYXRhKTsKLSAgICAgICAgLy92b2lkICAgICAgICAgZ2xDb21wcmVz
c2VkVGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwg
aW4gbG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgs
IGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBpbiB1bnNpZ25lZCBsb25nIGZvcm1hdCwgaW4gdW5z
aWduZWQgbG9uZyBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOworICAgICAgICAvL3ZvaWQg
ICAgICAgICBjb21wcmVzc2VkVGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4g
bG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgaW4gdW5zaWduZWQg
bG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQsIGluIGxvbmcgYm9yZGVyLCBpbiB1
bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7CisgICAgICAgIC8vdm9p
ZCAgICAgICAgIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbiBsb25nIGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwgaW4gdW5z
aWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQsIGluIHVuc2lnbmVkIGxv
bmcgZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSk7
CiAgICAgICAgIAotICAgICAgICB2b2lkICAgICAgICAgZ2xDb3B5VGV4SW1hZ2UyRChpbiB1bnNp
Z25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5h
bGZvcm1hdCwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGlu
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBpbiBsb25nIGJvcmRlcik7Ci0gICAgICAgIHZvaWQgICAg
ICAgICBnbENvcHlUZXhTdWJJbWFnZTJEKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiBsb25n
IGxldmVsLCBpbiBsb25nIHhvZmZzZXQsIGluIGxvbmcgeW9mZnNldCwgaW4gbG9uZyB4LCBpbiBs
b25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsK
LSAgICAgICAgdm9pZCAgICAgICAgIGdsQ3VsbEZhY2UoaW4gdW5zaWduZWQgbG9uZyBtb2RlKTsK
LSAgICAgICAgdm9pZCAgICAgICAgIGdsRGVwdGhGdW5jKGluIHVuc2lnbmVkIGxvbmcgZnVuYyk7
Ci0gICAgICAgIHZvaWQgICAgICAgICBnbERlcHRoTWFzayhpbiBib29sZWFuIGZsYWcpOwotICAg
ICAgICB2b2lkICAgICAgICAgZ2xEZXB0aFJhbmdlKGluIGRvdWJsZSB6TmVhciwgaW4gZG91Ymxl
IHpGYXIpOwotICAgICAgICB2b2lkICAgICAgICAgZ2xEZXRhY2hTaGFkZXIoaW4gQ2FudmFzUHJv
Z3JhbSBwcm9ncmFtLCBpbiBDYW52YXNTaGFkZXIgc2hhZGVyKTsKLSAgICAgICAgdm9pZCAgICAg
ICAgIGdsRGlzYWJsZShpbiB1bnNpZ25lZCBsb25nIGNhcCk7Ci0gICAgICAgIHZvaWQgICAgICAg
ICBnbERpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAg
ICAgICAgdm9pZCAgICAgICAgIGdsRHJhd0FycmF5cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUsIGlu
IGxvbmcgZmlyc3QsIGluIHVuc2lnbmVkIGxvbmcgY291bnQpOwotICAgICAgICBbQ3VzdG9tXSB2
b2lkIGdsRHJhd0VsZW1lbnRzKGluIHVuc2lnbmVkIGxvbmcgbW9kZSwgaW4gdW5zaWduZWQgbG9u
ZyB0eXBlLCBDYW52YXNCeXRlQXJyYXkpOwotICAgICAgICB2b2lkICAgICAgICAgZ2xFbmFibGUo
aW4gdW5zaWduZWQgbG9uZyBjYXApOwotICAgICAgICB2b2lkICAgICAgICAgZ2xFbmFibGVWZXJ0
ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAgICAgdm9pZCAgICAg
ICAgIGdsRmluaXNoKCk7Ci0gICAgICAgIHZvaWQgICAgICAgICBnbEZsdXNoKCk7Ci0gICAgICAg
IHZvaWQgICAgICAgICBnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGluIHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGluIHVuc2lnbmVkIGxvbmcgcmVu
ZGVyYnVmZmVydGFyZ2V0LCBpbiBDYW52YXNSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsKLSAg
ICAgICAgdm9pZCAgICAgICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoaW4gdW5zaWduZWQgbG9u
ZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgaW4gdW5zaWduZWQgbG9uZyB0
ZXh0YXJnZXQsIGluIENhbnZhc1RleHR1cmUgdGV4dHVyZSwgaW4gbG9uZyBsZXZlbCk7Ci0gICAg
ICAgIHZvaWQgICAgICAgICBnbEZyb250RmFjZShpbiB1bnNpZ25lZCBsb25nIG1vZGUpOwotICAg
ICAgICB2b2lkICAgICAgICAgZ2xHZW5lcmF0ZU1pcG1hcChpbiB1bnNpZ25lZCBsb25nIHRhcmdl
dCk7CisgICAgICAgIHZvaWQgICAgICAgICBjb3B5VGV4SW1hZ2UyRChpbiB1bnNpZ25lZCBsb25n
IHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4gdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwg
aW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVk
IGxvbmcgaGVpZ2h0LCBpbiBsb25nIGJvcmRlcik7CisgICAgICAgIHZvaWQgICAgICAgICBjb3B5
VGV4U3ViSW1hZ2UyRChpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gbG9uZyBsZXZlbCwgaW4g
bG9uZyB4b2Zmc2V0LCBpbiBsb25nIHlvZmZzZXQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1
bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIHZv
aWQgICAgICAgICBjdWxsRmFjZShpbiB1bnNpZ25lZCBsb25nIG1vZGUpOworICAgICAgICB2b2lk
ICAgICAgICAgZGVwdGhGdW5jKGluIHVuc2lnbmVkIGxvbmcgZnVuYyk7CisgICAgICAgIHZvaWQg
ICAgICAgICBkZXB0aE1hc2soaW4gYm9vbGVhbiBmbGFnKTsKKyAgICAgICAgdm9pZCAgICAgICAg
IGRlcHRoUmFuZ2UoaW4gZG91YmxlIHpOZWFyLCBpbiBkb3VibGUgekZhcik7CisgICAgICAgIHZv
aWQgICAgICAgICBkZXRhY2hTaGFkZXIoaW4gQ2FudmFzUHJvZ3JhbSBwcm9ncmFtLCBpbiBDYW52
YXNTaGFkZXIgc2hhZGVyKTsKKyAgICAgICAgdm9pZCAgICAgICAgIGRpc2FibGUoaW4gdW5zaWdu
ZWQgbG9uZyBjYXApOworICAgICAgICB2b2lkICAgICAgICAgZGlzYWJsZVZlcnRleEF0dHJpYkFy
cmF5KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAgICB2b2lkICAgICAgICAgZHJhd0Fy
cmF5cyhpbiB1bnNpZ25lZCBsb25nIG1vZGUsIGluIGxvbmcgZmlyc3QsIGluIHVuc2lnbmVkIGxv
bmcgY291bnQpOworICAgICAgICBbQ3VzdG9tXSB2b2lkIGRyYXdFbGVtZW50cyhpbiB1bnNpZ25l
ZCBsb25nIG1vZGUsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgQ2FudmFzQnl0ZUFycmF5KTsKKyAg
ICAgICAgdm9pZCAgICAgICAgIGVuYWJsZShpbiB1bnNpZ25lZCBsb25nIGNhcCk7CisgICAgICAg
IHZvaWQgICAgICAgICBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShpbiB1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKKyAgICAgICAgdm9pZCAgICAgICAgIGZpbmlzaCgpOworICAgICAgICB2b2lkICAgICAg
ICAgZmx1c2goKTsKKyAgICAgICAgdm9pZCAgICAgICAgIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVy
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGlu
IHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFyZ2V0LCBpbiBDYW52YXNSZW5kZXJidWZmZXIg
cmVuZGVyYnVmZmVyKTsKKyAgICAgICAgdm9pZCAgICAgICAgIGZyYW1lYnVmZmVyVGV4dHVyZTJE
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIGlu
IHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBpbiBDYW52YXNUZXh0dXJlIHRleHR1cmUsIGluIGxv
bmcgbGV2ZWwpOworICAgICAgICB2b2lkICAgICAgICAgZnJvbnRGYWNlKGluIHVuc2lnbmVkIGxv
bmcgbW9kZSk7CisgICAgICAgIHZvaWQgICAgICAgICBnZW5lcmF0ZU1pcG1hcChpbiB1bnNpZ25l
ZCBsb25nIHRhcmdldCk7CiAgICAgICAgIAotICAgICAgICAvL3ZvaWQgICAgICAgICBnbEdldEF0
dGFjaGVkU2hhZGVycyhpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVkIGxvbmcg
bWF4Y291bnQsIGluIHVuc2lnbmVkIGxvbmcqIGNvdW50LCBpbiB1bnNpZ25lZCBsb25nKiBzaGFk
ZXJzKTsKKyAgICAgICAgLy92b2lkICAgICAgICAgZ2V0QXR0YWNoZWRTaGFkZXJzKGluIENhbnZh
c1Byb2dyYW0gcHJvZ3JhbSwgaW4gdW5zaWduZWQgbG9uZyBtYXhjb3VudCwgaW4gdW5zaWduZWQg
bG9uZyogY291bnQsIGluIHVuc2lnbmVkIGxvbmcqIHNoYWRlcnMpOwogICAgICAgICAKLSAgICAg
ICAgaW50ICAgICAgICAgIGdsR2V0QXR0cmliTG9jYXRpb24oaW4gQ2FudmFzUHJvZ3JhbSBwcm9n
cmFtLCBpbiBET01TdHJpbmcgbmFtZSk7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgZ2xHZXRFcnJv
cigpOwotICAgICAgICBET01TdHJpbmcgICAgZ2xHZXRTaGFkZXJTb3VyY2UoaW4gQ2FudmFzU2hh
ZGVyIHNoYWRlcik7Ci0gICAgICAgIERPTVN0cmluZyAgICBnbEdldFN0cmluZyhpbiB1bnNpZ25l
ZCBsb25nIG5hbWUpOwotICAgICAgICB2b2lkICAgICAgICAgZ2xIaW50KGluIHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIG1vZGUpOwotICAgICAgICBib29sZWFuICAgICAg
Z2xJc0J1ZmZlcihpbiBDYW52YXNCdWZmZXIgYnVmZmVyKTsKLSAgICAgICAgYm9vbGVhbiAgICAg
IGdsSXNFbmFibGVkKGluIHVuc2lnbmVkIGxvbmcgY2FwKTsKLSAgICAgICAgYm9vbGVhbiAgICAg
IGdsSXNGcmFtZWJ1ZmZlcihpbiBDYW52YXNGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7Ci0gICAg
ICAgIGJvb2xlYW4gICAgICBnbElzUHJvZ3JhbShpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0pOwot
ICAgICAgICBib29sZWFuICAgICAgZ2xJc1JlbmRlcmJ1ZmZlcihpbiBDYW52YXNSZW5kZXJidWZm
ZXIgcmVuZGVyYnVmZmVyKTsKLSAgICAgICAgYm9vbGVhbiAgICAgIGdsSXNTaGFkZXIoaW4gQ2Fu
dmFzU2hhZGVyIHNoYWRlcik7Ci0gICAgICAgIGJvb2xlYW4gICAgICBnbElzVGV4dHVyZShpbiBD
YW52YXNUZXh0dXJlIHRleHR1cmUpOwotICAgICAgICB2b2lkICAgICAgICAgZ2xMaW5lV2lkdGgo
aW4gZG91YmxlIHdpZHRoKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGdsTGlua1Byb2dyYW0oaW4g
Q2FudmFzUHJvZ3JhbSBwcm9ncmFtKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGdsUGl4ZWxTdG9y
ZWkoaW4gdW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gbG9uZyBwYXJhbSk7Ci0gICAgICAgIHZvaWQg
ICAgICAgICBnbFBvbHlnb25PZmZzZXQoaW4gZG91YmxlIGZhY3RvciwgaW4gZG91YmxlIHVuaXRz
KTsKKyAgICAgICAgaW50ICAgICAgICAgIGdldEF0dHJpYkxvY2F0aW9uKGluIENhbnZhc1Byb2dy
YW0gcHJvZ3JhbSwgaW4gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICB1bnNpZ25lZCBsb25nIGdl
dEVycm9yKCk7CisgICAgICAgIERPTVN0cmluZyAgICBnZXRTaGFkZXJTb3VyY2UoaW4gQ2FudmFz
U2hhZGVyIHNoYWRlcik7CisgICAgICAgIERPTVN0cmluZyAgICBnZXRTdHJpbmcoaW4gdW5zaWdu
ZWQgbG9uZyBuYW1lKTsKKyAgICAgICAgdm9pZCAgICAgICAgIGhpbnQoaW4gdW5zaWduZWQgbG9u
ZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgbW9kZSk7CisgICAgICAgIGJvb2xlYW4gICAgICBp
c0J1ZmZlcihpbiBDYW52YXNCdWZmZXIgYnVmZmVyKTsKKyAgICAgICAgYm9vbGVhbiAgICAgIGlz
RW5hYmxlZChpbiB1bnNpZ25lZCBsb25nIGNhcCk7CisgICAgICAgIGJvb2xlYW4gICAgICBpc0Zy
YW1lYnVmZmVyKGluIENhbnZhc0ZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKyAgICAgICAgYm9v
bGVhbiAgICAgIGlzUHJvZ3JhbShpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0pOworICAgICAgICBi
b29sZWFuICAgICAgaXNSZW5kZXJidWZmZXIoaW4gQ2FudmFzUmVuZGVyYnVmZmVyIHJlbmRlcmJ1
ZmZlcik7CisgICAgICAgIGJvb2xlYW4gICAgICBpc1NoYWRlcihpbiBDYW52YXNTaGFkZXIgc2hh
ZGVyKTsKKyAgICAgICAgYm9vbGVhbiAgICAgIGlzVGV4dHVyZShpbiBDYW52YXNUZXh0dXJlIHRl
eHR1cmUpOworICAgICAgICB2b2lkICAgICAgICAgbGluZVdpZHRoKGluIGRvdWJsZSB3aWR0aCk7
CisgICAgICAgIHZvaWQgICAgICAgICBsaW5rUHJvZ3JhbShpbiBDYW52YXNQcm9ncmFtIHByb2dy
YW0pOworICAgICAgICB2b2lkICAgICAgICAgcGl4ZWxTdG9yZWkoaW4gdW5zaWduZWQgbG9uZyBw
bmFtZSwgaW4gbG9uZyBwYXJhbSk7CisgICAgICAgIHZvaWQgICAgICAgICBwb2x5Z29uT2Zmc2V0
KGluIGRvdWJsZSBmYWN0b3IsIGluIGRvdWJsZSB1bml0cyk7CiAgICAgICAgIAotICAgICAgICAv
L3ZvaWQgICAgICAgICBnbFJlYWRQaXhlbHMoaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2ln
bmVkIGxvbmcgd2lkdGgsIGluIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBpbiB1bnNpZ25lZCBsb25n
IGZvcm1hdCwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCB2b2lkKiBwaXhlbHMpOworICAgICAgICAv
L3ZvaWQgICAgICAgICByZWFkUGl4ZWxzKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25l
ZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCwgaW4gdW5zaWduZWQgbG9uZyBm
b3JtYXQsIGluIHVuc2lnbmVkIGxvbmcgdHlwZSwgdm9pZCogcGl4ZWxzKTsKICAgICAgICAgCi0g
ICAgICAgIHZvaWQgICAgICAgICBnbFJlbGVhc2VTaGFkZXJDb21waWxlcigpOwotICAgICAgICB2
b2lkICAgICAgICAgZ2xSZW5kZXJidWZmZXJTdG9yYWdlKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbiB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRo
LCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7Ci0gICAgICAgIHZvaWQgICAgICAgICBnbFNhbXBs
ZUNvdmVyYWdlKGluIGRvdWJsZSB2YWx1ZSwgaW4gYm9vbGVhbiBpbnZlcnQpOwotICAgICAgICB2
b2lkICAgICAgICAgZ2xTY2lzc29yKGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiB1bnNpZ25lZCBs
b25nIHdpZHRoLCBpbiB1bnNpZ25lZCBsb25nIGhlaWdodCk7Ci0gICAgICAgIHZvaWQgICAgICAg
ICBnbFNoYWRlclNvdXJjZShpbiBDYW52YXNTaGFkZXIgc2hhZGVyLCBpbiBET01TdHJpbmcgc3Ry
aW5nKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGdsU3RlbmNpbEZ1bmMoaW4gdW5zaWduZWQgbG9u
ZyBmdW5jLCBpbiBsb25nIHJlZiwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKLSAgICAgICAgdm9p
ZCAgICAgICAgIGdsU3RlbmNpbEZ1bmNTZXBhcmF0ZShpbiB1bnNpZ25lZCBsb25nIGZhY2UsIGlu
IHVuc2lnbmVkIGxvbmcgZnVuYywgaW4gbG9uZyByZWYsIGluIHVuc2lnbmVkIGxvbmcgbWFzayk7
Ci0gICAgICAgIHZvaWQgICAgICAgICBnbFN0ZW5jaWxNYXNrKGluIHVuc2lnbmVkIGxvbmcgbWFz
ayk7Ci0gICAgICAgIHZvaWQgICAgICAgICBnbFN0ZW5jaWxNYXNrU2VwYXJhdGUoaW4gdW5zaWdu
ZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIG1hc2spOwotICAgICAgICB2b2lkICAgICAg
ICAgZ2xTdGVuY2lsT3AoaW4gdW5zaWduZWQgbG9uZyBmYWlsLCBpbiB1bnNpZ25lZCBsb25nIHpm
YWlsLCBpbiB1bnNpZ25lZCBsb25nIHpwYXNzKTsKLSAgICAgICAgdm9pZCAgICAgICAgIGdsU3Rl
bmNpbE9wU2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBmYWNlLCBpbiB1bnNpZ25lZCBsb25nIGZh
aWwsIGluIHVuc2lnbmVkIGxvbmcgemZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOwotICAg
ICAgICBbQ3VzdG9tXSB2b2lkIGdsVGV4UGFyYW1ldGVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbiBDYW52YXNOdW1iZXJBcnJheSBwYXJhbXMpOwot
ICAgICAgICBbQ3VzdG9tXSB2b2lkIGdsVW5pZm9ybWkoaW4gbG9uZyBsb2NhdGlvbiwgaW4gQ2Fu
dmFzTnVtYmVyQXJyYXkgcGFyYW1zKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBnbFVuaWZvcm1m
KGluIGxvbmcgbG9jYXRpb24sIGluIENhbnZhc051bWJlckFycmF5IHBhcmFtcyk7Ci0gICAgICAg
IFtDdXN0b21dIHZvaWQgZ2xVbmlmb3JtTWF0cml4KGluIGxvbmcgbG9jYXRpb24sIGluIGxvbmcg
Y291bnQsIGluIGJvb2xlYW4gdHJhbnNwb3NlLCBpbiBDYW52YXNOdW1iZXJBcnJheSBwYXJhbXMp
OwotICAgICAgICB2b2lkICAgICAgICAgZ2xVc2VQcm9ncmFtKGluIENhbnZhc1Byb2dyYW0gcHJv
Z3JhbSk7Ci0gICAgICAgIHZvaWQgICAgICAgICBnbFZhbGlkYXRlUHJvZ3JhbShpbiBDYW52YXNQ
cm9ncmFtIHByb2dyYW0pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGdsVmVydGV4QXR0cmliKGlu
IHVuc2lnbmVkIGxvbmcgaW5keCwgaW4gQ2FudmFzTnVtYmVyQXJyYXkpOwotICAgICAgICBbQ3Vz
dG9tXSB2b2lkIGdsVmVydGV4QXR0cmliUG9pbnRlcihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGlu
IGxvbmcgc2l6ZSwgaW4gdW5zaWduZWQgbG9uZyB0eXBlLCBpbiBib29sZWFuIG5vcm1hbGl6ZWQs
IGluIHVuc2lnbmVkIGxvbmcgc3RyaWRlLCBpbiBDYW52YXNCeXRlQXJyYXkgYXJyYXkpOwotICAg
ICAgICB2b2lkICAgICAgICAgZ2xWaWV3cG9ydChpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gdW5z
aWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICB2b2lk
ICAgICAgICAgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7CisgICAgICAgIHZvaWQgICAgICAgICBy
ZW5kZXJidWZmZXJTdG9yYWdlKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBs
b25nIGludGVybmFsZm9ybWF0LCBpbiB1bnNpZ25lZCBsb25nIHdpZHRoLCBpbiB1bnNpZ25lZCBs
b25nIGhlaWdodCk7CisgICAgICAgIHZvaWQgICAgICAgICBzYW1wbGVDb3ZlcmFnZShpbiBkb3Vi
bGUgdmFsdWUsIGluIGJvb2xlYW4gaW52ZXJ0KTsKKyAgICAgICAgdm9pZCAgICAgICAgIHNjaXNz
b3IoaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIHVuc2lnbmVkIGxvbmcgd2lkdGgsIGluIHVuc2ln
bmVkIGxvbmcgaGVpZ2h0KTsKKyAgICAgICAgdm9pZCAgICAgICAgIHNoYWRlclNvdXJjZShpbiBD
YW52YXNTaGFkZXIgc2hhZGVyLCBpbiBET01TdHJpbmcgc3RyaW5nKTsKKyAgICAgICAgdm9pZCAg
ICAgICAgIHN0ZW5jaWxGdW5jKGluIHVuc2lnbmVkIGxvbmcgZnVuYywgaW4gbG9uZyByZWYsIGlu
IHVuc2lnbmVkIGxvbmcgbWFzayk7CisgICAgICAgIHZvaWQgICAgICAgICBzdGVuY2lsRnVuY1Nl
cGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9uZyBmdW5jLCBpbiBs
b25nIHJlZiwgaW4gdW5zaWduZWQgbG9uZyBtYXNrKTsKKyAgICAgICAgdm9pZCAgICAgICAgIHN0
ZW5jaWxNYXNrKGluIHVuc2lnbmVkIGxvbmcgbWFzayk7CisgICAgICAgIHZvaWQgICAgICAgICBz
dGVuY2lsTWFza1NlcGFyYXRlKGluIHVuc2lnbmVkIGxvbmcgZmFjZSwgaW4gdW5zaWduZWQgbG9u
ZyBtYXNrKTsKKyAgICAgICAgdm9pZCAgICAgICAgIHN0ZW5jaWxPcChpbiB1bnNpZ25lZCBsb25n
IGZhaWwsIGluIHVuc2lnbmVkIGxvbmcgemZhaWwsIGluIHVuc2lnbmVkIGxvbmcgenBhc3MpOwor
ICAgICAgICB2b2lkICAgICAgICAgc3RlbmNpbE9wU2VwYXJhdGUoaW4gdW5zaWduZWQgbG9uZyBm
YWNlLCBpbiB1bnNpZ25lZCBsb25nIGZhaWwsIGluIHVuc2lnbmVkIGxvbmcgemZhaWwsIGluIHVu
c2lnbmVkIGxvbmcgenBhc3MpOworICAgICAgICBbQ3VzdG9tXSB2b2lkIHRleFBhcmFtZXRlcihp
biB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSwgaW4gQ2FudmFz
TnVtYmVyQXJyYXkgcGFyYW1zKTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCB1bmlmb3JtaShpbiBs
b25nIGxvY2F0aW9uLCBpbiBDYW52YXNOdW1iZXJBcnJheSBwYXJhbXMpOworICAgICAgICBbQ3Vz
dG9tXSB2b2lkIHVuaWZvcm1mKGluIGxvbmcgbG9jYXRpb24sIGluIENhbnZhc051bWJlckFycmF5
IHBhcmFtcyk7CisgICAgICAgIFtDdXN0b21dIHZvaWQgdW5pZm9ybU1hdHJpeChpbiBsb25nIGxv
Y2F0aW9uLCBpbiBsb25nIGNvdW50LCBpbiBib29sZWFuIHRyYW5zcG9zZSwgaW4gQ2FudmFzTnVt
YmVyQXJyYXkgcGFyYW1zKTsKKyAgICAgICAgdm9pZCAgICAgICAgIHVzZVByb2dyYW0oaW4gQ2Fu
dmFzUHJvZ3JhbSBwcm9ncmFtKTsKKyAgICAgICAgdm9pZCAgICAgICAgIHZhbGlkYXRlUHJvZ3Jh
bShpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0pOworICAgICAgICBbQ3VzdG9tXSB2b2lkIHZlcnRl
eEF0dHJpYihpbiB1bnNpZ25lZCBsb25nIGluZHgsIGluIENhbnZhc051bWJlckFycmF5KTsKKyAg
ICAgICAgW0N1c3RvbV0gdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKGluIHVuc2lnbmVkIGxvbmcg
aW5keCwgaW4gbG9uZyBzaXplLCBpbiB1bnNpZ25lZCBsb25nIHR5cGUsIGluIGJvb2xlYW4gbm9y
bWFsaXplZCwgaW4gdW5zaWduZWQgbG9uZyBzdHJpZGUsIGluIENhbnZhc0J5dGVBcnJheSBhcnJh
eSk7CisgICAgICAgIHZvaWQgICAgICAgICB2aWV3cG9ydChpbiBsb25nIHgsIGluIGxvbmcgeSwg
aW4gdW5zaWduZWQgbG9uZyB3aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQpOwogCiAgICAg
ICAgIC8vIE5vbi1HTCBmdW5jdGlvbnMKLSAgICAgICAgQ2FudmFzQnVmZmVyIGNyZWF0ZUJ1ZmZl
cigpOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2VzIGdsR2VuQnVmZmVycwotICAg
ICAgICBDYW52YXNGcmFtZWJ1ZmZlciBjcmVhdGVGcmFtZWJ1ZmZlcigpOyAgICAgICAgICAgICAg
Ly8gcmVwbGFjZXMgZ2xHZW5GcmFtZWJ1ZmZlcnMKLSAgICAgICAgQ2FudmFzUHJvZ3JhbSBjcmVh
dGVQcm9ncmFtKCk7ICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZXMgZ2xDcmVhdGVQcm9n
cmFtCi0gICAgICAgIENhbnZhc1NoYWRlciBjcmVhdGVTaGFkZXIoaW4gdW5zaWduZWQgbG9uZyB0
eXBlKTsgIC8vIHJlcGxhY2VzIGdsQ3JlYXRlU2hhZGVyCi0gICAgICAgIENhbnZhc1RleHR1cmUg
Y3JlYXRlVGV4dHVyZSgpOyAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlcyBnbEdlblRl
eHR1cmVzCi0KLSAgICAgICAgdm9pZCBkZWxldGVCdWZmZXIoaW4gQ2FudmFzQnVmZmVyIGJ1ZmZl
cik7ICAgICAgICAgICAgICAgIC8vIHJlcGxhY2VzIGdsRGVsZXRlQnVmZmVycwotICAgICAgICB2
b2lkIGRlbGV0ZUZyYW1lYnVmZmVyKGluIENhbnZhc0ZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsg
ICAgICAvLyByZXBsYWNlcyBnbERlbGV0ZUZyYW1lYnVmZmVycwotICAgICAgICB2b2lkIGRlbGV0
ZVByb2dyYW0oaW4gQ2FudmFzUHJvZ3JhbSBwcm9ncmFtKTsgICAgICAgICAgICAgIC8vIHJlcGxh
Y2VzIGdsRGVsZXRlUHJvZ3JhbQotICAgICAgICB2b2lkIGRlbGV0ZVJlbmRlcmJ1ZmZlcihpbiBD
YW52YXNSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsgICAgLy8gcmVwbGFjZXMgZ2xEZWxldGVS
ZW5kZXJidWZmZXJzCi0gICAgICAgIHZvaWQgZGVsZXRlU2hhZGVyKGluIENhbnZhc1NoYWRlciBz
aGFkZXIpOyAgICAgICAgICAgICAgICAvLyByZXBsYWNlcyBnbERlbGV0ZVNoYWRlcgotICAgICAg
ICB2b2lkIGRlbGV0ZVRleHR1cmUoaW4gQ2FudmFzVGV4dHVyZSB0ZXh0dXJlKTsgICAgICAgICAg
ICAgIC8vIHJlcGxhY2VzIGdsRGVsZXRlVGV4dHVyZXMKKyAgICAgICAgQ2FudmFzQnVmZmVyIGNy
ZWF0ZUJ1ZmZlcigpOworICAgICAgICBDYW52YXNGcmFtZWJ1ZmZlciBjcmVhdGVGcmFtZWJ1ZmZl
cigpOworICAgICAgICBDYW52YXNQcm9ncmFtIGNyZWF0ZVByb2dyYW0oKTsKKyAgICAgICAgQ2Fu
dmFzUHJvZ3JhbSBjcmVhdGVSZW5kZXJidWZmZXIoKTsKKyAgICAgICAgQ2FudmFzU2hhZGVyIGNy
ZWF0ZVNoYWRlcihpbiB1bnNpZ25lZCBsb25nIHR5cGUpOworICAgICAgICBDYW52YXNUZXh0dXJl
IGNyZWF0ZVRleHR1cmUoKTsKKworICAgICAgICB2b2lkIGRlbGV0ZUJ1ZmZlcihpbiBDYW52YXNC
dWZmZXIgYnVmZmVyKTsKKyAgICAgICAgdm9pZCBkZWxldGVGcmFtZWJ1ZmZlcihpbiBDYW52YXNG
cmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisgICAgICAgIHZvaWQgZGVsZXRlUHJvZ3JhbShpbiBD
YW52YXNQcm9ncmFtIHByb2dyYW0pOworICAgICAgICB2b2lkIGRlbGV0ZVJlbmRlcmJ1ZmZlcihp
biBDYW52YXNSZW5kZXJidWZmZXIgcmVuZGVyYnVmZmVyKTsKKyAgICAgICAgdm9pZCBkZWxldGVT
aGFkZXIoaW4gQ2FudmFzU2hhZGVyIHNoYWRlcik7CisgICAgICAgIHZvaWQgZGVsZXRlVGV4dHVy
ZShpbiBDYW52YXNUZXh0dXJlIHRleHR1cmUpOwogICAgICAgICAKLSAgICAgICAgQ2FudmFzTnVt
YmVyQXJyYXkgZ2V0KGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpOyAgICAgIC8vIHJlcGxhY2VzIGds
R2V0Qm9vbGVhbnYsIGdsR2V0RmxvYXR2IGFuZCBnbEdldEludGVnZXJ2Ci0gICAgICAgIENhbnZh
c051bWJlckFycmF5IGdldEJ1ZmZlclBhcmFtZXRlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwg
aW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7IC8vIHJlcGxhY2VzIGdsR2V0QnVmZmVyUGFyYW1ldGVy
aXYKLSAgICAgICAgQ2FudmFzTnVtYmVyQXJyYXkgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGF0dGFjaG1l
bnQsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpOyAvLyByZXBsYWNlcyBnbEdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcml2Ci0gICAgICAgIENhbnZhc051bWJlckFycmF5IGdldFByb2dy
YW0oaW4gQ2FudmFzUHJvZ3JhbSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKTsgLy8g
cmVwbGFjZXMgZ2xHZXRQcm9ncmFtaXYKLSAgICAgICAgRE9NU3RyaW5nIGdsR2V0UHJvZ3JhbUlu
Zm9Mb2coaW4gQ2FudmFzUHJvZ3JhbSBwcm9ncmFtKTsgLy8gcmVwbGFjZXMgZ2xHZXRQcm9ncmFt
SW5mb0xvZwotICAgICAgICBDYW52YXNOdW1iZXJBcnJheSBnZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVkIGxvbmcgcG5hbWUpOyAvLyBy
ZXBsYWNlcyBnbEdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2Ci0gICAgICAgIENhbnZhc051bWJl
ckFycmF5IGdldFNoYWRlcihpbiBDYW52YXNTaGFkZXIgc2hhZGVyLCBpbiB1bnNpZ25lZCBsb25n
IHBuYW1lKTsgLy8gcmVwbGFjZXMgZ2xHZXRTaGFkZXJpdgorICAgICAgICBDYW52YXNOdW1iZXJB
cnJheSBnZXQoaW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7CisgICAgICAgIENhbnZhc051bWJlckFy
cmF5IGdldEJ1ZmZlclBhcmFtZXRlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWdu
ZWQgbG9uZyBwbmFtZSk7CisgICAgICAgIENhbnZhc051bWJlckFycmF5IGdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcihpbiB1bnNpZ25lZCBsb25nIHRhcmdldCwgaW4gdW5zaWduZWQg
bG9uZyBhdHRhY2htZW50LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKTsKKyAgICAgICAgQ2FudmFz
TnVtYmVyQXJyYXkgZ2V0UHJvZ3JhbShpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIHVuc2ln
bmVkIGxvbmcgcG5hbWUpOworICAgICAgICBET01TdHJpbmcgZ2xHZXRQcm9ncmFtSW5mb0xvZyhp
biBDYW52YXNQcm9ncmFtIHByb2dyYW0pOworICAgICAgICBDYW52YXNOdW1iZXJBcnJheSBnZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoaW4gdW5zaWduZWQgbG9uZyB0YXJnZXQsIGluIHVuc2lnbmVk
IGxvbmcgcG5hbWUpOworICAgICAgICBDYW52YXNOdW1iZXJBcnJheSBnZXRTaGFkZXIoaW4gQ2Fu
dmFzU2hhZGVyIHNoYWRlciwgaW4gdW5zaWduZWQgbG9uZyBwbmFtZSk7CiAgICAgICAgIERPTVN0
cmluZyBnbEdldFNoYWRlckluZm9Mb2coaW4gQ2FudmFzU2hhZGVyIHNoYWRlcik7CiAKICAgICAg
ICAgQ2FudmFzTnVtYmVyQXJyYXkgZ2V0VGV4UGFyYW1ldGVyKGluIHVuc2lnbmVkIGxvbmcgdGFy
Z2V0LCBpbiB1bnNpZ25lZCBsb25nIHBuYW1lKTsgLy8gcmVwbGFjZXMgZ2xHZXRUZXhQYXJhbWV0
ZXJmdgpAQCAtNTc3LDE4ICs1NzgsMTggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBsb25nIGdl
dFVuaWZvcm1Mb2NhdGlvbihpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIERPTVN0cmluZyBu
YW1lKTsgLy8gcmVwbGFjZXMgZ2xHZXRVbmlmb3JtTG9jYXRpb24KICAgICAgICAgQ2FudmFzTnVt
YmVyQXJyYXkgZ2V0VmVydGV4QXR0cmliKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIHVuc2ln
bmVkIGxvbmcgcG5hbWUpOyAvLyByZXBsYWNlcyBnbEdldFZlcnRleEF0dHJpYmZ2CiAgICAgICAg
IAotICAgICAgICBbQ3VzdG9tXSB2b2lkIHRleEltYWdlMkQoaW4gdW5zaWduZWQgbG9uZyB0YXJn
ZXQsIGluIHVuc2lnbmVkIGxvbmcgbGV2ZWwsIGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UpOyAv
LyByZXBsYWNlcyBnbFRleEltYWdlMkQKKyAgICAgICAgW0N1c3RvbV0gdm9pZCB0ZXhJbWFnZTJE
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGxldmVsLCBpbiBIVE1M
SW1hZ2VFbGVtZW50IGltYWdlKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCB0ZXhTdWJJbWFnZTJE
KGluIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBpbiB1bnNpZ25lZCBsb25nIGxldmVsLCBpbiB1bnNp
Z25lZCBsb25nIHhvZmYsIGluIHVuc2lnbmVkIGxvbmcgeW9mZiwgaW4gdW5zaWduZWQgbG9uZyB3
aWR0aCwgaW4gdW5zaWduZWQgbG9uZyBoZWlnaHQsIGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2Up
OyAvLyByZXBsYWNlcyBnbFRleFN1YkltYWdlMkQKIAogICAgICAgICAvLyBGSVhNRTogVGhpcyBp
cyB0cmlja3kuIFdlIG9idmlvdXNseSBjYW4ndCByZXR1cm4gYSBwb2ludGVyLiBCdXQgc29tZXRp
bWVzIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBvZmZzZXQuCiAgICAgICAgIC8vIEFsc28sIGRv
IHdlIHdhbnQgdG8gdXNlIHRoaXMgdG8gZ2l2ZSBhIHJlZmVyZW5jZSB0byBhIENhbnZhc051bWJl
ckFycmF5PyBJZiBzbywgd291bGQgdGhpcyBtZXJlbHkgYmUgYSBjb3B5CiAgICAgICAgIC8vIG9y
IHRoZSBhY3R1YWwgbXV0YWJsZSBhcnJheT8KLSAgICAgICAgLy92b2lkICAgICAgICAgZ2xHZXRW
ZXJ0ZXhBdHRyaWJQb2ludGVydihpbiB1bnNpZ25lZCBsb25nIGluZGV4LCBpbiB1bnNpZ25lZCBs
b25nIHBuYW1lLCB2b2lkKiogcG9pbnRlcik7CisgICAgICAgIC8vdm9pZCAgICAgICAgIGdldFZl
cnRleEF0dHJpYlBvaW50ZXJ2KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGluIHVuc2lnbmVkIGxv
bmcgcG5hbWUsIHZvaWQqKiBwb2ludGVyKTsKIAogICAgICAgICAvLyBGSVhNRTogVGhlc2Ugd2ls
bCBoYXZlIHRvIGJlIGRvbmUgYnkgcmV0dXJuaW5nIGEgZGF0YSB0eXBlIHdoaWNoIGhhcyB0aGUg
cmV0dXJuZWQgYXR0cmlidXRlcwotICAgICAgICAvL3ZvaWQgZ2xHZXRBY3RpdmVBdHRyaWIoaW4g
Q2FudmFzUHJvZ3JhbSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4LCBvdXQgbG9uZyBz
aXplLCBvdXQgdW5zaWduZWQgbG9uZyB0eXBlLCBvdXQgRE9NU3RyaW5nIG5hbWUpOwotICAgICAg
ICAvL3ZvaWQgZ2xHZXRBY3RpdmVVbmlmb3JtKGluIENhbnZhc1Byb2dyYW0gcHJvZ3JhbSwgaW4g
dW5zaWduZWQgbG9uZyBpbmRleCwgb3V0IGxvbmcgc2l6ZSwgb3V0IHVuc2lnbmVkIGxvbmcgdHlw
ZSwgb3V0IERPTVN0cmluZyBuYW1lKTsKLSAgICAgICAgLy92b2lkIGdsR2V0U2hhZGVyUHJlY2lz
aW9uRm9ybWF0KGluIHVuc2lnbmVkIGxvbmcgc2hhZGVydHlwZSwgaW4gdW5zaWduZWQgbG9uZyBw
cmVjaXNpb250eXBlLCBvdXQgbG9uZyByYW5nZU1pbiwgb3V0IGxvbmcgcmFuZ2VNYXgsIG91dCBs
b25nIHByZWNpc2lvbik7CisgICAgICAgIC8vdm9pZCBnZXRBY3RpdmVBdHRyaWIoaW4gQ2FudmFz
UHJvZ3JhbSBwcm9ncmFtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4LCBvdXQgbG9uZyBzaXplLCBv
dXQgdW5zaWduZWQgbG9uZyB0eXBlLCBvdXQgRE9NU3RyaW5nIG5hbWUpOworICAgICAgICAvL3Zv
aWQgZ2V0QWN0aXZlVW5pZm9ybShpbiBDYW52YXNQcm9ncmFtIHByb2dyYW0sIGluIHVuc2lnbmVk
IGxvbmcgaW5kZXgsIG91dCBsb25nIHNpemUsIG91dCB1bnNpZ25lZCBsb25nIHR5cGUsIG91dCBE
T01TdHJpbmcgbmFtZSk7CisgICAgICAgIC8vdm9pZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQo
aW4gdW5zaWduZWQgbG9uZyBzaGFkZXJ0eXBlLCBpbiB1bnNpZ25lZCBsb25nIHByZWNpc2lvbnR5
cGUsIG91dCBsb25nIHJhbmdlTWluLCBvdXQgbG9uZyByYW5nZU1heCwgb3V0IGxvbmcgcHJlY2lz
aW9uKTsKICAgICB9OwogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiA0Nzg0MykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTE4ICs3
NCwxMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAgICAgICAgdmlydHVhbCB2
b2lkIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgICAgICAKLSAgICAgICAgdm9pZCBnbEFjdGl2
ZVRleHR1cmUodW5zaWduZWQgbG9uZyB0ZXh0dXJlKTsKLSAgICAgICAgdm9pZCBnbEF0dGFjaFNo
YWRlcihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBDYW52YXNTaGFkZXIqIHNoYWRlcik7Ci0gICAg
ICAgIHZvaWQgZ2xCaW5kQXR0cmliTG9jYXRpb24oQ2FudmFzUHJvZ3JhbSosIHVuc2lnbmVkIGxv
bmcgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSk7Ci0gICAgICAgIHZvaWQgZ2xCaW5kQnVmZmVy
KHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNCdWZmZXIqKTsKLSAgICAgICAgdm9pZCBnbEJp
bmRGcmFtZWJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzRnJhbWVidWZmZXIqKTsK
LSAgICAgICAgdm9pZCBnbEJpbmRSZW5kZXJidWZmZXIodW5zaWduZWQgbG9uZyB0YXJnZXQsIENh
bnZhc1JlbmRlcmJ1ZmZlciopOwotICAgICAgICB2b2lkIGdsQmluZFRleHR1cmUodW5zaWduZWQg
dGFyZ2V0LCBDYW52YXNUZXh0dXJlKiB0ZXh0dXJlM0QpOwotICAgICAgICB2b2lkIGdsQmxlbmRD
b2xvcihkb3VibGUgcmVkLCBkb3VibGUgZ3JlZW4sIGRvdWJsZSBibHVlLCBkb3VibGUgYWxwaGEp
OwotICAgICAgICB2b2lkIGdsQmxlbmRFcXVhdGlvbih1bnNpZ25lZCBsb25nIG1vZGUgKTsKLSAg
ICAgICAgdm9pZCBnbEJsZW5kRXF1YXRpb25TZXBhcmF0ZSh1bnNpZ25lZCBsb25nIG1vZGVSR0Is
IHVuc2lnbmVkIGxvbmcgbW9kZUFscGhhKTsKLSAgICAgICAgdm9pZCBnbEJsZW5kRnVuYyh1bnNp
Z25lZCBsb25nIHNmYWN0b3IsIHVuc2lnbmVkIGxvbmcgZGZhY3Rvcik7Ci0gICAgICAgIHZvaWQg
Z2xCbGVuZEZ1bmNTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIHNyY1JHQiwgdW5zaWduZWQgbG9uZyBk
c3RSR0IsIHVuc2lnbmVkIGxvbmcgc3JjQWxwaGEsIHVuc2lnbmVkIGxvbmcgZHN0QWxwaGEpOwot
ICAgICAgICB2b2lkIGdsQnVmZmVyRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzTnVt
YmVyQXJyYXkqLCB1bnNpZ25lZCBsb25nIHVzYWdlKTsKLSAgICAgICAgdm9pZCBnbEJ1ZmZlclN1
YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0LCBDYW52YXNOdW1iZXJBcnJh
eSopOwotICAgICAgICB1bnNpZ25lZCBsb25nIGdsQ2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhDYW52
YXNGcmFtZWJ1ZmZlciopOwotICAgICAgICB2b2lkIGdsQ2xlYXIodW5zaWduZWQgbG9uZyBtYXNr
KTsKLSAgICAgICAgdm9pZCBnbENsZWFyQ29sb3IoZG91YmxlIHJlZCwgZG91YmxlIGdyZWVuLCBk
b3VibGUgYmx1ZSwgZG91YmxlIGFscGhhKTsKLSAgICAgICAgdm9pZCBnbENsZWFyRGVwdGgoZG91
YmxlIGRlcHRoKTsKLSAgICAgICAgdm9pZCBnbENsZWFyU3RlbmNpbChsb25nIHMpOwotICAgICAg
ICB2b2lkIGdsQ29sb3JNYXNrKGJvb2wgcmVkLCBib29sIGdyZWVuLCBib29sIGJsdWUsIGJvb2wg
YWxwaGEpOwotICAgICAgICB2b2lkIGdsQ29tcGlsZVNoYWRlcihDYW52YXNTaGFkZXIqKTsKLSAg
ICAgICAgCi0gICAgICAgIC8vdm9pZCBnbENvbXByZXNzZWRUZXhJbWFnZTJEKHVuc2lnbmVkIGxv
bmcgdGFyZ2V0LCBsb25nIGxldmVsLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCB1bnNp
Z25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCwgbG9uZyBib3JkZXIsIHVuc2ln
bmVkIGxvbmcgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKTsKLSAgICAgICAgLy92b2lkIGds
Q29tcHJlc3NlZFRleFN1YkltYWdlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgbGV2ZWws
IGxvbmcgeG9mZnNldCwgbG9uZyB5b2Zmc2V0LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25l
ZCBsb25nIGhlaWdodCwgdW5zaWduZWQgbG9uZyBmb3JtYXQsIHVuc2lnbmVkIGxvbmcgaW1hZ2VT
aXplLCBjb25zdCB2b2lkKiBkYXRhKTsKLSAgICAgICAgCi0gICAgICAgIHZvaWQgZ2xDb3B5VGV4
SW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgdW5zaWduZWQgbG9uZyBp
bnRlcm5hbGZvcm1hdCwgbG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2ln
bmVkIGxvbmcgaGVpZ2h0LCBsb25nIGJvcmRlcik7Ci0gICAgICAgIHZvaWQgZ2xDb3B5VGV4U3Vi
SW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zmc2V0LCBs
b25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25l
ZCBsb25nIGhlaWdodCk7Ci0gICAgICAgIHZvaWQgZ2xDdWxsRmFjZSh1bnNpZ25lZCBsb25nIG1v
ZGUpOwotICAgICAgICB2b2lkIGdsRGVwdGhGdW5jKHVuc2lnbmVkIGxvbmcgZnVuYyk7Ci0gICAg
ICAgIHZvaWQgZ2xEZXB0aE1hc2soYm9vbCBmbGFnKTsKLSAgICAgICAgdm9pZCBnbERlcHRoUmFu
Z2UoZG91YmxlIHpOZWFyLCBkb3VibGUgekZhcik7Ci0gICAgICAgIHZvaWQgZ2xEZXRhY2hTaGFk
ZXIoQ2FudmFzUHJvZ3JhbSosIENhbnZhc1NoYWRlciopOwotICAgICAgICB2b2lkIGdsRGlzYWJs
ZSh1bnNpZ25lZCBsb25nIGNhcCk7Ci0gICAgICAgIHZvaWQgZ2xEaXNhYmxlVmVydGV4QXR0cmli
QXJyYXkodW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAgICAgIHZvaWQgZ2xEcmF3QXJyYXlzKHVu
c2lnbmVkIGxvbmcgbW9kZSwgbG9uZyBmaXJzdCwgdW5zaWduZWQgbG9uZyBjb3VudCk7Ci0gICAg
ICAgIHZvaWQgZ2xEcmF3RWxlbWVudHModW5zaWduZWQgbG9uZyBtb2RlLCB1bnNpZ25lZCBsb25n
IGNvdW50LCB1bnNpZ25lZCBsb25nIHR5cGUsIHZvaWQqIGFycmF5KTsKLSAgICAgICAgdm9pZCBn
bEVuYWJsZSh1bnNpZ25lZCBsb25nIGNhcCk7Ci0gICAgICAgIHZvaWQgZ2xFbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAgICAgdm9pZCBnbEZpbmlzaCgp
OwotICAgICAgICB2b2lkIGdsRmx1c2goKTsKLSAgICAgICAgdm9pZCBnbEZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQs
IHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFyZ2V0LCBDYW52YXNSZW5kZXJidWZmZXIqKTsK
LSAgICAgICAgdm9pZCBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBDYW52
YXNUZXh0dXJlKiwgbG9uZyBsZXZlbCk7Ci0gICAgICAgIHZvaWQgZ2xGcm9udEZhY2UodW5zaWdu
ZWQgbG9uZyBtb2RlKTsKLSAgICAgICAgdm9pZCBnbEdlbmVyYXRlTWlwbWFwKHVuc2lnbmVkIGxv
bmcgdGFyZ2V0KTsKLSAgICAgICAgCi0gICAgICAgIGludCAgZ2xHZXRBdHRyaWJMb2NhdGlvbihD
YW52YXNQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICAgICAgdW5zaWduZWQgbG9u
ZyBnbEdldEVycm9yKCk7Ci0gICAgICAgIFN0cmluZyBnbEdldFN0cmluZyh1bnNpZ25lZCBsb25n
IG5hbWUpOwotICAgICAgICB2b2lkIGdsSGludCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWdu
ZWQgbG9uZyBtb2RlKTsKLSAgICAgICAgYm9vbCBnbElzQnVmZmVyKENhbnZhc0J1ZmZlciopOwot
ICAgICAgICBib29sIGdsSXNFbmFibGVkKHVuc2lnbmVkIGxvbmcgY2FwKTsKLSAgICAgICAgYm9v
bCBnbElzRnJhbWVidWZmZXIoQ2FudmFzRnJhbWVidWZmZXIqKTsKLSAgICAgICAgYm9vbCBnbElz
UHJvZ3JhbShDYW52YXNQcm9ncmFtKik7Ci0gICAgICAgIGJvb2wgZ2xJc1JlbmRlcmJ1ZmZlcihD
YW52YXNSZW5kZXJidWZmZXIqKTsKLSAgICAgICAgYm9vbCBnbElzU2hhZGVyKENhbnZhc1NoYWRl
ciopOwotICAgICAgICBib29sIGdsSXNUZXh0dXJlKENhbnZhc1RleHR1cmUqKTsKLSAgICAgICAg
dm9pZCBnbExpbmVXaWR0aChkb3VibGUpOwotICAgICAgICB2b2lkIGdsTGlua1Byb2dyYW0oQ2Fu
dmFzUHJvZ3JhbSopOwotICAgICAgICB2b2lkIGdsUGl4ZWxTdG9yZWkodW5zaWduZWQgbG9uZyBw
bmFtZSwgbG9uZyBwYXJhbSk7Ci0gICAgICAgIHZvaWQgZ2xQb2x5Z29uT2Zmc2V0KGRvdWJsZSBm
YWN0b3IsIGRvdWJsZSB1bml0cyk7Ci0gICAgICAgIAotICAgICAgICAvL3ZvaWQgZ2xSZWFkUGl4
ZWxzbG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVp
Z2h0LCB1bnNpZ25lZCBsb25nIGZvcm1hdCwgdW5zaWduZWQgbG9uZyB0eXBlLCB2b2lkKiBwaXhl
bHMpOwotICAgICAgICAKLSAgICAgICAgdm9pZCBnbFJlbGVhc2VTaGFkZXJDb21waWxlcigpOwot
ICAgICAgICB2b2lkIGdsUmVuZGVyYnVmZmVyU3RvcmFnZSh1bnNpZ25lZCBsb25nIHRhcmdldCwg
dW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWdu
ZWQgbG9uZyBoZWlnaHQpOwotICAgICAgICB2b2lkIGdsU2FtcGxlQ292ZXJhZ2UoZG91YmxlIHZh
bHVlLCBib29sIGludmVydCk7Ci0gICAgICAgIHZvaWQgZ2xTY2lzc29yKGxvbmcgeCwgbG9uZyB5
LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7Ci0gICAgICAgIHZv
aWQgZ2xTaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpOwot
ICAgICAgICB2b2lkIGdsU3RlbmNpbEZ1bmModW5zaWduZWQgbG9uZyBmdW5jLCBsb25nIHJlZiwg
dW5zaWduZWQgbG9uZyBtYXNrKTsKLSAgICAgICAgdm9pZCBnbFN0ZW5jaWxGdW5jU2VwYXJhdGUo
dW5zaWduZWQgbG9uZyBmYWNlLCB1bnNpZ25lZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1bnNpZ25l
ZCBsb25nIG1hc2spOwotICAgICAgICB2b2lkIGdsU3RlbmNpbE1hc2sodW5zaWduZWQgbG9uZyBt
YXNrKTsKLSAgICAgICAgdm9pZCBnbFN0ZW5jaWxNYXNrU2VwYXJhdGUodW5zaWduZWQgbG9uZyBm
YWNlLCB1bnNpZ25lZCBsb25nIG1hc2spOwotICAgICAgICB2b2lkIGdsU3RlbmNpbE9wKHVuc2ln
bmVkIGxvbmcgZmFpbCwgdW5zaWduZWQgbG9uZyB6ZmFpbCwgdW5zaWduZWQgbG9uZyB6cGFzcyk7
Ci0gICAgICAgIHZvaWQgZ2xTdGVuY2lsT3BTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVu
c2lnbmVkIGxvbmcgZmFpbCwgdW5zaWduZWQgbG9uZyB6ZmFpbCwgdW5zaWduZWQgbG9uZyB6cGFz
cyk7Ci0gICAgICAgIHZvaWQgZ2xUZXhQYXJhbWV0ZXIodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25l
ZCBwbmFtZSwgQ2FudmFzTnVtYmVyQXJyYXkqKTsKLSAgICAgICAgdm9pZCBnbFRleFBhcmFtZXRl
cih1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBkb3VibGUgdmFsdWUpOwotICAgICAg
ICB2b2lkIGdsVW5pZm9ybShsb25nIGxvY2F0aW9uLCBmbG9hdCB2MCk7Ci0gICAgICAgIHZvaWQg
Z2xVbmlmb3JtKGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwLCBmbG9hdCB2MSk7Ci0gICAgICAgIHZv
aWQgZ2xVbmlmb3JtKGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQgdjIp
OwotICAgICAgICB2b2lkIGdsVW5pZm9ybShsb25nIGxvY2F0aW9uLCBmbG9hdCB2MCwgZmxvYXQg
djEsIGZsb2F0IHYyLCBmbG9hdCB2Myk7Ci0gICAgICAgIHZvaWQgZ2xVbmlmb3JtKGxvbmcgbG9j
YXRpb24sIGludCB2MCk7Ci0gICAgICAgIHZvaWQgZ2xVbmlmb3JtKGxvbmcgbG9jYXRpb24sIGlu
dCB2MCwgaW50IHYxKTsKLSAgICAgICAgdm9pZCBnbFVuaWZvcm0obG9uZyBsb2NhdGlvbiwgaW50
IHYwLCBpbnQgdjEsIGludCB2Mik7Ci0gICAgICAgIHZvaWQgZ2xVbmlmb3JtKGxvbmcgbG9jYXRp
b24sIGludCB2MCwgaW50IHYxLCBpbnQgdjIsIGludCB2Myk7Ci0gICAgICAgIHZvaWQgZ2xVbmlm
b3JtKGxvbmcgbG9jYXRpb24sIENhbnZhc051bWJlckFycmF5Kik7Ci0gICAgICAgIHZvaWQgZ2xV
bmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24sIGxvbmcgY291bnQsIGJvb2wgdHJhbnNwb3NlLCBD
YW52YXNOdW1iZXJBcnJheSopOwotICAgICAgICB2b2lkIGdsVW5pZm9ybU1hdHJpeChsb25nIGxv
Y2F0aW9uLCBib29sIHRyYW5zcG9zZSwgY29uc3QgVmVjdG9yPFdlYktpdENTU01hdHJpeCo+Jik7
Ci0gICAgICAgIHZvaWQgZ2xVbmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24sIGJvb2wgdHJhbnNw
b3NlLCBjb25zdCBXZWJLaXRDU1NNYXRyaXgqKTsKLSAgICAgICAgdm9pZCBnbFVzZVByb2dyYW0o
Q2FudmFzUHJvZ3JhbSopOwotICAgICAgICB2b2lkIGdsVmFsaWRhdGVQcm9ncmFtKENhbnZhc1By
b2dyYW0qKTsKLSAgICAgICAgdm9pZCBnbFZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25nIGluZHgs
IGZsb2F0IHYwKTsKLSAgICAgICAgdm9pZCBnbFZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25nIGlu
ZHgsIGZsb2F0IHYwLCBmbG9hdCB2MSk7Ci0gICAgICAgIHZvaWQgZ2xWZXJ0ZXhBdHRyaWIodW5z
aWduZWQgbG9uZyBpbmR4LCBmbG9hdCB2MCwgZmxvYXQgdjEsIGZsb2F0IHYyKTsKLSAgICAgICAg
dm9pZCBnbFZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25nIGluZHgsIGZsb2F0IHYwLCBmbG9hdCB2
MSwgZmxvYXQgdjIsIGZsb2F0IHYzKTsKLSAgICAgICAgdm9pZCBnbFZlcnRleEF0dHJpYih1bnNp
Z25lZCBsb25nIGluZHgsIENhbnZhc051bWJlckFycmF5Kik7Ci0gICAgICAgIHZvaWQgZ2xWZXJ0
ZXhBdHRyaWJQb2ludGVyKHVuc2lnbmVkIGxvbmcgaW5keCwgbG9uZyBzaXplLCB1bnNpZ25lZCBs
b25nIHR5cGUsIGJvb2wgbm9ybWFsaXplZCwgdW5zaWduZWQgbG9uZyBzdHJpZGUsIENhbnZhc051
bWJlckFycmF5Kik7Ci0gICAgICAgIHZvaWQgZ2xWaWV3cG9ydChsb25nIHgsIGxvbmcgeSwgdW5z
aWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOwotICAgICAgICAKLSAgICAg
ICAgUGFzc1JlZlB0cjxDYW52YXNOdW1iZXJBcnJheT4gZ2V0KHVuc2lnbmVkIGxvbmcgcG5hbWUp
OyAgICAgIC8vIHJlcGxhY2VzIGdsR2V0Qm9vbGVhbnYKLSAgICAgICAgUGFzc1JlZlB0cjxDYW52
YXNOdW1iZXJBcnJheT4gZ2V0QnVmZmVyUGFyYW1ldGVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1
bnNpZ25lZCBsb25nIHBuYW1lKTsgLy8gcmVwbGFjZXMgZ2xHZXRCdWZmZXJQYXJhbWV0ZXJpdgot
ICAgICAgICBQYXNzUmVmUHRyPENhbnZhc051bWJlckFycmF5PiBnZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgYXR0YWNo
bWVudCwgdW5zaWduZWQgbG9uZyBwbmFtZSk7IC8vIHJlcGxhY2VzIGdsR2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyaXYKLSAgICAgICAgUGFzc1JlZlB0cjxDYW52YXNOdW1iZXJBcnJh
eT4gZ2V0UHJvZ3JhbShDYW52YXNQcm9ncmFtKiwgdW5zaWduZWQgbG9uZyBwbmFtZSk7IC8vIHJl
cGxhY2VzIGdsR2V0UHJvZ3JhbWl2Ci0gICAgICAgIFN0cmluZyBnbEdldFByb2dyYW1JbmZvTG9n
KENhbnZhc1Byb2dyYW0qKTsgLy8gcmVwbGFjZXMgZ2xHZXRQcm9ncmFtSW5mb0xvZwotICAgICAg
ICBQYXNzUmVmUHRyPENhbnZhc051bWJlckFycmF5PiBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIo
dW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgcG5hbWUpOyAvLyByZXBsYWNlcyBn
bEdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2Ci0gICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzTnVt
YmVyQXJyYXk+IGdldFNoYWRlcihDYW52YXNTaGFkZXIqLCB1bnNpZ25lZCBsb25nIHBuYW1lKTsg
Ly8gcmVwbGFjZXMgZ2xHZXRTaGFkZXJpdgotICAgICAgICBTdHJpbmcgZ2xHZXRTaGFkZXJJbmZv
TG9nKENhbnZhc1NoYWRlciopOwotICAgICAgICBTdHJpbmcgZ2xHZXRTaGFkZXJTb3VyY2UoQ2Fu
dmFzU2hhZGVyKik7Ci0gICAgICAgIAotICAgICAgICBQYXNzUmVmUHRyPENhbnZhc051bWJlckFy
cmF5PiBnZXRUZXhQYXJhbWV0ZXIodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcg
cG5hbWUpOyAvLyByZXBsYWNlcyBnbEdldFRleFBhcmFtZXRlcmZ2Ci0gICAgICAgIFBhc3NSZWZQ
dHI8Q2FudmFzTnVtYmVyQXJyYXk+IGdldFVuaWZvcm0oQ2FudmFzUHJvZ3JhbSosIGxvbmcgbG9j
YXRpb24sIGxvbmcgc2l6ZSk7IC8vIHJlcGxhY2VzIGdsR2V0VW5pZm9ybWZ2Ci0gICAgICAgIGxv
bmcgZ2V0VW5pZm9ybUxvY2F0aW9uKENhbnZhc1Byb2dyYW0qLCBjb25zdCBTdHJpbmcmIG5hbWUp
OyAvLyByZXBsYWNlcyBnbEdldFVuaWZvcm1Mb2NhdGlvbgotICAgICAgICBQYXNzUmVmUHRyPENh
bnZhc051bWJlckFycmF5PiBnZXRWZXJ0ZXhBdHRyaWIodW5zaWduZWQgbG9uZyBpbmRleCwgdW5z
aWduZWQgbG9uZyBwbmFtZSk7IC8vIHJlcGxhY2VzIGdsR2V0VmVydGV4QXR0cmliZnYKKyAgICAg
ICAgdm9pZCBhY3RpdmVUZXh0dXJlKHVuc2lnbmVkIGxvbmcgdGV4dHVyZSk7CisgICAgICAgIHZv
aWQgYXR0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIENhbnZhc1NoYWRlciogc2hh
ZGVyKTsKKyAgICAgICAgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oQ2FudmFzUHJvZ3JhbSosIHVu
c2lnbmVkIGxvbmcgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgICAgIHZvaWQgYmlu
ZEJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzQnVmZmVyKik7CisgICAgICAgIHZv
aWQgYmluZEZyYW1lYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNGcmFtZWJ1ZmZl
ciopOworICAgICAgICB2b2lkIGJpbmRSZW5kZXJidWZmZXIodW5zaWduZWQgbG9uZyB0YXJnZXQs
IENhbnZhc1JlbmRlcmJ1ZmZlciopOworICAgICAgICB2b2lkIGJpbmRUZXh0dXJlKHVuc2lnbmVk
IHRhcmdldCwgQ2FudmFzVGV4dHVyZSogdGV4dHVyZTNEKTsKKyAgICAgICAgdm9pZCBibGVuZENv
bG9yKGRvdWJsZSByZWQsIGRvdWJsZSBncmVlbiwgZG91YmxlIGJsdWUsIGRvdWJsZSBhbHBoYSk7
CisgICAgICAgIHZvaWQgYmxlbmRFcXVhdGlvbih1bnNpZ25lZCBsb25nIG1vZGUgKTsKKyAgICAg
ICAgdm9pZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUodW5zaWduZWQgbG9uZyBtb2RlUkdCLCB1bnNp
Z25lZCBsb25nIG1vZGVBbHBoYSk7CisgICAgICAgIHZvaWQgYmxlbmRGdW5jKHVuc2lnbmVkIGxv
bmcgc2ZhY3RvciwgdW5zaWduZWQgbG9uZyBkZmFjdG9yKTsKKyAgICAgICAgdm9pZCBibGVuZEZ1
bmNTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIHNyY1JHQiwgdW5zaWduZWQgbG9uZyBkc3RSR0IsIHVu
c2lnbmVkIGxvbmcgc3JjQWxwaGEsIHVuc2lnbmVkIGxvbmcgZHN0QWxwaGEpOworICAgICAgICB2
b2lkIGJ1ZmZlckRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIENhbnZhc051bWJlckFycmF5Kiwg
dW5zaWduZWQgbG9uZyB1c2FnZSk7CisgICAgICAgIHZvaWQgYnVmZmVyU3ViRGF0YSh1bnNpZ25l
ZCBsb25nIHRhcmdldCwgbG9uZyBvZmZzZXQsIENhbnZhc051bWJlckFycmF5Kik7CisgICAgICAg
IHVuc2lnbmVkIGxvbmcgY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhDYW52YXNGcmFtZWJ1ZmZlciop
OworICAgICAgICB2b2lkIGNsZWFyKHVuc2lnbmVkIGxvbmcgbWFzayk7CisgICAgICAgIHZvaWQg
Y2xlYXJDb2xvcihkb3VibGUgcmVkLCBkb3VibGUgZ3JlZW4sIGRvdWJsZSBibHVlLCBkb3VibGUg
YWxwaGEpOworICAgICAgICB2b2lkIGNsZWFyRGVwdGgoZG91YmxlIGRlcHRoKTsKKyAgICAgICAg
dm9pZCBjbGVhclN0ZW5jaWwobG9uZyBzKTsKKyAgICAgICAgdm9pZCBjb2xvck1hc2soYm9vbCBy
ZWQsIGJvb2wgZ3JlZW4sIGJvb2wgYmx1ZSwgYm9vbCBhbHBoYSk7CisgICAgICAgIHZvaWQgY29t
cGlsZVNoYWRlcihDYW52YXNTaGFkZXIqKTsKKyAgICAgICAgCisgICAgICAgIC8vdm9pZCBjb21w
cmVzc2VkVGV4SW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgdW5zaWdu
ZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9u
ZyBoZWlnaHQsIGxvbmcgYm9yZGVyLCB1bnNpZ25lZCBsb25nIGltYWdlU2l6ZSwgY29uc3Qgdm9p
ZCogZGF0YSk7CisgICAgICAgIC8vdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCh1bnNpZ25l
ZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9uZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIHVu
c2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCB1bnNpZ25lZCBsb25nIGZv
cm1hdCwgdW5zaWduZWQgbG9uZyBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOworICAgICAg
ICAKKyAgICAgICAgdm9pZCBjb3B5VGV4SW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9u
ZyBsZXZlbCwgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgbG9uZyB4LCBsb25nIHksIHVu
c2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0LCBsb25nIGJvcmRlcik7Cisg
ICAgICAgIHZvaWQgY29weVRleFN1YkltYWdlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcg
bGV2ZWwsIGxvbmcgeG9mZnNldCwgbG9uZyB5b2Zmc2V0LCBsb25nIHgsIGxvbmcgeSwgdW5zaWdu
ZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICB2b2lkIGN1bGxG
YWNlKHVuc2lnbmVkIGxvbmcgbW9kZSk7CisgICAgICAgIHZvaWQgZGVwdGhGdW5jKHVuc2lnbmVk
IGxvbmcgZnVuYyk7CisgICAgICAgIHZvaWQgZGVwdGhNYXNrKGJvb2wgZmxhZyk7CisgICAgICAg
IHZvaWQgZGVwdGhSYW5nZShkb3VibGUgek5lYXIsIGRvdWJsZSB6RmFyKTsKKyAgICAgICAgdm9p
ZCBkZXRhY2hTaGFkZXIoQ2FudmFzUHJvZ3JhbSosIENhbnZhc1NoYWRlciopOworICAgICAgICB2
b2lkIGRpc2FibGUodW5zaWduZWQgbG9uZyBjYXApOworICAgICAgICB2b2lkIGRpc2FibGVWZXJ0
ZXhBdHRyaWJBcnJheSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgdm9pZCBkcmF3QXJy
YXlzKHVuc2lnbmVkIGxvbmcgbW9kZSwgbG9uZyBmaXJzdCwgdW5zaWduZWQgbG9uZyBjb3VudCk7
CisgICAgICAgIHZvaWQgZHJhd0VsZW1lbnRzKHVuc2lnbmVkIGxvbmcgbW9kZSwgdW5zaWduZWQg
bG9uZyBjb3VudCwgdW5zaWduZWQgbG9uZyB0eXBlLCB2b2lkKiBhcnJheSk7CisgICAgICAgIHZv
aWQgZW5hYmxlKHVuc2lnbmVkIGxvbmcgY2FwKTsKKyAgICAgICAgdm9pZCBlbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgdm9pZCBmaW5pc2goKTsK
KyAgICAgICAgdm9pZCBmbHVzaCgpOworICAgICAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2ln
bmVkIGxvbmcgcmVuZGVyYnVmZmVydGFyZ2V0LCBDYW52YXNSZW5kZXJidWZmZXIqKTsKKyAgICAg
ICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWdu
ZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHRleHRhcmdldCwgQ2FudmFzVGV4dHVy
ZSosIGxvbmcgbGV2ZWwpOworICAgICAgICB2b2lkIGZyb250RmFjZSh1bnNpZ25lZCBsb25nIG1v
ZGUpOworICAgICAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKHVuc2lnbmVkIGxvbmcgdGFyZ2V0KTsK
KyAgICAgICAgCisgICAgICAgIGludCAgZ2V0QXR0cmliTG9jYXRpb24oQ2FudmFzUHJvZ3JhbSos
IGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2V0RXJyb3IoKTsK
KyAgICAgICAgU3RyaW5nIGdldFN0cmluZyh1bnNpZ25lZCBsb25nIG5hbWUpOworICAgICAgICB2
b2lkIGhpbnQodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgbW9kZSk7CisgICAg
ICAgIGJvb2wgaXNCdWZmZXIoQ2FudmFzQnVmZmVyKik7CisgICAgICAgIGJvb2wgaXNFbmFibGVk
KHVuc2lnbmVkIGxvbmcgY2FwKTsKKyAgICAgICAgYm9vbCBpc0ZyYW1lYnVmZmVyKENhbnZhc0Zy
YW1lYnVmZmVyKik7CisgICAgICAgIGJvb2wgaXNQcm9ncmFtKENhbnZhc1Byb2dyYW0qKTsKKyAg
ICAgICAgYm9vbCBpc1JlbmRlcmJ1ZmZlcihDYW52YXNSZW5kZXJidWZmZXIqKTsKKyAgICAgICAg
Ym9vbCBpc1NoYWRlcihDYW52YXNTaGFkZXIqKTsKKyAgICAgICAgYm9vbCBpc1RleHR1cmUoQ2Fu
dmFzVGV4dHVyZSopOworICAgICAgICB2b2lkIGxpbmVXaWR0aChkb3VibGUpOworICAgICAgICB2
b2lkIGxpbmtQcm9ncmFtKENhbnZhc1Byb2dyYW0qKTsKKyAgICAgICAgdm9pZCBwaXhlbFN0b3Jl
aSh1bnNpZ25lZCBsb25nIHBuYW1lLCBsb25nIHBhcmFtKTsKKyAgICAgICAgdm9pZCBwb2x5Z29u
T2Zmc2V0KGRvdWJsZSBmYWN0b3IsIGRvdWJsZSB1bml0cyk7CisgICAgICAgIAorICAgICAgICAv
L3ZvaWQgcmVhZFBpeGVsc2xvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNp
Z25lZCBsb25nIGhlaWdodCwgdW5zaWduZWQgbG9uZyBmb3JtYXQsIHVuc2lnbmVkIGxvbmcgdHlw
ZSwgdm9pZCogcGl4ZWxzKTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgcmVsZWFzZVNoYWRlckNv
bXBpbGVyKCk7CisgICAgICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZSh1bnNpZ25lZCBsb25n
IHRhcmdldCwgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0
aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOworICAgICAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKGRv
dWJsZSB2YWx1ZSwgYm9vbCBpbnZlcnQpOworICAgICAgICB2b2lkIHNjaXNzb3IobG9uZyB4LCBs
b25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKyAgICAg
ICAgdm9pZCBzaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiwgY29uc3QgU3RyaW5nJiBzdHJpbmcp
OworICAgICAgICB2b2lkIHN0ZW5jaWxGdW5jKHVuc2lnbmVkIGxvbmcgZnVuYywgbG9uZyByZWYs
IHVuc2lnbmVkIGxvbmcgbWFzayk7CisgICAgICAgIHZvaWQgc3RlbmNpbEZ1bmNTZXBhcmF0ZSh1
bnNpZ25lZCBsb25nIGZhY2UsIHVuc2lnbmVkIGxvbmcgZnVuYywgbG9uZyByZWYsIHVuc2lnbmVk
IGxvbmcgbWFzayk7CisgICAgICAgIHZvaWQgc3RlbmNpbE1hc2sodW5zaWduZWQgbG9uZyBtYXNr
KTsKKyAgICAgICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKHVuc2lnbmVkIGxvbmcgZmFjZSwg
dW5zaWduZWQgbG9uZyBtYXNrKTsKKyAgICAgICAgdm9pZCBzdGVuY2lsT3AodW5zaWduZWQgbG9u
ZyBmYWlsLCB1bnNpZ25lZCBsb25nIHpmYWlsLCB1bnNpZ25lZCBsb25nIHpwYXNzKTsKKyAgICAg
ICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVuc2lnbmVkIGxv
bmcgZmFpbCwgdW5zaWduZWQgbG9uZyB6ZmFpbCwgdW5zaWduZWQgbG9uZyB6cGFzcyk7CisgICAg
ICAgIHZvaWQgdGV4UGFyYW1ldGVyKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgcG5hbWUsIENh
bnZhc051bWJlckFycmF5Kik7CisgICAgICAgIHZvaWQgdGV4UGFyYW1ldGVyKHVuc2lnbmVkIHRh
cmdldCwgdW5zaWduZWQgcG5hbWUsIGRvdWJsZSB2YWx1ZSk7CisgICAgICAgIHZvaWQgdW5pZm9y
bShsb25nIGxvY2F0aW9uLCBmbG9hdCB2MCk7CisgICAgICAgIHZvaWQgdW5pZm9ybShsb25nIGxv
Y2F0aW9uLCBmbG9hdCB2MCwgZmxvYXQgdjEpOworICAgICAgICB2b2lkIHVuaWZvcm0obG9uZyBs
b2NhdGlvbiwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2Mik7CisgICAgICAgIHZvaWQgdW5p
Zm9ybShsb25nIGxvY2F0aW9uLCBmbG9hdCB2MCwgZmxvYXQgdjEsIGZsb2F0IHYyLCBmbG9hdCB2
Myk7CisgICAgICAgIHZvaWQgdW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjApOworICAgICAg
ICB2b2lkIHVuaWZvcm0obG9uZyBsb2NhdGlvbiwgaW50IHYwLCBpbnQgdjEpOworICAgICAgICB2
b2lkIHVuaWZvcm0obG9uZyBsb2NhdGlvbiwgaW50IHYwLCBpbnQgdjEsIGludCB2Mik7CisgICAg
ICAgIHZvaWQgdW5pZm9ybShsb25nIGxvY2F0aW9uLCBpbnQgdjAsIGludCB2MSwgaW50IHYyLCBp
bnQgdjMpOworICAgICAgICB2b2lkIHVuaWZvcm0obG9uZyBsb2NhdGlvbiwgQ2FudmFzTnVtYmVy
QXJyYXkqKTsKKyAgICAgICAgdm9pZCB1bmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24sIGxvbmcg
Y291bnQsIGJvb2wgdHJhbnNwb3NlLCBDYW52YXNOdW1iZXJBcnJheSopOworICAgICAgICB2b2lk
IHVuaWZvcm1NYXRyaXgobG9uZyBsb2NhdGlvbiwgYm9vbCB0cmFuc3Bvc2UsIGNvbnN0IFZlY3Rv
cjxXZWJLaXRDU1NNYXRyaXgqPiYpOworICAgICAgICB2b2lkIHVuaWZvcm1NYXRyaXgobG9uZyBs
b2NhdGlvbiwgYm9vbCB0cmFuc3Bvc2UsIGNvbnN0IFdlYktpdENTU01hdHJpeCopOworICAgICAg
ICB2b2lkIHVzZVByb2dyYW0oQ2FudmFzUHJvZ3JhbSopOworICAgICAgICB2b2lkIHZhbGlkYXRl
UHJvZ3JhbShDYW52YXNQcm9ncmFtKik7CisgICAgICAgIHZvaWQgdmVydGV4QXR0cmliKHVuc2ln
bmVkIGxvbmcgaW5keCwgZmxvYXQgdjApOworICAgICAgICB2b2lkIHZlcnRleEF0dHJpYih1bnNp
Z25lZCBsb25nIGluZHgsIGZsb2F0IHYwLCBmbG9hdCB2MSk7CisgICAgICAgIHZvaWQgdmVydGV4
QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2Mik7
CisgICAgICAgIHZvaWQgdmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgdjAs
IGZsb2F0IHYxLCBmbG9hdCB2MiwgZmxvYXQgdjMpOworICAgICAgICB2b2lkIHZlcnRleEF0dHJp
Yih1bnNpZ25lZCBsb25nIGluZHgsIENhbnZhc051bWJlckFycmF5Kik7CisgICAgICAgIHZvaWQg
dmVydGV4QXR0cmliUG9pbnRlcih1bnNpZ25lZCBsb25nIGluZHgsIGxvbmcgc2l6ZSwgdW5zaWdu
ZWQgbG9uZyB0eXBlLCBib29sIG5vcm1hbGl6ZWQsIHVuc2lnbmVkIGxvbmcgc3RyaWRlLCBDYW52
YXNOdW1iZXJBcnJheSopOworICAgICAgICB2b2lkIHZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCB1
bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CisgICAgICAgIAorICAg
ICAgICBQYXNzUmVmUHRyPENhbnZhc051bWJlckFycmF5PiBnZXQodW5zaWduZWQgbG9uZyBwbmFt
ZSk7CisgICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzTnVtYmVyQXJyYXk+IGdldEJ1ZmZlclBhcmFt
ZXRlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBwbmFtZSk7CisgICAgICAg
IFBhc3NSZWZQdHI8Q2FudmFzTnVtYmVyQXJyYXk+IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1
bnNpZ25lZCBsb25nIHBuYW1lKTsKKyAgICAgICAgUGFzc1JlZlB0cjxDYW52YXNOdW1iZXJBcnJh
eT4gZ2V0UHJvZ3JhbShDYW52YXNQcm9ncmFtKiwgdW5zaWduZWQgbG9uZyBwbmFtZSk7CisgICAg
ICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhDYW52YXNQcm9ncmFtKik7CisgICAgICAgIFBh
c3NSZWZQdHI8Q2FudmFzTnVtYmVyQXJyYXk+IGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcih1bnNp
Z25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBwbmFtZSk7CisgICAgICAgIFBhc3NSZWZQ
dHI8Q2FudmFzTnVtYmVyQXJyYXk+IGdldFNoYWRlcihDYW52YXNTaGFkZXIqLCB1bnNpZ25lZCBs
b25nIHBuYW1lKTsKKyAgICAgICAgU3RyaW5nIGdldFNoYWRlckluZm9Mb2coQ2FudmFzU2hhZGVy
Kik7CisgICAgICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKik7CisgICAg
ICAgIAorICAgICAgICBQYXNzUmVmUHRyPENhbnZhc051bWJlckFycmF5PiBnZXRUZXhQYXJhbWV0
ZXIodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgcG5hbWUpOworICAgICAgICBQ
YXNzUmVmUHRyPENhbnZhc051bWJlckFycmF5PiBnZXRVbmlmb3JtKENhbnZhc1Byb2dyYW0qLCBs
b25nIGxvY2F0aW9uLCBsb25nIHNpemUpOworICAgICAgICBsb25nIGdldFVuaWZvcm1Mb2NhdGlv
bihDYW52YXNQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICAgICAgUGFzc1JlZlB0
cjxDYW52YXNOdW1iZXJBcnJheT4gZ2V0VmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5kZXgs
IHVuc2lnbmVkIGxvbmcgcG5hbWUpOwogICAgICAgICAKICAgICAgICAgLy8gVGhlc2UgbmV4dCA0
IGZ1bmN0aW9ucyByZXR1cm4gYW4gZXJyb3IgY29kZTAgaWYgbm8gZXJyb3JzKSByYXRoZXIgdGhh
biB1c2luZyBhbiBFeGNlcHRpb25Db2RlLgogICAgICAgICAvLyBDdXJyZW50bHkgdGhleSByZXR1
cm4gLTEgb24gYW55IGVycm9yLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
R3JhcGhpY3NDb250ZXh0M0RNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcAkocmV2aXNpb24gNDc4NDMpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE2MCwxMyArMTYwLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBl
bnN1cmVDb250ZXh0KENHTENvbnQKICAgICAgICAgQ0dMU2V0Q3VycmVudENvbnRleHQoY29udGV4
dCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsQWN0aXZlVGV4dHVyZSh1bnNpZ25l
ZCBsb25nIHRleHR1cmUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjphY3RpdmVUZXh0dXJlKHVu
c2lnbmVkIGxvbmcgdGV4dHVyZSkKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7
CiAgICAgOjpnbEFjdGl2ZVRleHR1cmUodGV4dHVyZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OmdsQXR0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIENhbnZhc1NoYWRl
ciogc2hhZGVyKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoU2hhZGVyKENhbnZhc1By
b2dyYW0qIHByb2dyYW0sIENhbnZhc1NoYWRlciogc2hhZGVyKQogewogICAgIGlmICghcHJvZ3Jh
bSB8fCAhc2hhZGVyKQogICAgICAgICByZXR1cm47CkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6Z2xBdHRhY2hTaGFkZXIoQwogICAgIDo6Z2xBdHRhY2hTaGFkZXIo
KEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0KCksIChHTHVpbnQpIHNoYWRlci0+b2JqZWN0KCkpOwog
fQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbEJpbmRBdHRyaWJMb2NhdGlvbihDYW52YXNQ
cm9ncmFtKiBwcm9ncmFtLCB1bnNpZ25lZCBsb25nIGluZGV4LCBjb25zdCBTdHJpbmcmIG5hbWUp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpiaW5kQXR0cmliTG9jYXRpb24oQ2FudmFzUHJvZ3Jh
bSogcHJvZ3JhbSwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewog
ICAgIGlmICghcHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTgyLDY0ICsxODIsNjQgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xCaW5kQXR0cmliTG9jYQogICAgIDo6Z2xCaW5kQXR0
cmliTG9jYXRpb24oKEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0KCksIGluZGV4LCBuYW1lLnV0Zjgo
KS5kYXRhKCkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbEJpbmRCdWZmZXIodW5z
aWduZWQgbG9uZyB0YXJnZXQsIENhbnZhc0J1ZmZlciogYnVmZmVyKQordm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6YmluZEJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzQnVmZmVyKiBi
dWZmZXIpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xCaW5k
QnVmZmVyKHRhcmdldCwgYnVmZmVyID8gKEdMdWludCkgYnVmZmVyLT5vYmplY3QoKSA6IDApOwog
fQogCiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsQmluZEZyYW1lYnVmZmVyKHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBDYW52YXNGcmFtZWJ1ZmZlciogYnVmZmVyKQordm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6YmluZEZyYW1lYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNGcmFt
ZWJ1ZmZlciogYnVmZmVyKQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAg
ICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKHRhcmdldCwgYnVmZmVyID8gKEdMdWludCkgYnVmZmVy
LT5vYmplY3QoKSA6IG1fZmJvKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xCaW5k
UmVuZGVyYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBDYW52YXNSZW5kZXJidWZmZXIqIHJl
bmRlcmJ1ZmZlcikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRSZW5kZXJidWZmZXIodW5z
aWduZWQgbG9uZyB0YXJnZXQsIENhbnZhc1JlbmRlcmJ1ZmZlciogcmVuZGVyYnVmZmVyKQogewog
ICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsQmluZEJ1ZmZlcih0YXJn
ZXQsIHJlbmRlcmJ1ZmZlciA/IChHTHVpbnQpIHJlbmRlcmJ1ZmZlci0+b2JqZWN0KCkgOiAwKTsK
IH0KIAogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbEJpbmRUZXh0dXJlKHVuc2lnbmVkIHRh
cmdldCwgQ2FudmFzVGV4dHVyZSogdGV4dHVyZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJp
bmRUZXh0dXJlKHVuc2lnbmVkIHRhcmdldCwgQ2FudmFzVGV4dHVyZSogdGV4dHVyZSkKIHsKICAg
ICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbEJpbmRUZXh0dXJlKHRhcmdl
dCwgdGV4dHVyZSA/IChHTHVpbnQpIHRleHR1cmUtPm9iamVjdCgpIDogMCk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OmdsQmxlbmRDb2xvcihkb3VibGUgcmVkLCBkb3VibGUgZ3JlZW4s
IGRvdWJsZSBibHVlLCBkb3VibGUgYWxwaGEpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpibGVu
ZENvbG9yKGRvdWJsZSByZWQsIGRvdWJsZSBncmVlbiwgZG91YmxlIGJsdWUsIGRvdWJsZSBhbHBo
YSkKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbEJsZW5kQ29s
b3Ioc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlZCksIHN0YXRpY19jYXN0PGZsb2F0PihncmVlbiksIHN0
YXRpY19jYXN0PGZsb2F0PihibHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSk7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsQmxlbmRFcXVhdGlvbiggdW5zaWduZWQgbG9uZyBt
b2RlICkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRXF1YXRpb24oIHVuc2lnbmVkIGxv
bmcgbW9kZSApCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xC
bGVuZEVxdWF0aW9uKG1vZGUpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbEJsZW5k
RXF1YXRpb25TZXBhcmF0ZSh1bnNpZ25lZCBsb25nIG1vZGVSR0IsIHVuc2lnbmVkIGxvbmcgbW9k
ZUFscGhhKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YmxlbmRFcXVhdGlvblNlcGFyYXRlKHVu
c2lnbmVkIGxvbmcgbW9kZVJHQiwgdW5zaWduZWQgbG9uZyBtb2RlQWxwaGEpCiB7CiAgICAgZW5z
dXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xCbGVuZEVxdWF0aW9uU2VwYXJhdGUo
bW9kZVJHQiwgbW9kZUFscGhhKTsKIH0KIAogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbEJs
ZW5kRnVuYyh1bnNpZ25lZCBsb25nIHNmYWN0b3IsIHVuc2lnbmVkIGxvbmcgZGZhY3RvcikKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRnVuYyh1bnNpZ25lZCBsb25nIHNmYWN0b3IsIHVu
c2lnbmVkIGxvbmcgZGZhY3RvcikKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7
CiAgICAgOjpnbEJsZW5kRnVuYyhzZmFjdG9yLCBkZmFjdG9yKTsKIH0gICAgICAgCiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OmdsQmxlbmRGdW5jU2VwYXJhdGUodW5zaWduZWQgbG9uZyBzcmNS
R0IsIHVuc2lnbmVkIGxvbmcgZHN0UkdCLCB1bnNpZ25lZCBsb25nIHNyY0FscGhhLCB1bnNpZ25l
ZCBsb25nIGRzdEFscGhhKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YmxlbmRGdW5jU2VwYXJh
dGUodW5zaWduZWQgbG9uZyBzcmNSR0IsIHVuc2lnbmVkIGxvbmcgZHN0UkdCLCB1bnNpZ25lZCBs
b25nIHNyY0FscGhhLCB1bnNpZ25lZCBsb25nIGRzdEFscGhhKQogewogICAgIGVuc3VyZUNvbnRl
eHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsQmxlbmRGdW5jU2VwYXJhdGUoc3JjUkdCLCBkc3RS
R0IsIHNyY0FscGhhLCBkc3RBbHBoYSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6Omds
QnVmZmVyRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzTnVtYmVyQXJyYXkqIGFycmF5
LCB1bnNpZ25lZCBsb25nIHVzYWdlKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YnVmZmVyRGF0
YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgQ2FudmFzTnVtYmVyQXJyYXkqIGFycmF5LCB1bnNpZ25l
ZCBsb25nIHVzYWdlKQogewogICAgIGlmICghYXJyYXkgfHwgIWFycmF5LT5kYXRhKCkuc2l6ZSgp
KQogICAgICAgICByZXR1cm47CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6Z2xCdWZmZXJEYXRhKHVucwogICAgIAogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpnbEJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0LCBDYW52
YXNOdW1iZXJBcnJheSogYXJyYXkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpidWZmZXJTdWJE
YXRhKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIG9mZnNldCwgQ2FudmFzTnVtYmVyQXJyYXkq
IGFycmF5KQogewogICAgIGlmICghYXJyYXkgfHwgIWFycmF5LT5kYXRhKCkuc2l6ZSgpKQogICAg
ICAgICByZXR1cm47CkBAIC0yNzEsNyArMjcxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
Z2xCdWZmZXJTdWJEYXRhKAogICAgIDo6Z2xCdWZmZXJTdWJEYXRhKHRhcmdldCwgb2Zmc2V0LCBh
cnJheS0+ZGF0YSgpLnNpemUoKSAqIHNpemVvZihmbG9hdCksICYoYXJyYXktPmRhdGEoKVswXSkp
OwogfQogCi11bnNpZ25lZCBsb25nIEdyYXBoaWNzQ29udGV4dDNEOjpnbENoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoQ2FudmFzRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQordW5zaWduZWQgbG9uZyBH
cmFwaGljc0NvbnRleHQzRDo6Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhDYW52YXNGcmFtZWJ1ZmZl
ciogZnJhbWVidWZmZXIpCiB7CiAgICAgaWYgKCFmcmFtZWJ1ZmZlcikKICAgICAgICAgcmV0dXJu
IC0xOwpAQCAtMjgwLDM3ICsyODAsMzcgQEAgdW5zaWduZWQgbG9uZyBHcmFwaGljc0NvbnRleHQz
RDo6Z2xDaGVjawogICAgIHJldHVybiA6OmdsQ2hlY2tGcmFtZWJ1ZmZlclN0YXR1c0VYVCgoR0x1
aW50KSBmcmFtZWJ1ZmZlci0+b2JqZWN0KCkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpnbENsZWFyQ29sb3IoZG91YmxlIHIsIGRvdWJsZSBnLCBkb3VibGUgYiwgZG91YmxlIGEpCit2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckNvbG9yKGRvdWJsZSByLCBkb3VibGUgZywgZG91
YmxlIGIsIGRvdWJsZSBhKQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAg
ICA6OmdsQ2xlYXJDb2xvcihzdGF0aWNfY2FzdDxmbG9hdD4ociksIHN0YXRpY19jYXN0PGZsb2F0
PihnKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGIpLCBzdGF0aWNfY2FzdDxmbG9hdD4oYSkpOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbENsZWFyKHVuc2lnbmVkIGxvbmcgbWFzaykKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyKHVuc2lnbmVkIGxvbmcgbWFzaykKIHsKICAgICBl
bnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbENsZWFyKG1hc2spOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbENsZWFyRGVwdGgoZG91YmxlIGRlcHRoKQordm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6Y2xlYXJEZXB0aChkb3VibGUgZGVwdGgpCiB7CiAgICAgZW5zdXJl
Q29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xDbGVhckRlcHRoKGRlcHRoKTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xDbGVhclN0ZW5jaWwobG9uZyBzKQordm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6Y2xlYXJTdGVuY2lsKGxvbmcgcykKIHsKICAgICBlbnN1cmVDb250ZXh0
KG1fY29udGV4dE9iaik7CiAgICAgOjpnbENsZWFyU3RlbmNpbChzKTsKIH0KIAotdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6Z2xDb2xvck1hc2soYm9vbCByZWQsIGJvb2wgZ3JlZW4sIGJvb2wgYmx1
ZSwgYm9vbCBhbHBoYSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvbG9yTWFzayhib29sIHJl
ZCwgYm9vbCBncmVlbiwgYm9vbCBibHVlLCBib29sIGFscGhhKQogewogICAgIGVuc3VyZUNvbnRl
eHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsQ29sb3JNYXNrKHJlZCwgZ3JlZW4sIGJsdWUsIGFs
cGhhKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xDb21waWxlU2hhZGVyKENhbnZh
c1NoYWRlciogc2hhZGVyKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlcihD
YW52YXNTaGFkZXIqIHNoYWRlcikKIHsKICAgICBpZiAoIXNoYWRlcikKICAgICAgICAgcmV0dXJu
OwpAQCAtMzE5LDQzICszMTksNDMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xDb21waWxl
U2hhZGVyKAogICAgIDo6Z2xDb21waWxlU2hhZGVyKChHTHVpbnQpIHNoYWRlci0+b2JqZWN0KCkp
OwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbENvcHlUZXhJbWFnZTJEKHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBsb25nIGxldmVsLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCBs
b25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQs
IGxvbmcgYm9yZGVyKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRleEltYWdlMkQodW5z
aWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgbGV2ZWwsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3Jt
YXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhl
aWdodCwgbG9uZyBib3JkZXIpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwog
ICAgIDo6Z2xDb3B5VGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgeCwg
eSwgd2lkdGgsIGhlaWdodCwgYm9yZGVyKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
Z2xDb3B5VGV4U3ViSW1hZ2UyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBsZXZlbCwgbG9u
ZyB4b2Zmc2V0LCBsb25nIHlvZmZzZXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdp
ZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlU
ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIGxldmVsLCBsb25nIHhvZmZz
ZXQsIGxvbmcgeW9mZnNldCwgbG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVu
c2lnbmVkIGxvbmcgaGVpZ2h0KQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsK
ICAgICA6OmdsQ29weVRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNl
dCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6Omds
Q3VsbEZhY2UodW5zaWduZWQgbG9uZyBtb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y3Vs
bEZhY2UodW5zaWduZWQgbG9uZyBtb2RlKQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0
T2JqKTsKICAgICA6OmdsQ3VsbEZhY2UobW9kZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmdsRGVwdGhGdW5jKHVuc2lnbmVkIGxvbmcgZnVuYykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmRlcHRoRnVuYyh1bnNpZ25lZCBsb25nIGZ1bmMpCiB7CiAgICAgZW5zdXJlQ29udGV4dCht
X2NvbnRleHRPYmopOwogICAgIDo6Z2xEZXB0aEZ1bmMoZnVuYyk7CiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmdsRGVwdGhNYXNrKGJvb2wgZmxhZykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmRlcHRoTWFzayhib29sIGZsYWcpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRP
YmopOwogICAgIDo6Z2xEZXB0aE1hc2soZmxhZyk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmdsRGVwdGhSYW5nZShkb3VibGUgek5lYXIsIGRvdWJsZSB6RmFyKQordm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6ZGVwdGhSYW5nZShkb3VibGUgek5lYXIsIGRvdWJsZSB6RmFyKQogewogICAg
IGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsRGVwdGhSYW5nZSh6TmVhciwg
ekZhcik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsRGV0YWNoU2hhZGVyKENhbnZh
c1Byb2dyYW0qIHByb2dyYW0sIENhbnZhc1NoYWRlciogc2hhZGVyKQordm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6ZGV0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIENhbnZhc1NoYWRl
ciogc2hhZGVyKQogewogICAgIGlmICghcHJvZ3JhbSB8fCAhc2hhZGVyKQogICAgICAgICByZXR1
cm47CkBAIC0zNjQsNTUgKzM2NCw1NSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbERldGFj
aFNoYWRlcihDCiAgICAgOjpnbERldGFjaFNoYWRlcigoR0x1aW50KSBwcm9ncmFtLT5vYmplY3Qo
KSwgKEdMdWludCkgc2hhZGVyLT5vYmplY3QoKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmdsRGlzYWJsZSh1bnNpZ25lZCBsb25nIGNhcCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmRpc2FibGUodW5zaWduZWQgbG9uZyBjYXApCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRl
eHRPYmopOwogICAgIDo6Z2xEaXNhYmxlKGNhcCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmdsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KHVuc2lnbmVkIGxvbmcgaW5kZXgpCit2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkodW5zaWduZWQgbG9u
ZyBpbmRleCkKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbERp
c2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpbmRleCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmdsRHJhd0FycmF5cyh1bnNpZ25lZCBsb25nIG1vZGUsIGxvbmcgZmlyc3QsIHVuc2lnbmVk
IGxvbmcgY291bnQpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkcmF3QXJyYXlzKHVuc2lnbmVk
IGxvbmcgbW9kZSwgbG9uZyBmaXJzdCwgdW5zaWduZWQgbG9uZyBjb3VudCkKIHsKICAgICBlbnN1
cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbERyYXdBcnJheXMobW9kZSwgZmlyc3Qs
IGNvdW50KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xEcmF3RWxlbWVudHModW5z
aWduZWQgbG9uZyBtb2RlLCB1bnNpZ25lZCBsb25nIGNvdW50LCB1bnNpZ25lZCBsb25nIHR5cGUs
IHZvaWQqIGFycmF5KQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0VsZW1lbnRzKHVuc2ln
bmVkIGxvbmcgbW9kZSwgdW5zaWduZWQgbG9uZyBjb3VudCwgdW5zaWduZWQgbG9uZyB0eXBlLCB2
b2lkKiBhcnJheSkKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpn
bERyYXdFbGVtZW50cyhtb2RlLCBjb3VudCwgdHlwZSwgYXJyYXkpOwogfQogCi12b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpnbEVuYWJsZSh1bnNpZ25lZCBsb25nIGNhcCkKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmVuYWJsZSh1bnNpZ25lZCBsb25nIGNhcCkKIHsKICAgICBlbnN1cmVDb250ZXh0
KG1fY29udGV4dE9iaik7CiAgICAgOjpnbEVuYWJsZShjYXApOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpnbEVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHVuc2lnbmVkIGxvbmcgaW5kZXgp
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjplbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh1bnNpZ25l
ZCBsb25nIGluZGV4KQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6
OmdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaW5kZXgpOwogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpnbEZpbmlzaCgpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpmaW5pc2goKQogewog
ICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsRmluaXNoKCk7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsRmx1c2goKQordm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6Zmx1c2goKQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6Omds
Rmx1c2goKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xGcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1
bnNpZ25lZCBsb25nIHJlbmRlcmJ1ZmZlcnRhcmdldCwgQ2FudmFzUmVuZGVyYnVmZmVyKiBidWZm
ZXIpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih1bnNp
Z25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25n
IHJlbmRlcmJ1ZmZlcnRhcmdldCwgQ2FudmFzUmVuZGVyYnVmZmVyKiBidWZmZXIpCiB7CiAgICAg
aWYgKCFidWZmZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTQyMSw3ICs0MjEsNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpnbEZyYW1lYnVmZmVyUmVuCiAgICAgOjpnbEZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyRVhUKHRhcmdldCwgYXR0YWNobWVudCwgcmVuZGVyYnVmZmVydGFyZ2V0LCAoR0x1
aW50KSBidWZmZXItPm9iamVjdCgpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xG
cmFtZWJ1ZmZlclRleHR1cmUyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBh
dHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHRleHRhcmdldCwgQ2FudmFzVGV4dHVyZSogdGV4dHVy
ZSwgbG9uZyBsZXZlbCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmZyYW1lYnVmZmVyVGV4dHVy
ZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2ln
bmVkIGxvbmcgdGV4dGFyZ2V0LCBDYW52YXNUZXh0dXJlKiB0ZXh0dXJlLCBsb25nIGxldmVsKQog
ewogICAgIGlmICghdGV4dHVyZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDMwLDE5ICs0MzAsMTkg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xGcmFtZWJ1ZmZlclRleAogICAgIDo6Z2xGcmFt
ZWJ1ZmZlclRleHR1cmUyREVYVCh0YXJnZXQsIGF0dGFjaG1lbnQsIHRleHRhcmdldCwgKEdMdWlu
dCkgdGV4dHVyZS0+b2JqZWN0KCksIGxldmVsKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6Z2xGcm9udEZhY2UodW5zaWduZWQgbG9uZyBtb2RlKQordm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6ZnJvbnRGYWNlKHVuc2lnbmVkIGxvbmcgbW9kZSkKIHsKICAgICBlbnN1cmVDb250ZXh0KG1f
Y29udGV4dE9iaik7CiAgICAgOjpnbEZyb250RmFjZShtb2RlKTsKIH0KIAotdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6Z2xHZW5lcmF0ZU1pcG1hcCh1bnNpZ25lZCBsb25nIHRhcmdldCkKK3ZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OmdlbmVyYXRlTWlwbWFwKHVuc2lnbmVkIGxvbmcgdGFyZ2V0KQog
ewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsR2VuZXJhdGVNaXBt
YXBFWFQodGFyZ2V0KTsKIH0KIAotaW50IEdyYXBoaWNzQ29udGV4dDNEOjpnbEdldEF0dHJpYkxv
Y2F0aW9uKENhbnZhc1Byb2dyYW0qIHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkKK2ludCBH
cmFwaGljc0NvbnRleHQzRDo6Z2V0QXR0cmliTG9jYXRpb24oQ2FudmFzUHJvZ3JhbSogcHJvZ3Jh
bSwgY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmICghcHJvZ3JhbSkKICAgICAgICAgcmV0
dXJuIC0xOwpAQCAtNDUxLDI1ICs0NTEsMjUgQEAgaW50IEdyYXBoaWNzQ29udGV4dDNEOjpnbEdl
dEF0dHJpYkxvY2F0aQogICAgIHJldHVybiA6OmdsR2V0QXR0cmliTG9jYXRpb24oKEdMdWludCkg
cHJvZ3JhbS0+b2JqZWN0KCksIG5hbWUudXRmOCgpLmRhdGEoKSk7CiB9CiAKLXVuc2lnbmVkIGxv
bmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdsR2V0RXJyb3IoKQordW5zaWduZWQgbG9uZyBHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0RXJyb3IoKQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2Jq
KTsKICAgICByZXR1cm4gOjpnbEdldEVycm9yKCk7CiB9CiAKLVN0cmluZyBHcmFwaGljc0NvbnRl
eHQzRDo6Z2xHZXRTdHJpbmcodW5zaWduZWQgbG9uZyBuYW1lKQorU3RyaW5nIEdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRTdHJpbmcodW5zaWduZWQgbG9uZyBuYW1lKQogewogICAgIGVuc3VyZUNvbnRl
eHQobV9jb250ZXh0T2JqKTsKICAgICByZXR1cm4gU3RyaW5nKChjb25zdCBjaGFyKikgOjpnbEdl
dFN0cmluZyhuYW1lKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsSGludCh1bnNp
Z25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBtb2RlKQordm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6aGludCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBtb2RlKQogewog
ICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsSGludCh0YXJnZXQsIG1v
ZGUpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnbElzQnVmZmVyKENhbnZhc0J1ZmZl
ciogYnVmZmVyKQorYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNCdWZmZXIoQ2FudmFzQnVmZmVy
KiBidWZmZXIpCiB7CiAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTQ3OCwxMyArNDc4LDEzIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdsSXNCdWZmZXIoQ2Fu
dmEKICAgICByZXR1cm4gOjpnbElzQnVmZmVyKChHTHVpbnQpIGJ1ZmZlci0+b2JqZWN0KCkpOwog
fQogCi1ib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnbElzRW5hYmxlZCh1bnNpZ25lZCBsb25nIGNh
cCkKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzRW5hYmxlZCh1bnNpZ25lZCBsb25nIGNhcCkK
IHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgcmV0dXJuIDo6Z2xJc0Vu
YWJsZWQoY2FwKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2xJc0ZyYW1lYnVmZmVy
KENhbnZhc0ZyYW1lYnVmZmVyKiBmcmFtZWJ1ZmZlcikKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0Q6
OmlzRnJhbWVidWZmZXIoQ2FudmFzRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQogewogICAgIGlm
ICghZnJhbWVidWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ5Myw3ICs0OTMsNyBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnbElzRnJhbWVidWZmZXIoCiAgICAgcmV0dXJuIDo6
Z2xJc0ZyYW1lYnVmZmVyRVhUKChHTHVpbnQpIGZyYW1lYnVmZmVyLT5vYmplY3QoKSk7CiB9CiAK
LWJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdsSXNQcm9ncmFtKENhbnZhc1Byb2dyYW0qIHByb2dy
YW0pCitib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc1Byb2dyYW0oQ2FudmFzUHJvZ3JhbSogcHJv
Z3JhbSkKIHsKICAgICBpZiAoIXByb2dyYW0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUw
Miw3ICs1MDIsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnbElzUHJvZ3JhbShDYW52CiAg
ICAgcmV0dXJuIDo6Z2xJc1Byb2dyYW0oKEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0KCkpOwogfQog
Ci1ib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnbElzUmVuZGVyYnVmZmVyKENhbnZhc1JlbmRlcmJ1
ZmZlciogcmVuZGVyYnVmZmVyKQorYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNSZW5kZXJidWZm
ZXIoQ2FudmFzUmVuZGVyYnVmZmVyKiByZW5kZXJidWZmZXIpCiB7CiAgICAgaWYgKCFyZW5kZXJi
dWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUxMSw3ICs1MTEsNyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpnbElzUmVuZGVyYnVmZmVyCiAgICAgcmV0dXJuIDo6Z2xJc1JlbmRl
cmJ1ZmZlckVYVCgoR0x1aW50KSByZW5kZXJidWZmZXItPm9iamVjdCgpKTsKIH0KIAotYm9vbCBH
cmFwaGljc0NvbnRleHQzRDo6Z2xJc1NoYWRlcihDYW52YXNTaGFkZXIqIHNoYWRlcikKK2Jvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OmlzU2hhZGVyKENhbnZhc1NoYWRlciogc2hhZGVyKQogewogICAg
IGlmICghc2hhZGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01MjAsNyArNTIwLDcgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2xJc1NoYWRlcihDYW52YQogICAgIHJldHVybiA6Omds
SXNTaGFkZXIoKEdMdWludCkgc2hhZGVyLT5vYmplY3QoKSk7CiB9CiAKLWJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmdsSXNUZXh0dXJlKENhbnZhc1RleHR1cmUqIHRleHR1cmUpCitib29sIEdyYXBo
aWNzQ29udGV4dDNEOjppc1RleHR1cmUoQ2FudmFzVGV4dHVyZSogdGV4dHVyZSkKIHsKICAgICBp
ZiAoIXRleHR1cmUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUyOSwxMyArNTI5LDEzIEBA
IGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdsSXNUZXh0dXJlKENhbnYKICAgICByZXR1cm4gOjpn
bElzVGV4dHVyZSgoR0x1aW50KSB0ZXh0dXJlLT5vYmplY3QoKSk7CiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmdsTGluZVdpZHRoKGRvdWJsZSB3aWR0aCkKK3ZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OmxpbmVXaWR0aChkb3VibGUgd2lkdGgpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2Nv
bnRleHRPYmopOwogICAgIDo6Z2xMaW5lV2lkdGgoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHdpZHRoKSk7
CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsTGlua1Byb2dyYW0oQ2FudmFzUHJvZ3Jh
bSogcHJvZ3JhbSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmxpbmtQcm9ncmFtKENhbnZhc1By
b2dyYW0qIHByb2dyYW0pCiB7CiAgICAgaWYgKCFwcm9ncmFtKQogICAgICAgICByZXR1cm47CkBA
IC01NDQsNDQgKzU0NCw0NCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbExpbmtQcm9ncmFt
KENhCiAgICAgOjpnbExpbmtQcm9ncmFtKChHTHVpbnQpIHByb2dyYW0tPm9iamVjdCgpKTsKIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xQaXhlbFN0b3JlaSh1bnNpZ25lZCBsb25nIHBu
YW1lLCBsb25nIHBhcmFtKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGl4ZWxTdG9yZWkodW5z
aWduZWQgbG9uZyBwbmFtZSwgbG9uZyBwYXJhbSkKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29u
dGV4dE9iaik7CiAgICAgOjpnbFBpeGVsU3RvcmVpKHBuYW1lLCBwYXJhbSk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OmdsUG9seWdvbk9mZnNldChkb3VibGUgZmFjdG9yLCBkb3VibGUg
dW5pdHMpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwb2x5Z29uT2Zmc2V0KGRvdWJsZSBmYWN0
b3IsIGRvdWJsZSB1bml0cykKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAg
ICAgOjpnbFBvbHlnb25PZmZzZXQoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhY3RvciksIHN0YXRpY19j
YXN0PGZsb2F0Pih1bml0cykpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbFJlbGVh
c2VTaGFkZXJDb21waWxlcigpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWxlYXNlU2hhZGVy
Q29tcGlsZXIoKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBk
ZXNrdG9wIE9wZW5HTC4gV2UgbmVlZCB0byBoYXZlIGlmZGVmcyBmb3IgdGhlIGRpZmZlcmVudCBH
TCB2YXJpYW50cwogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICAvLzo6Z2xS
ZWxlYXNlU2hhZGVyQ29tcGlsZXIoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xS
ZW5kZXJidWZmZXJTdG9yYWdlKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGlu
dGVybmFsZm9ybWF0LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkK
K3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9u
ZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lk
dGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0
T2JqKTsKICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZUVYVCh0YXJnZXQsIGludGVybmFsZm9y
bWF0LCB3aWR0aCwgaGVpZ2h0KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xTYW1w
bGVDb3ZlcmFnZShkb3VibGUgdmFsdWUsIGJvb2wgaW52ZXJ0KQordm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6c2FtcGxlQ292ZXJhZ2UoZG91YmxlIHZhbHVlLCBib29sIGludmVydCkKIHsKICAgICBl
bnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbFNhbXBsZUNvdmVyYWdlKHN0YXRp
Y19jYXN0PGZsb2F0Pih2YWx1ZSksIGludmVydCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmdsU2Npc3Nvcihsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWdu
ZWQgbG9uZyBoZWlnaHQpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29yKGxvbmcgeCwg
bG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkKIHsKICAg
ICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbFNjaXNzb3IoeCwgeSwgd2lk
dGgsIGhlaWdodCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsU2hhZGVyU291cmNl
KENhbnZhc1NoYWRlciogc2hhZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3ZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnNoYWRlclNvdXJjZShDYW52YXNTaGFkZXIqIHNoYWRlciwgY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCiB7CiAgICAgaWYgKCFzaGFkZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTU5
NCw0NCArNTk0LDQ0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsU2hhZGVyU291cmNlKEMK
ICAgICA6OmdsU2hhZGVyU291cmNlKChHTHVpbnQpIHNoYWRlci0+b2JqZWN0KCksIDEsICZzLCAm
bGVuZ3RoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xTdGVuY2lsRnVuYyh1bnNp
Z25lZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1bnNpZ25lZCBsb25nIG1hc2spCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyh1bnNpZ25lZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1
bnNpZ25lZCBsb25nIG1hc2spCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwog
ICAgIDo6Z2xTdGVuY2lsRnVuYyhmdW5jLCByZWYsIG1hc2spOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpnbFN0ZW5jaWxGdW5jU2VwYXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1bnNp
Z25lZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1bnNpZ25lZCBsb25nIG1hc2spCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuY1NlcGFyYXRlKHVuc2lnbmVkIGxvbmcgZmFjZSwgdW5z
aWduZWQgbG9uZyBmdW5jLCBsb25nIHJlZiwgdW5zaWduZWQgbG9uZyBtYXNrKQogewogICAgIGVu
c3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsU3RlbmNpbEZ1bmNTZXBhcmF0ZShm
YWNlLCBmdW5jLCByZWYsIG1hc2spOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbFN0
ZW5jaWxNYXNrKHVuc2lnbmVkIGxvbmcgbWFzaykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnN0
ZW5jaWxNYXNrKHVuc2lnbmVkIGxvbmcgbWFzaykKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29u
dGV4dE9iaik7CiAgICAgOjpnbFN0ZW5jaWxNYXNrKG1hc2spOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpnbFN0ZW5jaWxNYXNrU2VwYXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1bnNp
Z25lZCBsb25nIG1hc2spCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsTWFza1NlcGFy
YXRlKHVuc2lnbmVkIGxvbmcgZmFjZSwgdW5zaWduZWQgbG9uZyBtYXNrKQogewogICAgIGVuc3Vy
ZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsU3RlbmNpbE1hc2tTZXBhcmF0ZShmYWNl
LCBtYXNrKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xTdGVuY2lsT3AodW5zaWdu
ZWQgbG9uZyBmYWlsLCB1bnNpZ25lZCBsb25nIHpmYWlsLCB1bnNpZ25lZCBsb25nIHpwYXNzKQor
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbE9wKHVuc2lnbmVkIGxvbmcgZmFpbCwgdW5z
aWduZWQgbG9uZyB6ZmFpbCwgdW5zaWduZWQgbG9uZyB6cGFzcykKIHsKICAgICBlbnN1cmVDb250
ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbFN0ZW5jaWxPcChmYWlsLCB6ZmFpbCwgenBhc3Mp
OwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbFN0ZW5jaWxPcFNlcGFyYXRlKHVuc2ln
bmVkIGxvbmcgZmFjZSwgdW5zaWduZWQgbG9uZyBmYWlsLCB1bnNpZ25lZCBsb25nIHpmYWlsLCB1
bnNpZ25lZCBsb25nIHpwYXNzKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbE9wU2Vw
YXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1bnNpZ25lZCBsb25nIGZhaWwsIHVuc2lnbmVkIGxv
bmcgemZhaWwsIHVuc2lnbmVkIGxvbmcgenBhc3MpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2Nv
bnRleHRPYmopOwogICAgIDo6Z2xTdGVuY2lsT3BTZXBhcmF0ZShmYWNlLCBmYWlsLCB6ZmFpbCwg
enBhc3MpOwogfQogCiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVGV4UGFyYW1ldGVyKHVu
c2lnbmVkIHRhcmdldCwgdW5zaWduZWQgcG5hbWUsIENhbnZhc051bWJlckFycmF5KiBhcnJheSkK
K3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnRleFBhcmFtZXRlcih1bnNpZ25lZCB0YXJnZXQsIHVu
c2lnbmVkIHBuYW1lLCBDYW52YXNOdW1iZXJBcnJheSogYXJyYXkpCiB7CiAgICAgaWYgKCFhcnJh
eSB8fCAhYXJyYXktPmRhdGEoKS5zaXplKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTY0MCwxMyAr
NjQwLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVGV4UGFyYW1ldGVyKHUKICAgICA6
OmdsVGV4UGFyYW1ldGVyZnYodGFyZ2V0LCBwbmFtZSwgJihhcnJheS0+ZGF0YSgpWzBdKSk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVGV4UGFyYW1ldGVyKHVuc2lnbmVkIHRhcmdl
dCwgdW5zaWduZWQgcG5hbWUsIGRvdWJsZSB2YWx1ZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnRleFBhcmFtZXRlcih1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBkb3VibGUgdmFs
dWUpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xUZXhQYXJh
bWV0ZXJmKHRhcmdldCwgcG5hbWUsIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbFVuaWZvcm0obG9uZyBsb2NhdGlvbiwgQ2FudmFzTnVt
YmVyQXJyYXkqIGFycmF5KQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybShsb25nIGxv
Y2F0aW9uLCBDYW52YXNOdW1iZXJBcnJheSogYXJyYXkpCiB7CiAgICAgaWYgKCFhcnJheSB8fCAh
YXJyYXktPmRhdGEoKS5zaXplKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTY1NSw1NSArNjU1LDU1
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVW5pZm9ybShsb25nIGwKICAgICA6OmdsVW5p
Zm9ybTFmdihsb2NhdGlvbiwgYXJyYXktPmRhdGEoKS5zaXplKCksICYoYXJyYXktPmRhdGEoKVsw
XSkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbFVuaWZvcm0obG9uZyBsb2NhdGlv
biwgZmxvYXQgdjApCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcgbG9jYXRp
b24sIGZsb2F0IHYwKQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6
OmdsVW5pZm9ybTFmKGxvY2F0aW9uLCB2MCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmdsVW5pZm9ybShsb25nIGxvY2F0aW9uLCBmbG9hdCB2MCwgZmxvYXQgdjEpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwLCBmbG9hdCB2MSkK
IHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbFVuaWZvcm0yZihs
b2NhdGlvbiwgdjAsIHYxKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xVbmlmb3Jt
KGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQgdjIpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcgbG9jYXRpb24sIGZsb2F0IHYwLCBmbG9hdCB2MSwg
ZmxvYXQgdjIpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xV
bmlmb3JtM2YobG9jYXRpb24sIHYwLCB2MSwgdjIpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpnbFVuaWZvcm0obG9uZyBsb2NhdGlvbiwgZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2
MiwgZmxvYXQgdjMpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcgbG9jYXRp
b24sIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQgdjIsIGZsb2F0IHYzKQogewogICAgIGVuc3Vy
ZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsVW5pZm9ybTRmKGxvY2F0aW9uLCB2MCwg
djEsIHYyLCB2Myk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVW5pZm9ybShsb25n
IGxvY2F0aW9uLCBpbnQgdjApCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcg
bG9jYXRpb24sIGludCB2MCkKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAg
ICAgOjpnbFVuaWZvcm0xaShsb2NhdGlvbiwgdjApOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpnbFVuaWZvcm0obG9uZyBsb2NhdGlvbiwgaW50IHYwLCBpbnQgdjEpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcgbG9jYXRpb24sIGludCB2MCwgaW50IHYxKQogewog
ICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsVW5pZm9ybTJpKGxvY2F0
aW9uLCB2MCwgdjEpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbFVuaWZvcm0obG9u
ZyBsb2NhdGlvbiwgaW50IHYwLCBpbnQgdjEsIGludCB2MikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnVuaWZvcm0obG9uZyBsb2NhdGlvbiwgaW50IHYwLCBpbnQgdjEsIGludCB2MikKIHsKICAg
ICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbFVuaWZvcm0zaShsb2NhdGlv
biwgdjAsIHYxLCB2Mik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVW5pZm9ybShs
b25nIGxvY2F0aW9uLCBpbnQgdjAsIGludCB2MSwgaW50IHYyLCBpbnQgdjMpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjp1bmlmb3JtKGxvbmcgbG9jYXRpb24sIGludCB2MCwgaW50IHYxLCBpbnQg
djIsIGludCB2MykKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpn
bFVuaWZvcm00aShsb2NhdGlvbiwgdjAsIHYxLCB2MiwgdjMpOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpnbFVuaWZvcm1NYXRyaXgobG9uZyBsb2NhdGlvbiwgbG9uZyBjb3VudCwgYm9v
bCB0cmFuc3Bvc2UsIENhbnZhc051bWJlckFycmF5KiBhcnJheSkKK3ZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnVuaWZvcm1NYXRyaXgobG9uZyBsb2NhdGlvbiwgbG9uZyBjb3VudCwgYm9vbCB0cmFu
c3Bvc2UsIENhbnZhc051bWJlckFycmF5KiBhcnJheSkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgbmV2ZXIgaGF2ZSB0byBkZWFsIHdpdGggYmFkIHBhcmFtcy4gVGhleSBzaG91bGQgYmUg
Y2hlY2tlZCBoaWdoZXIgYW5kIHRocm93IGV4Y2VwdGlvbnMKICAgICBpZiAoIWFycmF5IHx8ICFh
cnJheS0+ZGF0YSgpLnNpemUoKSkKQEAgLTcyNSw3ICs3MjUsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpnbFVuaWZvcm1NYXRyaXgoCiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpnbFVuaWZvcm1NYXRyaXgobG9uZyBsb2NhdGlvbiwgYm9vbCB0cmFuc3Bvc2UsIGNvbnN0
IFZlY3RvcjxXZWJLaXRDU1NNYXRyaXgqPiYgYXJyYXkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNE
Ojp1bmlmb3JtTWF0cml4KGxvbmcgbG9jYXRpb24sIGJvb2wgdHJhbnNwb3NlLCBjb25zdCBWZWN0
b3I8V2ViS2l0Q1NTTWF0cml4Kj4mIGFycmF5KQogewogICAgIGludCBjb3VudCA9IGFycmF5LnNp
emUoKTsKICAgICBmbG9hdCogZmxvYXRzID0gKGZsb2F0KikgbWFsbG9jKGNvdW50ICogMTYgKiBz
aXplb2YoZmxvYXQpKTsKQEAgLTc1Myw3ICs3NTMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpnbFVuaWZvcm1NYXRyaXgoCiAgICAgZnJlZShmbG9hdHMpOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpnbFVuaWZvcm1NYXRyaXgobG9uZyBsb2NhdGlvbiwgYm9vbCB0cmFuc3Bvc2Us
IGNvbnN0IFdlYktpdENTU01hdHJpeCogbWF0cml4KQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
dW5pZm9ybU1hdHJpeChsb25nIGxvY2F0aW9uLCBib29sIHRyYW5zcG9zZSwgY29uc3QgV2ViS2l0
Q1NTTWF0cml4KiBtYXRyaXgpCiB7CiAgICAgZmxvYXQqIGZsb2F0cyA9IChmbG9hdCopIG1hbGxv
YygxNiAqIHNpemVvZihmbG9hdCkpOwogICAgIApAQCAtNzc4LDcgKzc3OCw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OmdsVW5pZm9ybU1hdHJpeCgKICAgICBmcmVlKGZsb2F0cyk7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVXNlUHJvZ3JhbShDYW52YXNQcm9ncmFtKiBwcm9n
cmFtKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dXNlUHJvZ3JhbShDYW52YXNQcm9ncmFtKiBw
cm9ncmFtKQogewogICAgIGlmICghcHJvZ3JhbSkKICAgICAgICAgcmV0dXJuOwpAQCAtNzg3LDcg
Kzc4Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVXNlUHJvZ3JhbShDYW4KICAgICA6
OmdsVXNlUHJvZ3JhbSgoR0x1aW50KSBwcm9ncmFtLT5vYmplY3QoKSk7CiB9CiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OmdsVmFsaWRhdGVQcm9ncmFtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0p
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZVByb2dyYW0oQ2FudmFzUHJvZ3JhbSog
cHJvZ3JhbSkKIHsKICAgICBpZiAoIXByb2dyYW0pCiAgICAgICAgIHJldHVybjsKQEAgLTc5Niwz
MSArNzk2LDMxIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVmFsaWRhdGVQcm9ncmEKICAg
ICA6OmdsVmFsaWRhdGVQcm9ncmFtKChHTHVpbnQpIHByb2dyYW0tPm9iamVjdCgpKTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2xWZXJ0ZXhBdHRyaWIodW5zaWduZWQgbG9uZyBpbmR4
LCBmbG9hdCB2MCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJpYih1bnNpZ25l
ZCBsb25nIGluZHgsIGZsb2F0IHYwKQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2Jq
KTsKICAgICA6OmdsVmVydGV4QXR0cmliMWYoaW5keCwgdjApOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpnbFZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25nIGluZHgsIGZsb2F0IHYwLCBm
bG9hdCB2MSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJpYih1bnNpZ25lZCBs
b25nIGluZHgsIGZsb2F0IHYwLCBmbG9hdCB2MSkKIHsKICAgICBlbnN1cmVDb250ZXh0KG1fY29u
dGV4dE9iaik7CiAgICAgOjpnbFZlcnRleEF0dHJpYjJmKGluZHgsIHYwLCB2MSk7CiB9CiAKLXZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVmVydGV4QXR0cmliKHVuc2lnbmVkIGxvbmcgaW5keCwg
ZmxvYXQgdjAsIGZsb2F0IHYxLCBmbG9hdCB2MikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZl
cnRleEF0dHJpYih1bnNpZ25lZCBsb25nIGluZHgsIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQg
djIpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xWZXJ0ZXhB
dHRyaWIzZihpbmR4LCB2MCwgdjEsIHYyKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
Z2xWZXJ0ZXhBdHRyaWIodW5zaWduZWQgbG9uZyBpbmR4LCBmbG9hdCB2MCwgZmxvYXQgdjEsIGZs
b2F0IHYyLCBmbG9hdCB2MykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJpYih1
bnNpZ25lZCBsb25nIGluZHgsIGZsb2F0IHYwLCBmbG9hdCB2MSwgZmxvYXQgdjIsIGZsb2F0IHYz
KQogewogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsVmVydGV4QXR0
cmliNGYoaW5keCwgdjAsIHYxLCB2MiwgdjMpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpnbFZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25nIGluZHgsIENhbnZhc051bWJlckFycmF5KiBh
cnJheSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJpYih1bnNpZ25lZCBsb25n
IGluZHgsIENhbnZhc051bWJlckFycmF5KiBhcnJheSkKIHsKICAgICBpZiAoIWFycmF5IHx8ICFh
cnJheS0+ZGF0YSgpLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtODMxLDcgKzgzMSw3IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdsVmVydGV4QXR0cmliKHUKIH0KIAogCi12b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpnbFZlcnRleEF0dHJpYlBvaW50ZXIodW5zaWduZWQgbG9uZyBpbmR4
LCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgdHlwZSwgYm9vbCBub3JtYWxpemVkLCB1bnNpZ25l
ZCBsb25nIHN0cmlkZSwgQ2FudmFzTnVtYmVyQXJyYXkqIGFycmF5KQordm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6dmVydGV4QXR0cmliUG9pbnRlcih1bnNpZ25lZCBsb25nIGluZHgsIGxvbmcgc2l6
ZSwgdW5zaWduZWQgbG9uZyB0eXBlLCBib29sIG5vcm1hbGl6ZWQsIHVuc2lnbmVkIGxvbmcgc3Ry
aWRlLCBDYW52YXNOdW1iZXJBcnJheSogYXJyYXkpCiB7CiAgICAgZW5zdXJlQ29udGV4dChtX2Nv
bnRleHRPYmopOwogICAgIApAQCAtODQ3LDcgKzg0Nyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmdsVmVydGV4QXR0cmliUG8KICAgICA6OmdsVmVydGV4QXR0cmliUG9pbnRlcihpbmR4LCBz
aXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIGFycmF5ID8gJihtX3ZlcnRleEFycmF5W2lu
ZHhdWzBdKSA6IDApOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnbFZpZXdwb3J0KGxv
bmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkK
K3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25l
ZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkKIHsKICAgICBlbnN1cmVDb250ZXh0
KG1fY29udGV4dE9iaik7CiAgICAgOjpnbFZpZXdwb3J0KHN0YXRpY19jYXN0PEdMaW50Pih4KSwg
c3RhdGljX2Nhc3Q8R0xpbnQ+KHkpLCBzdGF0aWNfY2FzdDxHTHNpemVpPih3aWR0aCksIHN0YXRp
Y19jYXN0PEdMc2l6ZWk+KGhlaWdodCkpOwpAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAgUGFzc1JlZlB0
cjxDYW52YXNOdW1iZXJBcnJheT4gR3JhcGhpY3NDbwogICAgIHJldHVybiBhcnJheTsKIH0KIAot
U3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnbEdldFByb2dyYW1JbmZvTG9nKENhbnZhc1Byb2dy
YW0qIHByb2dyYW0pCitTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZvTG9n
KENhbnZhc1Byb2dyYW0qIHByb2dyYW0pCiB7CiAgICAgaWYgKCFwcm9ncmFtKQogICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CkBAIC0xMTg5LDcgKzExODksNyBAQCBQYXNzUmVmUHRyPENhbnZhc051
bWJlckFycmF5PiBHcmFwaGljc0NvCiAgICAgcmV0dXJuIGFycmF5OwogfQogCi1TdHJpbmcgR3Jh
cGhpY3NDb250ZXh0M0Q6OmdsR2V0U2hhZGVySW5mb0xvZyhDYW52YXNTaGFkZXIqIHNoYWRlcikK
K1N0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVySW5mb0xvZyhDYW52YXNTaGFkZXIq
IHNoYWRlcikKIHsKICAgICBpZiAoIXNoYWRlcikKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwpA
QCAtMTIwNiw3ICsxMjA2LDcgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnbEdldFNoYWRl
ckluZgogICAgIHJldHVybiBzOwogfQogCi1TdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdsR2V0
U2hhZGVyU291cmNlKENhbnZhc1NoYWRlciogc2hhZGVyKQorU3RyaW5nIEdyYXBoaWNzQ29udGV4
dDNEOjpnZXRTaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiBzaGFkZXIpCiB7CiAgICAgaWYgKCFz
aGFkZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>