<?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>233341</bug_id>
          
          <creation_ts>2021-11-18 16:22:22 -0800</creation_ts>
          <short_desc>SubSpace constructors should take a const HeapCellType&amp;  instead of a HeapCellType*.</short_desc>
          <delta_ts>2021-11-18 19:03: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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233335</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816681</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-11-18 16:22:22 -0800</bug_when>
    <thetext>This helps document that the HeapCellTypes are immutable once they are instantiated, and that SubSpaces won&apos;t be modifying them.

Also remove the const on CellAttributes return values since it is not needed nor meaningful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816682</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-18 16:22:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/85573277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816689</commentid>
    <comment_count>2</comment_count>
      <attachid>444756</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-11-18 16:30:33 -0800</bug_when>
    <thetext>Created attachment 444756
[fast-cq] proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816709</commentid>
    <comment_count>3</comment_count>
      <attachid>444756</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-18 17:45:49 -0800</bug_when>
    <thetext>Comment on attachment 444756
[fast-cq] proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816725</commentid>
    <comment_count>4</comment_count>
      <attachid>444756</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-11-18 19:01:36 -0800</bug_when>
    <thetext>Comment on attachment 444756
[fast-cq] proposed patch.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816727</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-18 19:03:56 -0800</bug_when>
    <thetext>Committed r286042 (244430@main): &lt;https://commits.webkit.org/244430@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444756.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444756</attachid>
            <date>2021-11-18 16:30:33 -0800</date>
            <delta_ts>2021-11-18 19:03:58 -0800</delta_ts>
            <desc>[fast-cq] proposed patch.</desc>
            <filename>bug-233341.patch</filename>
            <type>text/plain</type>
            <size>202311</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg2MDM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBA
CisyMDIxLTExLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBT
dWJTcGFjZSBjb25zdHJ1Y3RvcnMgc2hvdWxkIHRha2UgYSBjb25zdCBIZWFwQ2VsbFR5cGUmIGlu
c3RlYWQgb2YgYSBIZWFwQ2VsbFR5cGUqLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzQxCisgICAgICAgIHJkYXI6Ly84NTU3MzI3NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaGVscHMgZG9j
dW1lbnQgdGhhdCBIZWFwQ2VsbFR5cGVzIGFyZSBpbW11dGFibGUgb25jZSB0aGV5IGFyZSBpbnN0
YW50aWF0ZWQsCisgICAgICAgIGFuZCB0aGF0IFN1YlNwYWNlcyB3b24ndCBiZSBtb2RpZnlpbmcg
dGhlbS4KKworICAgICAgICBBbHNvIHJlbW92ZSB0aGUgY29uc3Qgb24gQ2VsbEF0dHJpYnV0ZXMg
cmV0dXJuIHZhbHVlcyBzaW5jZSBpdCBpcyBub3QgbmVlZGVkIG5vcgorICAgICAgICBtZWFuaW5n
ZnVsLgorCisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5oOgorICAgICAgICAoSlNDOjpC
bG9ja0RpcmVjdG9yeTo6YXR0cmlidXRlcyBjb25zdCk6CisgICAgICAgICogaGVhcC9Db21wbGV0
ZVN1YnNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29tcGxldGVTdWJzcGFjZTo6Q29tcGxldGVT
dWJzcGFjZSk6CisgICAgICAgICogaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmg6CisgICAgICAgICog
aGVhcC9IZWFwQ2VsbFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpIZWFwQ2VsbFR5cGU6OmZpbmlz
aFN3ZWVwIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SGVhcENlbGxUeXBlOjpkZXN0cm95IGNvbnN0
KToKKyAgICAgICAgKEpTQzo6SGVhcENlbGxUeXBlOjpmaW5pc2hTd2VlcCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkhlYXBDZWxsVHlwZTo6ZGVzdHJveSk6IERlbGV0ZWQuCisgICAgICAgICog
aGVhcC9IZWFwQ2VsbFR5cGUuaDoKKyAgICAgICAgKEpTQzo6SGVhcENlbGxUeXBlOjphdHRyaWJ1
dGVzIGNvbnN0KToKKyAgICAgICAgKiBoZWFwL0lzb0hlYXBDZWxsVHlwZS5jcHA6CisgICAgICAg
IChKU0M6Oklzb0hlYXBDZWxsVHlwZTo6ZmluaXNoU3dlZXAgY29uc3QpOgorICAgICAgICAoSlND
OjpJc29IZWFwQ2VsbFR5cGU6OmRlc3Ryb3kgY29uc3QpOgorICAgICAgICAoSlNDOjpJc29IZWFw
Q2VsbFR5cGU6OmZpbmlzaFN3ZWVwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SXNvSGVhcENl
bGxUeXBlOjpkZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL0lzb0hlYXBDZWxsVHlw
ZS5oOgorICAgICAgICAqIGhlYXAvSXNvSW5saW5lZEhlYXBDZWxsVHlwZS5oOgorICAgICAgICAq
IGhlYXAvSXNvU3Vic3BhY2UuY3BwOgorICAgICAgICAoSlNDOjpJc29TdWJzcGFjZTo6SXNvU3Vi
c3BhY2UpOgorICAgICAgICAqIGhlYXAvSXNvU3Vic3BhY2UuaDoKKyAgICAgICAgKiBoZWFwL0lz
b1N1YnNwYWNlUGVyVk0uY3BwOgorICAgICAgICAoSlNDOjpJc29TdWJzcGFjZVBlclZNOjpmb3JW
TSk6CisgICAgICAgICogaGVhcC9Jc29TdWJzcGFjZVBlclZNLmg6CisgICAgICAgICogaGVhcC9N
YXJrZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6SGFuZGxlOjphdHRyaWJ1
dGVzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OmF0dHJpYnV0ZXMgY29uc3Qp
OgorICAgICAgICAqIGhlYXAvUHJlY2lzZUFsbG9jYXRpb24uaDoKKyAgICAgICAgKEpTQzo6UHJl
Y2lzZUFsbG9jYXRpb246OmF0dHJpYnV0ZXMgY29uc3QpOgorICAgICAgICAqIGhlYXAvU3Vic3Bh
Y2UuY3BwOgorICAgICAgICAoSlNDOjpTdWJzcGFjZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICog
aGVhcC9TdWJzcGFjZS5oOgorICAgICAgICAoSlNDOjpTdWJzcGFjZTo6aGVhcENlbGxUeXBlIGNv
bnN0KToKKyAgICAgICAgKiBoZWFwL1N1YnNwYWNlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpT
dWJzcGFjZTo6YXR0cmlidXRlcyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0Rlc3RydWN0
aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTRGVzdHJ1Y3RpYmxl
T2JqZWN0SGVhcENlbGxUeXBlOjpmaW5pc2hTd2VlcCBjb25zdCk6CisgICAgICAgIChKU0M6OkpT
RGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlOjpkZXN0cm95IGNvbnN0KToKKyAgICAgICAg
KEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGU6OmZpbmlzaFN3ZWVwKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGU6OmRl
c3Ryb3kpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6
Vk06OlZNKToKKwogMjAyMS0xMS0xOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIFByb3BlcnR5TWFwSGFzaFRhYmxlLmggdG8gUHJvcGVydHlUYWJsZS5o
IHRvIG1hdGNoIHRoZSBjbGFzcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Js
b2NrRGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
QmxvY2tEaXJlY3RvcnkuaAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzaHJpbmsoKTsKICAgICB2b2lkIGFzc2VydE5vVW5zd2VwdCgp
OwogICAgIHNpemVfdCBjZWxsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VsbFNpemU7IH0KLSAg
ICBjb25zdCBDZWxsQXR0cmlidXRlcyBhdHRyaWJ1dGVzKCkgY29uc3QgeyByZXR1cm4gbV9hdHRy
aWJ1dGVzOyB9CisgICAgQ2VsbEF0dHJpYnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJu
IG1fYXR0cmlidXRlczsgfQogICAgIGJvb2wgbmVlZHNEZXN0cnVjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fYXR0cmlidXRlcy5kZXN0cnVjdGlvbiA9PSBOZWVkc0Rlc3RydWN0aW9uOyB9CiAgICAg
RGVzdHJ1Y3Rpb25Nb2RlIGRlc3RydWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVz
LmRlc3RydWN0aW9uOyB9CiAgICAgSGVhcENlbGw6OktpbmQgY2VsbEtpbmQoKSBjb25zdCB7IHJl
dHVybiBtX2F0dHJpYnV0ZXMuY2VsbEtpbmQ7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotQ29tcGxldGVTdWJz
cGFjZTo6Q29tcGxldGVTdWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmIGhlYXAsIEhlYXBDZWxs
VHlwZSogaGVhcENlbGxUeXBlLCBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKiBhbGlnbmVkTWVtb3J5
QWxsb2NhdG9yKQorQ29tcGxldGVTdWJzcGFjZTo6Q29tcGxldGVTdWJzcGFjZShDU3RyaW5nIG5h
bWUsIEhlYXAmIGhlYXAsIGNvbnN0IEhlYXBDZWxsVHlwZSYgaGVhcENlbGxUeXBlLCBBbGlnbmVk
TWVtb3J5QWxsb2NhdG9yKiBhbGlnbmVkTWVtb3J5QWxsb2NhdG9yKQogICAgIDogU3Vic3BhY2Uo
bmFtZSwgaGVhcCkKIHsKICAgICBpbml0aWFsaXplKGhlYXBDZWxsVHlwZSwgYWxpZ25lZE1lbW9y
eUFsbG9jYXRvcik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1
YnNwYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxl
dGVTdWJzcGFjZS5oCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Db21wbGV0ZVN1YnNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBDb21wbGV0ZVN1YnNwYWNlIGZpbmFsIDogcHVibGlj
IFN1YnNwYWNlIHsKIHB1YmxpYzoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBDb21wbGV0ZVN1YnNw
YWNlKENTdHJpbmcgbmFtZSwgSGVhcCYsIEhlYXBDZWxsVHlwZSosIEFsaWduZWRNZW1vcnlBbGxv
Y2F0b3IqKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBDb21wbGV0ZVN1YnNwYWNlKENTdHJpbmcg
bmFtZSwgSGVhcCYsIGNvbnN0IEhlYXBDZWxsVHlwZSYsIEFsaWduZWRNZW1vcnlBbGxvY2F0b3Iq
KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB+Q29tcGxldGVTdWJzcGFjZSgpIGZpbmFsOwogCiAg
ICAgLy8gSW4gc29tZSBjb2RlIHBhdGhzLCB3ZSBuZWVkIGl0IHRvIGJlIGEgY29tcGlsZSBlcnJv
ciB0byBjYWxsIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2Ygb25lIG9mCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwQ2VsbFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBDZWxsVHlwZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBDZWxsVHlwZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNTYsMTIgKzU2LDEyIEBAIEhlYXBDZWxsVHlwZTo6fkhlYXBDZWxsVHlwZSgpCiB7CiB9CiAK
LXZvaWQgSGVhcENlbGxUeXBlOjpmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiBibG9j
aywgRnJlZUxpc3QqIGZyZWVMaXN0KQordm9pZCBIZWFwQ2VsbFR5cGU6OmZpbmlzaFN3ZWVwKE1h
cmtlZEJsb2NrOjpIYW5kbGUmIGJsb2NrLCBGcmVlTGlzdCogZnJlZUxpc3QpIGNvbnN0CiB7CiAg
ICAgYmxvY2suZmluaXNoU3dlZXBLbm93aW5nSGVhcENlbGxUeXBlKGZyZWVMaXN0LCBEZWZhdWx0
RGVzdHJveUZ1bmMoKSk7CiB9CiAKLXZvaWQgSGVhcENlbGxUeXBlOjpkZXN0cm95KFZNJiB2bSwg
SlNDZWxsKiBjZWxsKQordm9pZCBIZWFwQ2VsbFR5cGU6OmRlc3Ryb3koVk0mIHZtLCBKU0NlbGwq
IGNlbGwpIGNvbnN0CiB7CiAgICAgRGVmYXVsdERlc3Ryb3lGdW5jKCkodm0sIGNlbGwpOwogfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcENlbGxUeXBlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcENlbGxUeXBlLmgJKHJldmlzaW9u
IDI4NjAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBDZWxsVHlwZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiwxNCArMzYsMTQgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyk7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdmlydHVhbCB+SGVhcENlbGxUeXBlKCk7CiAKLSAgICBjb25zdCBDZWxsQXR0cmlidXRlcyBh
dHRyaWJ1dGVzKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVzOyB9CisgICAgQ2VsbEF0dHJp
YnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlczsgfQogCiAgICAg
Ly8gVGhlIHB1cnBvc2Ugb2Ygb3ZlcnJpZGluZyB0aGlzIGlzIHRvIHNwZWNpYWxpemUgdGhlIHN3
ZWVwIGZvciB5b3VyIGRlc3RydWN0b3JzLiBUaGlzIHdvbid0CiAgICAgLy8gYmUgY2FsbGVkIGZv
ciBuby1kZXN0cnVjdG9yIGJsb2Nrcy4gVGhpcyBtdXN0IGNhbGwgTWFya2VkQmxvY2s6OmZpbmlz
aFN3ZWVwS25vd2luZ1N1YnNwYWNlLgotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hTd2VlcChNYXJr
ZWRCbG9jazo6SGFuZGxlJiwgRnJlZUxpc3QqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoU3dl
ZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYsIEZyZWVMaXN0KikgY29uc3Q7CiAKICAgICAvLyBUaGVz
ZSBnZXQgY2FsbGVkIGZvciBsYXJnZSBvYmplY3RzLgotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95
KFZNJiwgSlNDZWxsKik7CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koVk0mLCBKU0NlbGwqKSBj
b25zdDsKIAogcHJpdmF0ZToKICAgICBDZWxsQXR0cmlidXRlcyBtX2F0dHJpYnV0ZXM7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29IZWFwQ2VsbFR5cGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5jcHAJKHJl
dmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxs
VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksMTIgKzM5LDEyIEBAIElzb0hlYXBDZWxsVHlwZTo6
SXNvSGVhcENlbGxUeXBlKERlc3RydWMKIAogSXNvSGVhcENlbGxUeXBlOjp+SXNvSGVhcENlbGxU
eXBlKCkgPSBkZWZhdWx0OwogCi12b2lkIElzb0hlYXBDZWxsVHlwZTo6ZmluaXNoU3dlZXAoTWFy
a2VkQmxvY2s6OkhhbmRsZSYgaGFuZGxlLCBGcmVlTGlzdCogZnJlZUxpc3QpCit2b2lkIElzb0hl
YXBDZWxsVHlwZTo6ZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYgaGFuZGxlLCBGcmVl
TGlzdCogZnJlZUxpc3QpIGNvbnN0CiB7CiAgICAgaGFuZGxlLmZpbmlzaFN3ZWVwS25vd2luZ0hl
YXBDZWxsVHlwZShmcmVlTGlzdCwgKnRoaXMpOwogfQogCi12b2lkIElzb0hlYXBDZWxsVHlwZTo6
ZGVzdHJveShWTSYsIEpTQ2VsbCogY2VsbCkKK3ZvaWQgSXNvSGVhcENlbGxUeXBlOjpkZXN0cm95
KFZNJiwgSlNDZWxsKiBjZWxsKSBjb25zdAogewogICAgIG1fZGVzdHJveShjZWxsKTsKIH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5oCShyZXZp
c2lvbiAyODYwMzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29IZWFwQ2VsbFR5
cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiSGVhcENlbGxUeXBlLmgiCi0jaW5jbHVkZSAiTWFya2VkQmxvY2tJbmxpbmVzLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00NCw4ICs0Myw4IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIG1ha2VVbmlxdWU8SXNvSGVhcENlbGxUeXBlPihDZWxsVHlwZTo6bmVlZHNEZXN0cnVj
dGlvbiA/IE5lZWRzRGVzdHJ1Y3Rpb24gOiBEb2VzTm90TmVlZERlc3RydWN0aW9uLCAmQ2VsbFR5
cGU6OmRlc3Ryb3kpOwogICAgIH0KIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNo
U3dlZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYsIEZyZWVMaXN0KikgZmluYWw7Ci0gICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBkZXN0cm95KFZNJiwgSlNDZWxsKikgZmluYWw7CisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiwgRnJlZUxp
c3QqKSBjb25zdCBmaW5hbDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGRlc3Ryb3koVk0m
LCBKU0NlbGwqKSBjb25zdCBmaW5hbDsKIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBvcGVyYXRv
cigpKFZNJiwgSlNDZWxsKiBjZWxsKSBjb25zdAogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0lzb0lubGluZWRIZWFwQ2VsbFR5cGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmgJKHJldmlzaW9u
IDI4NjAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0lubGluZWRIZWFwQ2Vs
bFR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiSGVhcENlbGxUeXBlLmgiCi0jaW5jbHVkZSAiTWFya2VkQmxvY2tJbmxpbmVz
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00NSwxMiArNDQsMTIgQEAgcHVibGljOgogICAg
ICAgICB9CiAgICAgfTsKIAotICAgIHZvaWQgZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6OkhhbmRs
ZSYgaGFuZGxlLCBGcmVlTGlzdCogZnJlZUxpc3QpIGZpbmFsCisgICAgdm9pZCBmaW5pc2hTd2Vl
cChNYXJrZWRCbG9jazo6SGFuZGxlJiBoYW5kbGUsIEZyZWVMaXN0KiBmcmVlTGlzdCkgY29uc3Qg
ZmluYWwKICAgICB7CiAgICAgICAgIGhhbmRsZS5maW5pc2hTd2VlcEtub3dpbmdIZWFwQ2VsbFR5
cGUoZnJlZUxpc3QsIERlc3Ryb3lGdW5jKCkpOwogICAgIH0KIAotICAgIHZvaWQgZGVzdHJveShW
TSYsIEpTQ2VsbCogY2VsbCkgZmluYWwKKyAgICB2b2lkIGRlc3Ryb3koVk0mLCBKU0NlbGwqIGNl
bGwpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBDZWxsVHlwZTo6ZGVzdHJveShjZWxsKTsK
ICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuY3Bw
CShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJz
cGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCi1Jc29TdWJzcGFjZTo6SXNvU3Vic3BhY2UoQ1N0cmluZyBuYW1lLCBIZWFwJiBoZWFw
LCBIZWFwQ2VsbFR5cGUqIGhlYXBDZWxsVHlwZSwgc2l6ZV90IHNpemUsIHVpbnQ4X3QgbnVtYmVy
T2ZMb3dlclRpZXJDZWxscykKK0lzb1N1YnNwYWNlOjpJc29TdWJzcGFjZShDU3RyaW5nIG5hbWUs
IEhlYXAmIGhlYXAsIGNvbnN0IEhlYXBDZWxsVHlwZSYgaGVhcENlbGxUeXBlLCBzaXplX3Qgc2l6
ZSwgdWludDhfdCBudW1iZXJPZkxvd2VyVGllckNlbGxzKQogICAgIDogU3Vic3BhY2UobmFtZSwg
aGVhcCkKICAgICAsIG1fZGlyZWN0b3J5KFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxNYXJrZWRC
bG9jazo6YXRvbVNpemU+KHNpemUpKQogICAgICwgbV9sb2NhbEFsbG9jYXRvcigmbV9kaXJlY3Rv
cnkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgJKHJldmlz
aW9uIDI4NjAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIElzb0NlbGxTZXQ7CiAKIGNs
YXNzIElzb1N1YnNwYWNlIDogcHVibGljIFN1YnNwYWNlIHsKIHB1YmxpYzoKLSAgICBKU19FWFBP
UlRfUFJJVkFURSBJc29TdWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmLCBIZWFwQ2VsbFR5cGUq
LCBzaXplX3Qgc2l6ZSwgdWludDhfdCBudW1iZXJPZkxvd2VyVGllckNlbGxzKTsKKyAgICBKU19F
WFBPUlRfUFJJVkFURSBJc29TdWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmLCBjb25zdCBIZWFw
Q2VsbFR5cGUmLCBzaXplX3QsIHVpbnQ4X3QgbnVtYmVyT2ZMb3dlclRpZXJDZWxscyk7CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgfklzb1N1YnNwYWNlKCkgb3ZlcnJpZGU7CiAKICAgICBzaXplX3Qg
Y2VsbFNpemUoKSB7IHJldHVybiBtX2RpcmVjdG9yeS5jZWxsU2l6ZSgpOyB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcAkocmV2aXNp
b24gMjg2MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJW
TS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBjbGFzcyBJc29TdWJzcGFjZVBlclZNOjpBdXRvcmVtb3ZpbmdJc29TdWJzcGFjZSBmaW5hbCA6
IHB1YmxpYyBJc29TdWJzcGFjZSB7CiBwdWJsaWM6Ci0gICAgQXV0b3JlbW92aW5nSXNvU3Vic3Bh
Y2UoSXNvU3Vic3BhY2VQZXJWTSYgcGVyVk0sIENTdHJpbmcgbmFtZSwgSGVhcCYgaGVhcCwgSGVh
cENlbGxUeXBlKiBoZWFwQ2VsbFR5cGUsIHNpemVfdCBzaXplKQorICAgIEF1dG9yZW1vdmluZ0lz
b1N1YnNwYWNlKElzb1N1YnNwYWNlUGVyVk0mIHBlclZNLCBDU3RyaW5nIG5hbWUsIEhlYXAmIGhl
YXAsIGNvbnN0IEhlYXBDZWxsVHlwZSYgaGVhcENlbGxUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICAg
ICAgOiBJc29TdWJzcGFjZShuYW1lLCBoZWFwLCBoZWFwQ2VsbFR5cGUsIHNpemUsIC8qIG51bWJl
ck9mTG93ZXJUaWVyQ2VsbHMgKi8gMCkKICAgICAgICAgLCBtX3BlclZNKHBlclZNKQogICAgIHsK
QEAgLTY1LDcgKzY1LDcgQEAgSXNvU3Vic3BhY2UmIElzb1N1YnNwYWNlUGVyVk06OmZvclZNKFZN
JgogICAgIGF1dG8gcmVzdWx0ID0gbV9zdWJzcGFjZVBlclZNLmFkZCgmdm0sIG51bGxwdHIpOwog
ICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgewogICAgICAgICBTdWJzcGFjZVBhcmFtZXRlcnMg
cGFyYW1zID0gbV9zdWJzcGFjZVBhcmFtZXRlcnModm0pOwotICAgICAgICByZXN1bHQuaXRlcmF0
b3ItPnZhbHVlID0gbmV3IEF1dG9yZW1vdmluZ0lzb1N1YnNwYWNlKCp0aGlzLCBwYXJhbXMubmFt
ZSwgdm0uaGVhcCwgcGFyYW1zLmhlYXBDZWxsVHlwZSwgcGFyYW1zLnNpemUpOworICAgICAgICBy
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gbmV3IEF1dG9yZW1vdmluZ0lzb1N1YnNwYWNlKCp0aGlz
LCBwYXJhbXMubmFtZSwgdm0uaGVhcCwgKnBhcmFtcy5oZWFwQ2VsbFR5cGUsIHBhcmFtcy5zaXpl
KTsKICAgICB9CiAgICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlUGVyVk0uaAkocmV2aXNp
b24gMjg2MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJW
TS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDE1ICs0MSwxNSBAQCBwdWJsaWM6CiAgICAgc3RydWN0IFN1
YnNwYWNlUGFyYW1ldGVycyB7CiAgICAgICAgIFN1YnNwYWNlUGFyYW1ldGVycygpIHsgfQogICAg
ICAgICAKLSAgICAgICAgU3Vic3BhY2VQYXJhbWV0ZXJzKENTdHJpbmcgbmFtZSwgSGVhcENlbGxU
eXBlKiBoZWFwQ2VsbFR5cGUsIHNpemVfdCBzaXplKQorICAgICAgICBTdWJzcGFjZVBhcmFtZXRl
cnMoQ1N0cmluZyBuYW1lLCBjb25zdCBIZWFwQ2VsbFR5cGUmIGhlYXBDZWxsVHlwZSwgc2l6ZV90
IHNpemUpCiAgICAgICAgICAgICA6IG5hbWUoV1RGTW92ZShuYW1lKSkKLSAgICAgICAgICAgICwg
aGVhcENlbGxUeXBlKGhlYXBDZWxsVHlwZSkKKyAgICAgICAgICAgICwgaGVhcENlbGxUeXBlKCZo
ZWFwQ2VsbFR5cGUpCiAgICAgICAgICAgICAsIHNpemUoc2l6ZSkKICAgICAgICAgewogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBDU3RyaW5nIG5hbWU7Ci0gICAgICAgIEhlYXBDZWxsVHlw
ZSogaGVhcENlbGxUeXBlIHsgbnVsbHB0ciB9OworICAgICAgICBjb25zdCBIZWFwQ2VsbFR5cGUq
IGhlYXBDZWxsVHlwZSB7IG51bGxwdHIgfTsKICAgICAgICAgc2l6ZV90IHNpemUgeyAwIH07CiAg
ICAgfTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2Nr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2su
aAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2Vk
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDggKzE2MCw4IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIAogICAgICAgICBzaXplX3QgY2VsbFNpemUoKTsKICAgICAgICAgaW5saW5lIHVuc2ln
bmVkIGNlbGxzUGVyQmxvY2soKTsKLSAgICAgICAgCi0gICAgICAgIGNvbnN0IENlbGxBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMoKSBjb25zdDsKKworICAgICAgICBDZWxsQXR0cmlidXRlcyBhdHRyaWJ1
dGVzKCkgY29uc3Q7CiAgICAgICAgIERlc3RydWN0aW9uTW9kZSBkZXN0cnVjdGlvbigpIGNvbnN0
OwogICAgICAgICBib29sIG5lZWRzRGVzdHJ1Y3Rpb24oKSBjb25zdDsKICAgICAgICAgSGVhcENl
bGw6OktpbmQgY2VsbEtpbmQoKSBjb25zdDsKQEAgLTM0Nyw4ICszNDcsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZXNldEFsbG9jYXRlZCgpOwogICAgICAgICAKICAgICBzaXplX3QgY2VsbFNpemUo
KTsKLSAgICBjb25zdCBDZWxsQXR0cmlidXRlcyBhdHRyaWJ1dGVzKCkgY29uc3Q7Ci0gICAgCisg
ICAgQ2VsbEF0dHJpYnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0OworCiAgICAgYm9vbCBoYXNBbnlN
YXJrZWQoKSBjb25zdDsKICAgICB2b2lkIG5vdGVNYXJrZWQoKTsKICNpZiBBU1NFUlRfRU5BQkxF
RApAQCAtNTExLDEyICs1MTEsMTIgQEAgaW5saW5lIHNpemVfdCBNYXJrZWRCbG9jazo6Y2VsbFNp
emUoKQogICAgIHJldHVybiBoYW5kbGUoKS5jZWxsU2l6ZSgpOwogfQogCi1pbmxpbmUgY29uc3Qg
Q2VsbEF0dHJpYnV0ZXMgTWFya2VkQmxvY2s6OkhhbmRsZTo6YXR0cmlidXRlcygpIGNvbnN0Citp
bmxpbmUgQ2VsbEF0dHJpYnV0ZXMgTWFya2VkQmxvY2s6OkhhbmRsZTo6YXR0cmlidXRlcygpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fYXR0cmlidXRlczsKIH0KIAotaW5saW5lIGNvbnN0IENlbGxB
dHRyaWJ1dGVzIE1hcmtlZEJsb2NrOjphdHRyaWJ1dGVzKCkgY29uc3QKK2lubGluZSBDZWxsQXR0
cmlidXRlcyBNYXJrZWRCbG9jazo6YXR0cmlidXRlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhh
bmRsZSgpLmF0dHJpYnV0ZXMoKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1ByZWNpc2VBbGxvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
MTIwLDkgKzEyMCw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhYm92ZUxvd2Vy
Qm91bmQocmF3UHRyKSAmJiBiZWxvd1VwcGVyQm91bmQocmF3UHRyKTsKICAgICB9Ci0gICAgCi0g
ICAgY29uc3QgQ2VsbEF0dHJpYnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0
cmlidXRlczsgfQotICAgIAorCisgICAgQ2VsbEF0dHJpYnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlczsgfQorCiAgICAgRGVwZW5kZW5jeSBhYm91dFRvTWFyayhI
ZWFwVmVyc2lvbikgeyByZXR1cm4gRGVwZW5kZW5jeSgpOyB9CiAgICAgCiAgICAgQUxXQVlTX0lO
TElORSBib29sIHRlc3RBbmRTZXRNYXJrZWQoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU3Vic3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1N1YnNwYWNlLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU3Vic3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsOSArNDAsOSBAQCBT
dWJzcGFjZTo6U3Vic3BhY2UoQ1N0cmluZyBuYW1lLCBIZWFwJiBoCiB7CiB9CiAKLXZvaWQgU3Vi
c3BhY2U6OmluaXRpYWxpemUoSGVhcENlbGxUeXBlKiBoZWFwQ2VsbFR5cGUsIEFsaWduZWRNZW1v
cnlBbGxvY2F0b3IqIGFsaWduZWRNZW1vcnlBbGxvY2F0b3IpCit2b2lkIFN1YnNwYWNlOjppbml0
aWFsaXplKGNvbnN0IEhlYXBDZWxsVHlwZSYgaGVhcENlbGxUeXBlLCBBbGlnbmVkTWVtb3J5QWxs
b2NhdG9yKiBhbGlnbmVkTWVtb3J5QWxsb2NhdG9yKQogewotICAgIG1faGVhcENlbGxUeXBlID0g
aGVhcENlbGxUeXBlOworICAgIG1faGVhcENlbGxUeXBlID0gJmhlYXBDZWxsVHlwZTsKICAgICBt
X2FsaWduZWRNZW1vcnlBbGxvY2F0b3IgPSBhbGlnbmVkTWVtb3J5QWxsb2NhdG9yOwogICAgIG1f
ZGlyZWN0b3J5Rm9yRW1wdHlBbGxvY2F0aW9uID0gbV9hbGlnbmVkTWVtb3J5QWxsb2NhdG9yLT5m
aXJzdERpcmVjdG9yeSgpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJz
cGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNl
LmgJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNw
YWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDE0ICs0NCwxMyBAQCBjbGFzcyBTdWJzcGFjZSB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3Vic3BhY2UpOwogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIEpTX0VYUE9SVF9QUklWQVRFIFN1YnNwYWNlKENTdHJp
bmcgbmFtZSwgSGVhcCYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflN1YnNwYWNl
KCk7CiAKICAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lLmRhdGEo
KTsgfQogICAgIE1hcmtlZFNwYWNlJiBzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3BhY2U7IH0K
LSAgICAKLSAgICBjb25zdCBDZWxsQXR0cmlidXRlcyBhdHRyaWJ1dGVzKCkgY29uc3Q7Ci0gICAg
SGVhcENlbGxUeXBlKiBoZWFwQ2VsbFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2hlYXBDZWxsVHlw
ZTsgfQorCisgICAgQ2VsbEF0dHJpYnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0OworICAgIGNvbnN0
IEhlYXBDZWxsVHlwZSogaGVhcENlbGxUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9oZWFwQ2VsbFR5
cGU7IH0KICAgICBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKiBhbGlnbmVkTWVtb3J5QWxsb2NhdG9y
KCkgY29uc3QgeyByZXR1cm4gbV9hbGlnbmVkTWVtb3J5QWxsb2NhdG9yOyB9CiAgICAgCiAgICAg
dm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiwgRnJlZUxpc3QqKTsKQEAgLTEw
NCwxMSArMTAzLDEzIEBAIHB1YmxpYzoKICAgICBib29sIGlzSXNvU3Vic3BhY2UoKSBjb25zdCB7
IHJldHVybiBtX2lzSXNvU3Vic3BhY2U7IH0KIAogcHJvdGVjdGVkOgotICAgIHZvaWQgaW5pdGlh
bGl6ZShIZWFwQ2VsbFR5cGUqLCBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKik7CisgICAgU3Vic3Bh
Y2UoQ1N0cmluZyBuYW1lLCBIZWFwJik7CisKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSGVh
cENlbGxUeXBlJiwgQWxpZ25lZE1lbW9yeUFsbG9jYXRvciopOwogICAgIAogICAgIE1hcmtlZFNw
YWNlJiBtX3NwYWNlOwogICAgIAotICAgIEhlYXBDZWxsVHlwZSogbV9oZWFwQ2VsbFR5cGUgeyBu
dWxscHRyIH07CisgICAgY29uc3QgSGVhcENlbGxUeXBlKiBtX2hlYXBDZWxsVHlwZSB7IG51bGxw
dHIgfTsKICAgICBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKiBtX2FsaWduZWRNZW1vcnlBbGxvY2F0
b3IgeyBudWxscHRyIH07CiAgICAgCiAgICAgQmxvY2tEaXJlY3RvcnkqIG1fZmlyc3REaXJlY3Rv
cnkgeyBudWxscHRyIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFj
ZUlubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJz
cGFjZUlubGluZXMuaAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU3Vic3BhY2VJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBA
QCB2b2lkIFN1YnNwYWNlOjpmb3JFYWNoTGl2ZUNlbGwoY29uc3QgRnVuCiAgICAgICAgIH0pOwog
fQogCi1pbmxpbmUgY29uc3QgQ2VsbEF0dHJpYnV0ZXMgU3Vic3BhY2U6OmF0dHJpYnV0ZXMoKSBj
b25zdAoraW5saW5lIENlbGxBdHRyaWJ1dGVzIFN1YnNwYWNlOjphdHRyaWJ1dGVzKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9oZWFwQ2VsbFR5cGUtPmF0dHJpYnV0ZXMoKTsKIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxU
eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rl
c3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxU
eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDEyICs0OCwxMiBAQCBKU0Rlc3RydWN0aWJs
ZU9iamVjdEhlYXBDZWxsVHlwZTo6fkpTRGVzCiB7CiB9CiAKLXZvaWQgSlNEZXN0cnVjdGlibGVP
YmplY3RIZWFwQ2VsbFR5cGU6OmZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmIGhhbmRs
ZSwgRnJlZUxpc3QqIGZyZWVMaXN0KQordm9pZCBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxs
VHlwZTo6ZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYgaGFuZGxlLCBGcmVlTGlzdCog
ZnJlZUxpc3QpIGNvbnN0CiB7CiAgICAgaGFuZGxlLmZpbmlzaFN3ZWVwS25vd2luZ0hlYXBDZWxs
VHlwZShmcmVlTGlzdCwgSlNEZXN0cnVjdGlibGVPYmplY3REZXN0cm95RnVuYygpKTsKIH0KIAot
dm9pZCBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZTo6ZGVzdHJveShWTSYgdm0sIEpT
Q2VsbCogY2VsbCkKK3ZvaWQgSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGU6OmRlc3Ry
b3koVk0mIHZtLCBKU0NlbGwqIGNlbGwpIGNvbnN0CiB7CiAgICAgSlNEZXN0cnVjdGlibGVPYmpl
Y3REZXN0cm95RnVuYygpKHZtLCBjZWxsKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUuaAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
NCw4ICszNCw4IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU0Rlc3RydWN0aWJs
ZU9iamVjdEhlYXBDZWxsVHlwZSgpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIH5KU0Rlc3RydWN0
aWJsZU9iamVjdEhlYXBDZWxsVHlwZSgpIGZpbmFsOwogICAgIAotICAgIHZvaWQgZmluaXNoU3dl
ZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYsIEZyZWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCBkZXN0
cm95KFZNJiwgSlNDZWxsKikgZmluYWw7CisgICAgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9j
azo6SGFuZGxlJiwgRnJlZUxpc3QqKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGRlc3Ryb3koVk0m
LCBKU0NlbGwqKSBjb25zdCBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzks
NiArMTM5LDcgQEAKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxMSW50RGF0
YS5oIgogI2luY2x1ZGUgIkxMSW50RXhjZXB0aW9ucy5oIgorI2luY2x1ZGUgIk1hcmtlZEJsb2Nr
SW5saW5lcy5oIgogI2luY2x1ZGUgIk1pbmltdW1SZXNlcnZlZFpvbmVTaXplLmgiCiAjaW5jbHVk
ZSAiTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5oIgogI2luY2x1ZGUgIk1vZHVsZVByb2dyYW1FeGVj
dXRhYmxlLmgiCkBAIC0zNDksNTAgKzM1MCw1MCBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVh
cFR5cGUgaGVhcFR5cGUsCiAgICAgLCB3ZWJBc3NlbWJseVRhYmxlSGVhcENlbGxUeXBlKElzb0hl
YXBDZWxsVHlwZTo6Y3JlYXRlPEpTV2ViQXNzZW1ibHlUYWJsZT4oKSkKICAgICAsIHdlYkFzc2Vt
Ymx5VGFnSGVhcENlbGxUeXBlKElzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTV2ViQXNzZW1ibHlU
YWc+KCkpCiAjZW5kaWYKLSAgICAsIHByaW1pdGl2ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2UoIlBy
aW1pdGl2ZSBHaWdhY2FnZSBBdXhpbGlhcnkiLCBoZWFwLCBhdXhpbGlhcnlIZWFwQ2VsbFR5cGUu
Z2V0KCksIHByaW1pdGl2ZUdpZ2FjYWdlQWxsb2NhdG9yLmdldCgpKSAvLyBIYXNoOjB4M2U3Y2Q3
NjIKLSAgICAsIGpzVmFsdWVHaWdhY2FnZUF1eGlsaWFyeVNwYWNlKCJKU1ZhbHVlIEdpZ2FjYWdl
IEF1eGlsaWFyeSIsIGhlYXAsIGF1eGlsaWFyeUhlYXBDZWxsVHlwZS5nZXQoKSwganNWYWx1ZUdp
Z2FjYWdlQWxsb2NhdG9yLmdldCgpKSAvLyBIYXNoOjB4MjQxZTk0NgotICAgICwgaW1tdXRhYmxl
QnV0dGVyZmx5SlNWYWx1ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2UoIkltbXV0YWJsZUJ1dHRlcmZs
eSBHaWdhY2FnZSBKU0NlbGxXaXRoSW5kZXhpbmdIZWFkZXIiLCBoZWFwLCBpbW11dGFibGVCdXR0
ZXJmbHlIZWFwQ2VsbFR5cGUuZ2V0KCksIGpzVmFsdWVHaWdhY2FnZUFsbG9jYXRvci5nZXQoKSkg
Ly8gSGFzaDoweDdhOTQ1MzAwCi0gICAgLCBjZWxsU3BhY2UoIkpTQ2VsbCIsIGhlYXAsIGNlbGxI
ZWFwQ2VsbFR5cGUuZ2V0KCksIGZhc3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpIC8vIEhhc2g6MHhh
ZGZiNWE3OQotICAgICwgdmFyaWFibGVTaXplZENlbGxTcGFjZSgiVmFyaWFibGUgU2l6ZWQgSlND
ZWxsIiwgaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgZmFzdE1hbGxvY0FsbG9jYXRvci5n
ZXQoKSkgLy8gSGFzaDoweGJjZDc2OWNjCi0gICAgLCBkZXN0cnVjdGlibGVPYmplY3RTcGFjZSgi
SlNEZXN0cnVjdGlibGVPYmplY3QiLCBoZWFwLCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5
cGUuZ2V0KCksIGZhc3RNYWxsb2NBbGxvY2F0b3IuZ2V0KCkpIC8vIEhhc2g6MHg0ZjVlZDdhOQot
ICAgICwgYXJyYXlTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBl
LmdldCgpLCBKU0FycmF5KQotICAgICwgYmlnSW50U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVh
cCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNCaWdJbnQpCi0gICAgLCBjYWxsZWVTcGFjZSBJ
U09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0NhbGxlZSkK
LSAgICAsIGNsb25lZEFyZ3VtZW50c1NwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxI
ZWFwQ2VsbFR5cGUuZ2V0KCksIENsb25lZEFyZ3VtZW50cykKLSAgICAsIGN1c3RvbUdldHRlclNl
dHRlclNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCks
IEN1c3RvbUdldHRlclNldHRlcikKLSAgICAsIGRhdGVJbnN0YW5jZVNwYWNlIElTT19TVUJTUEFD
RV9JTklUKGhlYXAsIGRhdGVJbnN0YW5jZUhlYXBDZWxsVHlwZS5nZXQoKSwgRGF0ZUluc3RhbmNl
KQotICAgICwgZG9tQXR0cmlidXRlR2V0dGVyU2V0dGVyU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQo
aGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyKQot
ICAgICwgZXhjZXB0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxl
Q2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgRXhjZXB0aW9uKQotICAgICwgZXhlY3V0YWJsZVRvQ29k
ZUJsb2NrRWRnZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUu
Z2V0KCksIEV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2UpIC8vIEhhc2g6MHg3YjczMGIyMAotICAg
ICwgZnVuY3Rpb25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBl
LmdldCgpLCBKU0Z1bmN0aW9uKSAvLyBIYXNoOjB4ODAwZmNhNzIKLSAgICAsIGdldHRlclNldHRl
clNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEdl
dHRlclNldHRlcikKLSAgICAsIGdsb2JhbExleGljYWxFbnZpcm9ubWVudFNwYWNlIElTT19TVUJT
UEFDRV9JTklUKGhlYXAsIGdsb2JhbExleGljYWxFbnZpcm9ubWVudEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQpCi0gICAgLCBpbnRlcm5hbEZ1bmN0aW9uU3Bh
Y2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSW50ZXJu
YWxGdW5jdGlvbikgLy8gSGFzaDoweGY4NDVjNDY0Ci0gICAgLCBqc1Byb3h5U3BhY2UgSVNPX1NV
QlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNQcm94eSkKLSAgICAs
IG5hdGl2ZUV4ZWN1dGFibGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGli
bGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBOYXRpdmVFeGVjdXRhYmxlKSAvLyBIYXNoOjB4Njc1
NjdmOTUKLSAgICAsIG51bWJlck9iamVjdFNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIE51bWJlck9iamVjdCkKLSAgICAsIHBsYWluT2JqZWN0U3Bh
Y2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNOb25G
aW5hbE9iamVjdCkgLy8gTWFpbmx5IHVzZWQgZm9yIHByb3RvdHlwZXMuCi0gICAgLCBwcm9taXNl
U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNQ
cm9taXNlKQotICAgICwgcHJvcGVydHlOYW1lRW51bWVyYXRvclNwYWNlIElTT19TVUJTUEFDRV9J
TklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
cikKLSAgICAsIHByb3BlcnR5VGFibGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0
cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBQcm9wZXJ0eVRhYmxlKSAvLyBIYXNoOjB4
YzZiYzlmMTIKLSAgICAsIHJlZ0V4cFNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFJlZ0V4cCkKLSAgICAsIHJlZ0V4cE9iamVj
dFNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFJl
Z0V4cE9iamVjdCkKLSAgICAsIHJvcGVTdHJpbmdTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFw
LCBzdHJpbmdIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTUm9wZVN0cmluZykKLSAgICAsIHNjb3BlZEFy
Z3VtZW50c1NwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0
KCksIFNjb3BlZEFyZ3VtZW50cykKLSAgICAsIHNwYXJzZUFycmF5VmFsdWVNYXBTcGFjZSBJU09f
U1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBT
cGFyc2VBcnJheVZhbHVlTWFwKQotICAgICwgc3RyaW5nU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQo
aGVhcCwgc3RyaW5nSGVhcENlbGxUeXBlLmdldCgpLCBKU1N0cmluZykgLy8gSGFzaDoweDkwY2Y3
NThmCi0gICAgLCBzdHJpbmdPYmplY3RTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxs
SGVhcENlbGxUeXBlLmdldCgpLCBTdHJpbmdPYmplY3QpCi0gICAgLCBzdHJ1Y3R1cmVDaGFpblNw
YWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFN0cnVj
dHVyZUNoYWluKQotICAgICwgc3RydWN0dXJlUmFyZURhdGFTcGFjZSBJU09fU1VCU1BBQ0VfSU5J
VChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBTdHJ1Y3R1cmVSYXJl
RGF0YSkgLy8gSGFzaDoweGFjYTRlNjJkCi0gICAgLCBzdHJ1Y3R1cmVTcGFjZSBJU09fU1VCU1BB
Q0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBTdHJ1Y3R1
cmUpIC8vIEhhc2g6MHgxZjFiY2RjYQotICAgICwgYnJhbmRlZFN0cnVjdHVyZVNwYWNlIElTT19T
VUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEJy
YW5kZWRTdHJ1Y3R1cmUpCi0gICAgLCBzeW1ib2xUYWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklU
KGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFN5bWJvbFRhYmxlKSAv
LyBIYXNoOjB4YzUyMTVhZmQKKyAgICAsIHByaW1pdGl2ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2Uo
IlByaW1pdGl2ZSBHaWdhY2FnZSBBdXhpbGlhcnkiLCBoZWFwLCAqYXV4aWxpYXJ5SGVhcENlbGxU
eXBlLCBwcmltaXRpdmVHaWdhY2FnZUFsbG9jYXRvci5nZXQoKSkgLy8gSGFzaDoweDNlN2NkNzYy
CisgICAgLCBqc1ZhbHVlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZSgiSlNWYWx1ZSBHaWdhY2FnZSBB
dXhpbGlhcnkiLCBoZWFwLCAqYXV4aWxpYXJ5SGVhcENlbGxUeXBlLCBqc1ZhbHVlR2lnYWNhZ2VB
bGxvY2F0b3IuZ2V0KCkpIC8vIEhhc2g6MHgyNDFlOTQ2CisgICAgLCBpbW11dGFibGVCdXR0ZXJm
bHlKU1ZhbHVlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZSgiSW1tdXRhYmxlQnV0dGVyZmx5IEdpZ2Fj
YWdlIEpTQ2VsbFdpdGhJbmRleGluZ0hlYWRlciIsIGhlYXAsICppbW11dGFibGVCdXR0ZXJmbHlI
ZWFwQ2VsbFR5cGUsIGpzVmFsdWVHaWdhY2FnZUFsbG9jYXRvci5nZXQoKSkgLy8gSGFzaDoweDdh
OTQ1MzAwCisgICAgLCBjZWxsU3BhY2UoIkpTQ2VsbCIsIGhlYXAsICpjZWxsSGVhcENlbGxUeXBl
LCBmYXN0TWFsbG9jQWxsb2NhdG9yLmdldCgpKSAvLyBIYXNoOjB4YWRmYjVhNzkKKyAgICAsIHZh
cmlhYmxlU2l6ZWRDZWxsU3BhY2UoIlZhcmlhYmxlIFNpemVkIEpTQ2VsbCIsIGhlYXAsICpjZWxs
SGVhcENlbGxUeXBlLCBmYXN0TWFsbG9jQWxsb2NhdG9yLmdldCgpKSAvLyBIYXNoOjB4YmNkNzY5
Y2MKKyAgICAsIGRlc3RydWN0aWJsZU9iamVjdFNwYWNlKCJKU0Rlc3RydWN0aWJsZU9iamVjdCIs
IGhlYXAsICpkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIGZhc3RNYWxsb2NBbGxvY2F0
b3IuZ2V0KCkpIC8vIEhhc2g6MHg0ZjVlZDdhOQorICAgICwgYXJyYXlTcGFjZSBJU09fU1VCU1BB
Q0VfSU5JVChoZWFwLCAqY2VsbEhlYXBDZWxsVHlwZSwgSlNBcnJheSkKKyAgICAsIGJpZ0ludFNw
YWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsICpjZWxsSGVhcENlbGxUeXBlLCBKU0JpZ0ludCkK
KyAgICAsIGNhbGxlZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsICpjZWxsSGVhcENlbGxU
eXBlLCBKU0NhbGxlZSkKKyAgICAsIGNsb25lZEFyZ3VtZW50c1NwYWNlIElTT19TVUJTUEFDRV9J
TklUKGhlYXAsICpjZWxsSGVhcENlbGxUeXBlLCBDbG9uZWRBcmd1bWVudHMpCisgICAgLCBjdXN0
b21HZXR0ZXJTZXR0ZXJTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCAqY2VsbEhlYXBDZWxs
VHlwZSwgQ3VzdG9tR2V0dGVyU2V0dGVyKQorICAgICwgZGF0ZUluc3RhbmNlU3BhY2UgSVNPX1NV
QlNQQUNFX0lOSVQoaGVhcCwgKmRhdGVJbnN0YW5jZUhlYXBDZWxsVHlwZSwgRGF0ZUluc3RhbmNl
KQorICAgICwgZG9tQXR0cmlidXRlR2V0dGVyU2V0dGVyU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQo
aGVhcCwgKmNlbGxIZWFwQ2VsbFR5cGUsIERPTUF0dHJpYnV0ZUdldHRlclNldHRlcikKKyAgICAs
IGV4Y2VwdGlvblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsICpkZXN0cnVjdGlibGVDZWxs
SGVhcENlbGxUeXBlLCBFeGNlcHRpb24pCisgICAgLCBleGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdl
U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgKmNlbGxIZWFwQ2VsbFR5cGUsIEV4ZWN1dGFi
bGVUb0NvZGVCbG9ja0VkZ2UpIC8vIEhhc2g6MHg3YjczMGIyMAorICAgICwgZnVuY3Rpb25TcGFj
ZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCAqY2VsbEhlYXBDZWxsVHlwZSwgSlNGdW5jdGlvbikg
Ly8gSGFzaDoweDgwMGZjYTcyCisgICAgLCBnZXR0ZXJTZXR0ZXJTcGFjZSBJU09fU1VCU1BBQ0Vf
SU5JVChoZWFwLCAqY2VsbEhlYXBDZWxsVHlwZSwgR2V0dGVyU2V0dGVyKQorICAgICwgZ2xvYmFs
TGV4aWNhbEVudmlyb25tZW50U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgKmdsb2JhbExl
eGljYWxFbnZpcm9ubWVudEhlYXBDZWxsVHlwZSwgSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQp
CisgICAgLCBpbnRlcm5hbEZ1bmN0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgKmNl
bGxIZWFwQ2VsbFR5cGUsIEludGVybmFsRnVuY3Rpb24pIC8vIEhhc2g6MHhmODQ1YzQ2NAorICAg
ICwganNQcm94eVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsICpjZWxsSGVhcENlbGxUeXBl
LCBKU1Byb3h5KQorICAgICwgbmF0aXZlRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklU
KGhlYXAsICpkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLCBOYXRpdmVFeGVjdXRhYmxlKSAv
LyBIYXNoOjB4Njc1NjdmOTUKKyAgICAsIG51bWJlck9iamVjdFNwYWNlIElTT19TVUJTUEFDRV9J
TklUKGhlYXAsICpjZWxsSGVhcENlbGxUeXBlLCBOdW1iZXJPYmplY3QpCisgICAgLCBwbGFpbk9i
amVjdFNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsICpjZWxsSGVhcENlbGxUeXBlLCBKU05v
bkZpbmFsT2JqZWN0KSAvLyBNYWlubHkgdXNlZCBmb3IgcHJvdG90eXBlcy4KKyAgICAsIHByb21p
c2VTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCAqY2VsbEhlYXBDZWxsVHlwZSwgSlNQcm9t
aXNlKQorICAgICwgcHJvcGVydHlOYW1lRW51bWVyYXRvclNwYWNlIElTT19TVUJTUEFDRV9JTklU
KGhlYXAsICpjZWxsSGVhcENlbGxUeXBlLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IpCisgICAg
LCBwcm9wZXJ0eVRhYmxlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgKmRlc3RydWN0aWJs
ZUNlbGxIZWFwQ2VsbFR5cGUsIFByb3BlcnR5VGFibGUpIC8vIEhhc2g6MHhjNmJjOWYxMgorICAg
ICwgcmVnRXhwU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgKmRlc3RydWN0aWJsZUNlbGxI
ZWFwQ2VsbFR5cGUsIFJlZ0V4cCkKKyAgICAsIHJlZ0V4cE9iamVjdFNwYWNlIElTT19TVUJTUEFD
RV9JTklUKGhlYXAsICpjZWxsSGVhcENlbGxUeXBlLCBSZWdFeHBPYmplY3QpCisgICAgLCByb3Bl
U3RyaW5nU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgKnN0cmluZ0hlYXBDZWxsVHlwZSwg
SlNSb3BlU3RyaW5nKQorICAgICwgc2NvcGVkQXJndW1lbnRzU3BhY2UgSVNPX1NVQlNQQUNFX0lO
SVQoaGVhcCwgKmNlbGxIZWFwQ2VsbFR5cGUsIFNjb3BlZEFyZ3VtZW50cykKKyAgICAsIHNwYXJz
ZUFycmF5VmFsdWVNYXBTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCAqZGVzdHJ1Y3RpYmxl
Q2VsbEhlYXBDZWxsVHlwZSwgU3BhcnNlQXJyYXlWYWx1ZU1hcCkKKyAgICAsIHN0cmluZ1NwYWNl
IElTT19TVUJTUEFDRV9JTklUKGhlYXAsICpzdHJpbmdIZWFwQ2VsbFR5cGUsIEpTU3RyaW5nKSAv
LyBIYXNoOjB4OTBjZjc1OGYKKyAgICAsIHN0cmluZ09iamVjdFNwYWNlIElTT19TVUJTUEFDRV9J
TklUKGhlYXAsICpjZWxsSGVhcENlbGxUeXBlLCBTdHJpbmdPYmplY3QpCisgICAgLCBzdHJ1Y3R1
cmVDaGFpblNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsICpjZWxsSGVhcENlbGxUeXBlLCBT
dHJ1Y3R1cmVDaGFpbikKKyAgICAsIHN0cnVjdHVyZVJhcmVEYXRhU3BhY2UgSVNPX1NVQlNQQUNF
X0lOSVQoaGVhcCwgKmRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUsIFN0cnVjdHVyZVJhcmVE
YXRhKSAvLyBIYXNoOjB4YWNhNGU2MmQKKyAgICAsIHN0cnVjdHVyZVNwYWNlIElTT19TVUJTUEFD
RV9JTklUKGhlYXAsICpkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLCBTdHJ1Y3R1cmUpIC8v
IEhhc2g6MHgxZjFiY2RjYQorICAgICwgYnJhbmRlZFN0cnVjdHVyZVNwYWNlIElTT19TVUJTUEFD
RV9JTklUKGhlYXAsICpkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLCBCcmFuZGVkU3RydWN0
dXJlKQorICAgICwgc3ltYm9sVGFibGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCAqZGVz
dHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZSwgU3ltYm9sVGFibGUpIC8vIEhhc2g6MHhjNTIxNWFm
ZAogICAgICwgZXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZXNXaXRoQ29uc3RyYWludHMoZXhlY3V0
YWJsZVRvQ29kZUJsb2NrRWRnZVNwYWNlKQogICAgICwgZXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRn
ZXNXaXRoRmluYWxpemVycyhleGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdlU3BhY2UpCi0gICAgLCBj
b2RlQmxvY2tTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVh
cENlbGxUeXBlLmdldCgpLCBDb2RlQmxvY2spIC8vIEhhc2g6MHg3N2U2NmVjOQotICAgICwgZnVu
Y3Rpb25FeGVjdXRhYmxlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxl
Q2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgRnVuY3Rpb25FeGVjdXRhYmxlKSAvLyBIYXNoOjB4NWQx
NThmMwotICAgICwgcHJvZ3JhbUV4ZWN1dGFibGVTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFw
LCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBQcm9ncmFtRXhlY3V0YWJsZSkg
Ly8gSGFzaDoweDUyN2M3N2U3Ci0gICAgLCB1bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZVNwYWNl
IElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0
KCksIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKSAvLyBIYXNoOjB4ZjZiODI4ZDkKKyAgICAs
IGNvZGVCbG9ja1NwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsICpkZXN0cnVjdGlibGVDZWxs
SGVhcENlbGxUeXBlLCBDb2RlQmxvY2spIC8vIEhhc2g6MHg3N2U2NmVjOQorICAgICwgZnVuY3Rp
b25FeGVjdXRhYmxlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgKmRlc3RydWN0aWJsZUNl
bGxIZWFwQ2VsbFR5cGUsIEZ1bmN0aW9uRXhlY3V0YWJsZSkgLy8gSGFzaDoweDVkMTU4ZjMKKyAg
ICAsIHByb2dyYW1FeGVjdXRhYmxlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgKmRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUsIFByb2dyYW1FeGVjdXRhYmxlKSAvLyBIYXNoOjB4NTI3
Yzc3ZTcKKyAgICAsIHVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlU3BhY2UgSVNPX1NVQlNQQUNF
X0lOSVQoaGVhcCwgKmRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUsIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlKSAvLyBIYXNoOjB4ZjZiODI4ZDkKICAgICAsIHZtVHlwZSh2bVR5cGUpCiAg
ICAgLCBjbGllbnREYXRhKG51bGxwdHIpCiAgICAgLCB0b3BFbnRyeUZyYW1lKG51bGxwdHIpCkBA
IC0xNTgyLDEwNyArMTU4MywxMDcgQEAgdm9pZCBWTTo6ZW5zdXJlU2hhZG93Q2hpY2tlbigpCiAg
ICAgfQogCiAKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhhcGlHbG9i
YWxPYmplY3RTcGFjZSwgYXBpR2xvYmFsT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU0FQSUds
b2JhbE9iamVjdCkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhhcGlW
YWx1ZVdyYXBwZXJTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBUElWYWx1ZVdyYXBw
ZXIpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYXJyYXlCdWZmZXJT
cGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBcnJheUJ1ZmZlcikKLURZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhhcnJheUl0ZXJhdG9yU3BhY2UsIGNlbGxIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTQXJyYXlJdGVyYXRvcikKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyhhc3luY0dlbmVyYXRvclNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBKU0FzeW5jR2VuZXJhdG9yKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKGJpZ0ludDY0QXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNCaWdJ
bnQ2NEFycmF5KQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGJpZ0lu
dE9iamVjdFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBCaWdJbnRPYmplY3QpCi1EWU5B
TUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYmlnVWludDY0QXJyYXlTcGFjZSwg
Y2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNCaWdVaW50NjRBcnJheSkKLURZTkFNSUNfSVNPX1NV
QlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhib29sZWFuT2JqZWN0U3BhY2UsIGNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEJvb2xlYW5PYmplY3QpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSX1NMT1coYm91bmRGdW5jdGlvblNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBK
U0JvdW5kRnVuY3Rpb24pIC8vIEhhc2g6MHhkNzkxNmQ0MQotRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUl9TTE9XKGNhbGxiYWNrQ29uc3RydWN0b3JTcGFjZSwgY2FsbGJhY2tDb25z
dHJ1Y3RvckhlYXBDZWxsVHlwZS5nZXQoKSwgSlNDYWxsYmFja0NvbnN0cnVjdG9yKQotRFlOQU1J
Q19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGNhbGxiYWNrR2xvYmFsT2JqZWN0U3Bh
Y2UsIGNhbGxiYWNrR2xvYmFsT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0PikKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJf
U0xPVyhjYWxsYmFja0Z1bmN0aW9uU3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTQ2Fs
bGJhY2tGdW5jdGlvbikgLy8gSGFzaDoweGU3NjQ4ZWJjCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1coY2FsbGJhY2tPYmplY3RTcGFjZSwgY2FsbGJhY2tPYmplY3RIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4pCi1EWU5B
TUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coY3VzdG9tR2V0dGVyRnVuY3Rpb25T
cGFjZSwgY3VzdG9tR2V0dGVyRnVuY3Rpb25IZWFwQ2VsbFR5cGUuZ2V0KCksIEpTQ3VzdG9tR2V0
dGVyRnVuY3Rpb24pCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coY3Vz
dG9tU2V0dGVyRnVuY3Rpb25TcGFjZSwgY3VzdG9tU2V0dGVyRnVuY3Rpb25IZWFwQ2VsbFR5cGUu
Z2V0KCksIEpTQ3VzdG9tU2V0dGVyRnVuY3Rpb24pCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJ
TkVfTUVNQkVSX1NMT1coZGF0YVZpZXdTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNE
YXRhVmlldykKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhkZWJ1Z2dl
clNjb3BlU3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIERlYnVnZ2VyU2NvcGUpCi1EWU5B
TUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coZXJyb3JJbnN0YW5jZVNwYWNlLCBl
cnJvckluc3RhbmNlSGVhcENlbGxUeXBlLmdldCgpLCBFcnJvckluc3RhbmNlKSAvLyBIYXNoOjB4
M2Y0MGQ0YQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGZsb2F0MzJB
cnJheVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0Zsb2F0MzJBcnJheSkKLURZTkFN
SUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhmbG9hdDY0QXJyYXlTcGFjZSwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNGbG9hdDY0QXJyYXkpCi1EWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSX1NMT1coZnVuY3Rpb25SYXJlRGF0YVNwYWNlLCBkZXN0cnVjdGlibGVD
ZWxsSGVhcENlbGxUeXBlLmdldCgpLCBGdW5jdGlvblJhcmVEYXRhKQotRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGdlbmVyYXRvclNwYWNlLCBjZWxsSGVhcENlbGxUeXBl
LmdldCgpLCBKU0dlbmVyYXRvcikKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJf
U0xPVyhnbG9iYWxPYmplY3RTcGFjZSwgZ2xvYmFsT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBK
U0dsb2JhbE9iamVjdCkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhp
bmplY3RlZFNjcmlwdEhvc3RTcGFjZSwgaW5qZWN0ZWRTY3JpcHRIb3N0U3BhY2VIZWFwQ2VsbFR5
cGUuZ2V0KCksIEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3QpCi1EWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50OEFycmF5U3BhY2UsIGNlbGxIZWFwQ2VsbFR5
cGUuZ2V0KCksIEpTSW50OEFycmF5KQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKGludDE2QXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNJbnQxNkFy
cmF5KQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGludDMyQXJyYXlT
cGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNJbnQzMkFycmF5KQotRFlOQU1JQ19JU09f
U1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGphdmFTY3JpcHRDYWxsRnJhbWVTcGFjZSwgamF2
YVNjcmlwdENhbGxGcmFtZUhlYXBDZWxsVHlwZS5nZXQoKSwgSW5zcGVjdG9yOjpKU0phdmFTY3Jp
cHRDYWxsRnJhbWUpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coanNN
b2R1bGVSZWNvcmRTcGFjZSwganNNb2R1bGVSZWNvcmRIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTTW9k
dWxlUmVjb3JkKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKG1hcEJ1
Y2tldFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU01hcDo6QnVja2V0VHlwZSkKLURZ
TkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhtYXBJdGVyYXRvclNwYWNlLCBj
ZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU01hcEl0ZXJhdG9yKQotRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUl9TTE9XKG1hcFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBK
U01hcCkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhtb2R1bGVOYW1l
c3BhY2VPYmplY3RTcGFjZSwgbW9kdWxlTmFtZXNwYWNlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgp
LCBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVJfU0xPVyhuYXRpdmVTdGRGdW5jdGlvblNwYWNlLCBuYXRpdmVTdGRGdW5jdGlvbkhlYXBD
ZWxsVHlwZS5nZXQoKSwgSlNOYXRpdmVTdGRGdW5jdGlvbikgLy8gSGFzaDoweDcwZWQ2MWU0Ci1E
WU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cocHJveHlPYmplY3RTcGFjZSwg
Y2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgUHJveHlPYmplY3QpCi1EWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSX1NMT1cocHJveHlSZXZva2VTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5n
ZXQoKSwgUHJveHlSZXZva2UpIC8vIEhhc2g6MHhiNTA2YTkzOQotRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUl9TTE9XKHNjb3BlZEFyZ3VtZW50c1RhYmxlU3BhY2UsIGRlc3RydWN0
aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFNjb3BlZEFyZ3VtZW50c1RhYmxlKQotRFlOQU1J
Q19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHNjcmlwdEZldGNoUGFyYW1ldGVyc1Nw
YWNlLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1NjcmlwdEZldGNoUGFy
YW1ldGVycykKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhzY3JpcHRG
ZXRjaGVyU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTU2NyaXB0
RmV0Y2hlcikKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhzZXRCdWNr
ZXRTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNTZXQ6OkJ1Y2tldFR5cGUpCi1EWU5B
TUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc2V0SXRlcmF0b3JTcGFjZSwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNTZXRJdGVyYXRvcikKLURZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVJfU0xPVyhzZXRTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNT
ZXQpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc2hhZG93UmVhbG1T
cGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgU2hhZG93UmVhbG1PYmplY3QpCi1EWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc3RyaWN0RXZhbEFjdGl2YXRpb25TcGFj
ZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgU3RyaWN0RXZhbEFjdGl2YXRpb24pCi1EWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc3RyaW5nSXRlcmF0b3JTcGFjZSwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNTdHJpbmdJdGVyYXRvcikKLURZTkFNSUNfSVNPX1NVQlNQ
QUNFX0RFRklORV9NRU1CRVJfU0xPVyhzb3VyY2VDb2RlU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTU291cmNlQ29kZSkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyhzeW1ib2xTcGFjZSwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlw
ZS5nZXQoKSwgU3ltYm9sKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KHN5bWJvbE9iamVjdFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBTeW1ib2xPYmplY3Qp
Ci1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codGVtcGxhdGVPYmplY3RE
ZXNjcmlwdG9yU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVt
cGxhdGVPYmplY3REZXNjcmlwdG9yKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKHRlbXBvcmFsQ2FsZW5kYXJTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgVGVt
cG9yYWxDYWxlbmRhcikKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh0
ZW1wb3JhbER1cmF0aW9uU3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFRlbXBvcmFsRHVy
YXRpb24pCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codGVtcG9yYWxJ
bnN0YW50U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFRlbXBvcmFsSW5zdGFudCkKLURZ
TkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh0ZW1wb3JhbFBsYWluVGltZVNw
YWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBUZW1wb3JhbFBsYWluVGltZSkKLURZTkFNSUNf
SVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh0ZW1wb3JhbFRpbWVab25lU3BhY2UsIGNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFRlbXBvcmFsVGltZVpvbmUpCi1EWU5BTUlDX0lTT19TVUJT
UEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codWludDhBcnJheVNwYWNlLCBjZWxsSGVhcENlbGxUeXBl
LmdldCgpLCBKU1VpbnQ4QXJyYXkpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
X1NMT1codWludDhDbGFtcGVkQXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNV
aW50OENsYW1wZWRBcnJheSkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xP
Vyh1aW50MTZBcnJheVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1VpbnQxNkFycmF5
KQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHVpbnQzMkFycmF5U3Bh
Y2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVWludDMyQXJyYXkpCi1EWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codW5saW5rZWRFdmFsQ29kZUJsb2NrU3BhY2UsIGRl
c3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFVubGlua2VkRXZhbENvZGVCbG9jaykK
LURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh1bmxpbmtlZEZ1bmN0aW9u
Q29kZUJsb2NrU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFVubGlu
a2VkRnVuY3Rpb25Db2RlQmxvY2spCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
X1NMT1codW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrU3BhY2UsIGRlc3RydWN0aWJsZUNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaykKLURZ
TkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh1bmxpbmtlZFByb2dyYW1Db2Rl
QmxvY2tTcGFjZSwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgVW5saW5rZWRQ
cm9ncmFtQ29kZUJsb2NrKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KHdlYWtNYXBTcGFjZSwgd2Vha01hcEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNXZWFrTWFwKSAvLyBI
YXNoOjB4NjYyYjEyYTMKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh3
ZWFrU2V0U3BhY2UsIHdlYWtTZXRIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2Vha1NldCkgLy8gSGFz
aDoweDRjNzgxYjMwCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2Vh
a09iamVjdFJlZlNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1dlYWtPYmplY3RSZWYp
IC8vIEhhc2g6MHg4ZWM2OGYxZgotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9T
TE9XKHdpdGhTY29wZVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1dpdGhTY29wZSkK
LURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhmaW5hbGl6YXRpb25SZWdp
c3RyeVNwYWNlLCBmaW5hbGl6YXRpb25SZWdpc3RyeUNlbGxUeXBlLmdldCgpLCBKU0ZpbmFsaXph
dGlvblJlZ2lzdHJ5KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFw
aUdsb2JhbE9iamVjdFNwYWNlLCAqYXBpR2xvYmFsT2JqZWN0SGVhcENlbGxUeXBlLCBKU0FQSUds
b2JhbE9iamVjdCkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhhcGlW
YWx1ZVdyYXBwZXJTcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUsIEpTQVBJVmFsdWVXcmFwcGVyKQor
RFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFycmF5QnVmZmVyU3BhY2Us
ICpjZWxsSGVhcENlbGxUeXBlLCBKU0FycmF5QnVmZmVyKQorRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUl9TTE9XKGFycmF5SXRlcmF0b3JTcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUs
IEpTQXJyYXlJdGVyYXRvcikKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xP
Vyhhc3luY0dlbmVyYXRvclNwYWNlLCAqY2VsbEhlYXBDZWxsVHlwZSwgSlNBc3luY0dlbmVyYXRv
cikKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhiaWdJbnQ2NEFycmF5
U3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBKU0JpZ0ludDY0QXJyYXkpCitEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYmlnSW50T2JqZWN0U3BhY2UsICpjZWxsSGVhcENl
bGxUeXBlLCBCaWdJbnRPYmplY3QpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
X1NMT1coYmlnVWludDY0QXJyYXlTcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUsIEpTQmlnVWludDY0
QXJyYXkpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYm9vbGVhbk9i
amVjdFNwYWNlLCAqY2VsbEhlYXBDZWxsVHlwZSwgQm9vbGVhbk9iamVjdCkKK0RZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhib3VuZEZ1bmN0aW9uU3BhY2UsICpjZWxsSGVh
cENlbGxUeXBlLCBKU0JvdW5kRnVuY3Rpb24pIC8vIEhhc2g6MHhkNzkxNmQ0MQorRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGNhbGxiYWNrQ29uc3RydWN0b3JTcGFjZSwg
KmNhbGxiYWNrQ29uc3RydWN0b3JIZWFwQ2VsbFR5cGUsIEpTQ2FsbGJhY2tDb25zdHJ1Y3RvcikK
K0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhjYWxsYmFja0dsb2JhbE9i
amVjdFNwYWNlLCAqY2FsbGJhY2tHbG9iYWxPYmplY3RIZWFwQ2VsbFR5cGUsIEpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKGNhbGxiYWNrRnVuY3Rpb25TcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUsIEpTQ2FsbGJh
Y2tGdW5jdGlvbikgLy8gSGFzaDoweGU3NjQ4ZWJjCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJ
TkVfTUVNQkVSX1NMT1coY2FsbGJhY2tPYmplY3RTcGFjZSwgKmNhbGxiYWNrT2JqZWN0SGVhcENl
bGxUeXBlLCBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+KQorRFlOQU1JQ19JU09f
U1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGN1c3RvbUdldHRlckZ1bmN0aW9uU3BhY2UsICpj
dXN0b21HZXR0ZXJGdW5jdGlvbkhlYXBDZWxsVHlwZSwgSlNDdXN0b21HZXR0ZXJGdW5jdGlvbikK
K0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhjdXN0b21TZXR0ZXJGdW5j
dGlvblNwYWNlLCAqY3VzdG9tU2V0dGVyRnVuY3Rpb25IZWFwQ2VsbFR5cGUsIEpTQ3VzdG9tU2V0
dGVyRnVuY3Rpb24pCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coZGF0
YVZpZXdTcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUsIEpTRGF0YVZpZXcpCitEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coZGVidWdnZXJTY29wZVNwYWNlLCAqY2VsbEhlYXBD
ZWxsVHlwZSwgRGVidWdnZXJTY29wZSkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVJfU0xPVyhlcnJvckluc3RhbmNlU3BhY2UsICplcnJvckluc3RhbmNlSGVhcENlbGxUeXBlLCBF
cnJvckluc3RhbmNlKSAvLyBIYXNoOjB4M2Y0MGQ0YQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUl9TTE9XKGZsb2F0MzJBcnJheVNwYWNlLCAqY2VsbEhlYXBDZWxsVHlwZSwgSlNG
bG9hdDMyQXJyYXkpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coZmxv
YXQ2NEFycmF5U3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBKU0Zsb2F0NjRBcnJheSkKK0RZTkFN
SUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhmdW5jdGlvblJhcmVEYXRhU3BhY2Us
ICpkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLCBGdW5jdGlvblJhcmVEYXRhKQorRFlOQU1J
Q19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGdlbmVyYXRvclNwYWNlLCAqY2VsbEhl
YXBDZWxsVHlwZSwgSlNHZW5lcmF0b3IpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVN
QkVSX1NMT1coZ2xvYmFsT2JqZWN0U3BhY2UsICpnbG9iYWxPYmplY3RIZWFwQ2VsbFR5cGUsIEpT
R2xvYmFsT2JqZWN0KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGlu
amVjdGVkU2NyaXB0SG9zdFNwYWNlLCAqaW5qZWN0ZWRTY3JpcHRIb3N0U3BhY2VIZWFwQ2VsbFR5
cGUsIEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3QpCitEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSX1NMT1coaW50OEFycmF5U3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBK
U0ludDhBcnJheSkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhpbnQx
NkFycmF5U3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBKU0ludDE2QXJyYXkpCitEWU5BTUlDX0lT
T19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50MzJBcnJheVNwYWNlLCAqY2VsbEhlYXBD
ZWxsVHlwZSwgSlNJbnQzMkFycmF5KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKGphdmFTY3JpcHRDYWxsRnJhbWVTcGFjZSwgKmphdmFTY3JpcHRDYWxsRnJhbWVIZWFw
Q2VsbFR5cGUsIEluc3BlY3Rvcjo6SlNKYXZhU2NyaXB0Q2FsbEZyYW1lKQorRFlOQU1JQ19JU09f
U1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGpzTW9kdWxlUmVjb3JkU3BhY2UsICpqc01vZHVs
ZVJlY29yZEhlYXBDZWxsVHlwZSwgSlNNb2R1bGVSZWNvcmQpCitEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSX1NMT1cobWFwQnVja2V0U3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBK
U01hcDo6QnVja2V0VHlwZSkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xP
VyhtYXBJdGVyYXRvclNwYWNlLCAqY2VsbEhlYXBDZWxsVHlwZSwgSlNNYXBJdGVyYXRvcikKK0RZ
TkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhtYXBTcGFjZSwgKmNlbGxIZWFw
Q2VsbFR5cGUsIEpTTWFwKQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KG1vZHVsZU5hbWVzcGFjZU9iamVjdFNwYWNlLCAqbW9kdWxlTmFtZXNwYWNlT2JqZWN0SGVhcENl
bGxUeXBlLCBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyhuYXRpdmVTdGRGdW5jdGlvblNwYWNlLCAqbmF0aXZlU3RkRnVuY3Rp
b25IZWFwQ2VsbFR5cGUsIEpTTmF0aXZlU3RkRnVuY3Rpb24pIC8vIEhhc2g6MHg3MGVkNjFlNAor
RFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHByb3h5T2JqZWN0U3BhY2Us
ICpjZWxsSGVhcENlbGxUeXBlLCBQcm94eU9iamVjdCkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyhwcm94eVJldm9rZVNwYWNlLCAqY2VsbEhlYXBDZWxsVHlwZSwgUHJv
eHlSZXZva2UpIC8vIEhhc2g6MHhiNTA2YTkzOQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUl9TTE9XKHNjb3BlZEFyZ3VtZW50c1RhYmxlU3BhY2UsICpkZXN0cnVjdGlibGVDZWxs
SGVhcENlbGxUeXBlLCBTY29wZWRBcmd1bWVudHNUYWJsZSkKK0RZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVJfU0xPVyhzY3JpcHRGZXRjaFBhcmFtZXRlcnNTcGFjZSwgKmRlc3RydWN0
aWJsZUNlbGxIZWFwQ2VsbFR5cGUsIEpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzKQorRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHNjcmlwdEZldGNoZXJTcGFjZSwgKmRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUsIEpTU2NyaXB0RmV0Y2hlcikKK0RZTkFNSUNfSVNPX1NV
QlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhzZXRCdWNrZXRTcGFjZSwgKmNlbGxIZWFwQ2VsbFR5
cGUsIEpTU2V0OjpCdWNrZXRUeXBlKQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKHNldEl0ZXJhdG9yU3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBKU1NldEl0ZXJhdG9y
KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHNldFNwYWNlLCAqY2Vs
bEhlYXBDZWxsVHlwZSwgSlNTZXQpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
X1NMT1coc2hhZG93UmVhbG1TcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUsIFNoYWRvd1JlYWxtT2Jq
ZWN0KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHN0cmljdEV2YWxB
Y3RpdmF0aW9uU3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBTdHJpY3RFdmFsQWN0aXZhdGlvbikK
K0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhzdHJpbmdJdGVyYXRvclNw
YWNlLCAqY2VsbEhlYXBDZWxsVHlwZSwgSlNTdHJpbmdJdGVyYXRvcikKK0RZTkFNSUNfSVNPX1NV
QlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhzb3VyY2VDb2RlU3BhY2UsICpkZXN0cnVjdGlibGVD
ZWxsSGVhcENlbGxUeXBlLCBKU1NvdXJjZUNvZGUpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJ
TkVfTUVNQkVSX1NMT1coc3ltYm9sU3BhY2UsICpkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBl
LCBTeW1ib2wpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc3ltYm9s
T2JqZWN0U3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBTeW1ib2xPYmplY3QpCitEWU5BTUlDX0lT
T19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codGVtcGxhdGVPYmplY3REZXNjcmlwdG9yU3Bh
Y2UsICpkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLCBKU1RlbXBsYXRlT2JqZWN0RGVzY3Jp
cHRvcikKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh0ZW1wb3JhbENh
bGVuZGFyU3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBUZW1wb3JhbENhbGVuZGFyKQorRFlOQU1J
Q19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHRlbXBvcmFsRHVyYXRpb25TcGFjZSwg
KmNlbGxIZWFwQ2VsbFR5cGUsIFRlbXBvcmFsRHVyYXRpb24pCitEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSX1NMT1codGVtcG9yYWxJbnN0YW50U3BhY2UsICpjZWxsSGVhcENlbGxU
eXBlLCBUZW1wb3JhbEluc3RhbnQpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
X1NMT1codGVtcG9yYWxQbGFpblRpbWVTcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUsIFRlbXBvcmFs
UGxhaW5UaW1lKQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHRlbXBv
cmFsVGltZVpvbmVTcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUsIFRlbXBvcmFsVGltZVpvbmUpCitE
WU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codWludDhBcnJheVNwYWNlLCAq
Y2VsbEhlYXBDZWxsVHlwZSwgSlNVaW50OEFycmF5KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUl9TTE9XKHVpbnQ4Q2xhbXBlZEFycmF5U3BhY2UsICpjZWxsSGVhcENlbGxUeXBl
LCBKU1VpbnQ4Q2xhbXBlZEFycmF5KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKHVpbnQxNkFycmF5U3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBKU1VpbnQxNkFycmF5
KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHVpbnQzMkFycmF5U3Bh
Y2UsICpjZWxsSGVhcENlbGxUeXBlLCBKU1VpbnQzMkFycmF5KQorRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUl9TTE9XKHVubGlua2VkRXZhbENvZGVCbG9ja1NwYWNlLCAqZGVzdHJ1
Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZSwgVW5saW5rZWRFdmFsQ29kZUJsb2NrKQorRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2tT
cGFjZSwgKmRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUsIFVubGlua2VkRnVuY3Rpb25Db2Rl
QmxvY2spCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codW5saW5rZWRN
b2R1bGVQcm9ncmFtQ29kZUJsb2NrU3BhY2UsICpkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBl
LCBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2spCitEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1codW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrU3BhY2UsICpkZXN0cnVj
dGlibGVDZWxsSGVhcENlbGxUeXBlLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2spCitEWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2Vha01hcFNwYWNlLCAqd2Vha01hcEhl
YXBDZWxsVHlwZSwgSlNXZWFrTWFwKSAvLyBIYXNoOjB4NjYyYjEyYTMKK0RZTkFNSUNfSVNPX1NV
QlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh3ZWFrU2V0U3BhY2UsICp3ZWFrU2V0SGVhcENlbGxU
eXBlLCBKU1dlYWtTZXQpIC8vIEhhc2g6MHg0Yzc4MWIzMAorRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUl9TTE9XKHdlYWtPYmplY3RSZWZTcGFjZSwgKmNlbGxIZWFwQ2VsbFR5cGUs
IEpTV2Vha09iamVjdFJlZikgLy8gSGFzaDoweDhlYzY4ZjFmCitEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSX1NMT1cod2l0aFNjb3BlU3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBK
U1dpdGhTY29wZSkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhmaW5h
bGl6YXRpb25SZWdpc3RyeVNwYWNlLCAqZmluYWxpemF0aW9uUmVnaXN0cnlDZWxsVHlwZSwgSlNG
aW5hbGl6YXRpb25SZWdpc3RyeSkKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAotRFlOQU1JQ19J
U09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFwaVdyYXBwZXJPYmplY3RTcGFjZSwgYXBp
V3JhcHBlck9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNDYWxsYmFja09iamVjdDxKU0FQSVdy
YXBwZXJPYmplY3Q+KQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKG9i
akNDYWxsYmFja0Z1bmN0aW9uU3BhY2UsIG9iakNDYWxsYmFja0Z1bmN0aW9uSGVhcENlbGxUeXBl
LmdldCgpLCBPYmpDQ2FsbGJhY2tGdW5jdGlvbikgLy8gSGFzaDoweDEwZjYxMGI4CitEWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYXBpV3JhcHBlck9iamVjdFNwYWNlLCAq
YXBpV3JhcHBlck9iamVjdEhlYXBDZWxsVHlwZSwgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBw
ZXJPYmplY3Q+KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKG9iakND
YWxsYmFja0Z1bmN0aW9uU3BhY2UsICpvYmpDQ2FsbGJhY2tGdW5jdGlvbkhlYXBDZWxsVHlwZSwg
T2JqQ0NhbGxiYWNrRnVuY3Rpb24pIC8vIEhhc2g6MHgxMGY2MTBiOAogI2VuZGlmCiAjaWZkZWYg
SlNDX0dMSUJfQVBJX0VOQUJMRUQKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJf
U0xPVyhhcGlXcmFwcGVyT2JqZWN0U3BhY2UsIGFwaVdyYXBwZXJPYmplY3RIZWFwQ2VsbFR5cGUu
Z2V0KCksIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0PikKLURZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhqc2NDYWxsYmFja0Z1bmN0aW9uU3BhY2UsIGpz
Y0NhbGxiYWNrRnVuY3Rpb25IZWFwQ2VsbFR5cGUuZ2V0KCksIEpTQ0NhbGxiYWNrRnVuY3Rpb24p
Ci1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coY2FsbGJhY2tBUElXcmFw
cGVyR2xvYmFsT2JqZWN0U3BhY2UsIGNhbGxiYWNrQVBJV3JhcHBlckdsb2JhbE9iamVjdEhlYXBD
ZWxsVHlwZS5nZXQoKSwgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+
KQotI2VuZGlmCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50bENv
bGxhdG9yU3BhY2UsIGludGxDb2xsYXRvckhlYXBDZWxsVHlwZS5nZXQoKSwgSW50bENvbGxhdG9y
KQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGludGxEYXRlVGltZUZv
cm1hdFNwYWNlLCBpbnRsRGF0ZVRpbWVGb3JtYXRIZWFwQ2VsbFR5cGUuZ2V0KCksIEludGxEYXRl
VGltZUZvcm1hdCkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhpbnRs
RGlzcGxheU5hbWVzU3BhY2UsIGludGxEaXNwbGF5TmFtZXNIZWFwQ2VsbFR5cGUuZ2V0KCksIElu
dGxEaXNwbGF5TmFtZXMpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1co
aW50bExpc3RGb3JtYXRTcGFjZSwgaW50bExpc3RGb3JtYXRIZWFwQ2VsbFR5cGUuZ2V0KCksIElu
dGxMaXN0Rm9ybWF0KQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGlu
dGxMb2NhbGVTcGFjZSwgaW50bExvY2FsZUhlYXBDZWxsVHlwZS5nZXQoKSwgSW50bExvY2FsZSkK
LURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhpbnRsTnVtYmVyRm9ybWF0
U3BhY2UsIGludGxOdW1iZXJGb3JtYXRIZWFwQ2VsbFR5cGUuZ2V0KCksIEludGxOdW1iZXJGb3Jt
YXQpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50bFBsdXJhbFJ1
bGVzU3BhY2UsIGludGxQbHVyYWxSdWxlc0hlYXBDZWxsVHlwZS5nZXQoKSwgSW50bFBsdXJhbFJ1
bGVzKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGludGxSZWxhdGl2
ZVRpbWVGb3JtYXRTcGFjZSwgaW50bFJlbGF0aXZlVGltZUZvcm1hdEhlYXBDZWxsVHlwZS5nZXQo
KSwgSW50bFJlbGF0aXZlVGltZUZvcm1hdCkKLURZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVJfU0xPVyhpbnRsU2VnbWVudEl0ZXJhdG9yU3BhY2UsIGludGxTZWdtZW50SXRlcmF0b3JI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEludGxTZWdtZW50SXRlcmF0b3IpCi1EWU5BTUlDX0lTT19TVUJT
UEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50bFNlZ21lbnRlclNwYWNlLCBpbnRsU2VnbWVudGVy
SGVhcENlbGxUeXBlLmdldCgpLCBJbnRsU2VnbWVudGVyKQotRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUl9TTE9XKGludGxTZWdtZW50c1NwYWNlLCBpbnRsU2VnbWVudHNIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEludGxTZWdtZW50cykKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVJfU0xPVyhhcGlXcmFwcGVyT2JqZWN0U3BhY2UsICphcGlXcmFwcGVyT2JqZWN0SGVhcENl
bGxUeXBlLCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD4pCitEWU5BTUlDX0lT
T19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coanNjQ2FsbGJhY2tGdW5jdGlvblNwYWNlLCAq
anNjQ2FsbGJhY2tGdW5jdGlvbkhlYXBDZWxsVHlwZSwgSlNDQ2FsbGJhY2tGdW5jdGlvbikKK0RZ
TkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhjYWxsYmFja0FQSVdyYXBwZXJH
bG9iYWxPYmplY3RTcGFjZSwgKmNhbGxiYWNrQVBJV3JhcHBlckdsb2JhbE9iamVjdEhlYXBDZWxs
VHlwZSwgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+KQorI2VuZGlm
CitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50bENvbGxhdG9yU3Bh
Y2UsICppbnRsQ29sbGF0b3JIZWFwQ2VsbFR5cGUsIEludGxDb2xsYXRvcikKK0RZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhpbnRsRGF0ZVRpbWVGb3JtYXRTcGFjZSwgKmlu
dGxEYXRlVGltZUZvcm1hdEhlYXBDZWxsVHlwZSwgSW50bERhdGVUaW1lRm9ybWF0KQorRFlOQU1J
Q19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGludGxEaXNwbGF5TmFtZXNTcGFjZSwg
KmludGxEaXNwbGF5TmFtZXNIZWFwQ2VsbFR5cGUsIEludGxEaXNwbGF5TmFtZXMpCitEWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50bExpc3RGb3JtYXRTcGFjZSwgKmlu
dGxMaXN0Rm9ybWF0SGVhcENlbGxUeXBlLCBJbnRsTGlzdEZvcm1hdCkKK0RZTkFNSUNfSVNPX1NV
QlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhpbnRsTG9jYWxlU3BhY2UsICppbnRsTG9jYWxlSGVh
cENlbGxUeXBlLCBJbnRsTG9jYWxlKQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKGludGxOdW1iZXJGb3JtYXRTcGFjZSwgKmludGxOdW1iZXJGb3JtYXRIZWFwQ2VsbFR5
cGUsIEludGxOdW1iZXJGb3JtYXQpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
X1NMT1coaW50bFBsdXJhbFJ1bGVzU3BhY2UsICppbnRsUGx1cmFsUnVsZXNIZWFwQ2VsbFR5cGUs
IEludGxQbHVyYWxSdWxlcykKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xP
VyhpbnRsUmVsYXRpdmVUaW1lRm9ybWF0U3BhY2UsICppbnRsUmVsYXRpdmVUaW1lRm9ybWF0SGVh
cENlbGxUeXBlLCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KQorRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUl9TTE9XKGludGxTZWdtZW50SXRlcmF0b3JTcGFjZSwgKmludGxTZWdtZW50
SXRlcmF0b3JIZWFwQ2VsbFR5cGUsIEludGxTZWdtZW50SXRlcmF0b3IpCitEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coaW50bFNlZ21lbnRlclNwYWNlLCAqaW50bFNlZ21l
bnRlckhlYXBDZWxsVHlwZSwgSW50bFNlZ21lbnRlcikKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyhpbnRsU2VnbWVudHNTcGFjZSwgKmludGxTZWdtZW50c0hlYXBDZWxs
VHlwZSwgSW50bFNlZ21lbnRzKQogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLURZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhqc1RvV2FzbUlDQ2FsbGVlU3BhY2UsIGNlbGxI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVG9XYXNtSUNDYWxsZWUpCi1EWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlDb2RlQmxvY2tTcGFjZSwgd2ViQXNzZW1i
bHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2spIC8v
IEhhc2g6MHg5YWQ5OTVjZAotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KHdlYkFzc2VtYmx5RXhjZXB0aW9uU3BhY2UsIHdlYkFzc2VtYmx5RXhjZXB0aW9uSGVhcENlbGxU
eXBlLmdldCgpLCBKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKQotRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUl9TTE9XKHdlYkFzc2VtYmx5RnVuY3Rpb25TcGFjZSwgd2ViQXNzZW1ibHlG
dW5jdGlvbkhlYXBDZWxsVHlwZS5nZXQoKSwgV2ViQXNzZW1ibHlGdW5jdGlvbikgLy8gSGFzaDow
eDhiN2MzMmRiCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNz
ZW1ibHlHbG9iYWxTcGFjZSwgd2ViQXNzZW1ibHlHbG9iYWxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpT
V2ViQXNzZW1ibHlHbG9iYWwpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NM
T1cod2ViQXNzZW1ibHlJbnN0YW5jZVNwYWNlLCB3ZWJBc3NlbWJseUluc3RhbmNlSGVhcENlbGxU
eXBlLmdldCgpLCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlNZW1vcnlTcGFjZSwgd2ViQXNzZW1ibHlNZW1v
cnlIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2ViQXNzZW1ibHlNZW1vcnkpCi1EWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlNb2R1bGVTcGFjZSwgd2ViQXNz
ZW1ibHlNb2R1bGVIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2ViQXNzZW1ibHlNb2R1bGUpCi1EWU5B
TUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmRTcGFjZSwgd2ViQXNzZW1ibHlNb2R1bGVSZWNvcmRIZWFwQ2VsbFR5cGUuZ2V0KCksIFdlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9T
TE9XKHdlYkFzc2VtYmx5VGFibGVTcGFjZSwgd2ViQXNzZW1ibHlUYWJsZUhlYXBDZWxsVHlwZS5n
ZXQoKSwgSlNXZWJBc3NlbWJseVRhYmxlKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01F
TUJFUl9TTE9XKHdlYkFzc2VtYmx5VGFnU3BhY2UsIHdlYkFzc2VtYmx5VGFnSGVhcENlbGxUeXBl
LmdldCgpLCBKU1dlYkFzc2VtYmx5VGFnKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01F
TUJFUl9TTE9XKHdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uU3BhY2UsIGNlbGxIZWFwQ2VsbFR5
cGUuZ2V0KCksIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKSAvLyBIYXNoOjB4ZDRhNWZmMDEK
K0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhqc1RvV2FzbUlDQ2FsbGVl
U3BhY2UsICpjZWxsSGVhcENlbGxUeXBlLCBKU1RvV2FzbUlDQ2FsbGVlKQorRFlOQU1JQ19JU09f
U1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHdlYkFzc2VtYmx5Q29kZUJsb2NrU3BhY2UsICp3
ZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZSwgSlNXZWJBc3NlbWJseUNvZGVCbG9jaykg
Ly8gSGFzaDoweDlhZDk5NWNkCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NM
T1cod2ViQXNzZW1ibHlFeGNlcHRpb25TcGFjZSwgKndlYkFzc2VtYmx5RXhjZXB0aW9uSGVhcENl
bGxUeXBlLCBKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUl9TTE9XKHdlYkFzc2VtYmx5RnVuY3Rpb25TcGFjZSwgKndlYkFzc2VtYmx5RnVu
Y3Rpb25IZWFwQ2VsbFR5cGUsIFdlYkFzc2VtYmx5RnVuY3Rpb24pIC8vIEhhc2g6MHg4YjdjMzJk
YgorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHdlYkFzc2VtYmx5R2xv
YmFsU3BhY2UsICp3ZWJBc3NlbWJseUdsb2JhbEhlYXBDZWxsVHlwZSwgSlNXZWJBc3NlbWJseUds
b2JhbCkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh3ZWJBc3NlbWJs
eUluc3RhbmNlU3BhY2UsICp3ZWJBc3NlbWJseUluc3RhbmNlSGVhcENlbGxUeXBlLCBKU1dlYkFz
c2VtYmx5SW5zdGFuY2UpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1co
d2ViQXNzZW1ibHlNZW1vcnlTcGFjZSwgKndlYkFzc2VtYmx5TWVtb3J5SGVhcENlbGxUeXBlLCBK
U1dlYkFzc2VtYmx5TWVtb3J5KQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9T
TE9XKHdlYkFzc2VtYmx5TW9kdWxlU3BhY2UsICp3ZWJBc3NlbWJseU1vZHVsZUhlYXBDZWxsVHlw
ZSwgSlNXZWJBc3NlbWJseU1vZHVsZSkKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVJfU0xPVyh3ZWJBc3NlbWJseU1vZHVsZVJlY29yZFNwYWNlLCAqd2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmRIZWFwQ2VsbFR5cGUsIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkKQorRFlOQU1JQ19JU09f
U1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHdlYkFzc2VtYmx5VGFibGVTcGFjZSwgKndlYkFz
c2VtYmx5VGFibGVIZWFwQ2VsbFR5cGUsIEpTV2ViQXNzZW1ibHlUYWJsZSkKK0RZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh3ZWJBc3NlbWJseVRhZ1NwYWNlLCAqd2ViQXNz
ZW1ibHlUYWdIZWFwQ2VsbFR5cGUsIEpTV2ViQXNzZW1ibHlUYWcpCitEWU5BTUlDX0lTT19TVUJT
UEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb25TcGFjZSwg
KmNlbGxIZWFwQ2VsbFR5cGUsIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKSAvLyBIYXNoOjB4
ZDRhNWZmMDEKICNlbmRpZgogCiAjdW5kZWYgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01F
TUJFUl9TTE9XCkBAIC0xNjk3LDggKzE2OTgsOCBAQCBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJ
TkVfTUVNQkVSX1NMT1coCiAgICAgICAgIHJldHVybiAmbV8jI25hbWUtPnNwYWNlOyBcCiAgICAg
fQogCi1EWU5BTUlDX1NQQUNFX0FORF9TRVRfREVGSU5FX01FTUJFUl9TTE9XKGV2YWxFeGVjdXRh
YmxlU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEV2YWxFeGVjdXRh
YmxlKSAvLyBIYXNoOjB4OTU4ZTNlOWQKLURZTkFNSUNfU1BBQ0VfQU5EX1NFVF9ERUZJTkVfTUVN
QkVSX1NMT1cobW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGVTcGFjZSwgZGVzdHJ1Y3RpYmxlQ2VsbEhl
YXBDZWxsVHlwZS5nZXQoKSwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUpIC8vIEhhc2g6MHg2NTA2
ZmEzYworRFlOQU1JQ19TUEFDRV9BTkRfU0VUX0RFRklORV9NRU1CRVJfU0xPVyhldmFsRXhlY3V0
YWJsZVNwYWNlLCAqZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZSwgRXZhbEV4ZWN1dGFibGUp
IC8vIEhhc2g6MHg5NThlM2U5ZAorRFlOQU1JQ19TUEFDRV9BTkRfU0VUX0RFRklORV9NRU1CRVJf
U0xPVyhtb2R1bGVQcm9ncmFtRXhlY3V0YWJsZVNwYWNlLCAqZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBD
ZWxsVHlwZSwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUpIC8vIEhhc2g6MHg2NTA2ZmEzYwogCiAj
dW5kZWYgRFlOQU1JQ19TUEFDRV9BTkRfU0VUX0RFRklORV9NRU1CRVJfU0xPVwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOTAgQEAKKzIwMjEtMTEtMTggIE1hcmsgTGFtICA8bWFy
ay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFN1YlNwYWNlIGNvbnN0cnVjdG9ycyBzaG91bGQg
dGFrZSBhIGNvbnN0IEhlYXBDZWxsVHlwZSYgaW5zdGVhZCBvZiBhIEhlYXBDZWxsVHlwZSouCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMzNDEKKyAg
ICAgICAgcmRhcjovLzg1NTczMjc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGVJ
dGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGVJdGVyYXRvcjo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJD
b3JlSlNDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVk1DbGllbnREYXRhOjpK
U1ZNQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVy
YXRlSXRlcmFibGVEZWZpbml0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OnN1YnNw
YWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZTo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkU3Rhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V4
cG9zZWRTdGFyOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdzo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlOjpzdWJzcGFjZUZv
ckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZTo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNTaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uczo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpzdWJzcGFj
ZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxs
VHJhY2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENhbGxUcmFjZXI6OnN1YnNwYWNl
Rm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM6OnN1YnNwYWNlRm9y
SW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZTo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdERPTUpJ
VDo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RGVmYXVsdFRvSlNPTi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3REZWZhdWx0
VG9KU09OOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkOjpzdWJzcGFjZUZv
ckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0
VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZTo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ6OnN1YnNw
YWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRGaW5hbDo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJp
YnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhl
dGljQXR0cmlidXRlOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3REb21haW5TZWN1cml0eTo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkRm9yQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFbmFibGVkRm9yQ29udGV4dDo6c3Vic3BhY2VGb3JJ
bXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpz
dWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudFRhcmdldDo6
c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV4Y2VwdGlvbjo6c3Vi
c3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
R2VuZXJhdGVBZGRPcGFxdWVSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEdlbmVy
YXRlQWRkT3BhcXVlUm9vdDo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpzdWJzcGFjZUZvckltcGwpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0R2xvYmFsT2JqZWN0OjpzdWJzcGFjZUZvckltcGwpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnN1YnNwYWNl
Rm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzQ2FsbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmU6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEl0ZXJhYmxl
UHJvdG90eXBlRnVuY3Rpb25fZW50cmllc0NhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RJdGVyYWJsZTo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246OnN1YnNw
YWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0OjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OnN1YnNwYWNlRm9ySW1w
bCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWFwTGlrZTo6c3Vic3BhY2VGb3JJbXBsKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbjo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnN1
YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0
aW9uOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6c3Vic3BhY2VGb3JJbXBsKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXI6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6
OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcjo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnN1
YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI6OnN1YnNwYWNlRm9ySW1wbCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6c3Vic3BhY2VGb3JJbXBsKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzOjpzdWJzcGFjZUZvckltcGwpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OnN1YnNwYWNlRm9ySW1wbCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZU9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lc3BhY2VPYmplY3Q6OnN1YnNwYWNlRm9y
SW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXND
YWxsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZTo6c3Vic3BhY2VGb3JJbXBsKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWw6OnN1YnNwYWNlRm9ySW1w
bCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yczo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjpz
dWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RQbHVnaW5JbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0UGx1Z2luSW50
ZXJmYWNlOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seU1hcExpa2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0UmVhZE9ubHlNYXBMaWtlOjpzdWJzcGFjZUZvckltcGwpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seVNldExpa2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0UmVhZE9ubHlTZXRMaWtlOjpzdWJzcGFjZUZv
ckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0UmVwb3J0RXh0cmFN
ZW1vcnlDb3N0OjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpzdWJzcGFj
ZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRM
aWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNldExpa2U6OnN1YnNwYWNlRm9ySW1w
bCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uczo6c3Vic3BhY2VGb3JJbXBsKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXI6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb246OnN1YnNwYWNlRm9ySW1wbCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5h
bWVkVG9TdHJpbmc6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZTo6c3Vic3BhY2VG
b3JJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdFR5cGVkZWZzOjpzdWJzcGFjZUZvckltcGwpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTV29ya2VyR2xvYmFsU2NvcGU6OnN1YnNwYWNlRm9ySW1wbCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTV29ya2xldEdsb2JhbFNjb3BlOjpzdWJzcGFjZUZvckltcGwpOgorICAg
ICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6c3Vic3BhY2VGb3JJbXBsKToKKwogMjAyMS0xMS0x
OCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZWFj
aCBXaGVlbEV2ZW50VGVzdE1vbml0b3IgYWJvdXQgc2Nyb2xsIGFuaW1hdGlvbnMKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZUl0ZXJh
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGVJdGVyYXRvci5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZUl0ZXJh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsOSArNTUsOSBAQCBJc29TdWJzcGFjZSogSlNG
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpT
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZUl0ZXJhdG9yPiB8fCAhSlNGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlSXRlcmF0b3I6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAo
c3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNGaWxlU3lzdGVt
RGlyZWN0b3J5SGFuZGxlSXRlcmF0b3I+KQotICAgICAgICBjbGllbnREYXRhLnNldEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGVJdGVyYXRvclNwYWNlKG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlw
ZS5nZXQoKSwgSlNGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlSXRlcmF0b3IpKTsKKyAgICAgICAg
Y2xpZW50RGF0YS5zZXRGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlSXRlcmF0b3JTcGFjZShtYWtl
VW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGVJdGVy
YXRvcikpOwogICAgIGVsc2UKLSAgICAgICAgY2xpZW50RGF0YS5zZXRGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlSXRlcmF0b3JTcGFjZShtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0ZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGVJdGVyYXRvcikpOworICAgICAgICBjbGllbnREYXRhLnNldEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGVJdGVyYXRvclNwYWNlKG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU0ZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGVJdGVyYXRvcikpOwogICAgIGF1dG8qIHNwYWNlID0gY2xpZW50RGF0
YS5maWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlSXRlcmF0b3JTcGFjZSgpOwogSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1
dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUpTQ2xpZW50RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNzcsMTUgKzc3LDE1IEBAIEpTVk1DbGllbnREYXRhOjpKU1ZNQ2xpZW50RGF0YShW
TSYgdm0pCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUo
SlNDOjpJc29IZWFwQ2VsbFR5cGU6OmNyZWF0ZTxKU0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlPigp
KQogI2VuZGlmCiAgICAgLCBtX2hlYXBDZWxsVHlwZUZvckpTSURCU2VyaWFsaXphdGlvbkdsb2Jh
bE9iamVjdChKU0M6Oklzb0hlYXBDZWxsVHlwZTo6Y3JlYXRlPEpTSURCU2VyaWFsaXphdGlvbkds
b2JhbE9iamVjdD4oKSkKLSAgICAsIG1fZG9tQnVpbHRpbkNvbnN0cnVjdG9yU3BhY2UgSVNPX1NV
QlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNET01CdWls
dGluQ29uc3RydWN0b3JCYXNlKQotICAgICwgbV9kb21Db25zdHJ1Y3RvclNwYWNlIElTT19TVUJT
UEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTRE9NQ29uc3Ry
dWN0b3JCYXNlKQotICAgICwgbV9kb21OYW1lc3BhY2VPYmplY3RTcGFjZSBJU09fU1VCU1BBQ0Vf
SU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0RPTU9iamVjdCkKLSAg
ICAsIG1fZG9tV2luZG93UHJvcGVydGllc1NwYWNlIElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
IHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTRE9NV2luZG93UHJvcGVydGllcykKLSAgICAs
IG1fcnVudGltZUFycmF5U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgbV9ydW50aW1l
QXJyYXlIZWFwQ2VsbFR5cGUuZ2V0KCksIFJ1bnRpbWVBcnJheSkKLSAgICAsIG1fcnVudGltZU1l
dGhvZFNwYWNlIElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUu
Z2V0KCksIFJ1bnRpbWVNZXRob2QpIC8vIEhhc2g6MHhmNzBjNGE4NQotICAgICwgbV9ydW50aW1l
T2JqZWN0U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgbV9ydW50aW1lT2JqZWN0SGVh
cENlbGxUeXBlLmdldCgpLCBKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0KQotICAgICwgbV93
aW5kb3dQcm94eVNwYWNlIElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIG1fd2luZG93UHJveHlI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2luZG93UHJveHkpCi0gICAgLCBtX2lkYlNlcmlhbGl6YXRp
b25TcGFjZSBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCBtX2hlYXBDZWxsVHlwZUZvckpTSURC
U2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdC5nZXQoKSwgSlNJREJTZXJpYWxpemF0aW9uR2xvYmFs
T2JqZWN0KQorICAgICwgbV9kb21CdWlsdGluQ29uc3RydWN0b3JTcGFjZSBJU09fU1VCU1BBQ0Vf
SU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNET01CdWlsdGluQ29uc3RydWN0
b3JCYXNlKQorICAgICwgbV9kb21Db25zdHJ1Y3RvclNwYWNlIElTT19TVUJTUEFDRV9JTklUKHZt
LmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU0RPTUNvbnN0cnVjdG9yQmFzZSkKKyAgICAs
IG1fZG9tTmFtZXNwYWNlT2JqZWN0U3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZt
LmNlbGxIZWFwQ2VsbFR5cGUsIEpTRE9NT2JqZWN0KQorICAgICwgbV9kb21XaW5kb3dQcm9wZXJ0
aWVzU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUs
IEpTRE9NV2luZG93UHJvcGVydGllcykKKyAgICAsIG1fcnVudGltZUFycmF5U3BhY2UgSVNPX1NV
QlNQQUNFX0lOSVQodm0uaGVhcCwgKm1fcnVudGltZUFycmF5SGVhcENlbGxUeXBlLCBSdW50aW1l
QXJyYXkpCisgICAgLCBtX3J1bnRpbWVNZXRob2RTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVCh2bS5o
ZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgUnVudGltZU1ldGhvZCkgLy8gSGFzaDoweGY3MGM0
YTg1CisgICAgLCBtX3J1bnRpbWVPYmplY3RTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFw
LCAqbV9ydW50aW1lT2JqZWN0SGVhcENlbGxUeXBlLCBKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2Jq
ZWN0KQorICAgICwgbV93aW5kb3dQcm94eVNwYWNlIElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
ICptX3dpbmRvd1Byb3h5SGVhcENlbGxUeXBlLCBKU1dpbmRvd1Byb3h5KQorICAgICwgbV9pZGJT
ZXJpYWxpemF0aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKm1faGVhcENlbGxU
eXBlRm9ySlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0LCBKU0lEQlNlcmlhbGl6YXRpb25H
bG9iYWxPYmplY3QpCiAgICAgLCBtX3N1YnNwYWNlcyhtYWtlVW5pcXVlPERPTUlzb1N1YnNwYWNl
cz4oKSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAt
NDg1MiwxMyArNDg1MiwxMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9y
JHtpbnRlcmZhY2VOYW1lfS5nZXQoKSlcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICByZXR1cm4gc3BhY2U7XG4iKTsKICAgICBpZiAoSXNET01HbG9iYWxPYmplY3QoJGludGVy
ZmFjZSkpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgc3BhY2VzLm1fc3Vic3Bh
Y2VGb3Ike2ludGVyZmFjZU5hbWV9ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZvciR7Y2xhc3NOYW1l
fS5nZXQoKSwgJHtjbGFzc05hbWV9KTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBzcGFjZXMubV9zdWJzcGFjZUZvciR7aW50ZXJmYWNlTmFtZX0gPSBtYWtlVW5pcXVlPElz
b1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqY2xpZW50RGF0YS5tX2hlYXBD
ZWxsVHlwZUZvciR7Y2xhc3NOYW1lfSwgJHtjbGFzc05hbWV9KTtcbiIpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19i
YXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgJHtjbGFzc05hbWV9PiB8fCAhJHtj
bGFzc05hbWV9OjpuZWVkc0Rlc3RydWN0aW9uKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVj
dGlibGVPYmplY3QsICR7Y2xhc3NOYW1lfT4pXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yJHtpbnRlcmZhY2VOYW1lfSA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0
aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgJHtjbGFzc05hbWV9KTtcbiIpOworICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3Ike2ludGVy
ZmFjZU5hbWV9ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0u
aGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgJHtjbGFzc05hbWV9KTtc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBlbHNlXG4iKTsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yJHtpbnRlcmZh
Y2VOYW1lfSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhl
YXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksICR7Y2xhc3NOYW1lfSk7XG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yJHtpbnRl
cmZhY2VOYW1lfSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZt
LmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCAke2NsYXNzTmFtZX0pO1xuIik7CiAgICAgfQog
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3Bh
Y2VGb3Ike2ludGVyZmFjZU5hbWV9LmdldCgpO1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJJR05PUkVfV0FSTklOR1NfQkVHSU4oXCJ1bnJlYWNoYWJsZS1jb2RlXCIpXG4iKTsKQEAgLTY3
MzEsOSArNjczMSw5IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LCAke2l0ZXJhdG9yTmFtZX0+IHx8ICEke2l0ZXJhdG9yTmFtZX06Om5lZWRzRGVzdHJ1Y3Rp
b24pOwogICAgICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0
cnVjdGlibGVPYmplY3QsICR7aXRlcmF0b3JOYW1lfT4pCi0gICAgICAgICAgICBzcGFjZXMubV9z
dWJzcGFjZUZvciR7aXRlcmF0b3JOYW1lfSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19T
VUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5n
ZXQoKSwgJHtpdGVyYXRvck5hbWV9KTsKKyAgICAgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9y
JHtpdGVyYXRvck5hbWV9ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lO
SVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgJHtp
dGVyYXRvck5hbWV9KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc3BhY2VzLm1fc3Vic3Bh
Y2VGb3Ike2l0ZXJhdG9yTmFtZX0gPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCAke2l0ZXJhdG9yTmFt
ZX0pOworICAgICAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3Ike2l0ZXJhdG9yTmFtZX0gPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2Vs
bEhlYXBDZWxsVHlwZSwgJHtpdGVyYXRvck5hbWV9KTsKICAgICAgICAgYXV0byogc3BhY2UgPSBz
cGFjZXMubV9zdWJzcGFjZUZvciR7aXRlcmF0b3JOYW1lfS5nZXQoKTsKIElHTk9SRV9XQVJOSU5H
U19CRUdJTihcInVucmVhY2hhYmxlLWNvZGVcIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTihcInRh
dXRvbG9naWNhbC1jb21wYXJlXCIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDI4NjAz
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdpbmRv
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2OSw3ICszNjksNyBAQCBKU0M6Oklzb1N1YnNwYWNl
KiBKU0RPTVdpbmRvdzo6c3Vic3BhY2VGCiAgICAgYXV0byYgc3BhY2VzID0gY2xpZW50RGF0YS5z
dWJzcGFjZXMoKTsKICAgICBpZiAoYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvckRP
TVdpbmRvdy5nZXQoKSkKICAgICAgICAgcmV0dXJuIHNwYWNlOwotICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yRE9NV2luZG93ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lO
SVQodm0uaGVhcCwgY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZvckpTRE9NV2luZG93LmdldCgp
LCBKU0RPTVdpbmRvdyk7CisgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JET01XaW5kb3cgPSBtYWtl
VW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqY2xpZW50RGF0
YS5tX2hlYXBDZWxsVHlwZUZvckpTRE9NV2luZG93LCBKU0RPTVdpbmRvdyk7CiAgICAgYXV0byog
c3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvckRPTVdpbmRvdy5nZXQoKTsKIElHTk9SRV9XQVJO
SU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRh
dXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTcwLDcgKzE3MCw3IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTRGVk
aWNhdGVkV29ya2VyR2xvYmEKICAgICBhdXRvJiBzcGFjZXMgPSBjbGllbnREYXRhLnN1YnNwYWNl
cygpOwogICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuZ2V0KCkpCiAgICAgICAgIHJldHVybiBzcGFjZTsKLSAgICBzcGFj
ZXMubV9zdWJzcGFjZUZvckRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlID0gbWFrZVVuaXF1ZTxJ
c29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgY2xpZW50RGF0YS5tX2hlYXBD
ZWxsVHlwZUZvckpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuZ2V0KCksIEpTRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUpOworICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5J
VCh2bS5oZWFwLCAqY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZvckpTRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUsIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpOwogICAgIGF1dG8qIHNw
YWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5nZXQo
KTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FS
TklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRTdGFyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkU3Rhci5j
cHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU0V4cG9zZWRTdGFyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDkgKzIzNiw5
IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTRXhwb3NlZFN0YXI6OnN1YnNwYWMKICAgICAgICAgcmV0
dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rl
c3RydWN0aWJsZU9iamVjdCwgSlNFeHBvc2VkU3Rhcj4gfHwgIUpTRXhwb3NlZFN0YXI6Om5lZWRz
RGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpK
U0Rlc3RydWN0aWJsZU9iamVjdCwgSlNFeHBvc2VkU3Rhcj4pCi0gICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yRXhwb3NlZFN0YXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCks
IEpTRXhwb3NlZFN0YXIpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvckV4cG9zZWRTdGFy
ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZt
LmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNFeHBvc2VkU3Rhcik7CiAgICAgZWxz
ZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvckV4cG9zZWRTdGFyID0gbWFrZVVuaXF1ZTxJ
c29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlw
ZS5nZXQoKSwgSlNFeHBvc2VkU3Rhcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yRXhw
b3NlZFN0YXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5o
ZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNFeHBvc2VkU3Rhcik7CiAgICAgYXV0byogc3Bh
Y2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvckV4cG9zZWRTdGFyLmdldCgpOwogSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1
dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3cuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTIsOSArMjUyLDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNFeHBvc2VkVG9X
b3JrZXJBbmRXaQogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvdz4gfHwgIUpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93OjpuZWVkc0Rlc3RydWN0
aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVj
dGlibGVPYmplY3QsIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93PikKLSAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cgPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93KTsKKyAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cgPSBtYWtlVW5pcXVl
PElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxl
T2JqZWN0SGVhcENlbGxUeXBlLCBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyk7CiAgICAgZWxz
ZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvckV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyA9
IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93KTsKKyAgICAg
ICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cgPSBtYWtlVW5p
cXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBD
ZWxsVHlwZSwgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cpOwogICAgIGF1dG8qIHNwYWNlID0g
c3BhY2VzLm1fc3Vic3BhY2VGb3JFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuZ2V0KCk7CiBJR05P
UkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JF
R0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1BhaW50
V29ya2xldEdsb2JhbFNjCiAgICAgYXV0byYgc3BhY2VzID0gY2xpZW50RGF0YS5zdWJzcGFjZXMo
KTsKICAgICBpZiAoYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclBhaW50V29ya2xl
dEdsb2JhbFNjb3BlLmdldCgpKQogICAgICAgICByZXR1cm4gc3BhY2U7Ci0gICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JQYWludFdvcmtsZXRHbG9iYWxTY29wZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3Bh
Y2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIGNsaWVudERhdGEubV9oZWFwQ2VsbFR5cGVG
b3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmdldCgpLCBKU1BhaW50V29ya2xldEdsb2JhbFNj
b3BlKTsKKyAgICBzcGFjZXMubV9zdWJzcGFjZUZvclBhaW50V29ya2xldEdsb2JhbFNjb3BlID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKmNsaWVu
dERhdGEubV9oZWFwQ2VsbFR5cGVGb3JKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLCBKU1BhaW50
V29ya2xldEdsb2JhbFNjb3BlKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNl
Rm9yUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4o
InVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwt
Y29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5j
cHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE2OSw3ICsxNjksNyBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxT
CiAgICAgYXV0byYgc3BhY2VzID0gY2xpZW50RGF0YS5zdWJzcGFjZXMoKTsKICAgICBpZiAoYXV0
byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5n
ZXQoKSkKICAgICAgICAgcmV0dXJuIHNwYWNlOwotICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZvckpTU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLmdldCgpLCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSk7CisgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBtYWtlVW5pcXVl
PElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqY2xpZW50RGF0YS5tX2hl
YXBDZWxsVHlwZUZvckpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBKU1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSk7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFj
aGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJl
IikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHJldmlz
aW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDcgKzE1
Myw3IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTU2hhcmVkV29ya2VyR2xvYmFsU2MKICAgICBhdXRv
JiBzcGFjZXMgPSBjbGllbnREYXRhLnN1YnNwYWNlcygpOwogICAgIGlmIChhdXRvKiBzcGFjZSA9
IHNwYWNlcy5tX3N1YnNwYWNlRm9yU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuZ2V0KCkpCiAgICAg
ICAgIHJldHVybiBzcGFjZTsKLSAgICBzcGFjZXMubV9zdWJzcGFjZUZvclNoYXJlZFdvcmtlckds
b2JhbFNjb3BlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0u
aGVhcCwgY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZvckpTU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUuZ2V0KCksIEpTU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUpOworICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJ
U09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZvckpT
U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUsIEpTU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUpOwogICAg
IGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JTaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZS5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05P
UkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENFUmVhY3Rpb25zLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDM4LDkgKzQzOCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdENFUmVhY3Rpb25z
OjpzdWIKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19i
YXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnM+IHx8
ICFKU1Rlc3RDRVJlYWN0aW9uczo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHBy
IChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RDRVJl
YWN0aW9ucz4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdENFUmVhY3Rpb25zID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RDRVJlYWN0aW9ucyk7Cisg
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdENFUmVhY3Rpb25zID0gbWFrZVVuaXF1ZTxJ
c29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0Q0VSZWFjdGlvbnMpOwogICAgIGVsc2UKLSAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q0VSZWFjdGlvbnMgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgp
LCBKU1Rlc3RDRVJlYWN0aW9ucyk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdENF
UmVhY3Rpb25zID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0u
aGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdENFUmVhY3Rpb25zKTsKICAgICBhdXRv
KiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdENFUmVhY3Rpb25zLmdldCgpOwogSUdO
T1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19C
RUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsOSArMjY0LDkgQEAgSlNDOjpJc29TdWJzcGFj
ZSogSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbgogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPiB8fCAhSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
Zmllcjo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vf
b2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
IHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5J
VCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJ
U09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19T
VUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9y
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4o
InVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwt
Y29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q2FsbFRyYWNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCShyZXZpc2lvbiAyODYwMzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRy
YWNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMyw5ICs1MTMsOSBAQCBKU0M6Oklzb1N1YnNw
YWNlKiBKU1Rlc3RDYWxsVHJhY2VyOjpzdWJzCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3Qs
IEpTVGVzdENhbGxUcmFjZXI+IHx8ICFKU1Rlc3RDYWxsVHJhY2VyOjpuZWVkc0Rlc3RydWN0aW9u
KTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QsIEpTVGVzdENhbGxUcmFjZXI+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZv
clRlc3RDYWxsVHJhY2VyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lO
SVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rl
c3RDYWxsVHJhY2VyKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q2FsbFRyYWNl
ciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2
bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdENhbGxUcmFjZXIpOwogICAg
IGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q2FsbFRyYWNlciA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTVGVzdENhbGxUcmFjZXIpOworICAgICAgICBzcGFjZXMubV9zdWJz
cGFjZUZvclRlc3RDYWxsVHJhY2VyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdENhbGxUcmFjZXIp
OwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q2FsbFRyYWNlci5n
ZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVf
V0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkocmV2aXNp
b24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTc2LDkgKzE3Niw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdENsYXNzV2l0aEpTQnVpbHQK
ICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29m
X3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3I+IHx8ICFKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6bmVlZHNE
ZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpT
RGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcj4p
Ci0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVh
cCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVz
dENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4g
SVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxs
VHlwZSwgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IpOwogICAgIGVsc2UKLSAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0
b3IgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2
bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3Rvcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQo
dm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lO
KCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2Fs
LWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNw
cAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
ODksOSArNzg5LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0Q29uZGl0aW9uYWxJbmNsdQog
ICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2Zf
djxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPiB8
fCAhSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlczo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYg
Y29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJT
UEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09f
U1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBl
LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5t
X3N1YnNwYWNlRm9yVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgp
LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VG
b3JUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19T
VUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXMuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVh
Y2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFy
ZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3Bw
CShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYxMSw5ICs2MTEsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RDb25kaXRpb25hbGx5UmVh
CiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9v
Zl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGU+IHx8ICFKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjpuZWVkc0Rlc3RydWN0aW9uKTsK
ICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVP
YmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+KQotICAgICAgICBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVh
cENlbGxUeXBlLmdldCgpLCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlKTsKKyAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSA9IG1ha2VVbmlx
dWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUpOwogICAg
IGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
IHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUp
OworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZt
LmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUpOwogICAgIGF1
dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZS5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05P
UkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01K
SVQuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1Miw5ICsx
MjUyLDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0RE9NSklUOjpzdWJzcGFjZQogICAgICAg
ICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6
OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RET01KSVQ+IHx8ICFKU1Rlc3RET01KSVQ6Om5l
ZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlND
OjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0RE9NSklUPikKLSAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0RE9NSklUID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgp
LCBKU1Rlc3RET01KSVQpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RET01KSVQg
PSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0u
ZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3RET01KSVQpOwogICAgIGVsc2UK
LSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RE9NSklUID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5n
ZXQoKSwgSlNUZXN0RE9NSklUKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RE9N
SklUID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwg
KnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdERPTUpJVCk7CiAgICAgYXV0byogc3BhY2UgPSBz
cGFjZXMubV9zdWJzcGFjZUZvclRlc3RET01KSVQuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVH
SU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2lj
YWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCShyZXZpc2lv
biAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RGVmYXVsdFRvSlNPTi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwOCw5ICs4MDgsOSBAQCBK
U0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3REZWZhdWx0VG9KU09OOjpzCiAgICAgICAgIHJldHVybiBz
cGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVj
dGlibGVPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04+IHx8ICFKU1Rlc3REZWZhdWx0VG9KU09O
OjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92
PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04+KQotICAgICAg
ICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0VG9KU09OID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0
SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3REZWZhdWx0VG9KU09OKTsKKyAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0RGVmYXVsdFRvSlNPTiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+
IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2Vs
bFR5cGUsIEpTVGVzdERlZmF1bHRUb0pTT04pOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0RGVmYXVsdFRvSlNPTiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVz
dERlZmF1bHRUb0pTT04pOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0
VG9KU09OID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVh
cCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdERlZmF1bHRUb0pTT04pOwogICAgIGF1dG8q
IHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RGVmYXVsdFRvSlNPTi5nZXQoKTsKIElH
Tk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1Nf
QkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwCShyZXZpc2lvbiAyODYw
MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVm
YXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcwLDkg
KzI3MCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdERlZmF1bHRUb0pTT05GaWwKICAgICAg
ICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlND
OjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkPiB8fCAhSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkOjpuZWVkc0Rlc3Ry
dWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0
cnVjdGlibGVPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD4pCi0g
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhw
b3NlZCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
IHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4g
SVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxs
VHlwZSwgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkKTsKICAgICBlbHNlCi0g
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhw
b3NlZCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
IHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZCk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9J
TklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWQpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkLmdldCgpOwogSUdOT1JFX1dBUk5JTkdT
X0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9s
b2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNP
TkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsOSArMTYyLDkg
QEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0RGVmYXVsdFRvSlNPTkluZAogICAgICAgICByZXR1
cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVz
dHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZT4g
fHwgIUpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlOjpuZWVkc0Rlc3RydWN0
aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVj
dGlibGVPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlPikKLSAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJp
dGFuY2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFw
LCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdERlZmF1bHRU
b0pTT05JbmRpcmVjdEluaGVyaXRhbmNlKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVh
cENlbGxUeXBlLCBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSk7CiAgICAg
ZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0VG9KU09OSW5kaXJl
Y3RJbmhlcml0YW5jZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklU
KHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdERlZmF1bHRUb0pTT05J
bmRpcmVjdEluaGVyaXRhbmNlKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJ
U09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuZ2V0KCk7
CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5Miw5ICsyOTIsOSBAQCBKU0M6Oklzb1N1YnNwYWNl
KiBKU1Rlc3REZWZhdWx0VG9KU09OSW5oCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpT
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0PiB8fCAhSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ6
Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8
SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+KQot
ICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0VG9KU09OSW5oZXJpdCA9IG1h
a2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3Ry
dWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXQpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0VG9KU09OSW5oZXJp
dCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2
bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0KTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQo
dm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXQpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
ICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdCk7CiAgICAg
YXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0VG9KU09OSW5oZXJp
dC5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05P
UkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHAJKHJldmlzaW9uIDI4
NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMyLDkgKzMz
Miw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdERlZmF1bHRUb0pTT05JbmgKICAgICAgICAg
cmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpK
U0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbD4gfHwg
IUpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAg
IGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVj
dCwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbD4pCi0gICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwgPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwpOworICAg
ICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRl
c3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbCk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNF
X0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbCk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWwgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbCk7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lO
KCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2Fs
LWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWxlZ2F0
ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlbGVnYXRlVG9TaGFy
ZWRTeW50aGV0aWNBdHRyaWJ1dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsOSArMjQ2LDkg
QEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0RGVsZWdhdGVUb1NoYXJlZAogICAgICAgICByZXR1
cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVz
dHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRl
PiB8fCAhSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZTo6bmVlZHNEZXN0
cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVz
dHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRl
PikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRo
ZXRpY0F0dHJpYnV0ZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklU
KHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0
RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZSk7CisgICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGUgPSBtYWtlVW5p
cXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3Rp
YmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0
cmlidXRlKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdERlbGVn
YXRlVG9TaGFyZWRTeW50aGV0aWNBdHRyaWJ1dGUgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJ
U09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rl
c3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlKTsKKyAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZSA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVh
cENlbGxUeXBlLCBKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRlKTsKICAg
ICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdERlbGVnYXRlVG9TaGFyZWRT
eW50aGV0aWNBdHRyaWJ1dGUuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hh
YmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RG9t
YWluU2VjdXJpdHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAJKHJldmlzaW9uIDI4NjAzNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5T
ZWN1cml0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyMCw5ICszMjAsOSBAQCBKU0M6Oklzb1N1
YnNwYWNlKiBKU1Rlc3REb21haW5TZWN1cml0eTo6CiAgICAgICAgIHJldHVybiBzcGFjZTsKICAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmpl
Y3QsIEpTVGVzdERvbWFpblNlY3VyaXR5PiB8fCAhSlNUZXN0RG9tYWluU2VjdXJpdHk6Om5lZWRz
RGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpK
U0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0RG9tYWluU2VjdXJpdHk+KQotICAgICAgICBzcGFj
ZXMubV9zdWJzcGFjZUZvclRlc3REb21haW5TZWN1cml0eSA9IG1ha2VVbmlxdWU8SXNvU3Vic3Bh
Y2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBD
ZWxsVHlwZS5nZXQoKSwgSlNUZXN0RG9tYWluU2VjdXJpdHkpOworICAgICAgICBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3REb21haW5TZWN1cml0eSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5
cGUsIEpTVGVzdERvbWFpblNlY3VyaXR5KTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdERvbWFpblNlY3VyaXR5ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNP
X1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0
RG9tYWluU2VjdXJpdHkpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REb21haW5T
ZWN1cml0eSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhl
YXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3REb21haW5TZWN1cml0eSk7CiAgICAgYXV0
byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3REb21haW5TZWN1cml0eS5nZXQoKTsK
IElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklO
R1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZy5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDU5LDkgKzQ1OSw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdEVuYWJs
ZWRCeVNldHRpbmcKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZz4gfHwgIUpTVGVzdEVuYWJsZWRCeVNldHRpbmc6Om5lZWRzRGVzdHJ1Y3Rpb24pOwog
ICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9i
amVjdCwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZz4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdEVuYWJsZWRCeVNldHRpbmcgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VC
U1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0
KCksIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZv
clRlc3RFbmFibGVkQnlTZXR0aW5nID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZyk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3RFbmFibGVkQnlTZXR0aW5nID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NV
QlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZyk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEVuYWJsZWRC
eVNldHRpbmcgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5o
ZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZyk7CiAgICAg
YXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RFbmFibGVkQnlTZXR0aW5nLmdl
dCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9X
QVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RW5hYmxlZEZvckNvbnRleHQuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xODYsOSArMTg2LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNU
ZXN0RW5hYmxlZEZvckNvbnRleAogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RF
bmFibGVkRm9yQ29udGV4dD4gfHwgIUpTVGVzdEVuYWJsZWRGb3JDb250ZXh0OjpuZWVkc0Rlc3Ry
dWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0
cnVjdGlibGVPYmplY3QsIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0PikKLSAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0RW5hYmxlZEZvckNvbnRleHQgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0KTsKKyAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0RW5hYmxlZEZvckNvbnRleHQgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVh
cENlbGxUeXBlLCBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dCk7CiAgICAgZWxzZQotICAgICAgICBz
cGFjZXMubV9zdWJzcGFjZUZvclRlc3RFbmFibGVkRm9yQ29udGV4dCA9IG1ha2VVbmlxdWU8SXNv
U3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUu
Z2V0KCksIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0KTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3Bh
Y2VGb3JUZXN0RW5hYmxlZEZvckNvbnRleHQgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09f
U1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0RW5hYmxl
ZEZvckNvbnRleHQpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0
RW5hYmxlZEZvckNvbnRleHQuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hh
YmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyODYw
MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyMSw5ICszMjEsOSBAQCBKU0M6
Oklzb1N1YnNwYWNlKiBKU1Rlc3RFdmVudENvbnN0cnVjdG9yCiAgICAgICAgIHJldHVybiBzcGFj
ZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QsIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+IHx8ICFKU1Rlc3RFdmVudENvbnN0cnVj
dG9yOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9v
Zl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+KQot
ICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RFdmVudENvbnN0cnVjdG9yID0gbWFrZVVu
aXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3Rp
YmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKTsKKyAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RXZlbnRDb25zdHJ1Y3RvciA9IG1ha2VVbmlx
dWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IpOwogICAgIGVsc2UK
LSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RXZlbnRDb25zdHJ1Y3RvciA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IpOworICAgICAgICBzcGFjZXMu
bV9zdWJzcGFjZUZvclRlc3RFdmVudENvbnN0cnVjdG9yID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFj
ZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVz
dEV2ZW50Q29uc3RydWN0b3IpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VG
b3JUZXN0RXZlbnRDb25zdHJ1Y3Rvci5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5y
ZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21w
YXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24gMjg2MDM1KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFy
Z2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYyLDkgKzI2Miw5IEBAIEpTQzo6SXNvU3Vic3Bh
Y2UqIEpTVGVzdEV2ZW50VGFyZ2V0OjpzdWIKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwg
SlNUZXN0RXZlbnRUYXJnZXQ+IHx8ICFKU1Rlc3RFdmVudFRhcmdldDo6bmVlZHNEZXN0cnVjdGlv
bik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0LCBKU1Rlc3RFdmVudFRhcmdldD4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdEV2ZW50VGFyZ2V0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNF
X0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBK
U1Rlc3RFdmVudFRhcmdldCk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEV2ZW50
VGFyZ2V0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVh
cCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0RXZlbnRUYXJnZXQp
OwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RXZlbnRUYXJnZXQg
PSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5j
ZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RFdmVudFRhcmdldCk7CisgICAgICAgIHNwYWNl
cy5tX3N1YnNwYWNlRm9yVGVzdEV2ZW50VGFyZ2V0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4g
SVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdEV2
ZW50VGFyZ2V0KTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEV2
ZW50VGFyZ2V0LmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2Rl
IikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xODcsOSArMTg3LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0RXhjZXB0aW9u
OjpzdWJzcAogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RFeGNlcHRpb24+IHx8
ICFKU1Rlc3RFeGNlcHRpb246Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAo
c3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0RXhjZXB0
aW9uPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RXhjZXB0aW9uID0gbWFrZVVu
aXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3Rp
YmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RFeGNlcHRpb24pOworICAgICAgICBz
cGFjZXMubV9zdWJzcGFjZUZvclRlc3RFeGNlcHRpb24gPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENl
bGxUeXBlLCBKU1Rlc3RFeGNlcHRpb24pOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vi
c3BhY2VGb3JUZXN0RXhjZXB0aW9uID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0RXhjZXB0
aW9uKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0RXhjZXB0aW9uID0gbWFrZVVu
aXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFw
Q2VsbFR5cGUsIEpTVGVzdEV4Y2VwdGlvbik7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3RFeGNlcHRpb24uZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVu
cmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29t
cGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290LmNw
cAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4Nyw5ICsxODcsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1
CiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9v
Zl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9v
dD4gfHwgIUpTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdDo6bmVlZHNEZXN0cnVjdGlvbik7CiAg
ICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LCBKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3Q+KQotICAgICAgICBzcGFjZXMubV9zdWJz
cGFjZUZvclRlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdCk7CisgICAgICAgIHNwYWNl
cy5tX3N1YnNwYWNlRm9yVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdCA9IG1ha2VVbmlxdWU8SXNv
U3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmpl
Y3RIZWFwQ2VsbFR5cGUsIEpTVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdCk7CiAgICAgZWxzZQot
ICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxs
SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QpOworICAgICAg
ICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RHZW5lcmF0ZUFkZE9wYXF1ZVJvb3QgPSBtYWtlVW5p
cXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBD
ZWxsVHlwZSwgSlNUZXN0R2VuZXJhdGVBZGRPcGFxdWVSb290KTsKICAgICBhdXRvKiBzcGFjZSA9
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEdlbmVyYXRlQWRkT3BhcXVlUm9vdC5nZXQoKTsKIElH
Tk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1Nf
QkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTk3LDkgKzE5Nyw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGEKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZT4gfHwgIUpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6Om5lZWRzRGVz
dHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rl
c3RydWN0aWJsZU9iamVjdCwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4pCi0gICAgICAgIHNw
YWNlcy5tX3N1YnNwYWNlRm9yVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgPSBtYWtlVW5pcXVlPElz
b1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmpl
Y3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUpOworICAgICAg
ICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlID0gbWFrZVVuaXF1
ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJs
ZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSk7CiAgICAgZWxz
ZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSk7CisgICAgICAg
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgPSBtYWtlVW5pcXVl
PElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxs
VHlwZSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSk7CiAgICAgYXV0byogc3BhY2UgPSBzcGFj
ZXMubV9zdWJzcGFjZUZvclRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmdldCgpOwogSUdOT1JFX1dB
Uk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigi
dGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAJ
KHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODE0LDcgKzE4
MTQsNyBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RHbG9iYWxPYmplY3Q6OnN1CiAgICAgYXV0
byYgc3BhY2VzID0gY2xpZW50RGF0YS5zdWJzcGFjZXMoKTsKICAgICBpZiAoYXV0byogc3BhY2Ug
PSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RHbG9iYWxPYmplY3QuZ2V0KCkpCiAgICAgICAgIHJl
dHVybiBzcGFjZTsKLSAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RHbG9iYWxPYmplY3QgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCBjbGllbnRE
YXRhLm1faGVhcENlbGxUeXBlRm9ySlNUZXN0R2xvYmFsT2JqZWN0LmdldCgpLCBKU1Rlc3RHbG9i
YWxPYmplY3QpOworICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEdsb2JhbE9iamVjdCA9IG1h
a2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICpjbGllbnRE
YXRhLm1faGVhcENlbGxUeXBlRm9ySlNUZXN0R2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0R2xvYmFsT2Jq
ZWN0LmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElH
Tk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24g
Mjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzYsOSAr
Mjc2LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0SW5kZXhlZFNldHRlck5vSQogICAgICAg
ICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6
OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyPiB8
fCAhSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6bmVlZHNEZXN0cnVjdGlvbik7CiAg
ICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyPikKLSAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllciA9IG1ha2VVbmlxdWU8SXNv
U3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVj
dEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcik7Cisg
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIg
PSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0u
ZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJT
UEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9y
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVH
SU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2lj
YWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Niw5ICsyNzYsOSBAQCBKU0M6Oklz
b1N1YnNwYWNlKiBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyCiAgICAgICAgIHJldHVybiBzcGFjZTsK
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVP
YmplY3QsIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbj4gfHwgIUpTVGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYg
Y29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBK
U1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24+KQotICAgICAgICBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24gPSBtYWtlVW5pcXVl
PElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVP
YmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklU
KHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbik7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24gPSBtYWtlVW5pcXVl
PElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxU
eXBlLmdldCgpLCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24pOworICAgICAg
ICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24g
PSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0u
Y2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKTsK
ICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFi
bGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzA4LDkgKzMwOCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdEluZGV4
ZWRTZXR0ZXJXaXQKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyPiB8fCAhSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
OjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92
PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcj4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZt
LmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4g
SVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxs
VHlwZSwgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKTsKICAgICBlbHNlCi0gICAg
ICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciA9
IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcik7
CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
ICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIp
OwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0SW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJs
ZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTA0LDkgKzExMDQsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1
cm4gc3BhY2U7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpK
U0Rlc3RydWN0aWJsZU9iamVjdCwgVGVzdEludGVyZmFjZUl0ZXJhdG9yPiB8fCAhVGVzdEludGVy
ZmFjZUl0ZXJhdG9yOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICAgICAgaWYgY29uc3RleHByIChz
dGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBUZXN0SW50ZXJmYWNl
SXRlcmF0b3I+KQotICAgICAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0SW50ZXJmYWNl
SXRlcmF0b3IgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5o
ZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIFRlc3RJbnRlcmZh
Y2VJdGVyYXRvcik7CisgICAgICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RJbnRlcmZh
Y2VJdGVyYXRvciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZt
LmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIFRlc3RJbnRl
cmZhY2VJdGVyYXRvcik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdEludGVyZmFjZUl0ZXJhdG9yID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNP
X1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgVGVzdElu
dGVyZmFjZUl0ZXJhdG9yKTsKKyAgICAgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdElu
dGVyZmFjZUl0ZXJhdG9yID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lO
SVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIFRlc3RJbnRlcmZhY2VJdGVyYXRvcik7
CiAgICAgICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0SW50ZXJmYWNl
SXRlcmF0b3IuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUi
KQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkBAIC0xMTk2
LDkgKzExOTYsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RJbnRlcmZhY2U6OnN1YnNwCiAg
ICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92
PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdEludGVyZmFjZT4gfHwgIUpTVGVzdElu
dGVyZmFjZTo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jh
c2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2U+KQotICAg
ICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RJbnRlcmZhY2UgPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdEludGVyZmFjZSk7CisgICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdEludGVyZmFjZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJT
UEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpT
VGVzdEludGVyZmFjZSk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRl
c3RJbnRlcmZhY2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2
bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RJbnRlcmZhY2UpOworICAg
ICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RJbnRlcmZhY2UgPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwg
SlNUZXN0SW50ZXJmYWNlKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9y
VGVzdEludGVyZmFjZS5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUt
Y29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNw
cAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTg3LDkgKzE4Nyw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdEludGVyZmFjZUxl
YWRpbmcKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19i
YXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmU+IHx8ICFKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6bmVlZHNE
ZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpT
RGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZT4pCi0g
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0u
ZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZSk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNF
X0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUgPSBtYWtlVW5pcXVlPElz
b1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBl
LmdldCgpLCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSk7CisgICAgICAgIHNwYWNl
cy5tX3N1YnNwYWNlRm9yVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlID0gbWFrZVVuaXF1
ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2Vs
bFR5cGUsIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlKTsKICAgICBhdXRvKiBzcGFj
ZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmdl
dCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9X
QVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFi
bGUuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsOSAr
MjAxLDkgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIFRl
c3RJdGVyYWJsZUl0ZXJhdG9yPiB8fCAhVGVzdEl0ZXJhYmxlSXRlcmF0b3I6Om5lZWRzRGVzdHJ1
Y3Rpb24pOwogICAgICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNE
ZXN0cnVjdGlibGVPYmplY3QsIFRlc3RJdGVyYWJsZUl0ZXJhdG9yPikKLSAgICAgICAgICAgIHNw
YWNlcy5tX3N1YnNwYWNlRm9yVGVzdEl0ZXJhYmxlSXRlcmF0b3IgPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGUuZ2V0KCksIFRlc3RJdGVyYWJsZUl0ZXJhdG9yKTsKKyAgICAgICAgICAgIHNw
YWNlcy5tX3N1YnNwYWNlRm9yVGVzdEl0ZXJhYmxlSXRlcmF0b3IgPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0
SGVhcENlbGxUeXBlLmdldCgpLCBUZXN0SXRlcmFibGVJdGVyYXRvcik7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEl0ZXJhYmxlSXRlcmF0b3IgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxs
SGVhcENlbGxUeXBlLmdldCgpLCBUZXN0SXRlcmFibGVJdGVyYXRvcik7CisgICAgICAgICAgICBz
cGFjZXMubV9zdWJzcGFjZUZvclRlc3RJdGVyYWJsZUl0ZXJhdG9yID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUs
IFRlc3RJdGVyYWJsZUl0ZXJhdG9yKTsKICAgICAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3RJdGVyYWJsZUl0ZXJhdG9yLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JF
R0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dp
Y2FsLWNvbXBhcmUiKQpAQCAtMjkzLDkgKzI5Myw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVz
dEl0ZXJhYmxlOjpzdWJzcGEKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0SXRl
cmFibGU+IHx8ICFKU1Rlc3RJdGVyYWJsZTo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29u
c3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rl
c3RJdGVyYWJsZT4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEl0ZXJhYmxlID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RJdGVyYWJsZSk7CisgICAg
ICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEl0ZXJhYmxlID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhl
YXBDZWxsVHlwZSwgSlNUZXN0SXRlcmFibGUpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0SXRlcmFibGUgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VC
U1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RJdGVy
YWJsZSk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEl0ZXJhYmxlID0gbWFrZVVu
aXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFw
Q2VsbFR5cGUsIEpTVGVzdEl0ZXJhYmxlKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdEl0ZXJhYmxlLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJl
YWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBh
cmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCShy
ZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAs
OSArMjMwLDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0SlNCdWlsdGluQ29uc3RydQogICAg
ICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxK
U0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcj4gfHwg
IUpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBj
b25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpT
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3IgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VC
U1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0
KCksIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3Bh
Y2VGb3JUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJ
U09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxU
eXBlLCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcik7CiAgICAgZWxzZQotICAgICAgICBzcGFj
ZXMubV9zdWJzcGFjZUZvclRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciA9IG1ha2VVbmlxdWU8SXNv
U3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUu
Z2V0KCksIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vi
c3BhY2VGb3JUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3IpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3Bh
Y2VGb3JUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVH
SU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2lj
YWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0
aW9uLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzMCw5ICsyMzAsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RMZWdhY3lGYWN0
b3J5RnVuCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
YmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdExlZ2FjeUZhY3RvcnlG
dW5jdGlvbj4gfHwgIUpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6bmVlZHNEZXN0cnVjdGlv
bik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0LCBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24+KQotICAgICAgICBzcGFjZXMu
bV9zdWJzcGFjZUZvclRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24gPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbik7CisgICAgICAg
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiA9IG1ha2VVbmlx
dWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbik7CiAgICAg
ZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rp
b24gPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2
bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24pOwor
ICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24gPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2Vs
bEhlYXBDZWxsVHlwZSwgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uKTsKICAgICBhdXRvKiBz
cGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5nZXQo
KTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FS
TklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM1LDkgKzMzNSw5IEBAIEpTQzo6
SXNvU3Vic3BhY2UqIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWMKICAgICAgICAgcmV0dXJuIHNwYWNl
OwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJs
ZU9iamVjdCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+IHx8ICFKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdDo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChz
dGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdD4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNF
X0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4g
SVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxs
VHlwZSwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QpOwogICAgIGVsc2UKLSAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QgPSBtYWtlVW5p
cXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENl
bGxUeXBlLmdldCgpLCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCk7CisgICAgICAgIHNw
YWNlcy5tX3N1YnNwYWNlRm9yVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0ID0gbWFrZVVuaXF1
ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2Vs
bFR5cGUsIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0KTsKICAgICBhdXRvKiBzcGFjZSA9
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmdldCgpOwog
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5H
U19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksOSArMjQ5LDkgQEAgSlNDOjpJc29TdWJz
cGFjZSogSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdQogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LCBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPiB8fCAhSlNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluczo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jh
c2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdElucyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhl
YXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdElucyk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnMgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0Vf
SU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3RM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBK
U1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VG
b3JUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVH
SU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2lj
YWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWFwTGlrZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3BwCShyZXZpc2lvbiAyODYwMzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Niw5ICszNjYsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBK
U1Rlc3RNYXBMaWtlOjpzdWJzcGFjCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVz
dE1hcExpa2U+IHx8ICFKU1Rlc3RNYXBMaWtlOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBj
b25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpT
VGVzdE1hcExpa2U+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RNYXBMaWtlID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RNYXBMaWtlKTsKKyAgICAg
ICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TWFwTGlrZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3Bh
Y2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUsIEpTVGVzdE1hcExpa2UpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vi
c3BhY2VGb3JUZXN0TWFwTGlrZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFD
RV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE1hcExpa2Up
OworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RNYXBMaWtlID0gbWFrZVVuaXF1ZTxJ
c29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5
cGUsIEpTVGVzdE1hcExpa2UpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VG
b3JUZXN0TWFwTGlrZS5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUt
Y29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucy5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzgwLDkgKzM4MCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpT
VGVzdE1hcExpa2VXaXRoT3ZlcnIKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz4gfHwgIUpTVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnM6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAo
c3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9y
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMpOwor
ICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVh
cCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9ucyk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5n
ZXQoKSwgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyk7CisgICAgICAgIHNw
YWNlcy5tX3N1YnNwYWNlRm9yVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2Vs
bEhlYXBDZWxsVHlwZSwgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyk7CiAg
ICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJs
ZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQsOSArMzQ0LDkgQEAgSlNDOjpJc29TdWJz
cGFjZSogSlNUZXN0TmFtZWRBbmRJbmRleGVkUwogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI+IHx8ICFKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlm
IGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwg
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyPikKLSAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyID0gbWFr
ZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXIpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09f
U1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBl
LCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIpOwogICAgIGVsc2UKLSAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVh
cCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NV
QlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcik7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuZ2V0KCk7CiBJ
R05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdT
X0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0NCw5ICszNDQsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uPiB8fCAhSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlm
IGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwg
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24+KQotICAgICAgICBz
cGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAs
IHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24pOworICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiA9IG1ha2VVbmlx
dWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24pOworICAgICAg
ICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhl
YXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbik7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5nZXQoKTsKIElHTk9SRV9X
QVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4o
InRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24g
Mjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDAxLDkgKzQwMSw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFMKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNl
X29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXI+IHx8ICFKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcjo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jh
c2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcj4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFj
ZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENl
bGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcik7
CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQo
dm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxs
SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNF
X0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmdldCgpOwogSUdO
T1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19C
RUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsOSArMjQ2LDkgQEAgSlNDOjpJc29T
dWJzcGFjZSogSlNUZXN0TmFtZWREZWxldGVyTm9JZAogICAgICAgICByZXR1cm4gc3BhY2U7CiAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI+IHx8ICFKU1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXI6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3Rk
Ojppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFtZWREZWxl
dGVyTm9JZGVudGlmaWVyPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNF
X0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBK
U1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENl
bGxUeXBlLCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIpOwogICAgIGVsc2UKLSAgICAg
ICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyID0gbWFr
ZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhl
YXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyKTsKKyAgICAg
ICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyID0gbWFr
ZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxI
ZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcik7CiAgICAgYXV0byog
c3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIu
Z2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JF
X1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlz
aW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI0Niw5ICsyNDYsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
CiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9v
Zl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5n
RXhjZXB0aW9uPiB8fCAhSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246Om5lZWRz
RGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpK
U0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24+
KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhl
YXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb24pOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+
IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2Vs
bFR5cGUsIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uKTsKICAgICBlbHNlCi0g
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0
aW9uID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwg
dm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb24pOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklU
KHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbik7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RO
YW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJ
TigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNh
bC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldp
dGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjcwLDkgKzI3MCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpT
VGVzdE5hbWVkRGVsZXRlcldpdGgKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0
TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI+IHx8ICFKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRl
bnRpZmllcjo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jh
c2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllcj4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lO
SVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFj
ZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBD
ZWxsVHlwZSwgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIpOwogICAgIGVsc2UKLSAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIg
PSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5j
ZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcik7
CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwg
KnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKTsK
ICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkRGVsZXRlcldp
dGhJZGVudGlmaWVyLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1j
b2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXIuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjIsOSArMjYyLDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0TmFt
ZWREZWxldGVyV2l0aAogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSW5kZXhlZEdldHRlcj4gfHwgIUpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFz
ZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWREZWxl
dGVyV2l0aEluZGV4ZWRHZXR0ZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCks
IEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyKTsKKyAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIgPSBtYWtlVW5pcXVl
PElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxl
T2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcik7
CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZERlbGV0ZXJX
aXRoSW5kZXhlZEdldHRlciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9J
TklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09f
U1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vi
c3BhY2VGb3JUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuZ2V0KCk7CiBJR05PUkVf
V0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lO
KCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGguY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIyMCw5ICsyMjAsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3ROYW1l
ZEdldHRlckNhbGxXCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGg+IHx8ICFKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjpuZWVkc0Rlc3RydWN0
aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVj
dGlibGVPYmplY3QsIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGg+KQotICAgICAgICBzcGFjZXMu
bV9zdWJzcGFjZUZvclRlc3ROYW1lZEdldHRlckNhbGxXaXRoID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVh
cENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoKTsKKyAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCA9IG1ha2VVbmlxdWU8SXNv
U3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmpl
Y3RIZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgpOwogICAgIGVsc2UKLSAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgpOworICAgICAgICBzcGFj
ZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZEdldHRlckNhbGxXaXRoID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUs
IEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5nZXQoKTsKIElHTk9SRV9XQVJOSU5H
U19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRv
bG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjIwLDkgKzIyMCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVz
dE5hbWVkR2V0dGVyTm9JZGUKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXI+IHx8ICFKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6
bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxK
U0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcj4p
Ci0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVy
ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0u
ZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQo
dm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0TmFtZWRH
ZXR0ZXJOb0lkZW50aWZpZXIpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VG
b3JUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJ
U09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rl
c3ROYW1lZEdldHRlck5vSWRlbnRpZmllcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9y
VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNP
X1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JF
R0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dp
Y2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsOSArMjQ2LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNU
ZXN0TmFtZWRHZXR0ZXJXaXRoSQogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyPiB8fCAhSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
Zmllcjo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vf
b2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZt
LmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09f
U1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBl
LCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyKTsKICAgICBlbHNlCi0gICAgICAgIHNw
YWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIgPSBtYWtlVW5p
cXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENl
bGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyKTsKKyAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVh
cENlbGxUeXBlLCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyKTsKICAgICBhdXRvKiBz
cGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIu
Z2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JF
X1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI4NjAzNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMCw5ICszMDAsOSBAQCBK
U0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3ROYW1lZFNldHRlck5vSWRlCiAgICAgICAgIHJldHVybiBz
cGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVj
dGlibGVPYmplY3QsIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyPiB8fCAhSlNUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXI6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhw
ciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXI+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJT
UEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIpOworICAgICAgICBzcGFjZXMubV9zdWJz
cGFjZUZvclRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3Bh
Y2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUsIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyKTsKICAgICBlbHNlCi0gICAg
ICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyID0gbWFr
ZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhl
YXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIpOworICAgICAg
ICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVh
cENlbGxUeXBlLCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcik7CiAgICAgYXV0byogc3Bh
Y2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5nZXQo
KTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FS
TklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDI4
NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAwLDkg
KzMwMCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3cKICAgICAg
ICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlND
OjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bj4gfHwgIUpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246Om5lZWRzRGVzdHJ1Y3Rp
b24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0
aWJsZU9iamVjdCwgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbj4pCi0gICAgICAg
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24gPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0
cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24pOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNF
X0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbik7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMu
bV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uID0gbWFrZVVuaXF1
ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxs
VHlwZS5nZXQoKSwgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbik7CisgICAgICAg
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24gPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2Vs
bEhlYXBDZWxsVHlwZSwgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbik7CiAgICAg
YXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRlclRocm93aW5n
RXhjZXB0aW9uLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2Rl
IikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2
aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MzEsOSArMzMxLDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSQog
ICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2Zf
djxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyPiB8fCAhSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6bmVlZHNEZXN0cnVjdGlv
bik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0LCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyPikKLSAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciA9IG1ha2VVbmlx
dWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJs
ZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
cik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50
aWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFw
LCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09f
U1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuZ2V0KCk7CiBJR05PUkVfV0FSTklO
R1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0
b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3OCw5ICszNzgsOSBAQCBKU0M6Oklz
b1N1YnNwYWNlKiBKU1Rlc3ROYW1lZFNldHRlcldpdGhJCiAgICAgICAgIHJldHVybiBzcGFjZTsK
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVP
YmplY3QsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI+IHx8ICFKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25z
dGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVh
cENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyKTsKKyAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2
bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXIpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIpOwogICAgIGF1dG8qIHNwYWNlID0gc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5nZXQoKTsK
IElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklO
R1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QW5kU2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5j
cHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDI4LDkgKzQyOCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aEkKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj4gfHwgIUpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXI6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNv
bnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj4pCi0gICAgICAgIHNwYWNl
cy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIg
PSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5k
ZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVj
dEhlYXBDZWxsVHlwZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
cik7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNP
X1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcik7CisgICAgICAgIHNwYWNlcy5t
X3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2Vs
bEhlYXBDZWxsVHlwZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
cik7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lO
KCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2Fs
LWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAkocmV2aXNpb24gMjg2MDM1KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzcs
OSArMjc3LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTAogICAg
ICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxK
U0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zPiB8fCAhSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWls
dEluczo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vf
b2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyA9IG1ha2VVbmlxdWU8SXNvU3Vic3Bh
Y2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBD
ZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElu
cyk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnMgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0Vf
SU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKTsKICAgICBlbHNlCi0gICAgICAg
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnMgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFw
LCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+
IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKTsKICAgICBhdXRvKiBzcGFjZSA9
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnMuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQog
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MSw5ICszNjEs
OSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3ROYW1lZFNldHRlcldpdGhMCiAgICAgICAgIHJl
dHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNE
ZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllcz4gfHwgIUpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllczo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jh
c2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZv
clRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMgPSBtYWtlVW5p
cXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllcyk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyA9IG1ha2VVbmlxdWU8SXNv
U3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmpl
Y3RIZWFwQ2VsbFR5cGUsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllcyk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMgPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMpOwor
ICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXMgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0Vf
SU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5t
X3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
cy5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05P
UkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJp
ZGVCdWlsdElucy5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzM4LDkgKzMzOCw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEwKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNl
X29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucz4gfHwgIUpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnM6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3Rk
Ojppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
cz4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMgPSBtYWtlVW5p
cXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMpOworICAgICAgICBz
cGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFj
ZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBD
ZWxsVHlwZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NV
QlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdElucyk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMgPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2Vs
bEhlYXBDZWxsVHlwZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyk7CiAgICAgYXV0byogc3BhY2UgPSBzcGFj
ZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JF
R0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dp
Y2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVzcGFjZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZU9iamVjdC5jcHAJKHJl
dmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lc3BhY2VPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsOSArMjgw
LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0TmFtZXNwYWNlT2JqZWN0OgogICAgICAgICBy
ZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpT
RGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3ROYW1lc3BhY2VPYmplY3Q+IHx8ICFKU1Rlc3ROYW1l
c3BhY2VPYmplY3Q6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjpp
c19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFtZXNwYWNlT2Jq
ZWN0PikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZXNwYWNlT2JqZWN0ID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROYW1lc3BhY2VPYmplY3Qp
OworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROYW1lc3BhY2VPYmplY3QgPSBtYWtl
VW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3ROYW1lc3BhY2VPYmplY3QpOwogICAgIGVs
c2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0TmFtZXNwYWNlT2JqZWN0ID0gbWFr
ZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhl
YXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0TmFtZXNwYWNlT2JqZWN0KTsKKyAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0TmFtZXNwYWNlT2JqZWN0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFj
ZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVz
dE5hbWVzcGFjZU9iamVjdCk7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZv
clRlc3ROYW1lc3BhY2VPYmplY3QuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVh
Y2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFy
ZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQwNSw5ICs0MDUsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gc3BhY2U7CiAg
ICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJs
ZU9iamVjdCwgVGVzdE5vZGVJdGVyYXRvcj4gfHwgIVRlc3ROb2RlSXRlcmF0b3I6Om5lZWRzRGVz
dHJ1Y3Rpb24pOwogICAgICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6
SlNEZXN0cnVjdGlibGVPYmplY3QsIFRlc3ROb2RlSXRlcmF0b3I+KQotICAgICAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0Tm9kZUl0ZXJhdG9yID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFj
ZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENl
bGxUeXBlLmdldCgpLCBUZXN0Tm9kZUl0ZXJhdG9yKTsKKyAgICAgICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdE5vZGVJdGVyYXRvciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19T
VUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUu
Z2V0KCksIFRlc3ROb2RlSXRlcmF0b3IpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzcGFj
ZXMubV9zdWJzcGFjZUZvclRlc3ROb2RlSXRlcmF0b3IgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBU
ZXN0Tm9kZUl0ZXJhdG9yKTsKKyAgICAgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5v
ZGVJdGVyYXRvciA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZt
LmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBUZXN0Tm9kZUl0ZXJhdG9yKTsKICAgICAgICAg
YXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3ROb2RlSXRlcmF0b3IuZ2V0KCk7
CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkBAIC00OTcsOSArNDk3LDkgQEAgSlND
OjpJc29TdWJzcGFjZSogSlNUZXN0Tm9kZTo6c3Vic3BhY2VGbwogICAgICAgICByZXR1cm4gc3Bh
Y2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0LCBKU1Rlc3ROb2RlPiB8fCAhSlNUZXN0Tm9kZTo6bmVlZHNEZXN0cnVjdGlvbik7
CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxl
T2JqZWN0LCBKU1Rlc3ROb2RlPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Tm9k
ZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZt
LmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0Tm9kZSk7CisgICAg
ICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5vZGUgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENl
bGxUeXBlLCBKU1Rlc3ROb2RlKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdE5vZGUgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2
bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3ROb2RlKTsKKyAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0Tm9kZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3ROb2Rl
KTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5vZGUuZ2V0KCk7
CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNp
b24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwMDYsOSArOTAwNiw5IEBAIEpTQzo6SXNv
U3Vic3BhY2UqIEpTVGVzdE9iajo6c3Vic3BhY2VGb3IKICAgICAgICAgcmV0dXJuIHNwYWNlOwog
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9i
amVjdCwgSlNUZXN0T2JqPiB8fCAhSlNUZXN0T2JqOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBp
ZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3Qs
IEpTVGVzdE9iaj4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE9iaiA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0
aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0T2JqKTsKKyAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0T2JqID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNU
ZXN0T2JqKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE9iaiA9
IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE9iaik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdE9iaiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklU
KHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RPYmopOwogICAgIGF1dG8qIHNw
YWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0T2JqLmdldCgpOwogSUdOT1JFX1dBUk5JTkdT
X0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9s
b2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0
aW9uYWwuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMzQsOSArMjM0LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0T3BlcmF0aW9u
Q29uZGl0aQogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RPcGVyYXRpb25Db25k
aXRpb25hbD4gfHwgIUpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsOjpuZWVkc0Rlc3RydWN0aW9u
KTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QsIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsPikKLSAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsKTsKKyAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwgPSBtYWtlVW5pcXVlPElz
b1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2Jq
ZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbCk7CiAgICAgZWxzZQot
ICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RPcGVyYXRpb25Db25kaXRpb25hbCA9IG1h
a2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsKTsKKyAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwgPSBtYWtlVW5pcXVl
PElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxs
VHlwZSwgSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwpOwogICAgIGF1dG8qIHNwYWNlID0gc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuZ2V0KCk7CiBJR05PUkVf
V0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lO
KCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSw5ICsyOTUsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RyCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+IHx8ICFKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
OjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92
PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+
KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0u
ZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZt
LmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19T
VUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5y
ZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21w
YXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM4LDkgKzIzOCw5IEBAIEpT
Qzo6SXNvU3Vic3BhY2UqIEpTVGVzdE92ZXJsb2FkZWRDb25zdHIKICAgICAgICAgcmV0dXJuIHNw
YWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0
aWJsZU9iamVjdCwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZT4gfHwg
IUpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6Om5lZWRzRGVzdHJ1Y3Rp
b24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0
aWJsZU9iamVjdCwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZT4pCi0g
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5o
ZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlID0gbWFrZVVuaXF1ZTxJ
c29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZSk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NV
QlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UgPSBtYWtlVW5pcXVl
PElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxs
VHlwZSwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSk7CiAgICAgYXV0
byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1j
b2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbklu
dGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRl
cmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsOSArMjQ0LDkgQEAgSlNDOjpJc29TdWJz
cGFjZSogSlNUZXN0UGx1Z2luSW50ZXJmYWNlOgogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LCBKU1Rlc3RQbHVnaW5JbnRlcmZhY2U+IHx8ICFKU1Rlc3RQbHVnaW5JbnRlcmZhY2U6Om5lZWRz
RGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpK
U0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0UGx1Z2luSW50ZXJmYWNlPikKLSAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0UGx1Z2luSW50ZXJmYWNlID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVh
cENlbGxUeXBlLmdldCgpLCBKU1Rlc3RQbHVnaW5JbnRlcmZhY2UpOworICAgICAgICBzcGFjZXMu
bV9zdWJzcGFjZUZvclRlc3RQbHVnaW5JbnRlcmZhY2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENl
bGxUeXBlLCBKU1Rlc3RQbHVnaW5JbnRlcmZhY2UpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0UGx1Z2luSW50ZXJmYWNlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFj
ZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwg
SlNUZXN0UGx1Z2luSW50ZXJmYWNlKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0
UGx1Z2luSW50ZXJmYWNlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lO
SVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdFBsdWdpbkludGVyZmFjZSk7
CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RQbHVnaW5JbnRlcmZh
Y2UuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdO
T1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAkocmV2aXNpb24gMjg2MDM1KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMSw5ICszMDEsOSBAQCBKU0M6
Oklzb1N1YnNwYWNlKiBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uCiAgICAgICAgIHJldHVybiBzcGFj
ZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QsIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudD4gfHwgIUpTVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudDo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6
OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQ+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2
bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudCk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFD
RV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudCk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJz
cGFjZUZvclRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNl
PiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBK
U1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZv
clRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09f
U1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50KTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9y
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigi
dW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1j
b21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RSZWFkT25seU1hcExpa2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seU1hcExpa2UuY3BwCShyZXZpc2lv
biAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0UmVhZE9ubHlNYXBMaWtlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA1LDkgKzMwNSw5IEBA
IEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdFJlYWRPbmx5TWFwTGlrZToKICAgICAgICAgcmV0dXJu
IHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3Ry
dWN0aWJsZU9iamVjdCwgSlNUZXN0UmVhZE9ubHlNYXBMaWtlPiB8fCAhSlNUZXN0UmVhZE9ubHlN
YXBMaWtlOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFz
ZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdFJlYWRPbmx5TWFwTGlrZT4p
Ci0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFJlYWRPbmx5TWFwTGlrZSA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0
aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0UmVhZE9ubHlNYXBMaWtlKTsKKyAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0UmVhZE9ubHlNYXBMaWtlID0gbWFrZVVuaXF1
ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJs
ZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0UmVhZE9ubHlNYXBMaWtlKTsKICAgICBlbHNlCi0g
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFJlYWRPbmx5TWFwTGlrZSA9IG1ha2VVbmlx
dWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTVGVzdFJlYWRPbmx5TWFwTGlrZSk7CisgICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdFJlYWRPbmx5TWFwTGlrZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RSZWFk
T25seU1hcExpa2UpOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0
UmVhZE9ubHlNYXBMaWtlLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJs
ZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRP
bmx5U2V0TGlrZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25s
eVNldExpa2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsOSArMjg0LDkgQEAgSlNDOjpJc29T
dWJzcGFjZSogSlNUZXN0UmVhZE9ubHlTZXRMaWtlOgogICAgICAgICByZXR1cm4gc3BhY2U7CiAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LCBKU1Rlc3RSZWFkT25seVNldExpa2U+IHx8ICFKU1Rlc3RSZWFkT25seVNldExpa2U6Om5l
ZWRzRGVzdHJ1Y3Rpb24pOwogICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlND
OjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0UmVhZE9ubHlTZXRMaWtlPikKLSAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0UmVhZE9ubHlTZXRMaWtlID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0
SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RSZWFkT25seVNldExpa2UpOworICAgICAgICBzcGFj
ZXMubV9zdWJzcGFjZUZvclRlc3RSZWFkT25seVNldExpa2UgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVh
cENlbGxUeXBlLCBKU1Rlc3RSZWFkT25seVNldExpa2UpOwogICAgIGVsc2UKLSAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0UmVhZE9ubHlTZXRMaWtlID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNUZXN0UmVhZE9ubHlTZXRMaWtlKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0UmVhZE9ubHlTZXRMaWtlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNF
X0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdFJlYWRPbmx5U2V0TGlr
ZSk7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RSZWFkT25seVNl
dExpa2UuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQog
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1v
cnlDb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNwcAkocmV2aXNpb24gMjg2MDM1
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw5ICsxNzEsOSBAQCBK
U0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yCiAgICAgICAgIHJldHVybiBz
cGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVj
dGlibGVPYmplY3QsIEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdD4gfHwgIUpTVGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdDo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChz
dGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3Q+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3QgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5J
VCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVz
dFJlcG9ydEV4dHJhTWVtb3J5Q29zdCk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVz
dFJlcG9ydEV4dHJhTWVtb3J5Q29zdCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJT
UEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpT
VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCk7CiAgICAgZWxzZQotICAgICAgICBzcGFjZXMubV9z
dWJzcGFjZUZvclRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgp
LCBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJ
U09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0UmVw
b3J0RXh0cmFNZW1vcnlDb3N0KTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdC5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJ
TigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNh
bC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ5LDkgKzM0OSw5IEBAIEpTQzo6SXNv
U3Vic3BhY2UqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHQKICAgICAgICAgcmV0dXJuIHNwYWNlOwog
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9i
amVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPiB8fCAhSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBj
b25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4pCi0gICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSA9IG1ha2VVbmlxdWU8
SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQo
dm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSA9IG1ha2VVbmlxdWU8
SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5
cGUuZ2V0KCksIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSk7CisgICAgICAg
IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSA9
IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5j
ZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOwog
ICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJs
ZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExp
a2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXRMaWtlLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDIsOSArMzQyLDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0U2V0TGlrZTo6
c3Vic3BhYwogICAgICAgICByZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RTZXRMaWtlPiB8fCAh
SlNUZXN0U2V0TGlrZTo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6
OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RTZXRMaWtlPikK
LSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U2V0TGlrZSA9IG1ha2VVbmlxdWU8SXNv
U3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVj
dEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0U2V0TGlrZSk7CisgICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yVGVzdFNldExpa2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rl
c3RTZXRMaWtlKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFNl
dExpa2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFw
LCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RTZXRMaWtlKTsKKyAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0U2V0TGlrZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElT
T19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxsSGVhcENlbGxUeXBlLCBKU1Rlc3RTZXRM
aWtlKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFNldExpa2Uu
Z2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JF
X1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCShy
ZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1NCw5ICszNTQsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RTZXRMaWtlV2l0
aE92ZXJyCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
YmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnM+IHx8ICFKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9v
Zl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnM+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgp
LCBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zKTsKKyAgICAgICAgc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5kZXN0cnVj
dGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnMpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19T
VUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUs
IEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMpOwogICAgIGF1dG8qIHNwYWNl
ID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cy5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05P
UkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyLmNwcAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTkyLDkgKzE5Miw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdFN0cmluZ2lmaWVy
OjpzdWIKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19i
YXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0U3RyaW5naWZpZXI+IHx8
ICFKU1Rlc3RTdHJpbmdpZmllcjo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHBy
IChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RTdHJp
bmdpZmllcj4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFN0cmluZ2lmaWVyID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RTdHJpbmdpZmllcik7Cisg
ICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFN0cmluZ2lmaWVyID0gbWFrZVVuaXF1ZTxJ
c29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0U3RyaW5naWZpZXIpOwogICAgIGVsc2UKLSAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXIgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgp
LCBKU1Rlc3RTdHJpbmdpZmllcik7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFN0
cmluZ2lmaWVyID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0u
aGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdFN0cmluZ2lmaWVyKTsKICAgICBhdXRv
KiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFN0cmluZ2lmaWVyLmdldCgpOwogSUdO
T1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19C
RUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCShyZXZpc2lvbiAyODYwMzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsOSArMTky
LDkgQEAgSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0U3RyaW5naWZpZXJBbm9ueQogICAgICAgICBy
ZXR1cm4gc3BhY2U7CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpT
RGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbj4g
fHwgIUpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uOjpuZWVkc0Rlc3RydWN0aW9u
KTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QsIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPikKLSAgICAgICAg
c3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24gPSBt
YWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0
cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnlt
b3VzT3BlcmF0aW9uKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb24gPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbik7CiAgICAgZWxzZQotICAgICAgICBzcGFj
ZXMubV9zdWJzcGFjZUZvclRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiA9IG1ha2VV
bmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKTsKKyAg
ICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRp
b24gPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAq
dm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24p
OwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb24uZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hh
YmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24u
Y3BwCShyZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwOSw5ICsyMDksOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RTdHJpbmdpZmll
ck5hbWVkCiAgICAgICAgIHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
YmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24+IHx8ICFKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjpuZWVkc0Rl
c3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNE
ZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+KQotICAg
ICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbiA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklU
KHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb24pOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3Bh
Y2VGb3JUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiA9IG1ha2VVbmlxdWU8SXNvU3Vic3Bh
Y2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCks
IEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24pOworICAgICAgICBzcGFjZXMubV9zdWJz
cGFjZUZvclRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uID0gbWFrZVVuaXF1ZTxJc29TdWJz
cGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpT
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24pOwogICAgIGF1dG8qIHNwYWNlID0gc3BhY2Vz
Lm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5nZXQoKTsKIElHTk9S
RV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklOR1NfQkVH
SU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCShyZXZpc2lvbiAy
ODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjA5LDkgKzIwOSw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmEK
ICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29m
X3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25J
bXBsZW1lbnRlZEFzPiB8fCAhSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
OjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92
PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1w
bGVtZW50ZWRBcz4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uSW1wbGVtZW50ZWRBcyA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJT
UEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKTsKKyAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRl
c3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSwgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25J
bXBsZW1lbnRlZEFzKTsKICAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyA9IG1ha2VVbmlxdWU8SXNvU3Vic3Bh
Y2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCks
IEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyk7CisgICAgICAgIHNwYWNl
cy5tX3N1YnNwYWNlRm9yVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyA9IG1h
a2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsICp2bS5jZWxs
SGVhcENlbGxUeXBlLCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMpOwog
ICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzLmdldCgpOwogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNo
YWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUi
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uTmFtZWRUb1N0cmluZy5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsOSArMTkyLDkgQEAgSlNDOjpJc29T
dWJzcGFjZSogSlNUZXN0U3RyaW5naWZpZXJPcGVyYQogICAgICAgICByZXR1cm4gc3BhY2U7CiAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc+IHx8ICFKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAg
IGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVj
dCwgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nPikKLSAgICAgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmcpOworICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJ
U09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxU
eXBlLCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcpOwogICAgIGVsc2UK
LSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1l
ZFRvU3RyaW5nID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0u
aGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNP
X1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyk7CiAgICAgYXV0byogc3BhY2UgPSBzcGFjZXMu
bV9zdWJzcGFjZUZvclRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuZ2V0KCk7
CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCShyZXZpc2lvbiAyODYw
MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOCw5ICsy
MDgsOSBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RTdHJpbmdpZmllclJlYWRPCiAgICAgICAg
IHJldHVybiBzcGFjZTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6
SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+
IHx8ICFKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlOjpuZWVkc0Rlc3RydWN0aW9u
KTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QsIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+KQotICAgICAgICBz
cGFjZXMubV9zdWJzcGFjZUZvclRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlID0gbWFr
ZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9J
TklUKHZtLmhlYXAsICp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUsIEpTVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUpOwogICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSA9IG1ha2VVbmlxdWU8
SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5
cGUuZ2V0KCksIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUpOworICAgICAgICBz
cGFjZXMubV9zdWJzcGFjZUZvclRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlID0gbWFr
ZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxI
ZWFwQ2VsbFR5cGUsIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUpOwogICAgIGF1
dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZS5nZXQoKTsKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIp
CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNw
cAkocmV2aXNpb24gMjg2MDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjI3LDkgKzIyNyw5IEBAIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFcKICAgICAgICAgcmV0dXJuIHNwYWNlOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGU+IHx8ICFKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZTo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2Jhc2Vfb2Zf
djxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0
dHJpYnV0ZT4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lO
SVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rl
c3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlID0gbWFrZVVuaXF1ZTxJc29T
dWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKnZtLmRlc3RydWN0aWJsZU9iamVj
dEhlYXBDZWxsVHlwZSwgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUpOwogICAg
IGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGUgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2
bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZSk7CisgICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQ
QUNFX0lOSVQodm0uaGVhcCwgKnZtLmNlbGxIZWFwQ2VsbFR5cGUsIEpTVGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNl
Rm9yVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmdldCgpOwogSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1
dG9sb2dpY2FsLWNvbXBhcmUiKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAy
ODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NzgsOSArNzc4LDkgQEAgSlNDOjpJc29T
dWJzcGFjZSogSlNUZXN0VHlwZWRlZnM6OnN1YnNwYQogICAgICAgICByZXR1cm4gc3BhY2U7CiAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LCBKU1Rlc3RUeXBlZGVmcz4gfHwgIUpTVGVzdFR5cGVkZWZzOjpuZWVkc0Rlc3RydWN0aW9u
KTsKICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QsIEpTVGVzdFR5cGVkZWZzPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JU
ZXN0VHlwZWRlZnMgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2
bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdFR5
cGVkZWZzKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0VHlwZWRlZnMgPSBtYWtl
VW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqdm0uZGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLCBKU1Rlc3RUeXBlZGVmcyk7CiAgICAgZWxzZQotICAg
ICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclRlc3RUeXBlZGVmcyA9IG1ha2VVbmlxdWU8SXNvU3Vi
c3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0
KCksIEpTVGVzdFR5cGVkZWZzKTsKKyAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0VHlw
ZWRlZnMgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFw
LCAqdm0uY2VsbEhlYXBDZWxsVHlwZSwgSlNUZXN0VHlwZWRlZnMpOwogICAgIGF1dG8qIHNwYWNl
ID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0VHlwZWRlZnMuZ2V0KCk7CiBJR05PUkVfV0FSTklO
R1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUiKQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0
b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwCShy
ZXZpc2lvbiAyODYwMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OSw3ICsyNDks
NyBAQCBKU0M6Oklzb1N1YnNwYWNlKiBKU1dvcmtlckdsb2JhbFNjb3BlOjpzCiAgICAgYXV0byYg
c3BhY2VzID0gY2xpZW50RGF0YS5zdWJzcGFjZXMoKTsKICAgICBpZiAoYXV0byogc3BhY2UgPSBz
cGFjZXMubV9zdWJzcGFjZUZvcldvcmtlckdsb2JhbFNjb3BlLmdldCgpKQogICAgICAgICByZXR1
cm4gc3BhY2U7Ci0gICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JXb3JrZXJHbG9iYWxTY29wZSA9IG1h
a2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIGNsaWVudERh
dGEubV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtlckdsb2JhbFNjb3BlLmdldCgpLCBKU1dvcmtlckds
b2JhbFNjb3BlKTsKKyAgICBzcGFjZXMubV9zdWJzcGFjZUZvcldvcmtlckdsb2JhbFNjb3BlID0g
bWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgKmNsaWVu
dERhdGEubV9oZWFwQ2VsbFR5cGVGb3JKU1dvcmtlckdsb2JhbFNjb3BlLCBKU1dvcmtlckdsb2Jh
bFNjb3BlKTsKICAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yV29ya2VyR2xv
YmFsU2NvcGUuZ2V0KCk7CiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUi
KQogSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Myw3ICsxNjMsNyBAQCBKU0M6Oklzb1N1YnNwYWNlKiBK
U1dvcmtsZXRHbG9iYWxTY29wZTo6CiAgICAgYXV0byYgc3BhY2VzID0gY2xpZW50RGF0YS5zdWJz
cGFjZXMoKTsKICAgICBpZiAoYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvcldvcmts
ZXRHbG9iYWxTY29wZS5nZXQoKSkKICAgICAgICAgcmV0dXJuIHNwYWNlOwotICAgIHNwYWNlcy5t
X3N1YnNwYWNlRm9yV29ya2xldEdsb2JhbFNjb3BlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4g
SVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlwZUZvckpT
V29ya2xldEdsb2JhbFNjb3BlLmdldCgpLCBKU1dvcmtsZXRHbG9iYWxTY29wZSk7CisgICAgc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JXb3JrbGV0R2xvYmFsU2NvcGUgPSBtYWtlVW5pcXVlPElzb1N1YnNw
YWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCAqY2xpZW50RGF0YS5tX2hlYXBDZWxsVHlw
ZUZvckpTV29ya2xldEdsb2JhbFNjb3BlLCBKU1dvcmtsZXRHbG9iYWxTY29wZSk7CiAgICAgYXV0
byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvcldvcmtsZXRHbG9iYWxTY29wZS5nZXQoKTsK
IElHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCiBJR05PUkVfV0FSTklO
R1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfcnVudGltZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0JKHJldmlzaW9uIDI4NjAzNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMz
NCw3ICszMzQsOSBAQCBib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6dG9Cb29sZWFuKEpTCiAK
IEpTQzo6SXNvU3Vic3BhY2UqIE9iamNGYWxsYmFja09iamVjdEltcDo6c3Vic3BhY2VGb3JJbXBs
KEpTQzo6Vk0mIHZtKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU0M6Oklzb1N1YnNw
YWNlUGVyVk0+IHBlclZNKFtdIChKU0M6OlZNJiB2bSkgeyByZXR1cm4gSVNPX1NVQlNQQUNFX1BB
UkFNRVRFUlModm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBPYmpjRmFs
bGJhY2tPYmplY3RJbXApOyB9KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNDOjpJc29T
dWJzcGFjZVBlclZNPiBwZXJWTShbXSAoSlNDOjpWTSYgdm0pIHsKKyAgICAgICAgcmV0dXJuIElT
T19TVUJTUEFDRV9QQVJBTUVURVJTKCp2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUs
IE9iamNGYWxsYmFja09iamVjdEltcCk7CisgICAgfSk7CiAgICAgcmV0dXJuICZwZXJWTS5nZXQo
KS5mb3JWTSh2bSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>