<?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>217729</bug_id>
          
          <creation_ts>2020-10-14 14:11:14 -0700</creation_ts>
          <short_desc>Remove WebKitLauncher</short_desc>
          <delta_ts>2020-10-14 15:11:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>darin</cc>
    
    <cc>krollin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697873</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-10-14 14:11:14 -0700</bug_when>
    <thetext>This is part of long defunct nightly build infrastructure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697875</commentid>
    <comment_count>1</comment_count>
      <attachid>411372</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-10-14 14:15:14 -0700</bug_when>
    <thetext>Created attachment 411372
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697885</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-10-14 14:25:51 -0700</bug_when>
    <thetext>Will have to land manually, as this fails to apply for some reason.

Famous last words, but there&apos;s nothing for EWS to see here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697886</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-10-14 14:33:25 -0700</bug_when>
    <thetext>I was wondering about that tool! We&apos;ve been faithfully maintaining it for years, but I couldn&apos;t find anything that built or used it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697908</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-10-14 15:10:35 -0700</bug_when>
    <thetext>Committed http://trac.webkit.org/r268490</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697910</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-14 15:11:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/70310156&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411372</attachid>
            <date>2020-10-14 14:15:14 -0700</date>
            <delta_ts>2020-10-14 14:26:40 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>WebKitLauncher.txt</filename>
            <type>text/plain</type>
            <size>97800</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODQ4NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTEwLTE0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbW92ZSBXZWJLaXRMYXVuY2hlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKwkJVGhpcyBpcyBwYXJ0IG9mIGxvbmcgZGVmdW5jdCBuaWdodGx5
IGJ1aWxkIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogLmdpdGF0dHJpYnV0ZXM6CisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQtbGF1bmNoZXItYXBwOiBSZW1vdmVkLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvc2RrdmFyaWFudC5weToKKyAg
ICAgICAgKiBXZWJLaXRMYXVuY2hlcjogUmVtb3ZlZC4KKwogMjAyMC0xMC0xNCAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2
ZXJ0aW5nIHIyNjg0MzEgYW5kIHIyNjg0NDMuCkluZGV4OiBUb29scy8uZ2l0YXR0cmlidXRlcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy8uZ2l0YXR0cmlidXRlcwkocmV2aXNpb24gMjY4NDg3KQorKysg
VG9vbHMvLmdpdGF0dHJpYnV0ZXMJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSwzIEBACi1XZWJL
aXRMYXVuY2hlci8qLmggZGlmZj1vYmpjcHBoZWFkZXIKIEJ1aWxkU2xhdmVTdXBwb3J0L3dpbi9r
aWxsLW9sZC1wcm9jZXNzZXMgLWNybGYKIER1bXBSZW5kZXJUcmVlL2NhaXJvL1BpeGVsRHVtcFN1
cHBvcnRDYWlyby5jcHAgLWNybGYKIEZpbmRTYWZhcmkvU2FmYXJpLmV4ZS5tYW5pZmVzdCAtY3Js
ZgpJbmRleDogVG9vbHMvV2ViS2l0TGF1bmNoZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRMYXVuY2hlci9Db25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnCShyZXZpc2lvbiAyNjg0ODcpCisrKyBUb29scy9XZWJLaXRMYXVuY2hlci9Db25m
aWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShub25leGlzdGVudCkKQEAgLTEsMzkgKzAsMCBAQAot
Ly8gQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8v
Ci0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotLy8gYXJlIG1ldDoKLS8vIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0v
LyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0vLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotLy8gICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLS8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0vLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLS8vIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0vLyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLS8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLS8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotLy8gUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotLy8gT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotCi1BUkNIUyA9ICQoQVJDSFNfU1RB
TkRBUkRfMzJfNjRfQklUKTsKLURFQURfQ09ERV9TVFJJUFBJTkcgPSBZRVM7Ci1ERUJVR19JTkZP
Uk1BVElPTl9GT1JNQVQgPSBkd2FyZi13aXRoLWRzeW07Ci0KLUNMQU5HX0VOQUJMRV9PQkpDX1dF
QUsgPSBZRVM7Ci1HQ0NfREVCVUdHSU5HX1NZTUJPTFMgPSBmdWxsOwotR0NDX01PREVMX1RVTklO
RyA9IEc1OwotR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9IEVOQUJMRV9TUEFSS0xFPSQo
RU5BQkxFX1NQQVJLTEUpOwotR0NDX1RSRUFUX1dBUk5JTkdTX0FTX0VSUk9SUyA9IFlFUzsKLUdD
Q19WRVJTSU9OID0gY29tLmFwcGxlLmNvbXBpbGVycy5sbHZtLmNsYW5nLjFfMDsKLU1BQ09TWF9E
RVBMT1lNRU5UX1RBUkdFVCA9IDEwLjEyOwotUFJFQklORElORyA9IE5POwotU0RLUk9PVCA9IG1h
Y29zeDsKLVdBUk5JTkdfQ0ZMQUdTID0gLVdhbGw7Ci0KLUVOQUJMRV9TUEFSS0xFID0gMDsKSW5k
ZXg6IFRvb2xzL1dlYktpdExhdW5jaGVyL0NvbmZpZ3VyYXRpb25zL1NES1ZhcmlhbnQueGNjb25m
aWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0TGF1bmNoZXIvQ29uZmlndXJhdGlvbnMvU0RL
VmFyaWFudC54Y2NvbmZpZwkocmV2aXNpb24gMjY4NDg3KQorKysgVG9vbHMvV2ViS2l0TGF1bmNo
ZXIvQ29uZmlndXJhdGlvbnMvU0RLVmFyaWFudC54Y2NvbmZpZwkobm9uZXhpc3RlbnQpCkBAIC0x
LDQ1ICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLS8vIGFyZSBtZXQ6Ci0v
LyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LS8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0vLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLy8gSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0v
LyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0vLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0vLyBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLS8vIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLS8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1XS19FTVBU
WV8gPSBZRVM7Ci1XS19OT1RfID0gWUVTOwotV0tfTk9UX1lFUyA9IE5POwotCi1XS19BTFRFUk5B
VEVfRlJBTUVXT1JLU19ESVIgPSAkKFdLX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUl8kKFNES19W
QVJJQU5UKSk7Ci1XS19BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVJfaW9zbWFjID0gL1N5c3RlbS9p
T1NTdXBwb3J0OwotV0tfVVNFX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUiA9ICQoV0tfTk9UXyQo
V0tfRU1QVFlfJChXS19BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVIpKSk7Ci0KLVdLX0FMVEVSTkFU
RV9QTEFURk9STV9OQU1FID0gJChXS19BTFRFUk5BVEVfUExBVEZPUk1fTkFNRV8kKFNES19WQVJJ
QU5UKSk7Ci1XS19BTFRFUk5BVEVfUExBVEZPUk1fTkFNRV9pb3NtYWMgPSBtYWNjYXRhbHlzdDsK
LVdLX1VTRV9BTFRFUk5BVEVfUExBVEZPUk1fTkFNRSA9ICQoV0tfTk9UXyQoV0tfRU1QVFlfJChX
S19BTFRFUk5BVEVfUExBVEZPUk1fTkFNRSkpKTsKLQotV0tfQUxURVJOQVRFX1dFQktJVF9TREtf
UEFUSCA9ICQoV0tfQUxURVJOQVRFX1dFQktJVF9TREtfUEFUSF8kKFdLX1VTRV9BTFRFUk5BVEVf
RlJBTUVXT1JLU19ESVIpKTsKLVdLX0FMVEVSTkFURV9XRUJLSVRfU0RLX1BBVEhfWUVTID0gJChX
S19BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVIpLzsKLQotV0tfUExBVEZPUk1fTkFNRSA9ICQoV0tf
UExBVEZPUk1fTkFNRV9BTFRFUk5BVEVfJChXS19VU0VfQUxURVJOQVRFX1BMQVRGT1JNX05BTUUp
KTsKLVdLX1BMQVRGT1JNX05BTUVfQUxURVJOQVRFX1lFUyA9ICQoV0tfQUxURVJOQVRFX1BMQVRG
T1JNX05BTUUpOwotV0tfUExBVEZPUk1fTkFNRV9BTFRFUk5BVEVfTk8gPSAkKFBMQVRGT1JNX05B
TUUpOwotCi1FRkZFQ1RJVkVfUExBVEZPUk1fTkFNRSA9ICQoRUZGRUNUSVZFX1BMQVRGT1JNX05B
TUVfQUxURVJOQVRFXyQoV0tfVVNFX0FMVEVSTkFURV9QTEFURk9STV9OQU1FKSk7Ci1FRkZFQ1RJ
VkVfUExBVEZPUk1fTkFNRV9BTFRFUk5BVEVfWUVTID0gLSQoV0tfQUxURVJOQVRFX1BMQVRGT1JN
X05BTUUpOwotRUZGRUNUSVZFX1BMQVRGT1JNX05BTUVfQUxURVJOQVRFX05PID0gJChFRkZFQ1RJ
VkVfUExBVEZPUk1fTkFNRSk7CkluZGV4OiBUb29scy9XZWJLaXRMYXVuY2hlci9Db25maWd1cmF0
aW9ucy9XZWJLaXRMYXVuY2hlci5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0TGF1bmNoZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0TGF1bmNoZXIuZW50aXRsZW1lbnRzCShy
ZXZpc2lvbiAyNjg0ODcpCisrKyBUb29scy9XZWJLaXRMYXVuY2hlci9Db25maWd1cmF0aW9ucy9X
ZWJLaXRMYXVuY2hlci5lbnRpdGxlbWVudHMJKG5vbmV4aXN0ZW50KQpAQCAtMSw4ICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3Qg
UFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNv
bS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRp
Y3Q+Ci0JPGtleT5jb20uYXBwbGUuc2VjdXJpdHkuZ2V0LXRhc2stYWxsb3c8L2tleT4KLQk8dHJ1
ZS8+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDogVG9vbHMvV2ViS2l0TGF1bmNoZXIvQ29uZmln
dXJhdGlvbnMvV2ViS2l0TGF1bmNoZXIueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0TGF1bmNoZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0TGF1bmNoZXIueGNjb25maWcJKHJldmlz
aW9uIDI2ODQ4NykKKysrIFRvb2xzL1dlYktpdExhdW5jaGVyL0NvbmZpZ3VyYXRpb25zL1dlYktp
dExhdW5jaGVyLnhjY29uZmlnCShub25leGlzdGVudCkKQEAgLTEsMjYgKzAsMCBAQAotLy8gQ29w
eXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotLy8gYXJlIG1ldDoKLS8vIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0vLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotLy8gICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLS8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0vLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLS8vIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0vLyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LS8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLS8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotLy8gUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotLy8gT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotCi1JTkZPUExJU1RfRklMRSA9IEluZm8ucGxp
c3Q7Ci1QUk9EVUNUX05BTUUgPSBXZWJLaXQ7Ci1XUkFQUEVSX0VYVEVOU0lPTiA9IGFwcDsKSW5k
ZXg6IFRvb2xzL1dlYktpdExhdW5jaGVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdE5pZ2h0bHlFbmFi
bGVyLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdExhdW5jaGVyL0NvbmZpZ3Vy
YXRpb25zL1dlYktpdE5pZ2h0bHlFbmFibGVyLnhjY29uZmlnCShyZXZpc2lvbiAyNjg0ODcpCisr
KyBUb29scy9XZWJLaXRMYXVuY2hlci9Db25maWd1cmF0aW9ucy9XZWJLaXROaWdodGx5RW5hYmxl
ci54Y2NvbmZpZwkobm9uZXhpc3RlbnQpCkBAIC0xLDI5ICswLDAgQEAKLS8vIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLS8vIGFyZSBtZXQ6Ci0vLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8g
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLS8vICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLS8vICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0vLwotLy8g
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0vLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotLy8gSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0vLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0vLyBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0vLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLS8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLS8vIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLQotUFJPRFVDVF9OQU1FID0gV2ViS2l0TmlnaHRseUVuYWJs
ZXI7Ci1JTlNUQUxMX1BBVEggPSBAZXhlY3V0YWJsZV9wYXRoLy4uL1Jlc291cmNlczsKLQotT1RI
RVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xERkxBR1NfJChFTkFCTEVfU1BBUktM
RSkpOwotT1RIRVJfTERGTEFHU18wID0gOwotT1RIRVJfTERGTEFHU18xID0gLWZyYW1ld29yayBT
cGFya2xlOwpJbmRleDogVG9vbHMvV2ViS2l0TGF1bmNoZXIvSW5mby5wbGlzdAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRMYXVuY2hlci9JbmZvLnBsaXN0CShyZXZpc2lvbiAyNjg0ODcpCisr
KyBUb29scy9XZWJLaXRMYXVuY2hlci9JbmZvLnBsaXN0CShub25leGlzdGVudCkKQEAgLTEsNDg5
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZ
UEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3
LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIx
LjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+Ci0JPHN0
cmluZz5FbmdsaXNoPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZURvY3VtZW50VHlwZXM8L2tleT4K
LQk8YXJyYXk+Ci0JCTxkaWN0PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVFeHRlbnNpb25zPC9rZXk+
Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5jc3M8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8
a2V5PkNGQnVuZGxlVHlwZUljb25GaWxlPC9rZXk+Ci0JCQk8c3RyaW5nPmRvY3VtZW50LmljbnM8
L3N0cmluZz4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlTUlNRVR5cGVzPC9rZXk+Ci0JCQk8YXJyYXk+
Ci0JCQkJPHN0cmluZz50ZXh0L2Nzczwvc3RyaW5nPgotCQkJPC9hcnJheT4KLQkJCTxrZXk+Q0ZC
dW5kbGVUeXBlTmFtZTwva2V5PgotCQkJPHN0cmluZz5DU1Mgc3R5bGUgc2hlZXQ8L3N0cmluZz4K
LQkJCTxrZXk+Q0ZCdW5kbGVUeXBlUm9sZTwva2V5PgotCQkJPHN0cmluZz5WaWV3ZXI8L3N0cmlu
Zz4KLQkJCTxrZXk+TlNEb2N1bWVudENsYXNzPC9rZXk+Ci0JCQk8c3RyaW5nPkJyb3dzZXJEb2N1
bWVudDwvc3RyaW5nPgotCQk8L2RpY3Q+Ci0JCTxkaWN0PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVF
eHRlbnNpb25zPC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5wZGY8L3N0cmluZz4KLQkJ
CTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZUljb25GaWxlPC9rZXk+Ci0JCQk8c3RyaW5n
PmRvY3VtZW50LmljbnM8L3N0cmluZz4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlTUlNRVR5cGVzPC9r
ZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5hcHBsaWNhdGlvbi9wZGY8L3N0cmluZz4KLQkJ
CTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU5hbWU8L2tleT4KLQkJCTxzdHJpbmc+UERG
IGRvY3VtZW50PC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZVJvbGU8L2tleT4KLQkJCTxz
dHJpbmc+Vmlld2VyPC9zdHJpbmc+Ci0JCQk8a2V5Pk5TRG9jdW1lbnRDbGFzczwva2V5PgotCQkJ
PHN0cmluZz5Ccm93c2VyRG9jdW1lbnQ8L3N0cmluZz4KLQkJPC9kaWN0PgotCQk8ZGljdD4KLQkJ
CTxrZXk+Q0ZCdW5kbGVUeXBlRXh0ZW5zaW9uczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJp
bmc+d2ViYXJjaGl2ZTwvc3RyaW5nPgotCQkJPC9hcnJheT4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBl
SWNvbkZpbGU8L2tleT4KLQkJCTxzdHJpbmc+d2ViYXJjaGl2ZS5pY25zPC9zdHJpbmc+Ci0JCQk8
a2V5PkNGQnVuZGxlVHlwZU1JTUVUeXBlczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+
YXBwbGljYXRpb24veC13ZWJhcmNoaXZlPC9zdHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5D
RkJ1bmRsZVR5cGVOYW1lPC9rZXk+Ci0JCQk8c3RyaW5nPldlYiBhcmNoaXZlPC9zdHJpbmc+Ci0J
CQk8a2V5PkNGQnVuZGxlVHlwZVJvbGU8L2tleT4KLQkJCTxzdHJpbmc+Vmlld2VyPC9zdHJpbmc+
Ci0JCQk8a2V5Pk5TRG9jdW1lbnRDbGFzczwva2V5PgotCQkJPHN0cmluZz5Ccm93c2VyRG9jdW1l
bnQ8L3N0cmluZz4KLQkJPC9kaWN0PgotCQk8ZGljdD4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlRXh0
ZW5zaW9uczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+c3luZGFydGljbGU8L3N0cmlu
Zz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZUljb25GaWxlPC9rZXk+Ci0JCQk8
c3RyaW5nPmRvY3VtZW50LmljbnM8L3N0cmluZz4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlTmFtZTwv
a2V5PgotCQkJPHN0cmluZz5SU1MgYXJ0aWNsZTwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5
cGVSb2xlPC9rZXk+Ci0JCQk8c3RyaW5nPlZpZXdlcjwvc3RyaW5nPgotCQkJPGtleT5OU0RvY3Vt
ZW50Q2xhc3M8L2tleT4KLQkJCTxzdHJpbmc+QnJvd3NlckRvY3VtZW50PC9zdHJpbmc+Ci0JCTwv
ZGljdD4KLQkJPGRpY3Q+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZUV4dGVuc2lvbnM8L2tleT4KLQkJ
CTxhcnJheT4KLQkJCQk8c3RyaW5nPndlYmJvb2ttYXJrPC9zdHJpbmc+Ci0JCQk8L2FycmF5Pgot
CQkJPGtleT5DRkJ1bmRsZVR5cGVJY29uRmlsZTwva2V5PgotCQkJPHN0cmluZz5kb2N1bWVudC5p
Y25zPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU5hbWU8L2tleT4KLQkJCTxzdHJpbmc+
U2FmYXJpIGJvb2ttYXJrPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZVJvbGU8L2tleT4K
LQkJCTxzdHJpbmc+Vmlld2VyPC9zdHJpbmc+Ci0JCQk8a2V5Pk5TRG9jdW1lbnRDbGFzczwva2V5
PgotCQkJPHN0cmluZz5Ccm93c2VyRG9jdW1lbnQ8L3N0cmluZz4KLQkJPC9kaWN0PgotCQk8ZGlj
dD4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlRXh0ZW5zaW9uczwva2V5PgotCQkJPGFycmF5PgotCQkJ
CTxzdHJpbmc+d2VibG9jPC9zdHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5
cGVJY29uRmlsZTwva2V5PgotCQkJPHN0cmluZz5kb2N1bWVudC5pY25zPC9zdHJpbmc+Ci0JCQk8
a2V5PkNGQnVuZGxlVHlwZU5hbWU8L2tleT4KLQkJCTxzdHJpbmc+V2ViIGludGVybmV0IGxvY2F0
aW9uPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU9TVHlwZXM8L2tleT4KLQkJCTxhcnJh
eT4KLQkJCQk8c3RyaW5nPmlsaHQ8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVu
ZGxlVHlwZVJvbGU8L2tleT4KLQkJCTxzdHJpbmc+Vmlld2VyPC9zdHJpbmc+Ci0JCQk8a2V5Pk5T
RG9jdW1lbnRDbGFzczwva2V5PgotCQkJPHN0cmluZz5Ccm93c2VyRG9jdW1lbnQ8L3N0cmluZz4K
LQkJPC9kaWN0PgotCQk8ZGljdD4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlRXh0ZW5zaW9uczwva2V5
PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+ZG93bmxvYWQ8L3N0cmluZz4KLQkJCTwvYXJyYXk+
Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZUljb25GaWxlPC9rZXk+Ci0JCQk8c3RyaW5nPmRvd25sb2Fk
MTAuaWNuczwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5cGVOYW1lPC9rZXk+Ci0JCQk8c3Ry
aW5nPlNhZmFyaSBkb3dubG9hZDwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5cGVSb2xlPC9r
ZXk+Ci0JCQk8c3RyaW5nPkVkaXRvcjwvc3RyaW5nPgotCQkJPGtleT5MU1R5cGVJc1BhY2thZ2U8
L2tleT4KLQkJCTx0cnVlLz4KLQkJCTxrZXk+TlNEb2N1bWVudENsYXNzPC9rZXk+Ci0JCQk8c3Ry
aW5nPkJyb3dzZXJEb2N1bWVudDwvc3RyaW5nPgotCQk8L2RpY3Q+Ci0JCTxkaWN0PgotCQkJPGtl
eT5DRkJ1bmRsZVR5cGVFeHRlbnNpb25zPC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5n
aWY8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZUljb25GaWxlPC9r
ZXk+Ci0JCQk8c3RyaW5nPmRvY3VtZW50LmljbnM8L3N0cmluZz4KLQkJCTxrZXk+Q0ZCdW5kbGVU
eXBlTUlNRVR5cGVzPC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5pbWFnZS9naWY8L3N0
cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU5hbWU8L2tleT4KLQkJCTxz
dHJpbmc+R0lGIGltYWdlPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU9TVHlwZXM8L2tl
eT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPkdJRmY8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0J
CQk8a2V5PkNGQnVuZGxlVHlwZVJvbGU8L2tleT4KLQkJCTxzdHJpbmc+Vmlld2VyPC9zdHJpbmc+
Ci0JCQk8a2V5Pk5TRG9jdW1lbnRDbGFzczwva2V5PgotCQkJPHN0cmluZz5Ccm93c2VyRG9jdW1l
bnQ8L3N0cmluZz4KLQkJPC9kaWN0PgotCQk8ZGljdD4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlRXh0
ZW5zaW9uczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+aHRtbDwvc3RyaW5nPgotCQkJ
CTxzdHJpbmc+aHRtPC9zdHJpbmc+Ci0JCQkJPHN0cmluZz5zaHRtbDwvc3RyaW5nPgotCQkJCTxz
dHJpbmc+amh0bWw8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZUlj
b25GaWxlPC9rZXk+Ci0JCQk8c3RyaW5nPmRvY3VtZW50LmljbnM8L3N0cmluZz4KLQkJCTxrZXk+
Q0ZCdW5kbGVUeXBlTUlNRVR5cGVzPC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz50ZXh0
L2h0bWw8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU5hbWU8L2tl
eT4KLQkJCTxzdHJpbmc+SFRNTCBkb2N1bWVudDwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5
cGVPU1R5cGVzPC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5IVE1MPC9zdHJpbmc+Ci0J
CQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVSb2xlPC9rZXk+Ci0JCQk8c3RyaW5nPlZp
ZXdlcjwvc3RyaW5nPgotCQkJPGtleT5OU0RvY3VtZW50Q2xhc3M8L2tleT4KLQkJCTxzdHJpbmc+
QnJvd3NlckRvY3VtZW50PC9zdHJpbmc+Ci0JCTwvZGljdD4KLQkJPGRpY3Q+Ci0JCQk8a2V5PkNG
QnVuZGxlVHlwZUV4dGVuc2lvbnM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPmpzPC9z
dHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVJY29uRmlsZTwva2V5Pgot
CQkJPHN0cmluZz5kb2N1bWVudC5pY25zPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU1J
TUVUeXBlczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+YXBwbGljYXRpb24veC1qYXZh
c2NyaXB0PC9zdHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVOYW1lPC9r
ZXk+Ci0JCQk8c3RyaW5nPkphdmFTY3JpcHQgc2NyaXB0PC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVu
ZGxlVHlwZVJvbGU8L2tleT4KLQkJCTxzdHJpbmc+Vmlld2VyPC9zdHJpbmc+Ci0JCQk8a2V5Pk5T
RG9jdW1lbnRDbGFzczwva2V5PgotCQkJPHN0cmluZz5Ccm93c2VyRG9jdW1lbnQ8L3N0cmluZz4K
LQkJPC9kaWN0PgotCQk8ZGljdD4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlRXh0ZW5zaW9uczwva2V5
PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+anBnPC9zdHJpbmc+Ci0JCQkJPHN0cmluZz5qcGVn
PC9zdHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVJY29uRmlsZTwva2V5
PgotCQkJPHN0cmluZz5kb2N1bWVudC5pY25zPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlw
ZU1JTUVUeXBlczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+aW1hZ2UvanBlZzwvc3Ry
aW5nPgotCQkJPC9hcnJheT4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlTmFtZTwva2V5PgotCQkJPHN0
cmluZz5KUEVHIGltYWdlPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU9TVHlwZXM8L2tl
eT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPkpQRUc8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0J
CQk8a2V5PkNGQnVuZGxlVHlwZVJvbGU8L2tleT4KLQkJCTxzdHJpbmc+Vmlld2VyPC9zdHJpbmc+
Ci0JCQk8a2V5Pk5TRG9jdW1lbnRDbGFzczwva2V5PgotCQkJPHN0cmluZz5Ccm93c2VyRG9jdW1l
bnQ8L3N0cmluZz4KLQkJPC9kaWN0PgotCQk8ZGljdD4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlRXh0
ZW5zaW9uczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+anAyPC9zdHJpbmc+Ci0JCQk8
L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVJY29uRmlsZTwva2V5PgotCQkJPHN0cmluZz5k
b2N1bWVudC5pY25zPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU1JTUVUeXBlczwva2V5
PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+aW1hZ2UvanAyPC9zdHJpbmc+Ci0JCQk8L2FycmF5
PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVOYW1lPC9rZXk+Ci0JCQk8c3RyaW5nPkpQRUcgMjAwMCBp
bWFnZTwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5cGVPU1R5cGVzPC9rZXk+Ci0JCQk8YXJy
YXk+Ci0JCQkJPHN0cmluZz5qcDIgPC9zdHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1
bmRsZVR5cGVSb2xlPC9rZXk+Ci0JCQk8c3RyaW5nPlZpZXdlcjwvc3RyaW5nPgotCQkJPGtleT5O
U0RvY3VtZW50Q2xhc3M8L2tleT4KLQkJCTxzdHJpbmc+QnJvd3NlckRvY3VtZW50PC9zdHJpbmc+
Ci0JCTwvZGljdD4KLQkJPGRpY3Q+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZUV4dGVuc2lvbnM8L2tl
eT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPnR4dDwvc3RyaW5nPgotCQkJCTxzdHJpbmc+dGV4
dDwvc3RyaW5nPgotCQkJPC9hcnJheT4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlSWNvbkZpbGU8L2tl
eT4KLQkJCTxzdHJpbmc+ZG9jdW1lbnQuaWNuczwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5
cGVNSU1FVHlwZXM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPnRleHQvcGxhaW48L3N0
cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU5hbWU8L2tleT4KLQkJCTxz
dHJpbmc+UGxhaW4gdGV4dCBkb2N1bWVudDwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5cGVP
U1R5cGVzPC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5URVhUPC9zdHJpbmc+Ci0JCQk8
L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVSb2xlPC9rZXk+Ci0JCQk8c3RyaW5nPlZpZXdl
cjwvc3RyaW5nPgotCQkJPGtleT5OU0RvY3VtZW50Q2xhc3M8L2tleT4KLQkJCTxzdHJpbmc+QnJv
d3NlckRvY3VtZW50PC9zdHJpbmc+Ci0JCTwvZGljdD4KLQkJPGRpY3Q+Ci0JCQk8a2V5PkNGQnVu
ZGxlVHlwZUV4dGVuc2lvbnM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPnBuZzwvc3Ry
aW5nPgotCQkJPC9hcnJheT4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlSWNvbkZpbGU8L2tleT4KLQkJ
CTxzdHJpbmc+ZG9jdW1lbnQuaWNuczwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5cGVNSU1F
VHlwZXM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPmltYWdlL3BuZzwvc3RyaW5nPgot
CQkJPC9hcnJheT4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlTmFtZTwva2V5PgotCQkJPHN0cmluZz5Q
TkcgaW1hZ2U8L3N0cmluZz4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlT1NUeXBlczwva2V5PgotCQkJ
PGFycmF5PgotCQkJCTxzdHJpbmc+UE5HZjwvc3RyaW5nPgotCQkJPC9hcnJheT4KLQkJCTxrZXk+
Q0ZCdW5kbGVUeXBlUm9sZTwva2V5PgotCQkJPHN0cmluZz5WaWV3ZXI8L3N0cmluZz4KLQkJCTxr
ZXk+TlNEb2N1bWVudENsYXNzPC9rZXk+Ci0JCQk8c3RyaW5nPkJyb3dzZXJEb2N1bWVudDwvc3Ry
aW5nPgotCQk8L2RpY3Q+Ci0JCTxkaWN0PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVFeHRlbnNpb25z
PC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5ydGY8L3N0cmluZz4KLQkJCTwvYXJyYXk+
Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZUljb25GaWxlPC9rZXk+Ci0JCQk8c3RyaW5nPmRvY3VtZW50
LmljbnM8L3N0cmluZz4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlTUlNRVR5cGVzPC9rZXk+Ci0JCQk8
YXJyYXk+Ci0JCQkJPHN0cmluZz5hcHBsaWNhdGlvbi9ydGY8L3N0cmluZz4KLQkJCTwvYXJyYXk+
Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU5hbWU8L2tleT4KLQkJCTxzdHJpbmc+UmljaCBUZXh0IEZv
cm1hdCAoUlRGKSBkb2N1bWVudDwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5cGVPU1R5cGVz
PC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5SVEYgPC9zdHJpbmc+Ci0JCQk8L2FycmF5
PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVSb2xlPC9rZXk+Ci0JCQk8c3RyaW5nPlZpZXdlcjwvc3Ry
aW5nPgotCQkJPGtleT5OU0RvY3VtZW50Q2xhc3M8L2tleT4KLQkJCTxzdHJpbmc+QnJvd3NlckRv
Y3VtZW50PC9zdHJpbmc+Ci0JCTwvZGljdD4KLQkJPGRpY3Q+Ci0JCQk8a2V5PkNGQnVuZGxlVHlw
ZUV4dGVuc2lvbnM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPnRpZmY8L3N0cmluZz4K
LQkJCQk8c3RyaW5nPnRpZjwvc3RyaW5nPgotCQkJPC9hcnJheT4KLQkJCTxrZXk+Q0ZCdW5kbGVU
eXBlSWNvbkZpbGU8L2tleT4KLQkJCTxzdHJpbmc+ZG9jdW1lbnQuaWNuczwvc3RyaW5nPgotCQkJ
PGtleT5DRkJ1bmRsZVR5cGVNSU1FVHlwZXM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5n
PmltYWdlL3RpZmY8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU5h
bWU8L2tleT4KLQkJCTxzdHJpbmc+VElGRiBpbWFnZTwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRs
ZVR5cGVPU1R5cGVzPC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5USUZGPC9zdHJpbmc+
Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVSb2xlPC9rZXk+Ci0JCQk8c3RyaW5n
PlZpZXdlcjwvc3RyaW5nPgotCQkJPGtleT5OU0RvY3VtZW50Q2xhc3M8L2tleT4KLQkJCTxzdHJp
bmc+QnJvd3NlckRvY3VtZW50PC9zdHJpbmc+Ci0JCTwvZGljdD4KLQkJPGRpY3Q+Ci0JCQk8a2V5
PkNGQnVuZGxlVHlwZUV4dGVuc2lvbnM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPnVy
bDwvc3RyaW5nPgotCQkJPC9hcnJheT4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlSWNvbkZpbGU8L2tl
eT4KLQkJCTxzdHJpbmc+ZG9jdW1lbnQuaWNuczwvc3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5
cGVOYW1lPC9rZXk+Ci0JCQk8c3RyaW5nPldlYiBzaXRlIGxvY2F0aW9uPC9zdHJpbmc+Ci0JCQk8
a2V5PkNGQnVuZGxlVHlwZU9TVHlwZXM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5nPkxJ
Tks8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZVJvbGU8L2tleT4K
LQkJCTxzdHJpbmc+Vmlld2VyPC9zdHJpbmc+Ci0JCQk8a2V5Pk5TRG9jdW1lbnRDbGFzczwva2V5
PgotCQkJPHN0cmluZz5Ccm93c2VyRG9jdW1lbnQ8L3N0cmluZz4KLQkJPC9kaWN0PgotCQk8ZGlj
dD4KLQkJCTxrZXk+Q0ZCdW5kbGVUeXBlRXh0ZW5zaW9uczwva2V5PgotCQkJPGFycmF5PgotCQkJ
CTxzdHJpbmc+aWNvPC9zdHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVJ
Y29uRmlsZTwva2V5PgotCQkJPHN0cmluZz5kb2N1bWVudC5pY25zPC9zdHJpbmc+Ci0JCQk8a2V5
PkNGQnVuZGxlVHlwZU1JTUVUeXBlczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJpbmc+aW1h
Z2UveC1pY29uPC9zdHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVOYW1l
PC9rZXk+Ci0JCQk8c3RyaW5nPldpbmRvd3MgaWNvbiBpbWFnZTwvc3RyaW5nPgotCQkJPGtleT5D
RkJ1bmRsZVR5cGVPU1R5cGVzPC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5JQ08gPC9z
dHJpbmc+Ci0JCQk8L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVSb2xlPC9rZXk+Ci0JCQk8
c3RyaW5nPlZpZXdlcjwvc3RyaW5nPgotCQkJPGtleT5OU0RvY3VtZW50Q2xhc3M8L2tleT4KLQkJ
CTxzdHJpbmc+QnJvd3NlckRvY3VtZW50PC9zdHJpbmc+Ci0JCTwvZGljdD4KLQkJPGRpY3Q+Ci0J
CQk8a2V5PkNGQnVuZGxlVHlwZUV4dGVuc2lvbnM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3Ry
aW5nPnhodG1sPC9zdHJpbmc+Ci0JCQkJPHN0cmluZz54aHRtPC9zdHJpbmc+Ci0JCQk8L2FycmF5
PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVJY29uRmlsZTwva2V5PgotCQkJPHN0cmluZz5kb2N1bWVu
dC5pY25zPC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU1JTUVUeXBlczwva2V5PgotCQkJ
PGFycmF5PgotCQkJCTxzdHJpbmc+YXBwbGljYXRpb24veGh0bWwreG1sPC9zdHJpbmc+Ci0JCQk8
L2FycmF5PgotCQkJPGtleT5DRkJ1bmRsZVR5cGVOYW1lPC9rZXk+Ci0JCQk8c3RyaW5nPlhIVE1M
IGRvY3VtZW50PC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZVJvbGU8L2tleT4KLQkJCTxz
dHJpbmc+Vmlld2VyPC9zdHJpbmc+Ci0JCQk8a2V5Pk5TRG9jdW1lbnRDbGFzczwva2V5PgotCQkJ
PHN0cmluZz5Ccm93c2VyRG9jdW1lbnQ8L3N0cmluZz4KLQkJPC9kaWN0PgotCQk8ZGljdD4KLQkJ
CTxrZXk+Q0ZCdW5kbGVUeXBlRXh0ZW5zaW9uczwva2V5PgotCQkJPGFycmF5PgotCQkJCTxzdHJp
bmc+eG1sPC9zdHJpbmc+Ci0JCQkJPHN0cmluZz54Ymw8L3N0cmluZz4KLQkJCQk8c3RyaW5nPnhz
bDwvc3RyaW5nPgotCQkJCTxzdHJpbmc+eHNsdDwvc3RyaW5nPgotCQkJPC9hcnJheT4KLQkJCTxr
ZXk+Q0ZCdW5kbGVUeXBlSWNvbkZpbGU8L2tleT4KLQkJCTxzdHJpbmc+ZG9jdW1lbnQuaWNuczwv
c3RyaW5nPgotCQkJPGtleT5DRkJ1bmRsZVR5cGVNSU1FVHlwZXM8L2tleT4KLQkJCTxhcnJheT4K
LQkJCQk8c3RyaW5nPmFwcGxpY2F0aW9uL3htbDwvc3RyaW5nPgotCQkJCTxzdHJpbmc+dGV4dC94
bWw8L3N0cmluZz4KLQkJCTwvYXJyYXk+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZU5hbWU8L2tleT4K
LQkJCTxzdHJpbmc+WE1MIGRvY3VtZW50PC9zdHJpbmc+Ci0JCQk8a2V5PkNGQnVuZGxlVHlwZVJv
bGU8L2tleT4KLQkJCTxzdHJpbmc+Vmlld2VyPC9zdHJpbmc+Ci0JCQk8a2V5Pk5TRG9jdW1lbnRD
bGFzczwva2V5PgotCQkJPHN0cmluZz5Ccm93c2VyRG9jdW1lbnQ8L3N0cmluZz4KLQkJPC9kaWN0
PgotCTwvYXJyYXk+Ci0JPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7
RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9r
ZXk+Ci0JPHN0cmluZz5yVkVSU0lPTiwgQ29weXJpZ2h0IDIwMDUtMjAwOSBBcHBsZSBJbmMuPC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUljb25GaWxlPC9rZXk+Ci0JPHN0cmluZz53ZWJraXQuaWNu
czwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmluZz5vcmcu
d2Via2l0Lm5pZ2h0bHkuV2ViS2l0PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9u
YXJ5VmVyc2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZU5h
bWU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5k
bGVQYWNrYWdlVHlwZTwva2V5PgotCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5k
bGVTaWduYXR1cmU8L2tleT4KLQk8c3RyaW5nPndia3Q8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxl
VmVyc2lvbjwva2V5PgotCTxzdHJpbmc+VkVSU0lPTjwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVT
aG9ydFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPnJWRVJTSU9OPC9zdHJpbmc+Ci0JPGtl
eT5MU0FyY2hpdGVjdHVyZVByaW9yaXR5PC9rZXk+Ci0JPGFycmF5PgotCQk8c3RyaW5nPng4Nl82
NDwvc3RyaW5nPgotCQk8c3RyaW5nPmkzODY8L3N0cmluZz4KLQk8L2FycmF5PgotCTxrZXk+TFNN
aW5pbXVtU3lzdGVtVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+MTAuNjwvc3RyaW5nPgotCTxrZXk+
U1VGZWVkVVJMPC9rZXk+Ci0JPHN0cmluZz5odHRwOi8vbmlnaHRseS53ZWJraXQub3JnL2J1aWxk
cy90cnVuay9tYWMvcnNzPC9zdHJpbmc+Ci0JPGtleT5TVVNob3dSZWxlYXNlTm90ZXM8L2tleT4K
LQk8ZmFsc2UvPgotCTxrZXk+U1VBbGxvd3NBdXRvbWF0aWNVcGRhdGVzPC9rZXk+Ci0JPGZhbHNl
Lz4KLQk8a2V5PlNVUHVibGljRFNBS2V5RmlsZTwva2V5PgotCTxzdHJpbmc+bmlnaHRseS53ZWJr
aXQub3JnLnB1YmxpYy5wZW08L3N0cmluZz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4K
LQk8c3RyaW5nPkJyb3dzZXJBcHBsaWNhdGlvbjwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVIZWxw
Qm9va0ZvbGRlcjwva2V5PgotCTxzdHJpbmc+U2FmYXJpSGVscDwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVIZWxwQm9va05hbWU8L2tleT4KLQk8c3RyaW5nPlNhZmFyaSBIZWxwPC9zdHJpbmc+Ci0J
PGtleT5DRkJ1bmRsZVVSTFR5cGVzPC9rZXk+Ci0JPGFycmF5PgotCQk8ZGljdD4KLQkJCTxrZXk+
Q0ZCdW5kbGVVUkxOYW1lPC9rZXk+Ci0JCQk8c3RyaW5nPldlYiBzaXRlIFVSTDwvc3RyaW5nPgot
CQkJPGtleT5DRkJ1bmRsZVVSTFNjaGVtZXM8L2tleT4KLQkJCTxhcnJheT4KLQkJCQk8c3RyaW5n
Pmh0dHA8L3N0cmluZz4KLQkJCQk8c3RyaW5nPmh0dHBzPC9zdHJpbmc+Ci0JCQk8L2FycmF5Pgot
CQk8L2RpY3Q+Ci0JCTxkaWN0PgotCQkJPGtleT5DRkJ1bmRsZVVSTE5hbWU8L2tleT4KLQkJCTxz
dHJpbmc+bG9jYWwgZmlsZSBVUkw8L3N0cmluZz4KLQkJCTxrZXk+Q0ZCdW5kbGVVUkxTY2hlbWVz
PC9rZXk+Ci0JCQk8YXJyYXk+Ci0JCQkJPHN0cmluZz5maWxlPC9zdHJpbmc+Ci0JCQk8L2FycmF5
PgotCQk8L2RpY3Q+Ci0JPC9hcnJheT4KLQk8a2V5Pk5TQXBwbGVTY3JpcHRFbmFibGVkPC9rZXk+
Ci0JPHN0cmluZz5ZZXM8L3N0cmluZz4KLQk8a2V5PlVURXhwb3J0ZWRUeXBlRGVjbGFyYXRpb25z
PC9rZXk+Ci0JPGFycmF5PgotCQk8ZGljdD4KLQkJCTxrZXk+VVRUeXBlQ29uZm9ybXNUbzwva2V5
PgotCQkJPHN0cmluZz5wdWJsaWMuZGF0YTwvc3RyaW5nPgotCQkJPGtleT5VVFR5cGVEZXNjcmlw
dGlvbjwva2V5PgotCQkJPHN0cmluZz5TYWZhcmkgYm9va21hcms8L3N0cmluZz4KLQkJCTxrZXk+
VVRUeXBlSWRlbnRpZmllcjwva2V5PgotCQkJPHN0cmluZz5jb20uYXBwbGUuc2FmYXJpLmJvb2tt
YXJrPC9zdHJpbmc+Ci0JCQk8a2V5PlVUVHlwZVRhZ1NwZWNpZmljYXRpb248L2tleT4KLQkJCTxk
aWN0PgotCQkJCTxrZXk+cHVibGljLmZpbGVuYW1lLWV4dGVuc2lvbjwva2V5PgotCQkJCTxhcnJh
eT4KLQkJCQkJPHN0cmluZz53ZWJib29rbWFyazwvc3RyaW5nPgotCQkJCTwvYXJyYXk+Ci0JCQk8
L2RpY3Q+Ci0JCTwvZGljdD4KLQk8L2FycmF5PgotPC9kaWN0PgotPC9wbGlzdD4KSW5kZXg6IFRv
b2xzL1dlYktpdExhdW5jaGVyL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdExh
dW5jaGVyL01ha2VmaWxlCShyZXZpc2lvbiAyNjg0ODcpCisrKyBUb29scy9XZWJLaXRMYXVuY2hl
ci9NYWtlZmlsZQkobm9uZXhpc3RlbnQpCkBAIC0xLDMgKzAsMCBAQAotU0NSSVBUU19QQVRIID0g
Li4vU2NyaXB0cwotCi1pbmNsdWRlIC4uLy4uL01ha2VmaWxlLnNoYXJlZApJbmRleDogVG9vbHMv
V2ViS2l0TGF1bmNoZXIvVkVSU0lPTgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRMYXVuY2hl
ci9WRVJTSU9OCShyZXZpc2lvbiAyNjg0ODcpCisrKyBUb29scy9XZWJLaXRMYXVuY2hlci9WRVJT
SU9OCShub25leGlzdGVudCkKQEAgLTEgKzAsMCBAQAotVkVSU0lPTgpJbmRleDogVG9vbHMvV2Vi
S2l0TGF1bmNoZXIvV2ViS2l0TGF1bmNoZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRMYXVuY2hlci9XZWJLaXRMYXVuY2hlci54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjg0ODcpCisrKyBUb29scy9XZWJLaXRMYXVuY2hl
ci9XZWJLaXRMYXVuY2hlci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShub25leGlzdGVudCkK
QEAgLTEsNDU2ICswLDAgQEAKLS8vICEkKlVURjgqJCEKLXsKLQlhcmNoaXZlVmVyc2lvbiA9IDE7
Ci0JY2xhc3NlcyA9IHsKLQl9OwotCW9iamVjdFZlcnNpb24gPSA0NTsKLQlvYmplY3RzID0gewot
Ci0vKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwotCQk1REU3OUJDMzBGMUM2
MjQ1MDA2N0JFMDggLyogRXh0cmFjdCBTcGFya2xlICovID0gewotCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVERTc5QkQ4MEYxQzYyOUIw
MDY3QkUwOCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRXh0cmFjdCBTcGFya2xlIiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCTVERTc5QkMy
MEYxQzYyNDUwMDY3QkUwOCAvKiBTaGVsbFNjcmlwdCAqLywKLQkJCSk7Ci0JCQlkZXBlbmRlbmNp
ZXMgPSAoCi0JCQkpOwotCQkJbmFtZSA9ICJFeHRyYWN0IFNwYXJrbGUiOwotCQkJcHJvZHVjdE5h
bWUgPSAiRXh0cmFjdCBTcGFya2xlIjsKLQkJfTsKLS8qIEVuZCBQQlhBZ2dyZWdhdGVUYXJnZXQg
c2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwotCQk1RDEwNjc2
NDBGRTYzNzU4MDAyQTI4NjggLyogV2ViS2l0TGF1bmNoZXJVUkxQcm90b2NvbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQxMDY3NjIwRkU2Mzc1ODAw
MkEyODY4IC8qIFdlYktpdExhdW5jaGVyVVJMUHJvdG9jb2wuaCAqLzsgfTsKLQkJNUQxMDY3NjUw
RkU2Mzc1ODAwMkEyODY4IC8qIFdlYktpdExhdW5jaGVyVVJMUHJvdG9jb2wubSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMTA2NzYzMEZFNjM3NTgwMDJB
Mjg2OCAvKiBXZWJLaXRMYXVuY2hlclVSTFByb3RvY29sLm0gKi87IH07Ci0JCTVEMThBMUZGMTAz
RkUyNTUwMDZDQTdDNyAvKiBuaWdodGx5LndlYmtpdC5vcmcucHVibGljLnBlbSBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQxOEExRkUxMDNGRTI1NTAw
NkNBN0M3IC8qIG5pZ2h0bHkud2Via2l0Lm9yZy5wdWJsaWMucGVtICovOyB9OwotCQk1RDQxMTQx
QzBBNTBBOURFMDBDODRDRjAgLyogVkVSU0lPTiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ0MTE0MUIwQTUwQTlERTAwQzg0Q0YwIC8qIFZFUlNJT04g
Ki87IH07Ci0JCTVENERGOTgyMDk3Rjg5RkIwMDgzRDVFNSAvKiBzdGFydC5odG1sIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDRERjk4MTA5N0Y4OUZC
MDA4M0Q1RTUgLyogc3RhcnQuaHRtbCAqLzsgfTsKLQkJNUQ2NTBGMzYwOURCOEIzNzAwNzVFOUE4
IC8qIFdlYktpdE5pZ2h0bHlFbmFibGVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1RDY1MEYzNTA5REI4QjM3MDA3NUU5QTggLyogV2ViS2l0TmlnaHRs
eUVuYWJsZXIubSAqLzsgfTsKLQkJNUQ2NTBGM0EwOURCOEI0MTAwNzVFOUE4IC8qIFdlYktpdE5p
Z2h0bHlFbmFibGVyLmR5bGliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1RDY1MEYzNDA5REI4QjI4MDA3NUU5QTggLyogV2ViS2l0TmlnaHRseUVuYWJs
ZXIuZHlsaWIgKi87IH07Ci0JCTVEODc3RkNEMEE1Nzk1RjIwMEQwQzY3QiAvKiBDb2NvYS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
MDU4QzdBMUZFQTU0RjAxMTFDQTJDQkIgLyogQ29jb2EuZnJhbWV3b3JrICovOyB9OwotCQk1REE4
OEY2RDBGQzgxMzYwMDBBQjJGNjIgLyogV2ViS2l0TmlnaHRseUVuYWJsZXJTcGFya2xlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REE4OEY2QjBGQzgx
MzYwMDBBQjJGNjIgLyogV2ViS2l0TmlnaHRseUVuYWJsZXJTcGFya2xlLmggKi87IH07Ci0JCTVE
QTg4RjZFMEZDODEzNjAwMEFCMkY2MiAvKiBXZWJLaXROaWdodGx5RW5hYmxlclNwYXJrbGUubSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEQTg4RjZDMEZD
ODEzNjAwMEFCMkY2MiAvKiBXZWJLaXROaWdodGx5RW5hYmxlclNwYXJrbGUubSAqLzsgfTsKLQkJ
NURBODhGN0EwRkM4MTNFQjAwQUIyRjYyIC8qIFdlYktpdE5pZ2h0bHlFbmFibGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REE4OEY3OTBGQzgxM0VC
MDBBQjJGNjIgLyogV2ViS2l0TmlnaHRseUVuYWJsZXIuaCAqLzsgfTsKLQkJNURCNzA1MjUwOTdC
OTRDRDAwOTg3NUVDIC8qIHdlYmtpdC5pY25zIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1REI3MDUyNDA5N0I5NENEMDA5ODc1RUMgLyogd2Via2l0Lmlj
bnMgKi87IH07Ci0JCTVERTA4NTM4MTVBRTBBQTAwMDBBMjdCNCAvKiBTZWN1cml0eS5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REUw
ODUzNzE1QUUwQUEwMDAwQTI3QjQgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OwotCQk4RDEx
MDcyRDA0ODZDRUI4MDBFNDcwOTAgLyogbWFpbi5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjlCOTczMTZGRENGQTM5NDExQ0EyQ0VBIC8qIG1haW4ubSAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwotCQk4RDExMDcyRjA0ODZDRUI4
MDBFNDcwOTAgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTA1OEM3QTFGRUE1NEYwMTExQ0EyQ0JCIC8qIENvY29hLmZy
YW1ld29yayAqLzsgfTsKLS8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwotCi0vKiBCZWdp
biBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwotCQk1RDY1MEY0NDA5REI4QjgzMDA3
NUU5QTggLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFp
bmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMjlCOTczMTNGRENGQTM5NDExQ0Ey
Q0VBIC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUds
b2JhbElEU3RyaW5nID0gNUQ2NTBGMzMwOURCOEIyODAwNzVFOUE4OwotCQkJcmVtb3RlSW5mbyA9
IFdlYktpdE5pZ2h0bHlFbmFibGVyOwotCQl9OwotCQk1REU3OUJDOTBGMUM2Mjg1MDA2N0JFMDgg
LyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRl
bVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMjlCOTczMTNGRENGQTM5NDExQ0EyQ0VBIC8q
IFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElE
U3RyaW5nID0gNURFNzlCQzMwRjFDNjI0NTAwNjdCRTA4OwotCQkJcmVtb3RlSW5mbyA9ICJFeHRy
YWN0IFNwYXJrbGUiOwotCQl9OwotCQk1REU3OUJDQjBGMUM2Mjg5MDA2N0JFMDggLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5Owot
CQkJY29udGFpbmVyUG9ydGFsID0gMjlCOTczMTNGRENGQTM5NDExQ0EyQ0VBIC8qIFByb2plY3Qg
b2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0g
NURFNzlCQzMwRjFDNjI0NTAwNjdCRTA4OwotCQkJcmVtb3RlSW5mbyA9ICJFeHRyYWN0IFNwYXJr
bGUiOwotCQl9OwotLyogRW5kIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCi0KLS8q
IEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwotCQkxMDU4QzdBMUZFQTU0RjAxMTFD
QTJDQkIgLyogQ29jb2EuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb2NvYS5mcmFtZXdv
cms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db2NvYS5mcmFtZXdvcms7IHNv
dXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07Ci0JCTFDNDg5OTRFMUJCQzU0N0QwMDIxM0MxQyAv
KiBXZWJLaXRMYXVuY2hlci5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgcGF0aCA9IFdlYktpdExhdW5jaGVyLmVu
dGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjlCOTczMTZGRENGQTM5
NDExQ0EyQ0VBIC8qIG1haW4ubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0g
bWFpbi5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1RDEwNjc2MjBGRTYzNzU4MDAy
QTI4NjggLyogV2ViS2l0TGF1bmNoZXJVUkxQcm90b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJLaXRMYXVuY2hlclVSTFByb3RvY29sLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTVEMTA2NzYzMEZFNjM3NTgwMDJBMjg2OCAvKiBXZWJLaXRMYXVuY2hl
clVSTFByb3RvY29sLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYktp
dExhdW5jaGVyVVJMUHJvdG9jb2wubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUQx
OEExRkUxMDNGRTI1NTAwNkNBN0M3IC8qIG5pZ2h0bHkud2Via2l0Lm9yZy5wdWJsaWMucGVtICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IG5pZ2h0bHkud2Via2l0Lm9yZy5wdWJsaWMucGVtOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1RDQxMTQxQjBBNTBBOURFMDBDODRDRjAgLyogVkVS
U0lPTiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWRVJTSU9OOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1RDRERjk4MTA5N0Y4OUZCMDA4M0Q1RTUgLyogc3RhcnQuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBzdGFydC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1RDY1MEYzNDA5REI4QjI4MDA3NUU5QTggLyogV2ViS2l0TmlnaHRseUVuYWJsZXIu
ZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJj
b21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXRO
aWdodGx5RW5hYmxlci5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
LQkJNUQ2NTBGMzUwOURCOEIzNzAwNzVFOUE4IC8qIFdlYktpdE5pZ2h0bHlFbmFibGVyLm0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYktpdE5pZ2h0bHlFbmFibGVyLm07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVEQTg4RjZCMEZDODEzNjAwMEFCMkY2MiAv
KiBXZWJLaXROaWdodGx5RW5hYmxlclNwYXJrbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViS2l0TmlnaHRseUVuYWJsZXJTcGFya2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTVEQTg4RjZDMEZDODEzNjAwMEFCMkY2MiAvKiBXZWJLaXROaWdodGx5RW5h
YmxlclNwYXJrbGUubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViS2l0
TmlnaHRseUVuYWJsZXJTcGFya2xlLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVE
QTg4Rjc5MEZDODEzRUIwMEFCMkY2MiAvKiBXZWJLaXROaWdodGx5RW5hYmxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXROaWdodGx5RW5hYmxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1REE4OEY3RTBGQzgxNzYxMDBBQjJGNjIgLyogQmFzZS54
Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1REE4OEY3RjBGQzgxNzYxMDBBQjJGNjIgLyog
V2ViS2l0TGF1bmNoZXIueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0g
V2ViS2l0TGF1bmNoZXIueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVE
QTg4RjgwMEZDODE3NjEwMEFCMkY2MiAvKiBXZWJLaXROaWdodGx5RW5hYmxlci54Y2NvbmZpZyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJLaXROaWdodGx5RW5hYmxlci54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNURCNzA1MjQwOTdCOTRDRDAwOTg3
NUVDIC8qIHdlYmtpdC5pY25zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gaW1hZ2UuaWNuczsgcGF0aCA9IHdlYmtpdC5pY25zOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk1REUwODUzNzE1QUUwQUEwMDAwQTI3QjQgLyogU2VjdXJpdHkuZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBTZWN1cml0eS5mcmFtZXdvcms7IHBhdGggPSBTeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1NlY3VyaXR5LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNE
S1JPT1Q7IH07Ci0JCTVERTc5QkVCMEYxQzYzQ0MwMDY3QkUwOCAvKiBTcGFya2xlLmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBwYXRoID0gU3BhcmtsZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07Ci0JCThEMTEwNzMxMDQ4NkNFQjgwMEU0NzA5MCAvKiBJbmZvLnBs
aXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCThEMTEwNzMyMDQ4NkNFQjgwMEU0NzA5MCAvKiBXZWJLaXQuYXBw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVy
LmFwcGxpY2F0aW9uOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXQuYXBwOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ug
c2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICov
Ci0JCTVENjUwRjMyMDlEQjhCMjgwMDc1RTlBOCAvKiBGcmFtZXdvcmtzICovID0gewotCQkJaXNh
ID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJNUQ4NzdGQ0QwQTU3OTVGMjAwRDBDNjdCIC8qIENvY29h
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwotCQk4RDExMDcyRTA0ODZDRUI4MDBFNDcwOTAg
LyogRnJhbWV3b3JrcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwot
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJCThEMTEw
NzJGMDQ4NkNFQjgwMEU0NzA5MCAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywK
LQkJCQk1REUwODUzODE1QUUwQUEwMDAwQTI3QjQgLyogU2VjdXJpdHkuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7Ci0JCX07Ci0vKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwot
Ci0vKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCi0JCTEwNThDN0EwRkVBNTRGMDExMUNBMkNC
QiAvKiBMaW5rZWQgRnJhbWV3b3JrcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hp
bGRyZW4gPSAoCi0JCQkJMTA1OEM3QTFGRUE1NEYwMTExQ0EyQ0JCIC8qIENvY29hLmZyYW1ld29y
ayAqLywKLQkJCSk7Ci0JCQluYW1lID0gIkxpbmtlZCBGcmFtZXdvcmtzIjsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTE5QzI4RkFDRkU5RDUyMEQxMUNBMkNCQiAvKiBQcm9k
dWN0cyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJNURF
NzlCRUIwRjFDNjNDQzAwNjdCRTA4IC8qIFNwYXJrbGUuZnJhbWV3b3JrICovLAotCQkJCThEMTEw
NzMyMDQ4NkNFQjgwMEU0NzA5MCAvKiBXZWJLaXQuYXBwICovLAotCQkJCTVENjUwRjM0MDlEQjhC
MjgwMDc1RTlBOCAvKiBXZWJLaXROaWdodGx5RW5hYmxlci5keWxpYiAqLywKLQkJCSk7Ci0JCQlu
YW1lID0gUHJvZHVjdHM7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQkyOUI5
NzMxNEZEQ0ZBMzk0MTFDQTJDRUEgLyogV2ViS2l0ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7
Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1REUwODUzNzE1QUUwQUEwMDAwQTI3QjQgLyogU2VjdXJp
dHkuZnJhbWV3b3JrICovLAotCQkJCTI5Qjk3MzE1RkRDRkEzOTQxMUNBMkNFQSAvKiBTb3VyY2Ug
Ki8sCi0JCQkJNURBODhGN0QwRkM4MTc0RTAwQUIyRjYyIC8qIENvbmZpZ3VyYXRpb25zICovLAot
CQkJCTI5Qjk3MzE3RkRDRkEzOTQxMUNBMkNFQSAvKiBSZXNvdXJjZXMgKi8sCi0JCQkJMjlCOTcz
MjNGRENGQTM5NDExQ0EyQ0VBIC8qIEZyYW1ld29ya3MgKi8sCi0JCQkJMTlDMjhGQUNGRTlENTIw
RDExQ0EyQ0JCIC8qIFByb2R1Y3RzICovLAotCQkJKTsKLQkJCW5hbWUgPSBXZWJLaXQ7Ci0JCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQkyOUI5NzMxNUZEQ0ZBMzk0MTFDQTJDRUEg
LyogU291cmNlICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJ
CQkyOUI5NzMxNkZEQ0ZBMzk0MTFDQTJDRUEgLyogbWFpbi5tICovLAotCQkJCTVEMTA2NzYyMEZF
NjM3NTgwMDJBMjg2OCAvKiBXZWJLaXRMYXVuY2hlclVSTFByb3RvY29sLmggKi8sCi0JCQkJNUQx
MDY3NjMwRkU2Mzc1ODAwMkEyODY4IC8qIFdlYktpdExhdW5jaGVyVVJMUHJvdG9jb2wubSAqLywK
LQkJCQk1REE4OEY3OTBGQzgxM0VCMDBBQjJGNjIgLyogV2ViS2l0TmlnaHRseUVuYWJsZXIuaCAq
LywKLQkJCQk1RDY1MEYzNTA5REI4QjM3MDA3NUU5QTggLyogV2ViS2l0TmlnaHRseUVuYWJsZXIu
bSAqLywKLQkJCQk1REE4OEY2QjBGQzgxMzYwMDBBQjJGNjIgLyogV2ViS2l0TmlnaHRseUVuYWJs
ZXJTcGFya2xlLmggKi8sCi0JCQkJNURBODhGNkMwRkM4MTM2MDAwQUIyRjYyIC8qIFdlYktpdE5p
Z2h0bHlFbmFibGVyU3BhcmtsZS5tICovLAotCQkJKTsKLQkJCW5hbWUgPSBTb3VyY2U7Ci0JCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQkyOUI5NzMxN0ZEQ0ZBMzk0MTFDQTJDRUEg
LyogUmVzb3VyY2VzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgK
LQkJCQk1RDQxMTQxQjBBNTBBOURFMDBDODRDRjAgLyogVkVSU0lPTiAqLywKLQkJCQk4RDExMDcz
MTA0ODZDRUI4MDBFNDcwOTAgLyogSW5mby5wbGlzdCAqLywKLQkJCQk1RDE4QTFGRTEwM0ZFMjU1
MDA2Q0E3QzcgLyogbmlnaHRseS53ZWJraXQub3JnLnB1YmxpYy5wZW0gKi8sCi0JCQkJNUQ0REY5
ODEwOTdGODlGQjAwODNENUU1IC8qIHN0YXJ0Lmh0bWwgKi8sCi0JCQkJNURCNzA1MjQwOTdCOTRD
RDAwOTg3NUVDIC8qIHdlYmtpdC5pY25zICovLAotCQkJKTsKLQkJCW5hbWUgPSBSZXNvdXJjZXM7
Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQkyOUI5NzMyM0ZEQ0ZBMzk0MTFD
QTJDRUEgLyogRnJhbWV3b3JrcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJMTA1OEM3QTBGRUE1NEYwMTExQ0EyQ0JCIC8qIExpbmtlZCBGcmFtZXdvcmtz
ICovLAotCQkJKTsKLQkJCW5hbWUgPSBGcmFtZXdvcmtzOwotCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKLQkJfTsKLQkJNURBODhGN0QwRkM4MTc0RTAwQUIyRjYyIC8qIENvbmZpZ3VyYXRpb25z
ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1REE4OEY3
RTBGQzgxNzYxMDBBQjJGNjIgLyogQmFzZS54Y2NvbmZpZyAqLywKLQkJCQkxQzQ4OTk0RTFCQkM1
NDdEMDAyMTNDMUMgLyogV2ViS2l0TGF1bmNoZXIuZW50aXRsZW1lbnRzICovLAotCQkJCTVEQTg4
RjdGMEZDODE3NjEwMEFCMkY2MiAvKiBXZWJLaXRMYXVuY2hlci54Y2NvbmZpZyAqLywKLQkJCQk1
REE4OEY4MDBGQzgxNzYxMDBBQjJGNjIgLyogV2ViS2l0TmlnaHRseUVuYWJsZXIueGNjb25maWcg
Ki8sCi0JCQkpOwotCQkJcGF0aCA9IENvbmZpZ3VyYXRpb25zOwotCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKLQkJfTsKLS8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBC
WEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJNUQ2NTBGMzAwOURCOEIyODAwNzVFOUE4
IC8qIEhlYWRlcnMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsKLQkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQk1RDEwNjc2NDBG
RTYzNzU4MDAyQTI4NjggLyogV2ViS2l0TGF1bmNoZXJVUkxQcm90b2NvbC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNURBODhGN0EwRkM4MTNFQjAwQUIyRjYyIC8qIFdlYktpdE5pZ2h0bHlFbmFibGVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1REE4OEY2RDBGQzgxMzYwMDBBQjJGNjIgLyogV2ViS2l0
TmlnaHRseUVuYWJsZXJTcGFya2xlLmggaW4gSGVhZGVycyAqLywKLQkJCSk7Ci0JCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKLS8qIEVuZCBQQlhIZWFkZXJz
QnVpbGRQaGFzZSBzZWN0aW9uICovCi0KLS8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9u
ICovCi0JCTVENjUwRjMzMDlEQjhCMjgwMDc1RTlBOCAvKiBXZWJLaXROaWdodGx5RW5hYmxlciAq
LyA9IHsKLQkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSA1RDY1MEYzNzA5REI4QjM3MDA3NUU5QTggLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYktpdE5pZ2h0bHlFbmFibGVyIiAqLzsKLQkJCWJ1aWxk
UGhhc2VzID0gKAotCQkJCTVENjUwRjMwMDlEQjhCMjgwMDc1RTlBOCAvKiBIZWFkZXJzICovLAot
CQkJCTVENjUwRjMxMDlEQjhCMjgwMDc1RTlBOCAvKiBTb3VyY2VzICovLAotCQkJCTVENjUwRjMy
MDlEQjhCMjgwMDc1RTlBOCAvKiBGcmFtZXdvcmtzICovLAotCQkJKTsKLQkJCWJ1aWxkUnVsZXMg
PSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTVERTc5QkNDMEYxQzYyODkwMDY3
QkUwOCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUgPSBXZWJLaXRO
aWdodGx5RW5hYmxlcjsKLQkJCXByb2R1Y3ROYW1lID0gV2ViS2l0TmlnaHRseUVuYWJsZXI7Ci0J
CQlwcm9kdWN0UmVmZXJlbmNlID0gNUQ2NTBGMzQwOURCOEIyODAwNzVFOUE4IC8qIFdlYktpdE5p
Z2h0bHlFbmFibGVyLmR5bGliICovOwotCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1
Y3QtdHlwZS5saWJyYXJ5LmR5bmFtaWMiOwotCQl9OwotCQk4RDExMDcyNjA0ODZDRUI4MDBFNDcw
OTAgLyogV2ViS2l0ICovID0gewotCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwotCQkJYnVpbGRD
b25maWd1cmF0aW9uTGlzdCA9IEMwMUZDRjRBMDhBOTU0NTQwMDU0MjQ3QiAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViS2l0IiAqLzsKLQkJCWJ1aWxk
UGhhc2VzID0gKAotCQkJCThEMTEwNzI5MDQ4NkNFQjgwMEU0NzA5MCAvKiBSZXNvdXJjZXMgKi8s
Ci0JCQkJOEQxMTA3MkMwNDg2Q0VCODAwRTQ3MDkwIC8qIFNvdXJjZXMgKi8sCi0JCQkJOEQxMTA3
MkUwNDg2Q0VCODAwRTQ3MDkwIC8qIEZyYW1ld29ya3MgKi8sCi0JCQkJNURBODkyQUMwRkM4RTNB
MTAwQUIyRjYyIC8qIENvcHkgU3BhcmtsZSBpbiB0byBGcmFtZXdvcmtzICovLAotCQkJKTsKLQkJ
CWJ1aWxkUnVsZXMgPSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTVENjUwRjQ1
MDlEQjhCODMwMDc1RTlBOCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJCTVERTc5QkNB
MEYxQzYyODUwMDY3QkUwOCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5h
bWUgPSBXZWJLaXQ7Ci0JCQlwcm9kdWN0SW5zdGFsbFBhdGggPSAiJChIT01FKS9BcHBsaWNhdGlv
bnMiOwotCQkJcHJvZHVjdE5hbWUgPSBXZWJLaXQ7Ci0JCQlwcm9kdWN0UmVmZXJlbmNlID0gOEQx
MTA3MzIwNDg2Q0VCODAwRTQ3MDkwIC8qIFdlYktpdC5hcHAgKi87Ci0JCQlwcm9kdWN0VHlwZSA9
ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmFwcGxpY2F0aW9uIjsKLQkJfTsKLS8qIEVuZCBQQlhO
YXRpdmVUYXJnZXQgc2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhQcm9qZWN0IHNlY3Rpb24gKi8K
LQkJMjlCOTczMTNGRENGQTM5NDExQ0EyQ0VBIC8qIFByb2plY3Qgb2JqZWN0ICovID0gewotCQkJ
aXNhID0gUEJYUHJvamVjdDsKLQkJCWF0dHJpYnV0ZXMgPSB7Ci0JCQkJTGFzdFVwZ3JhZGVDaGVj
ayA9IDA0MjA7Ci0JCQl9OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEMwMUZDRjRFMDhB
OTU0NTQwMDU0MjQ3QiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3Qg
IldlYktpdExhdW5jaGVyIiAqLzsKLQkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMu
MSI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9IGVuOwotCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5n
cyA9IDE7Ci0JCQlrbm93blJlZ2lvbnMgPSAoCi0JCQkJZW4sCi0JCQkpOwotCQkJbWFpbkdyb3Vw
ID0gMjlCOTczMTRGRENGQTM5NDExQ0EyQ0VBIC8qIFdlYktpdCAqLzsKLQkJCXByb2plY3REaXJQ
YXRoID0gIiI7Ci0JCQlwcm9qZWN0Um9vdCA9ICIiOwotCQkJdGFyZ2V0cyA9ICgKLQkJCQk4RDEx
MDcyNjA0ODZDRUI4MDBFNDcwOTAgLyogV2ViS2l0ICovLAotCQkJCTVENjUwRjMzMDlEQjhCMjgw
MDc1RTlBOCAvKiBXZWJLaXROaWdodGx5RW5hYmxlciAqLywKLQkJCQk1REU3OUJDMzBGMUM2MjQ1
MDA2N0JFMDggLyogRXh0cmFjdCBTcGFya2xlICovLAotCQkJKTsKLQkJfTsKLS8qIEVuZCBQQlhQ
cm9qZWN0IHNlY3Rpb24gKi8KLQotLyogQmVnaW4gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZSBzZWN0
aW9uICovCi0JCThEMTEwNzI5MDQ4NkNFQjgwMEU0NzA5MCAvKiBSZXNvdXJjZXMgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJCTVEMThBMUZGMTAzRkUyNTUwMDZDQTdDNyAvKiBu
aWdodGx5LndlYmtpdC5vcmcucHVibGljLnBlbSBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNUQ0REY5
ODIwOTdGODlGQjAwODNENUU1IC8qIHN0YXJ0Lmh0bWwgaW4gUmVzb3VyY2VzICovLAotCQkJCTVE
NDExNDFDMEE1MEE5REUwMEM4NENGMCAvKiBWRVJTSU9OIGluIFJlc291cmNlcyAqLywKLQkJCQk1
REI3MDUyNTA5N0I5NENEMDA5ODc1RUMgLyogd2Via2l0LmljbnMgaW4gUmVzb3VyY2VzICovLAot
CQkJCTVENjUwRjNBMDlEQjhCNDEwMDc1RTlBOCAvKiBXZWJLaXROaWdodGx5RW5hYmxlci5keWxp
YiBpbiBSZXNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7Ci0JCX07Ci0vKiBFbmQgUEJYUmVzb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9u
ICovCi0KLS8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCi0JCTVE
QTg5MkFDMEZDOEUzQTEwMEFCMkY2MiAvKiBDb3B5IFNwYXJrbGUgaW4gdG8gRnJhbWV3b3JrcyAq
LyA9IHsKLQkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9u
TWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlpbnB1dFBhdGhzID0g
KAotCQkJKTsKLQkJCW5hbWUgPSAiQ29weSBTcGFya2xlIGluIHRvIEZyYW1ld29ya3MiOwotCQkJ
b3V0cHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7Ci0JCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiaWYg
W1sgXCIke0VOQUJMRV9TUEFSS0xFfVwiID09IFwiMVwiIF1dXG50aGVuXG4gICAgZGl0dG8gXCIk
e0NPTkZJR1VSQVRJT05fQlVJTERfRElSfS9TcGFya2xlLmZyYW1ld29ya1wiIFwiJHtDT05GSUdV
UkFUSU9OX0JVSUxEX0RJUn0vJHtGUkFNRVdPUktTX0ZPTERFUl9QQVRIfS9TcGFya2xlLmZyYW1l
d29ya1wiXG4gICAgY2QgXCIke0NPTkZJR1VSQVRJT05fQlVJTERfRElSfS9TcGFya2xlLmZyYW1l
d29yay9SZXNvdXJjZXNcIlxuICAgIGZpbmQgLiAtbmFtZSAnKmxwcm9qJyAtbm90IC1uYW1lICdl
bi5scHJvaicgLXByaW50MCB8IHhhcmdzIC0wIHJtIC1yZlxuZWxzZVxuICAgIHJtIC1yZiBcIiR7
Q09ORklHVVJBVElPTl9CVUlMRF9ESVJ9LyR7RlJBTUVXT1JLU19GT0xERVJfUEFUSH0vU3Bhcmts
ZS5mcmFtZXdvcmtcIlxuZmlcbiI7Ci0JCX07Ci0JCTVERTc5QkMyMEYxQzYyNDUwMDY3QkUwOCAv
KiBTaGVsbFNjcmlwdCAqLyA9IHsKLQkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsK
LQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0J
CQlpbnB1dFBhdGhzID0gKAotCQkJCSIkKFNSQ1JPT1QpL1NwYXJrbGUuZnJhbWV3b3JrLnRhci5n
eiIsCi0JCQkpOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkJIiQoQ09ORklHVVJBVElPTl9CVUlM
RF9ESVIpL1NwYXJrbGUuZnJhbWV3b3JrIiwKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNj
cmlwdCA9ICJpZiBbWyBcIiR7RU5BQkxFX1NQQVJLTEV9XCIgPT0gXCIxXCIgXV1cbnRoZW5cbiAg
ICB0YXIgLUMgXCIke0NPTkZJR1VSQVRJT05fQlVJTERfRElSfVwiIC14dnpmIFwiJHtTUkNST09U
fS9TcGFya2xlLmZyYW1ld29yay50YXIuZ3pcIlxuICAgIGNkIFwiJHtDT05GSUdVUkFUSU9OX0JV
SUxEX0RJUn0vU3BhcmtsZS5mcmFtZXdvcmsvUmVzb3VyY2VzXCJcbiAgICBmaW5kIC4gLW5hbWUg
JypscHJvaicgLW5vdCAtbmFtZSAnZW4ubHByb2onIC1wcmludDAgfCB4YXJncyAtMCBybSAtcmZc
bmVsc2VcbiAgICBybSAtcmYgXCIke0NPTkZJR1VSQVRJT05fQlVJTERfRElSfS9TcGFya2xlLmZy
YW1ld29ya1wiXG5maVxuIjsKLQkJfTsKLS8qIEVuZCBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ug
c2VjdGlvbiAqLwotCi0vKiBCZWdpbiBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCi0J
CTVENjUwRjMxMDlEQjhCMjgwMDc1RTlBOCAvKiBTb3VyY2VzICovID0gewotCQkJaXNhID0gUEJY
U291cmNlc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJ
ZmlsZXMgPSAoCi0JCQkJNUQxMDY3NjUwRkU2Mzc1ODAwMkEyODY4IC8qIFdlYktpdExhdW5jaGVy
VVJMUHJvdG9jb2wubSBpbiBTb3VyY2VzICovLAotCQkJCTVENjUwRjM2MDlEQjhCMzcwMDc1RTlB
OCAvKiBXZWJLaXROaWdodGx5RW5hYmxlci5tIGluIFNvdXJjZXMgKi8sCi0JCQkJNURBODhGNkUw
RkM4MTM2MDAwQUIyRjYyIC8qIFdlYktpdE5pZ2h0bHlFbmFibGVyU3BhcmtsZS5tIGluIFNvdXJj
ZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
Ci0JCX07Ci0JCThEMTEwNzJDMDQ4NkNFQjgwMEU0NzA5MCAvKiBTb3VyY2VzICovID0gewotCQkJ
aXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJOEQxMTA3MkQwNDg2Q0VCODAwRTQ3MDkwIC8qIG1haW4u
bSBpbiBTb3VyY2VzICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwotCQl9OwotLyogRW5kIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8K
LQotLyogQmVnaW4gUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCi0JCTVENjUwRjQ1MDlE
QjhCODMwMDc1RTlBOCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IDVENjUwRjMzMDlEQjhCMjgwMDc1RTlBOCAv
KiBXZWJLaXROaWdodGx5RW5hYmxlciAqLzsKLQkJCXRhcmdldFByb3h5ID0gNUQ2NTBGNDQwOURC
OEI4MzAwNzVFOUE4IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNURFNzlC
Q0EwRjFDNjI4NTAwNjdCRTA4IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gNURFNzlCQzMwRjFDNjI0NTAwNjdC
RTA4IC8qIEV4dHJhY3QgU3BhcmtsZSAqLzsKLQkJCXRhcmdldFByb3h5ID0gNURFNzlCQzkwRjFD
NjI4NTAwNjdCRTA4IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNURFNzlC
Q0MwRjFDNjI4OTAwNjdCRTA4IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gNURFNzlCQzMwRjFDNjI0NTAwNjdC
RTA4IC8qIEV4dHJhY3QgU3BhcmtsZSAqLzsKLQkJCXRhcmdldFByb3h5ID0gNURFNzlCQ0IwRjFD
NjI4OTAwNjdCRTA4IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLS8qIEVuZCBQ
QlhUYXJnZXREZXBlbmRlbmN5IHNlY3Rpb24gKi8KLQotLyogQmVnaW4gWENCdWlsZENvbmZpZ3Vy
YXRpb24gc2VjdGlvbiAqLwotCQk1RDY1MEYzODA5REI4QjM3MDA3NUU5QTggLyogRGVidWcgKi8g
PSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gNURBODhGODAwRkM4MTc2MTAwQUIyRjYyIC8qIFdlYktpdE5pZ2h0bHlFbmFi
bGVyLnhjY29uZmlnICovOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCX07Ci0JCQluYW1lID0g
RGVidWc7Ci0JCX07Ci0JCTVENjUwRjM5MDlEQjhCMzcwMDc1RTlBOCAvKiBSZWxlYXNlICovID0g
ewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJl
ZmVyZW5jZSA9IDVEQTg4RjgwMEZDODE3NjEwMEFCMkY2MiAvKiBXZWJLaXROaWdodGx5RW5hYmxl
ci54Y2NvbmZpZyAqLzsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQl9OwotCQkJbmFtZSA9IFJl
bGVhc2U7Ci0JCX07Ci0JCTVERTc5QkM0MEYxQzYyNDUwMDY3QkUwOCAvKiBEZWJ1ZyAqLyA9IHsK
LQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJ
CQlQUk9EVUNUX05BTUUgPSAiRXh0cmFjdCBTcGFya2xlIjsKLQkJCX07Ci0JCQluYW1lID0gRGVi
dWc7Ci0JCX07Ci0JCTVERTc5QkM1MEYxQzYyNDUwMDY3QkUwOCAvKiBSZWxlYXNlICovID0gewot
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJ
CVBST0RVQ1RfTkFNRSA9ICJFeHRyYWN0IFNwYXJrbGUiOwotCQkJfTsKLQkJCW5hbWUgPSBSZWxl
YXNlOwotCQl9OwotCQlDMDFGQ0Y0QjA4QTk1NDU0MDA1NDI0N0IgLyogRGVidWcgKi8gPSB7Ci0J
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJl
bmNlID0gNURBODhGN0YwRkM4MTc2MTAwQUIyRjYyIC8qIFdlYktpdExhdW5jaGVyLnhjY29uZmln
ICovOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDT0RFX1NJR05fRU5USVRMRU1FTlRTID0g
V2ViS2l0TGF1bmNoZXIuZW50aXRsZW1lbnRzOwotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJ
fTsKLQkJQzAxRkNGNEMwOEE5NTQ1NDAwNTQyNDdCIC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2Eg
PSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0g
NURBODhGN0YwRkM4MTc2MTAwQUIyRjYyIC8qIFdlYktpdExhdW5jaGVyLnhjY29uZmlnICovOwot
CQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlDT0RFX1NJR05fRU5USVRMRU1FTlRTID0gV2ViS2l0
TGF1bmNoZXIuZW50aXRsZW1lbnRzOwotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9Owot
CQlDMDFGQ0Y0RjA4QTk1NDU0MDA1NDI0N0IgLyogRGVidWcgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNURBODhG
N0UwRkM4MTc2MTAwQUIyRjYyIC8qIEJhc2UueGNjb25maWcgKi87Ci0JCQlidWlsZFNldHRpbmdz
ID0gewotCQkJCUdDQ19PUFRJTUlaQVRJT05fTEVWRUwgPSAwOwotCQkJCU9OTFlfQUNUSVZFX0FS
Q0ggPSBZRVM7Ci0JCQl9OwotCQkJbmFtZSA9IERlYnVnOwotCQl9OwotCQlDMDFGQ0Y1MDA4QTk1
NDU0MDA1NDI0N0IgLyogUmVsZWFzZSAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwotCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1REE4OEY3RTBGQzgxNzYxMDBB
QjJGNjIgLyogQmFzZS54Y2NvbmZpZyAqLzsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQl9Owot
CQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0vKiBFbmQgWENCdWlsZENvbmZpZ3VyYXRpb24gc2Vj
dGlvbiAqLwotCi0vKiBCZWdpbiBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KLQkJNUQ2
NTBGMzcwOURCOEIzNzAwNzVFOUE4IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
TmF0aXZlVGFyZ2V0ICJXZWJLaXROaWdodGx5RW5hYmxlciIgKi8gPSB7Ci0JCQlpc2EgPSBYQ0Nv
bmZpZ3VyYXRpb25MaXN0OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQk1RDY1MEYz
ODA5REI4QjM3MDA3NUU5QTggLyogRGVidWcgKi8sCi0JCQkJNUQ2NTBGMzkwOURCOEIzNzAwNzVF
OUE4IC8qIFJlbGVhc2UgKi8sCi0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKLQkJfTsKLQkJ
NURFNzlCRDgwRjFDNjI5QjAwNjdCRTA4IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYQWdncmVnYXRlVGFyZ2V0ICJFeHRyYWN0IFNwYXJrbGUiICovID0gewotCQkJaXNhID0gWEND
b25maWd1cmF0aW9uTGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJNURFNzlC
QzQwRjFDNjI0NTAwNjdCRTA4IC8qIERlYnVnICovLAotCQkJCTVERTc5QkM1MEYxQzYyNDUwMDY3
QkUwOCAvKiBSZWxlYXNlICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNp
YmxlID0gMDsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0J
CUMwMUZDRjRBMDhBOTU0NTQwMDU0MjQ3QiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAiV2ViS2l0IiAqLyA9IHsKLQkJCWlzYSA9IFhDQ29uZmlndXJhdGlv
bkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJCUMwMUZDRjRCMDhBOTU0NTQw
MDU0MjQ3QiAvKiBEZWJ1ZyAqLywKLQkJCQlDMDFGQ0Y0QzA4QTk1NDU0MDA1NDI0N0IgLyogUmVs
ZWFzZSAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7Ci0J
CQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQlDMDFGQ0Y0RTA4
QTk1NDU0MDA1NDI0N0IgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0
ICJXZWJLaXRMYXVuY2hlciIgKi8gPSB7Ci0JCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0Owot
CQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQlDMDFGQ0Y0RjA4QTk1NDU0MDA1NDI0N0Ig
LyogRGVidWcgKi8sCi0JCQkJQzAxRkNGNTAwOEE5NTQ1NDAwNTQyNDdCIC8qIFJlbGVhc2UgKi8s
Ci0JCQkpOwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwotCQkJZGVmYXVs
dENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKLQkJfTsKLS8qIEVuZCBYQ0NvbmZpZ3VyYXRp
b25MaXN0IHNlY3Rpb24gKi8KLQl9OwotCXJvb3RPYmplY3QgPSAyOUI5NzMxM0ZEQ0ZBMzk0MTFD
QTJDRUEgLyogUHJvamVjdCBvYmplY3QgKi87Ci19CkluZGV4OiBUb29scy9XZWJLaXRMYXVuY2hl
ci9XZWJLaXRMYXVuY2hlci54Y29kZXByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0TGF1
bmNoZXIvV2ViS2l0TGF1bmNoZXIueGNvZGVwcm9qCShyZXZpc2lvbiAyNjg0ODcpCisrKyBUb29s
cy9XZWJLaXRMYXVuY2hlci9XZWJLaXRMYXVuY2hlci54Y29kZXByb2oJKG5vbmV4aXN0ZW50KQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvV2ViS2l0TGF1bmNoZXIvV2ViS2l0TGF1bmNoZXIu
eGNvZGVwcm9qCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmlnbm9yZQojIyAtMSw1ICswLDAgIyMK
LSoubW9kZSoKLSoucGJ4dXNlcgotKi5wZXJzcGVjdGl2ZSoKLXByb2plY3QueGN3b3Jrc3BhY2UK
LXhjdXNlcmRhdGEKSW5kZXg6IFRvb2xzL1dlYktpdExhdW5jaGVyL1dlYktpdExhdW5jaGVyVVJM
UHJvdG9jb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRMYXVuY2hlci9XZWJLaXRMYXVu
Y2hlclVSTFByb3RvY29sLmgJKHJldmlzaW9uIDI2ODQ4NykKKysrIFRvb2xzL1dlYktpdExhdW5j
aGVyL1dlYktpdExhdW5jaGVyVVJMUHJvdG9jb2wuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDMzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0KLUBpbnRlcmZhY2UgV2ViS2l0TGF1bmNo
ZXJVUkxQcm90b2NvbCA6IE5TVVJMUHJvdG9jb2wKLXsKLQotfQotCi1AZW5kCkluZGV4OiBUb29s
cy9XZWJLaXRMYXVuY2hlci9XZWJLaXRMYXVuY2hlclVSTFByb3RvY29sLm0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0TGF1bmNoZXIvV2ViS2l0TGF1bmNoZXJVUkxQcm90b2NvbC5tCShyZXZp
c2lvbiAyNjg0ODcpCisrKyBUb29scy9XZWJLaXRMYXVuY2hlci9XZWJLaXRMYXVuY2hlclVSTFBy
b3RvY29sLm0JKG5vbmV4aXN0ZW50KQpAQCAtMSwxNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJXZWJLaXRMYXVuY2hlclVS
TFByb3RvY29sLmgiCi0jaW1wb3J0ICJXZWJLaXROaWdodGx5RW5hYmxlci5oIgotCi0jaWYgRU5B
QkxFX1NQQVJLTEUKLSNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KLSNpbXBvcnQgPFNwYXJrbGUv
U3BhcmtsZS5oPgotI2VuZGlmCi0KLUBpbnRlcmZhY2UgTlNPYmplY3QgKFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlck1ldGhvZHMpCi0rICh2b2lkKXJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJv
dG9jb2w6KE5TU3RyaW5nICopc2NoZW1lOwotQGVuZAotCi1AaW50ZXJmYWNlIFdlYktpdExhdW5j
aGVyVVJMUHJvdG9jb2wgKEltcGxlbWVudGF0aW9uRGV0YWlscykKLS0odm9pZCloYW5kbGVJc1dl
YktpdExhdW5jaGVyQXZhaWxhYmxlSlM7Ci0tKHZvaWQpaGFuZGxlQ2hlY2tGb3JVcGRhdGVzOwot
LSh2b2lkKXJlc291cmNlTm90Rm91bmQ7Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXZWJLaXRM
YXVuY2hlclVSTFByb3RvY29sCi0KLSsodm9pZClsb2FkCi17Ci0gICAgW05TQ2xhc3NGcm9tU3Ry
aW5nKEAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIikgcmVnaXN0ZXJTY2hlbWVGb3JDdXN0
b21Qcm90b2NvbDpAIngtd2Via2l0LWxhdW5jaGVyIl07Ci0gICAgW05TVVJMUHJvdG9jb2wgcmVn
aXN0ZXJDbGFzczpzZWxmXTsKLX0KLQotKyhCT09MKWNhbkluaXRXaXRoUmVxdWVzdDooTlNVUkxS
ZXF1ZXN0ICopcmVxdWVzdAotewotICAgIGlmICghW1tbcmVxdWVzdCBVUkxdIHNjaGVtZV0gaXNF
cXVhbFRvU3RyaW5nOkAieC13ZWJraXQtbGF1bmNoZXIiXSkKLSAgICAgICAgcmV0dXJuIE5POwot
Ci0gICAgTlNVUkwgKm1haW5Eb2N1bWVudFVSTCA9IFtyZXF1ZXN0IG1haW5Eb2N1bWVudFVSTF07
Ci0gICAgaWYgKCFtYWluRG9jdW1lbnRVUkwpCi0gICAgICAgIHJldHVybiBOTzsKLQotICAgIGlm
IChbW21haW5Eb2N1bWVudFVSTCBzY2hlbWVdIGlzRXF1YWxUb1N0cmluZzpAImZpbGUiXSkKLSAg
ICAgICAgcmV0dXJuIFlFUzsKLQotICAgIE5TU3RyaW5nICptYWluRG9jdW1lbnRIb3N0ID0gW21h
aW5Eb2N1bWVudFVSTCBob3N0XTsKLSAgICBpZiAoIVttYWluRG9jdW1lbnRIb3N0IGlzRXF1YWxU
b1N0cmluZzpAIndlYmtpdC5vcmciXSAmJiAhW21haW5Eb2N1bWVudEhvc3QgaGFzU3VmZml4OkAi
LndlYmtpdC5vcmciXSkKLSAgICAgICAgcmV0dXJuIE5POwotCi0gICAgcmV0dXJuIFlFUzsKLX0K
LQotKyhOU1VSTFJlcXVlc3QgKiljYW5vbmljYWxSZXF1ZXN0Rm9yUmVxdWVzdDooTlNVUkxSZXF1
ZXN0ICopcmVxdWVzdAotewotICAgIHJldHVybiByZXF1ZXN0OwotfQotCi0tKHZvaWQpc3RhcnRM
b2FkaW5nCi17Ci0gICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW3NlbGYgcmVxdWVzdF07Ci0g
ICAgTlNTdHJpbmcgKnJlc291cmNlU3BlY2lmaWVyID0gW1tyZXF1ZXN0IFVSTF0gcmVzb3VyY2VT
cGVjaWZpZXJdOwotICAgIGlmIChbcmVzb3VyY2VTcGVjaWZpZXIgaXNFcXVhbFRvU3RyaW5nOkAi
aXMteC13ZWJraXQtbGF1bmNoZXItYXZhaWxhYmxlLmpzIl0pIHsKLSAgICAgICAgW3NlbGYgaGFu
ZGxlSXNXZWJLaXRMYXVuY2hlckF2YWlsYWJsZUpTXTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAoW3Jlc291cmNlU3BlY2lmaWVyIGlzRXF1YWxUb1N0cmluZzpAIndlYmtpdC12ZXJz
aW9uLWluZm9ybWF0aW9uLmpzIl0pIHsKLSAgICAgICAgW3NlbGYgaGFuZGxlV2ViS2l0VmVyc2lv
bkluZm9ybWF0aW9uXTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNpZiBFTkFCTEVfU1BBUktM
RQotICAgIGlmIChbcmVzb3VyY2VTcGVjaWZpZXIgaXNFcXVhbFRvU3RyaW5nOkAiY2hlY2stZm9y
LXVwZGF0ZXMiXSkgewotICAgICAgICBbc2VsZiBoYW5kbGVDaGVja0ZvclVwZGF0ZXNdOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0gICAgW3NlbGYgcmVzb3VyY2VOb3RGb3VuZF07
Ci19Ci0KLS0odm9pZClzdG9wTG9hZGluZwotewotfQotCi0tKHZvaWQpaGFuZGxlSXNXZWJLaXRM
YXVuY2hlckF2YWlsYWJsZUpTCi17Ci0gICAgaWQgY2xpZW50ID0gW3NlbGYgY2xpZW50XTsKLSAg
ICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdp
dGhVUkw6W1tzZWxmIHJlcXVlc3RdIFVSTF0gTUlNRVR5cGU6QCJ0ZXh0L2phdmFzY3JpcHQiIGV4
cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6QCJ1dGYtOCJdOwotICAgIFtj
bGllbnQgVVJMUHJvdG9jb2w6c2VsZiBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UgY2FjaGVT
dG9yYWdlUG9saWN5Ok5TVVJMQ2FjaGVTdG9yYWdlQWxsb3dlZF07Ci0gICAgW3Jlc3BvbnNlIHJl
bGVhc2VdOwotCi0gICAgTlNEYXRhICpkYXRhID0gW0AidmFyIGlzV2ViS2l0TGF1bmNoZXJBdmFp
bGFibGUgPSB0cnVlOyIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOwot
ICAgIFtjbGllbnQgVVJMUHJvdG9jb2w6c2VsZiBkaWRMb2FkRGF0YTpkYXRhXTsKLSAgICBbY2xp
ZW50IFVSTFByb3RvY29sRGlkRmluaXNoTG9hZGluZzpzZWxmXTsKLX0KLQotLSh2b2lkKWhhbmRs
ZVdlYktpdFZlcnNpb25JbmZvcm1hdGlvbgotewotICAgIGlkIGNsaWVudCA9IFtzZWxmIGNsaWVu
dF07Ci0gICAgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBbW05TVVJMUmVzcG9uc2UgYWxsb2Nd
IGluaXRXaXRoVVJMOltbc2VsZiByZXF1ZXN0XSBVUkxdIE1JTUVUeXBlOkAidGV4dC9qYXZhc2Ny
aXB0IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1lOkAidXRmLTgiXTsK
LSAgICBbY2xpZW50IFVSTFByb3RvY29sOnNlbGYgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNl
IGNhY2hlU3RvcmFnZVBvbGljeTpOU1VSTENhY2hlU3RvcmFnZUFsbG93ZWRdOwotICAgIFtyZXNw
b25zZSByZWxlYXNlXTsKLQotICAgIE5TQnVuZGxlICpidW5kbGUgPSB3ZWJLaXRMYXVuY2hlckJ1
bmRsZSgpOwotICAgIGludCByZXZpc2lvbiA9IFtbW2J1bmRsZSBpbmZvRGljdGlvbmFyeV0gdmFs
dWVGb3JLZXk6KE5TU3RyaW5nICopa0NGQnVuZGxlVmVyc2lvbktleV0gaW50VmFsdWVdOwotICAg
IE5TU3RyaW5nICpicmFuY2ggPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZVUkw6W2J1
bmRsZSBVUkxGb3JSZXNvdXJjZTpAIkJSQU5DSCIgd2l0aEV4dGVuc2lvbjpuaWxdIGVuY29kaW5n
Ok5TVVRGOFN0cmluZ0VuY29kaW5nIGVycm9yOjBdOwotICAgIGJyYW5jaCA9IFticmFuY2ggc3Ry
aW5nQnlUcmltbWluZ0NoYXJhY3RlcnNJblNldDpbTlNDaGFyYWN0ZXJTZXQgd2hpdGVzcGFjZUFu
ZE5ld2xpbmVDaGFyYWN0ZXJTZXRdXTsKLSAgICBpZiAoIWJyYW5jaCkKLSAgICAgICAgYnJhbmNo
ID0gQCJ0cnVuayI7Ci0KLSAgICBOU1N0cmluZyAqc2NyaXB0ID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCJ2YXIgd2ViS2l0UmV2aXNpb24gPSAlZDsgdmFyIHdlYktpdEJyYW5jaCA9IFwi
JUBcIjsiLCByZXZpc2lvbiwgYnJhbmNoXTsKLSAgICBOU0RhdGEgKmRhdGEgPSBbc2NyaXB0IGRh
dGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKLSAgICBbY2xpZW50IFVSTFBy
b3RvY29sOnNlbGYgZGlkTG9hZERhdGE6ZGF0YV07Ci0gICAgW2NsaWVudCBVUkxQcm90b2NvbERp
ZEZpbmlzaExvYWRpbmc6c2VsZl07Ci19Ci0KLSNpZiBFTkFCTEVfU1BBUktMRQotLSh2b2lkKWhh
bmRsZUNoZWNrRm9yVXBkYXRlcwotewotICAgIGlkIGNsaWVudCA9IFtzZWxmIGNsaWVudF07Ci0g
ICAgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRX
aXRoVVJMOltbc2VsZiByZXF1ZXN0XSBVUkxdIE1JTUVUeXBlOkAidGV4dC9wbGFpbiIgZXhwZWN0
ZWRDb250ZW50TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpAInV0Zi04Il07Ci0gICAgW2NsaWVu
dCBVUkxQcm90b2NvbDpzZWxmIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZSBjYWNoZVN0b3Jh
Z2VQb2xpY3k6TlNVUkxDYWNoZVN0b3JhZ2VOb3RBbGxvd2VkXTsKLSAgICBbcmVzcG9uc2UgcmVs
ZWFzZV07Ci0KLSAgICBTVVVwZGF0ZXIgKnVwZGF0ZXIgPSBbU1VVcGRhdGVyIHVwZGF0ZXJGb3JC
dW5kbGU6d2ViS2l0TGF1bmNoZXJCdW5kbGUoKV07Ci0gICAgW3VwZGF0ZXIgcGVyZm9ybVNlbGVj
dG9yT25NYWluVGhyZWFkOkBzZWxlY3RvcihjaGVja0ZvclVwZGF0ZXM6KSB3aXRoT2JqZWN0OnNl
bGYgd2FpdFVudGlsRG9uZTpOT107Ci0gICAgW2NsaWVudCBVUkxQcm90b2NvbERpZEZpbmlzaExv
YWRpbmc6c2VsZl07Ci19Ci0jZW5kaWYKLQotLSh2b2lkKXJlc291cmNlTm90Rm91bmQKLXsKLSAg
ICBpZCBjbGllbnQgPSBbc2VsZiBjbGllbnRdOwotICAgIE5TRGljdGlvbmFyeSAqaW5mb0RpY3Rp
b25hcnkgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0Ok5TVVJMRXJyb3JGYWls
aW5nVVJMU3RyaW5nRXJyb3JLZXkgZm9yS2V5Oltbc2VsZiByZXF1ZXN0XSBVUkxdXTsKLSAgICBO
U0Vycm9yICplcnJvciA9IFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU1VSTEVycm9yRG9tYWlu
IGNvZGU6TlNVUkxFcnJvckZpbGVEb2VzTm90RXhpc3QgdXNlckluZm86aW5mb0RpY3Rpb25hcnld
OwotICAgIFtjbGllbnQgVVJMUHJvdG9jb2w6c2VsZiBkaWRGYWlsV2l0aEVycm9yOmVycm9yXTsK
LX0KLQotQGVuZApJbmRleDogVG9vbHMvV2ViS2l0TGF1bmNoZXIvV2ViS2l0TmlnaHRseUVuYWJs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRMYXVuY2hlci9XZWJLaXROaWdodGx5RW5h
Ymxlci5oCShyZXZpc2lvbiAyNjg0ODcpCisrKyBUb29scy9XZWJLaXRMYXVuY2hlci9XZWJLaXRO
aWdodGx5RW5hYmxlci5oCShub25leGlzdGVudCkKQEAgLTEsMzEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotI2lmbmRlZiBXZWJLaXROaWdodGx5
RW5hYmxlcl9oCi0jZGVmaW5lIFdlYktpdE5pZ2h0bHlFbmFibGVyX2gKLQotQGNsYXNzIE5TQnVu
ZGxlOwotZXh0ZXJuIE5TQnVuZGxlICp3ZWJLaXRMYXVuY2hlckJ1bmRsZSgpOwotCi0jZW5kaWYg
Ly8gV2ViS2l0TmlnaHRseUVuYWJsZXJfaApJbmRleDogVG9vbHMvV2ViS2l0TGF1bmNoZXIvV2Vi
S2l0TmlnaHRseUVuYWJsZXIubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRMYXVuY2hlci9X
ZWJLaXROaWdodGx5RW5hYmxlci5tCShyZXZpc2lvbiAyNjg0ODcpCisrKyBUb29scy9XZWJLaXRM
YXVuY2hlci9XZWJLaXROaWdodGx5RW5hYmxlci5tCShub25leGlzdGVudCkKQEAgLTEsMTk0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwNiBHcmFoYW0g
RGVubmlzLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
Ci0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPENvY29hL0NvY29hLmg+Ci0jaW1wb3J0ICJX
ZWJLaXROaWdodGx5RW5hYmxlclNwYXJrbGUuaCIKLQotc3RhdGljIHZvaWQgZW5hYmxlV2ViS2l0
TmlnaHRseUJlaGF2aW91cigpIF9fYXR0cmlidXRlX18gKChjb25zdHJ1Y3RvcikpOwotCi1zdGF0
aWMgTlNTdHJpbmcgKldLTkVSdW5TdGF0ZSA9IEAiV0tORVJ1blN0YXRlIjsKLXN0YXRpYyBOU1N0
cmluZyAqV0tORVNob3VsZE1vbml0b3JTaHV0ZG93bnMgPSBAIldLTkVTaG91bGRNb25pdG9yU2h1
dGRvd25zIjsKLQotdHlwZWRlZiBlbnVtIHsKLSAgICBSdW5TdGF0ZVNodXREb3duLAotICAgIFJ1
blN0YXRlSW5pdGlhbGl6aW5nLAotICAgIFJ1blN0YXRlUnVubmluZwotfSBXS05FUnVuU3RhdGVz
OwotCi1zdGF0aWMgY2hhciAqd2ViS2l0QXBwUGF0aDsKLXN0YXRpYyBib29sIGV4dGVuc2lvbkJ1
bmRsZXNXZXJlTG9hZGVkID0gTk87Ci1zdGF0aWMgTlNTZXQgKmV4dGVuc2lvblBhdGhzID0gbmls
OwotCi1zdGF0aWMgdm9pZCBteUJ1bmRsZURpZExvYWQoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYg
Y2VudGVyLCB2b2lkICpvYnNlcnZlciwgQ0ZTdHJpbmdSZWYgbmFtZSwgY29uc3Qgdm9pZCAqb2Jq
ZWN0LCBDRkRpY3Rpb25hcnlSZWYgdXNlckluZm8pCi17Ci0gICAgTlNCdW5kbGUgKmJ1bmRsZSA9
IChOU0J1bmRsZSAqKW9iamVjdDsKLSAgICBOU1N0cmluZyAqYnVuZGxlUGF0aCA9IFtbYnVuZGxl
IGJ1bmRsZVBhdGhdIHN0cmluZ0J5QWJicmV2aWF0aW5nV2l0aFRpbGRlSW5QYXRoXTsKLSAgICBO
U1N0cmluZyAqYnVuZGxlRmlsZU5hbWUgPSBbYnVuZGxlUGF0aCBsYXN0UGF0aENvbXBvbmVudF07
Ci0KLSAgICAvLyBFeHBsaWNpdGx5IGlnbm9yZSBTSU1CTC5idW5kbGUsIGFzIGl0cyBvbmx5IHB1
cnBvc2UgaXMgdG8gbG9hZCBleHRlbnNpb25zCi0gICAgLy8gb24gYSBwZXItYXBwbGljYXRpb24g
YmFzaXMuICBJdCdzIHByZXNlbmNlIGluZGljYXRlcyBhIHVzZXIgaGFzIGFwcGxpY2F0aW9uCi0g
ICAgLy8gZXh0ZW5zaW9ucywgYnV0IG5vdCB0aGF0IGFueSB3aWxsIGJlIGxvYWRlZCBpbnRvIFNh
ZmFyaQotICAgIGlmIChbYnVuZGxlRmlsZU5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiU0lNQkwuYnVu
ZGxlIl0pCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIElmIHRoZSBidW5kbGUgbGl2ZXMgaW5z
aWRlIGEga25vd24gZXh0ZW5zaW9uIHBhdGgsIGZsYWcgaXQgYXMgYW4gZXh0ZW5zaW9uCi0gICAg
TlNFbnVtZXJhdG9yICplID0gW2V4dGVuc2lvblBhdGhzIG9iamVjdEVudW1lcmF0b3JdOwotICAg
IE5TU3RyaW5nICpwYXRoID0gbmlsOwotICAgIHdoaWxlICgocGF0aCA9IFtlIG5leHRPYmplY3Rd
KSkgewotICAgICAgICBpZiAoW2J1bmRsZVBhdGggbGVuZ3RoXSA8IFtwYXRoIGxlbmd0aF0pCi0g
ICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAoW1tidW5kbGVQYXRoIHN1YnN0cmlu
Z1RvSW5kZXg6W3BhdGggbGVuZ3RoXV0gaXNFcXVhbFRvU3RyaW5nOnBhdGhdKSB7Ci0gICAgICAg
ICAgICBOU0xvZyhAIkV4dGVuc2lvbiBkZXRlY3RlZDogJUAiLCBidW5kbGVQYXRoKTsKLSAgICAg
ICAgICAgIGV4dGVuc2lvbkJ1bmRsZXNXZXJlTG9hZGVkID0gWUVTOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIG15QXBwbGljYXRpb25XaWxs
RmluaXNoTGF1bmNoaW5nKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRlciwgdm9pZCAqb2Jz
ZXJ2ZXIsIENGU3RyaW5nUmVmIG5hbWUsIGNvbnN0IHZvaWQgKm9iamVjdCwgQ0ZEaWN0aW9uYXJ5
UmVmIHVzZXJJbmZvKQotewotICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCAmbXlBcHBsaWNhdGlvbldpbGxG
aW5pc2hMYXVuY2hpbmcsIE5VTEwsIE5VTEwpOwotICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVt
b3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCAmbXlCdW5k
bGVEaWRMb2FkLCBOVUxMLCBOVUxMKTsKLSAgICBbZXh0ZW5zaW9uUGF0aHMgcmVsZWFzZV07Ci0g
ICAgZXh0ZW5zaW9uUGF0aHMgPSBuaWw7Ci0KLSAgICBOU1VzZXJEZWZhdWx0cyAqdXNlckRlZmF1
bHRzID0gW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsKLSAgICBbdXNlckRl
ZmF1bHRzIHNldEludGVnZXI6UnVuU3RhdGVSdW5uaW5nIGZvcktleTpXS05FUnVuU3RhdGVdOwot
ICAgIFt1c2VyRGVmYXVsdHMgc3luY2hyb25pemVdOwotCi0gICAgaWYgKGV4dGVuc2lvbkJ1bmRs
ZXNXZXJlTG9hZGVkKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICBOU1J1bkluZm9ybWF0aW9uYWxBbGVydFBhbmVsKEAiU2FmYXJpIGV4dGVuc2lvbnMgZGV0ZWN0
ZWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAiU2FmYXJpIGV4dGVu
c2lvbnMgd2VyZSBkZXRlY3RlZCBvbiB5b3VyIHN5c3RlbS4gIEV4dGVuc2lvbnMgYXJlIGluY29t
cGF0aWJsZSB3aXRoIG5pZ2h0bHkgYnVpbGRzIG9mIFdlYktpdCwgYW5kIG1heSBjYXVzZSBjcmFz
aGVzIG9yIGluY29ycmVjdCBiZWhhdmlvci4gIFBsZWFzZSBkaXNhYmxlIHRoZW0gaWYgeW91IGV4
cGVyaWVuY2Ugc3VjaCBiZWhhdmlvci4iLCBAIkNvbnRpbnVlIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuaWwsIG5pbCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0KLSAgICBpbml0aWFsaXplU3BhcmtsZSgpOwotfQotCi1zdGF0aWMgdm9pZCBteUFwcGxp
Y2F0aW9uV2lsbFRlcm1pbmF0ZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIsIHZvaWQg
Km9ic2VydmVyLCBDRlN0cmluZ1JlZiBuYW1lLCBjb25zdCB2b2lkICpvYmplY3QsIENGRGljdGlv
bmFyeVJlZiB1c2VySW5mbykKLXsKLSAgICBOU1VzZXJEZWZhdWx0cyAqdXNlckRlZmF1bHRzID0g
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsKLSAgICBbdXNlckRlZmF1bHRz
IHNldEludGVnZXI6UnVuU3RhdGVTaHV0RG93biBmb3JLZXk6V0tORVJ1blN0YXRlXTsKLSAgICBb
dXNlckRlZmF1bHRzIHN5bmNocm9uaXplXTsKLX0KLQotTlNCdW5kbGUgKndlYktpdExhdW5jaGVy
QnVuZGxlKCkKLXsKLSAgICBOU1N0cmluZyAqZXhlY3V0YWJsZVBhdGggPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aFVURjhTdHJpbmc6d2ViS2l0QXBwUGF0aF07Ci0gICAgTlNSYW5nZSBhcHBMb2NhdGlv
biA9IFtleGVjdXRhYmxlUGF0aCByYW5nZU9mU3RyaW5nOkAiLmFwcC8iIG9wdGlvbnM6TlNCYWNr
d2FyZHNTZWFyY2hdOwotICAgIE5TU3RyaW5nICphcHBQYXRoID0gW2V4ZWN1dGFibGVQYXRoIHN1
YnN0cmluZ1RvSW5kZXg6YXBwTG9jYXRpb24ubG9jYXRpb24gKyBhcHBMb2NhdGlvbi5sZW5ndGhd
OwotICAgIHJldHVybiBbTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6YXBwUGF0aF07Ci19Ci0KLWV4
dGVybiBPU1N0YXR1cyBfUmVnaXN0ZXJBcHBsaWNhdGlvbihDRkRpY3Rpb25hcnlSZWYgYWRkaXRp
b25hbEFwcEluZm9SZWYsIFByb2Nlc3NTZXJpYWxOdW1iZXIqIG15UFNOKSBfX2F0dHJpYnV0ZV9f
KCh3ZWFrKSk7Ci0KLXN0YXRpYyB2b2lkIHBvc2VBc1dlYktpdEFwcCgpCi17Ci0gICAgd2ViS2l0
QXBwUGF0aCA9IHN0cmR1cChnZXRlbnYoIldlYktpdEFwcFBhdGgiKSk7Ci0gICAgaWYgKCF3ZWJL
aXRBcHBQYXRoKQotICAgICAgICByZXR1cm47Ci0KLSAgICB1bnNldGVudigiV2ViS2l0QXBwUGF0
aCIpOwotCi0gICAgLy8gU2V0IHVwIHRoZSBtYWluIGJ1bmRsZSBlYXJseSBzbyBpdCBwb2ludHMg
YXQgU2FmYXJpLmFwcAotICAgIENGQnVuZGxlR2V0TWFpbkJ1bmRsZSgpOwotCi0gICAgaWYgKCFf
UmVnaXN0ZXJBcHBsaWNhdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gUmVnaXN0ZXIg
dGhlIGFwcGxpY2F0aW9uIHdpdGggTGF1bmNoU2VydmljZXMsIHBhc3NpbmcgYSBjdXN0b21pemVk
IHJlZ2lzdHJhdGlvbiBkaWN0aW9uYXJ5IHRoYXQKLSAgICAvLyB1c2VzIHRoZSBXZWJLaXQgbGF1
bmNoZXIgYXMgdGhlIGFwcGxpY2F0aW9uIGJ1bmRsZS4KLSAgICBOU0J1bmRsZSAqYnVuZGxlID0g
d2ViS2l0TGF1bmNoZXJCdW5kbGUoKTsKLSAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGVja0lu
RGljdGlvbmFyeSA9IFtbYnVuZGxlIGluZm9EaWN0aW9uYXJ5XSBtdXRhYmxlQ29weV07Ci0gICAg
W2NoZWNrSW5EaWN0aW9uYXJ5IHNldE9iamVjdDpbYnVuZGxlIGJ1bmRsZVBhdGhdIGZvcktleTpA
IkxTQnVuZGxlUGF0aCJdOwotICAgIFtjaGVja0luRGljdGlvbmFyeSBzZXRPYmplY3Q6W2NoZWNr
SW5EaWN0aW9uYXJ5IG9iamVjdEZvcktleTooTlNTdHJpbmcgKilrQ0ZCdW5kbGVOYW1lS2V5XSBm
b3JLZXk6QCJMU0Rpc3BsYXlOYW1lIl07Ci0gICAgX1JlZ2lzdGVyQXBwbGljYXRpb24oKENGRGlj
dGlvbmFyeVJlZiljaGVja0luRGljdGlvbmFyeSwgMCk7Ci0gICAgW2NoZWNrSW5EaWN0aW9uYXJ5
IHJlbGVhc2VdOwotfQotCi1zdGF0aWMgdm9pZCBlbmFibGVXZWJLaXROaWdodGx5QmVoYXZpb3Vy
KCkKLXsKLSAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wg
YWxsb2NdIGluaXRdOwotCi0gICAgdW5zZXRlbnYoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIpOwot
ICAgIHBvc2VBc1dlYktpdEFwcCgpOwotCi0gICAgTlNTdHJpbmcgKnBhdGhUb0FTYW5DcmFzaFJl
cG9ydGVyTGliID0gW3dlYktpdExhdW5jaGVyQnVuZGxlKCkgcGF0aEZvclJlc291cmNlOkAibGli
YXNhbmNyYXNocmVwb3J0ZXIiIG9mVHlwZTpAImR5bGliIl07Ci0KLSAgICBpZiAocGF0aFRvQVNh
bkNyYXNoUmVwb3J0ZXJMaWIpCi0gICAgICAgIHNldGVudigiRFlMRF9JTlNFUlRfTElCUkFSSUVT
IiwgW3BhdGhUb0FTYW5DcmFzaFJlcG9ydGVyTGliIFVURjhTdHJpbmddLCAxKTsKLQotICAgIGV4
dGVuc2lvblBhdGhzID0gW1tOU1NldCBhbGxvY10gaW5pdFdpdGhPYmplY3RzOkAifi9MaWJyYXJ5
L0lucHV0TWFuYWdlcnMvIiwgQCIvTGlicmFyeS9JbnB1dE1hbmFnZXJzLyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQCJ+L0xpYnJhcnkvQXBw
bGljYXRpb24gU3VwcG9ydC9TSU1CTC9QbHVnaW5zLyIsIEAiL0xpYnJhcnkvQXBwbGljYXRpb24g
U3VwcG9ydC9TSU1CTC9QbHVnaW5zLyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQCJ+L0xpYnJhcnkvQXBwbGljYXRpb24gRW5oYW5jZXJzLyIs
IEAiL0xpYnJhcnkvQXBwbGljYXRpb24gRW5oYW5jZXJzLyIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsXTsKLQotICAgIC8vIEFzIG9mIDIw
MDgtMTEgYXR0ZW1wdGluZyB0byBsb2FkIFNhZnQgd291bGQgY2F1c2UgYSBjcmFzaCBvbiBsYXVu
Y2gsIHNvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBsb2FkZWQuCi0gICAgTlNBcnJheSAqZGlzYWJs
ZWRJbnB1dE1hbmFnZXJzID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0czpAIlNhZnQiLCBuaWxd
OwotCi0gICAgTlNVc2VyRGVmYXVsdHMgKnVzZXJEZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c107Ci0gICAgTlNEaWN0aW9uYXJ5ICpkZWZhdWx0UHJlZnMgPSBb
TlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6W05TTnVtYmVyIG51bWJl
cldpdGhCb29sOlJ1blN0YXRlU2h1dERvd25dLCBXS05FUnVuU3RhdGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQFlFUywgV0tORVNob3VsZE1vbml0b3JTaHV0ZG93bnMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlzYWJsZWRJbnB1dE1hbmFnZXJzLCBAIk5TRGlzYWJsZWRJbnB1dE1hbmFnZXJzIiwgbmls
XTsKLSAgICBbdXNlckRlZmF1bHRzIHJlZ2lzdGVyRGVmYXVsdHM6ZGVmYXVsdFByZWZzXTsKLSAg
ICBpZiAoW3VzZXJEZWZhdWx0cyBib29sRm9yS2V5OldLTkVTaG91bGRNb25pdG9yU2h1dGRvd25z
XSkgewotICAgICAgICBXS05FUnVuU3RhdGVzIHNhdmVkU3RhdGUgPSAoV0tORVJ1blN0YXRlcylb
dXNlckRlZmF1bHRzIGludGVnZXJGb3JLZXk6V0tORVJ1blN0YXRlXTsKLSAgICAgICAgaWYgKHNh
dmVkU3RhdGUgPT0gUnVuU3RhdGVJbml0aWFsaXppbmcpIHsKLSAgICAgICAgICAgIC8vIFVzZSBD
b3JlRm91bmRhdGlvbiBoZXJlIGFzIEFwcEtpdCBoYXNuJ3QgYmVlbiBpbml0aWFsaXplZCBhdCB0
aGlzIHN0YWdlIG9mIFNhZmFyaSdzIGxpZmV0aW1lCi0gICAgICAgICAgICBDRk9wdGlvbkZsYWdz
IHJlc3BvbnNlRmxhZ3M7Ci0gICAgICAgICAgICBDRlVzZXJOb3RpZmljYXRpb25EaXNwbGF5QWxl
cnQoMCwga0NGVXNlck5vdGlmaWNhdGlvbkNhdXRpb25BbGVydExldmVsLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIE5VTEwsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ZTVFIoIldlYktpdCBmYWlsZWQg
dG8gb3BlbiBjb3JyZWN0bHkiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDRlNUUigiV2ViS2l0IGZhaWxlZCB0byBvcGVuIGNvcnJlY3RseSBvbiB5b3VyIHBy
ZXZpb3VzIGF0dGVtcHQuIFBsZWFzZSBkaXNhYmxlIGFueSBTYWZhcmkgZXh0ZW5zaW9ucyB0aGF0
IHlvdSBtYXkgaGF2ZSBpbnN0YWxsZWQuICBJZiB0aGUgcHJvYmxlbSBjb250aW51ZXMgdG8gb2Nj
dXIsIHBsZWFzZSBmaWxlIGEgYnVnIHJlcG9ydCBhdCBodHRwOi8vd2Via2l0Lm9yZy9xdWFsaXR5
L3JlcG9ydGluZy5odG1sIiksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENGU1RSKCJDb250aW51ZSIpLCBOVUxMLCBOVUxMLCAmcmVzcG9uc2VGbGFncyk7Ci0g
ICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoc2F2ZWRTdGF0ZSA9PSBSdW5TdGF0ZVJ1bm5pbmcp
IHsKLSAgICAgICAgICAgIE5TTG9nKEAiV2ViS2l0IGZhaWxlZCB0byBzaHV0IGRvd24gY2xlYW5s
eS4gIENoZWNraW5nIGZvciBTYWZhcmkgZXh0ZW5zaW9ucy4iKTsKLSAgICAgICAgICAgIENGTm90
aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENl
bnRlcigpLCAmbXlCdW5kbGVEaWRMb2FkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBteUJ1bmRsZURpZExvYWQsIChDRlN0cmluZ1JlZikgTlNCdW5kbGVEaWRM
b2FkTm90aWZpY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOVUxMLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckRlbGl2ZXJJbW1lZGlh
dGVseSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgW3VzZXJEZWZhdWx0cyBzZXRJbnRlZ2VyOlJ1
blN0YXRlSW5pdGlhbGl6aW5nIGZvcktleTpXS05FUnVuU3RhdGVdOwotICAgIFt1c2VyRGVmYXVs
dHMgc3luY2hyb25pemVdOwotCi0gICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihD
Rk5vdGlmaWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCksICZteUFwcGxpY2F0aW9uV2lsbEZp
bmlzaExhdW5jaGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15QXBw
bGljYXRpb25XaWxsRmluaXNoTGF1bmNoaW5nLCAoQ0ZTdHJpbmdSZWYpIE5TQXBwbGljYXRpb25X
aWxsRmluaXNoTGF1bmNoaW5nTm90aWZpY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JEZWxpdmVy
SW1tZWRpYXRlbHkpOwotICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3Rp
ZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCAmbXlBcHBsaWNhdGlvbldpbGxUZXJtaW5h
dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteUFwcGxpY2F0aW9uV2ls
bFRlcm1pbmF0ZSwgKENGU3RyaW5nUmVmKSBOU0FwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZU5vdGlm
aWNhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIENGTm90
aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yRGVsaXZlckltbWVkaWF0ZWx5KTsKLQotICAgIE5T
TG9nKEAiV2ViS2l0ICVAIGluaXRpYWxpemVkLiIsIFt3ZWJLaXRMYXVuY2hlckJ1bmRsZSgpIG9i
amVjdEZvckluZm9EaWN0aW9uYXJ5S2V5OkAiQ0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmciXSk7
Ci0KLSAgICBbcG9vbCByZWxlYXNlXTsKLX0KClByb3BlcnR5IGNoYW5nZXMgb246IFRvb2xzL1dl
YktpdExhdW5jaGVyL1dlYktpdE5pZ2h0bHlFbmFibGVyLm0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBz
dm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBUb29scy9XZWJLaXRMYXVuY2hlci9XZWJLaXROaWdodGx5RW5hYmxl
clNwYXJrbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRMYXVuY2hlci9XZWJLaXROaWdo
dGx5RW5hYmxlclNwYXJrbGUuaAkocmV2aXNpb24gMjY4NDg3KQorKysgVG9vbHMvV2ViS2l0TGF1
bmNoZXIvV2ViS2l0TmlnaHRseUVuYWJsZXJTcGFya2xlLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwz
MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0j
aWZuZGVmIFdlYktpdE5pZ2h0bHlFbmFibGVyU3BhcmtsZV9oCi0jZGVmaW5lIFdlYktpdE5pZ2h0
bHlFbmFibGVyU3BhcmtsZV9oCi0KLWV4dGVybiB2b2lkIGluaXRpYWxpemVTcGFya2xlKCk7Ci0K
LSNlbmRpZiAvLyBXZWJLaXROaWdodGx5RW5hYmxlclNwYXJrbGVfaApJbmRleDogVG9vbHMvV2Vi
S2l0TGF1bmNoZXIvV2ViS2l0TmlnaHRseUVuYWJsZXJTcGFya2xlLm0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0TGF1bmNoZXIvV2ViS2l0TmlnaHRseUVuYWJsZXJTcGFya2xlLm0JKHJldmlz
aW9uIDI2ODQ4NykKKysrIFRvb2xzL1dlYktpdExhdW5jaGVyL1dlYktpdE5pZ2h0bHlFbmFibGVy
U3BhcmtsZS5tCShub25leGlzdGVudCkKQEAgLTEsMTQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmICFFTkFCTEVfU1BBUktMRQotCi12
b2lkIGluaXRpYWxpemVTcGFya2xlKCkKLXsKLSAgICAvLyBOby1vcC4KLX0KLQotI2Vsc2UgLy8g
RU5BQkxFX1NQQVJLTEUKLQotI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KLSNpbXBvcnQgPFNwYXJr
bGUvU1VVcGRhdGVyLmg+Ci0jaW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5oPgotI2ltcG9ydCAi
V2ViS2l0TmlnaHRseUVuYWJsZXIuaCIKLQotLy8gV2UgbmVlZCB0byB0d2VhayB0aGUgd29yZGlu
ZyBvZiB0aGUgcHJvbXB0IHRvIG1ha2Ugc2Vuc2UgaW4gdGhlIGNvbnRleHQgb2YgV2ViS2l0IGFu
ZCBTYWZhcmkuCi1zdGF0aWMgTlNTdHJpbmcqIHVwZGF0ZVBlcm1pc3Npb25Qcm9tcHREZXNjcmlw
dGlvbihpZCBzZWxmLCBTRUwgX2NtZCkKLXsKLSAgICByZXR1cm4gQCJTaG91bGQgV2ViS2l0IGF1
dG9tYXRpY2FsbHkgY2hlY2sgZm9yIHVwZGF0ZXM/IFlvdSBjYW4gYWx3YXlzIGNoZWNrIGZvciB1
cGRhdGVzIG1hbnVhbGx5IGZyb20gdGhlIFNhZmFyaSBtZW51LiI7Ci19Ci0KLXN0YXRpYyBOU1Bh
bmVsICp1cGRhdGVBbGVydFBhbmVsKGlkIHVwZGF0ZUl0ZW0sIGlkIGhvc3QpCi17Ci0gICAgTlNT
dHJpbmcgKmhvc3ROYW1lID0gb2JqY19tc2dTZW5kKGhvc3QsIEBzZWxlY3RvcihuYW1lKSk7Ci0g
ICAgTlNQYW5lbCAqcGFuZWwgPSBOU0dldEluZm9ybWF0aW9uYWxBbGVydFBhbmVsKFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiV291bGQgeW91IGxpa2UgdG8gZG93bmxvYWQgYW5kIGluc3Rh
bGwgJUAgJUAgbm93PyIsIGhvc3ROYW1lLCBvYmpjX21zZ1NlbmQodXBkYXRlSXRlbSwgQHNlbGVj
dG9yKGRpc3BsYXlWZXJzaW9uU3RyaW5nKSldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBAIiVAIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQCJJbnN0YWxsIFVwZGF0ZSIsIEAiU2tpcCBUaGlzIFZl
cnNpb24iLCBAIlJlbWluZCBNZSBMYXRlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiWW91IGFy
ZSBjdXJyZW50bHkgcnVubmluZyAlQCAlQC4iLCBob3N0TmFtZSwgb2JqY19tc2dTZW5kKGhvc3Qs
IEBzZWxlY3RvcihkaXNwbGF5VmVyc2lvbikpXSk7Ci0gICAgTlNBcnJheSAqc3Vidmlld3MgPSBb
W3BhbmVsIGNvbnRlbnRWaWV3XSBzdWJ2aWV3c107Ci0gICAgTlNFbnVtZXJhdG9yICplID0gW3N1
YnZpZXdzIG9iamVjdEVudW1lcmF0b3JdOwotICAgIE5TVmlldyAqdmlldzsKLSAgICB3aGlsZSAo
KHZpZXcgPSBbZSBuZXh0T2JqZWN0XSkpIHsKLSAgICAgICAgaWYgKCFbdmlldyBpc0tpbmRPZkNs
YXNzOltOU0J1dHRvbiBjbGFzc11dKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAg
TlNCdXR0b24gKmJ1dHRvbiA9IChOU0J1dHRvbiAqKXZpZXc7Ci0gICAgICAgIFtidXR0b24gc2V0
QWN0aW9uOkBzZWxlY3Rvcih3ZWJLaXRIYW5kbGVCdXR0b25QcmVzczopXTsKLSAgICAgICAgaWYg
KFtidXR0b24gdGFnXSA9PSBOU0FsZXJ0T3RoZXJSZXR1cm4pCi0gICAgICAgICAgICBbYnV0dG9u
IHNldEtleUVxdWl2YWxlbnQ6QCJcMDMzIl07Ci0gICAgfQotICAgIFtwYW5lbCBjZW50ZXJdOwot
ICAgIHJldHVybiBwYW5lbDsKLX0KLQotLy8gU3BhcmtsZSdzIHVkcGF0ZSBhbGVydCBwYW5lbCBs
b29rcyBvZGQgd2l0aCB0aGUgcmVsZWFzZSBub3RlcyBoaWRkZW4sIHNvIHdlCi0vLyBzd2FwIGl0
IG91dCB3aXRoIGEgc3RhbmRhcmQgTlNBbGVydC1zdHlsZSBwYW5lbCBpbnN0ZWFkLgotc3RhdGlj
IGlkIHVwZGF0ZUFsZXJ0SW5pdEZvckFsZXJ0UGFuZWwoaWQgc2VsZiwgU0VMIF9jbWQsIGlkIHVw
ZGF0ZUl0ZW0sIGlkIGhvc3QpCi17Ci0gICAgTlNQYW5lbCAqcGFuZWwgPSB1cGRhdGVBbGVydFBh
bmVsKHVwZGF0ZUl0ZW0sIGhvc3QpOwotICAgIFtwYW5lbCBzZXREZWxlZ2F0ZTpzZWxmXTsKLQot
ICAgIHNlbGYgPSBbc2VsZiBpbml0V2l0aFdpbmRvdzpwYW5lbF07Ci0gICAgaWYgKCFzZWxmKQot
ICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgW3VwZGF0ZUl0ZW0gcmV0YWluXTsKLSAgICBbaG9z
dCByZXRhaW5dOwotCi0gICAgb2JqZWN0X3NldEluc3RhbmNlVmFyaWFibGUoc2VsZiwgInVwZGF0
ZUl0ZW0iLCAodm9pZCopdXBkYXRlSXRlbSk7Ci0gICAgb2JqZWN0X3NldEluc3RhbmNlVmFyaWFi
bGUoc2VsZiwgImhvc3QiLCAodm9pZCopaG9zdCk7Ci0KLSAgICBbc2VsZiBzZXRTaG91bGRDYXNj
YWRlV2luZG93czpOT107Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQotQGltcGxlbWVudGF0aW9u
IE5TQWxlcnQgKFdlYktpdExhdW5jaGVyRXh0ZW5zaW9ucykKLQotLSAodm9pZCl3ZWJLaXRIYW5k
bGVCdXR0b25QcmVzczooaWQpc2VuZGVyCi17Ci0gICAgLy8gV2UgcmVseSBvbiB0aGUgZmFjdCB0
aGF0IE5TQWxlcnRPdGhlclJldHVybiA9PSAtMSwgTlNBbGVydEFsdGVybmF0ZVJldHVybiA9PSAw
IGFuZCBOU0FsZXJ0RGVmYXVsdFJldHVybiA9PSAxCi0gICAgLy8gdG8gbWFwIHRoZSBidXR0b24g
dGFnIHRvIHRoZSBjb3JyZXNwb25kaW5nIHNlbGVjdG9yCi0gICAgU0VMIHNlbGVjdG9yc1tdID0g
eyBAc2VsZWN0b3IocmVtaW5kTWVMYXRlcjopLCBAc2VsZWN0b3Ioc2tpcFRoaXNWZXJzaW9uOiks
IEBzZWxlY3RvcihpbnN0YWxsVXBkYXRlOikgfTsKLSAgICBTRUwgc2VsZWN0b3IgPSBzZWxlY3Rv
cnNbW3NlbmRlciB0YWddICsgMV07Ci0KLSAgICBpZCBkZWxlZ2F0ZSA9IFtbc2VuZGVyIHdpbmRv
d10gZGVsZWdhdGVdOwotICAgIG9iamNfbXNnU2VuZChkZWxlZ2F0ZSwgc2VsZWN0b3IsIHNlbmRl
cik7Ci19Ci0KLUBlbmQKLQotc3RhdGljIE5TU3RyaW5nICp1c2VyQWdlbnRTdHJpbmdGb3JTcGFy
a2xlKCkKLXsKLSAgICBOU0J1bmRsZSAqc2FmYXJpQnVuZGxlID0gW05TQnVuZGxlIG1haW5CdW5k
bGVdOwotICAgIE5TU3RyaW5nICpzYWZhcmlWZXJzaW9uID0gW1tzYWZhcmlCdW5kbGUgbG9jYWxp
emVkSW5mb0RpY3Rpb25hcnldIHZhbHVlRm9yS2V5OkAiQ0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJp
bmciXTsKLSAgICBOU1N0cmluZyAqc2FmYXJpQnVpbGQgPSBbW1tzYWZhcmlCdW5kbGUgaW5mb0Rp
Y3Rpb25hcnldIHZhbHVlRm9yS2V5OihOU1N0cmluZyAqKWtDRkJ1bmRsZVZlcnNpb25LZXldIHN1
YnN0cmluZ0Zyb21JbmRleDoxXTsKLSAgICBOU1N0cmluZyAqd2ViS2l0UmV2aXNpb24gPSBbW3dl
YktpdExhdW5jaGVyQnVuZGxlKCkgaW5mb0RpY3Rpb25hcnldIHZhbHVlRm9yS2V5OihOU1N0cmlu
ZyAqKWtDRkJ1bmRsZVZlcnNpb25LZXldOwotICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIlZlcnNpb24vJUAgU2FmYXJpLyVAIFdlYktp
dFJldmlzaW9uLyVAIiwgc2FmYXJpVmVyc2lvbiwgc2FmYXJpQnVpbGQsIHdlYktpdFJldmlzaW9u
XTsKLSAgICBDbGFzcyBXZWJWaWV3ID0gb2JqY19sb29rVXBDbGFzcygiV2ViVmlldyIpOwotICAg
IHJldHVybiBvYmpjX21zZ1NlbmQoV2ViVmlldywgQHNlbGVjdG9yKF9zdGFuZGFyZFVzZXJBZ2Vu
dFdpdGhBcHBsaWNhdGlvbk5hbWU6KSwgYXBwbGljYXRpb25OYW1lKTsKLX0KLQotdm9pZCBpbml0
aWFsaXplU3BhcmtsZSgpCi17Ci0gICAgLy8gT3ZlcnJpZGUgc29tZSBTcGFya2xlIGJlaGF2aW91
cgotICAgIE1ldGhvZCBtZXRob2RUb1BhdGNoID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qob2Jq
Y19nZXRSZXF1aXJlZENsYXNzKCJTVVVwZGF0ZVBlcm1pc3Npb25Qcm9tcHQiKSwgQHNlbGVjdG9y
KHByb21wdERlc2NyaXB0aW9uKSk7Ci0gICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhv
ZFRvUGF0Y2gsIChJTVApdXBkYXRlUGVybWlzc2lvblByb21wdERlc2NyaXB0aW9uKTsKLQotICAg
IG1ldGhvZFRvUGF0Y2ggPSBjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChvYmpjX2dldFJlcXVpcmVk
Q2xhc3MoIlNVVXBkYXRlQWxlcnQiKSwgQHNlbGVjdG9yKGluaXRXaXRoQXBwY2FzdEl0ZW06aG9z
dDopKTsKLSAgICBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24obWV0aG9kVG9QYXRjaCwgKElNUCl1
cGRhdGVBbGVydEluaXRGb3JBbGVydFBhbmVsKTsKLQotICAgIFNVVXBkYXRlciAqdXBkYXRlciA9
IFtTVVVwZGF0ZXIgdXBkYXRlckZvckJ1bmRsZTp3ZWJLaXRMYXVuY2hlckJ1bmRsZSgpXTsKLSAg
ICBbdXBkYXRlciBzZXRVc2VyQWdlbnRTdHJpbmc6dXNlckFnZW50U3RyaW5nRm9yU3BhcmtsZSgp
XTsKLQotICAgIC8vIEZpbmQgdGhlIGZpcnN0IHNlcGFyYXRvciBvbiB0aGUgU2FmYXJpIG1lbnXi
gKYKLSAgICBOU01lbnUgKmFwcGxpY2F0aW9uU3VibWVudSA9IFtbW05TQXBwIG1haW5NZW51XSBp
dGVtQXRJbmRleDowXSBzdWJtZW51XTsKLSAgICBpbnQgaSA9IDA7Ci0gICAgZm9yICg7IGkgPCBb
YXBwbGljYXRpb25TdWJtZW51IG51bWJlck9mSXRlbXNdOyBpKyspIHsKLSAgICAgICAgaWYgKFtb
YXBwbGljYXRpb25TdWJtZW51IGl0ZW1BdEluZGV4OmldIGlzU2VwYXJhdG9ySXRlbV0pCi0gICAg
ICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICAvLyDigKYgYW5kIGluc2VydCBhIG1lbnUgaXRl
bSB0aGF0IGNhbiBiZSB1c2VkIHRvIG1hbnVhbGx5IHRyaWdnZXIgdXBkYXRlIGNoZWNrcy4KLSAg
ICBOU01lbnVJdGVtICp1cGRhdGVNZW51SXRlbSA9IFtbTlNNZW51SXRlbSBhbGxvY10gaW5pdFdp
dGhUaXRsZTpAIkNoZWNrIGZvciBXZWJLaXQgVXBkYXRlc+KApiIgYWN0aW9uOkBzZWxlY3Rvcihj
aGVja0ZvclVwZGF0ZXM6KSBrZXlFcXVpdmFsZW50OkAiIl07Ci0gICAgW3VwZGF0ZU1lbnVJdGVt
IHNldFRhcmdldDp1cGRhdGVyXTsKLSAgICBbYXBwbGljYXRpb25TdWJtZW51IGluc2VydEl0ZW06
dXBkYXRlTWVudUl0ZW0gYXRJbmRleDppXTsKLSAgICBbdXBkYXRlTWVudUl0ZW0gcmVsZWFzZV07
Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEVfU1BBUktMRQpJbmRleDogVG9vbHMvV2ViS2l0TGF1bmNo
ZXIvbWFpbi5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdExhdW5jaGVyL21haW4ubQkocmV2
aXNpb24gMjY4NDg3KQorKysgVG9vbHMvV2ViS2l0TGF1bmNoZXIvbWFpbi5tCShub25leGlzdGVu
dCkKQEAgLTEsMjkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPENvY29hL0NvY29hLmg+
Ci0jaW1wb3J0IDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotCi0vLyBXZSBuZWVk
IHRvIHdlYWstaW1wb3J0IHBvc2l4X3NwYXduIGFuZCBmcmllbmRzIGFzIHRoZXkncmUgbm90IGF2
YWlsYWJsZSBvbiBUaWdlci4KLS8vIFRoZSBCU0QtbGV2ZWwgc3lzdGVtIGhlYWRlcnMgZG8gbm90
IGhhdmUgYXZhaWxhYmlsaXR5IG1hY3Jvcywgc28gd2UgcmVkZWNsYXJlIHRoZQotLy8gZnVuY3Rp
b25zIG91cnNlbHZlcyB3aXRoIHRoZSAid2VhayIgYXR0cmlidXRlLgotCi0jZGVmaW5lIFdFQUtf
SU1QT1JUIF9fYXR0cmlidXRlX18oKHdlYWspKQotCi0jZGVmaW5lIFBPU0lYX1NQQVdOX1NFVEVY
RUMgMHgwMDQwCi10eXBlZGVmIHZvaWQgKnBvc2l4X3NwYXduYXR0cl90OwotdHlwZWRlZiB2b2lk
ICpwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfdDsKLWludCBwb3NpeF9zcGF3bmF0dHJfaW5pdChw
b3NpeF9zcGF3bmF0dHJfdCAqKSBXRUFLX0lNUE9SVDsKLWludCBwb3NpeF9zcGF3bihwaWRfdCAq
IF9fcmVzdHJpY3QsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0LCBjb25zdCBwb3NpeF9zcGF3bl9m
aWxlX2FjdGlvbnNfdCAqLCBjb25zdCBwb3NpeF9zcGF3bmF0dHJfdCAqIF9fcmVzdHJpY3QsIGNo
YXIgKmNvbnN0IF9fYXJndlsgX19yZXN0cmljdF0sIGNoYXIgKmNvbnN0IF9fZW52cFsgX19yZXN0
cmljdF0pIFdFQUtfSU1QT1JUOwotaW50IHBvc2l4X3NwYXduYXR0cl9zZXRiaW5wcmVmX25wKHBv
c2l4X3NwYXduYXR0cl90ICogX19yZXN0cmljdCwgc2l6ZV90LCBjcHVfdHlwZV90ICpfX3Jlc3Ry
aWN0LCBzaXplX3QgKl9fcmVzdHJpY3QpIFdFQUtfSU1QT1JUOwotaW50IHBvc2l4X3NwYXduYXR0
cl9zZXRmbGFncyhwb3NpeF9zcGF3bmF0dHJfdCAqLCBzaG9ydCkgV0VBS19JTVBPUlQ7Ci0KLQot
c3RhdGljIHZvaWQgZGlzcGxheUVycm9yQW5kUXVpdChOU1N0cmluZyAqdGl0bGUsIE5TU3RyaW5n
ICptZXNzYWdlKQotewotICAgIE5TQXBwbGljYXRpb25Mb2FkKCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNSdW5Dcml0aWNhbEFsZXJ0UGFuZWwodGl0bGUsIEAi
JUAiLCBAIlF1aXQiLCBuaWwsIG5pbCwgbWVzc2FnZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgZXhpdCgwKTsKLX0KLQotc3RhdGljIGludCBnZXRMYXN0VmVyc2lvblNob3du
KCkKLXsKLSAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSByZWdpc3Rl
ckRlZmF1bHRzOltOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3Q6QCItMSIgZm9yS2V5
OkAiU3RhcnRQYWdlU2hvd25JblZlcnNpb24iXV07Ci0gICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVs
dHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJTdGFydFBhZ2VTaG93bklu
VmVyc2lvbiJdOwotfQotCi1zdGF0aWMgdm9pZCBzYXZlTGFzdFZlcnNpb25TaG93bihpbnQgbGFz
dFZlcnNpb24pCi17Ci0gICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
c2V0SW50ZWdlcjpsYXN0VmVyc2lvbiBmb3JLZXk6QCJTdGFydFBhZ2VTaG93bkluVmVyc2lvbiJd
OwotICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHN5bmNocm9uaXpl
XTsKLX0KLQotc3RhdGljIE5TU3RyaW5nICpnZXRQYXRoRm9yU3RhcnRQYWdlKCkKLXsKLSAgICBy
ZXR1cm4gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gcmVzb3VyY2VQYXRoXSBzdHJpbmdCeUFwcGVu
ZGluZ1BhdGhDb21wb25lbnQ6QCJzdGFydC5odG1sIl07Ci19Ci0KLXN0YXRpYyBpbnQgZ2V0Q3Vy
cmVudFZlcnNpb24oKQotewotICAgIHJldHVybiBbW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gaW5m
b0RpY3Rpb25hcnldIHZhbHVlRm9yS2V5OihOU1N0cmluZyAqKWtDRkJ1bmRsZVZlcnNpb25LZXld
IGludFZhbHVlXTsKLX0KLQotc3RhdGljIGludCBnZXRTaG93U3RhcnRQYWdlVmVyc2lvbigpCi17
Ci0gICAgcmV0dXJuIGdldEN1cnJlbnRWZXJzaW9uKCkgKyAxOwotfQotCi1zdGF0aWMgQk9PTCBz
dGFydFBhZ2VEaXNhYmxlZCgpCi17Ci0gICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRh
cmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJTdGFydFBhZ2VEaXNhYmxlZCJdOwotfQotCi1z
dGF0aWMgdm9pZCBhZGRTdGFydFBhZ2VUb0FyZ3VtZW50c0lmTmVlZGVkKE5TTXV0YWJsZUFycmF5
ICphcmd1bWVudHMpCi17Ci0gICAgaWYgKHN0YXJ0UGFnZURpc2FibGVkKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChnZXRMYXN0VmVyc2lvblNob3duKCkgPCBnZXRTaG93U3RhcnRQYWdl
VmVyc2lvbigpKSB7Ci0gICAgICAgIHNhdmVMYXN0VmVyc2lvblNob3duKGdldEN1cnJlbnRWZXJz
aW9uKCkpOwotICAgICAgICBOU1N0cmluZyAqc3RhcnRQYWdlUGF0aCA9IGdldFBhdGhGb3JTdGFy
dFBhZ2UoKTsKLSAgICAgICAgaWYgKHN0YXJ0UGFnZVBhdGgpCi0gICAgICAgICAgICBbYXJndW1l
bnRzIGFkZE9iamVjdDpzdGFydFBhZ2VQYXRoXTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBjcHVfdHlw
ZV90IHByZWZlcnJlZEFyY2hpdGVjdHVyZSgpCi17Ci0jaWYgZGVmaW5lZChfX3BwY19fKQotICAg
IHJldHVybiBDUFVfVFlQRV9QT1dFUlBDOwotI2VsaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICBy
ZXR1cm4gQ1BVX1RZUEVfWDg2XzY0OwotI2Vsc2UKLSAgICByZXR1cm4gQ1BVX1RZUEVfWDg2Owot
I2VuZGlmCi19Ci0KLXN0YXRpYyB2b2lkIG15RXhlY3ZlKE5TU3RyaW5nICpleGVjdXRhYmxlLCBO
U0FycmF5ICphcmdzLCBOU0RpY3Rpb25hcnkgKmVudmlyb25tZW50KQotewotICAgIGNoYXIgKiph
cmd2ID0gKGNoYXIgKiopY2FsbG9jKHNpemVvZihjaGFyICopLCBbYXJncyBjb3VudF0gKyAxKTsK
LSAgICBjaGFyICoqZW52ID0gKGNoYXIgKiopY2FsbG9jKHNpemVvZihjaGFyICopLCBbZW52aXJv
bm1lbnQgY291bnRdICsgMSk7Ci0KLSAgICBOU0VudW1lcmF0b3IgKmUgPSBbYXJncyBvYmplY3RF
bnVtZXJhdG9yXTsKLSAgICBOU1N0cmluZyAqczsKLSAgICBpbnQgaSA9IDA7Ci0gICAgd2hpbGUg
KChzID0gW2UgbmV4dE9iamVjdF0pKQotICAgICAgICBhcmd2W2krK10gPSAoY2hhciAqKSBbcyBV
VEY4U3RyaW5nXTsKLQotICAgIGUgPSBbZW52aXJvbm1lbnQga2V5RW51bWVyYXRvcl07Ci0gICAg
aSA9IDA7Ci0gICAgd2hpbGUgKChzID0gW2UgbmV4dE9iamVjdF0pKQotICAgICAgICBlbnZbaSsr
XSA9IChjaGFyICopIFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAPSVAIiwgcywgW2Vu
dmlyb25tZW50IG9iamVjdEZvcktleTpzXV0gVVRGOFN0cmluZ107Ci0KLSAgICBpZiAocG9zaXhf
c3Bhd25hdHRyX2luaXQgJiYgcG9zaXhfc3Bhd24gJiYgcG9zaXhfc3Bhd25hdHRyX3NldGJpbnBy
ZWZfbnAgJiYgcG9zaXhfc3Bhd25hdHRyX3NldGZsYWdzKSB7Ci0gICAgICAgIHBvc2l4X3NwYXdu
YXR0cl90IGF0dHI7Ci0gICAgICAgIHBvc2l4X3NwYXduYXR0cl9pbml0KCZhdHRyKTsKLSAgICAg
ICAgY3B1X3R5cGVfdCBhcmNoaXRlY3R1cmVQcmVmZXJlbmNlW10gPSB7IHByZWZlcnJlZEFyY2hp
dGVjdHVyZSgpLCBDUFVfVFlQRV9YODYgfTsKLSAgICAgICAgcG9zaXhfc3Bhd25hdHRyX3NldGJp
bnByZWZfbnAoJmF0dHIsIDIsIGFyY2hpdGVjdHVyZVByZWZlcmVuY2UsIDApOwotICAgICAgICBz
aG9ydCBmbGFncyA9IFBPU0lYX1NQQVdOX1NFVEVYRUM7Ci0gICAgICAgIHBvc2l4X3NwYXduYXR0
cl9zZXRmbGFncygmYXR0ciwgZmxhZ3MpOwotICAgICAgICBwb3NpeF9zcGF3bihOVUxMLCBbZXhl
Y3V0YWJsZSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb25dLCBOVUxMLCAmYXR0ciwgYXJndiwgZW52
KTsKLSAgICB9IGVsc2UKLSAgICAgICAgZXhlY3ZlKFtleGVjdXRhYmxlIGZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbl0sIGFyZ3YsIGVudik7Ci19Ci0KLXN0YXRpYyBOU0J1bmRsZSAqbG9jYXRlU2Fm
YXJpQnVuZGxlKCkKLXsKLSAgICBOU0FycmF5ICphcHBsaWNhdGlvbkRpcmVjdG9yaWVzID0gTlNT
ZWFyY2hQYXRoRm9yRGlyZWN0b3JpZXNJbkRvbWFpbnMoTlNBcHBsaWNhdGlvbkRpcmVjdG9yeSwg
TlNBbGxEb21haW5zTWFzaywgWUVTKTsKLSAgICBOU0VudW1lcmF0b3IgKmUgPSBbYXBwbGljYXRp
b25EaXJlY3RvcmllcyBvYmplY3RFbnVtZXJhdG9yXTsKLSAgICBOU1N0cmluZyAqYXBwbGljYXRp
b25EaXJlY3Rvcnk7Ci0gICAgd2hpbGUgKChhcHBsaWNhdGlvbkRpcmVjdG9yeSA9IFtlIG5leHRP
YmplY3RdKSkgewotICAgICAgICBOU1N0cmluZyAqcG9zc2libGVTYWZhcmlQYXRoID0gW2FwcGxp
Y2F0aW9uRGlyZWN0b3J5IHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlNhZmFyaS5h
cHAiXTsKLSAgICAgICAgTlNCdW5kbGUgKnBvc3NpYmxlU2FmYXJpQnVuZGxlID0gW05TQnVuZGxl
IGJ1bmRsZVdpdGhQYXRoOnBvc3NpYmxlU2FmYXJpUGF0aF07Ci0gICAgICAgIGlmIChbW3Bvc3Np
YmxlU2FmYXJpQnVuZGxlIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5h
cHBsZS5TYWZhcmkiXSkKLSAgICAgICAgICAgIHJldHVybiBwb3NzaWJsZVNhZmFyaUJ1bmRsZTsK
LSAgICB9Ci0KLSAgICBDRlVSTFJlZiBzYWZhcmlVUkwgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgT1NTdGF0dXMgZXJyID0gTFNGaW5kQXBwbGljYXRpb25G
b3JJbmZvKGtMU1Vua25vd25DcmVhdG9yLCBDRlNUUigiY29tLmFwcGxlLlNhZmFyaSIpLCBuaWws
IG5pbCwgJnNhZmFyaVVSTCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgaWYg
KGVyciAhPSBub0VycikKLSAgICAgICAgZGlzcGxheUVycm9yQW5kUXVpdChAIlVuYWJsZSB0byBs
b2NhdGUgU2FmYXJpIiwgQCJOaWdodGx5IGJ1aWxkcyBvZiBXZWJLaXQgcmVxdWlyZSBTYWZhcmkg
dG8gcnVuLiAgUGxlYXNlIGNoZWNrIHRoYXQgaXQgaXMgYXZhaWxhYmxlIGFuZCB0aGVuIHRyeSBh
Z2Fpbi4iKTsKLQotICAgIE5TQnVuZGxlICpzYWZhcmlCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxl
V2l0aFBhdGg6WyhOU1VSTCAqKXNhZmFyaVVSTCBwYXRoXV07Ci0gICAgQ0ZSZWxlYXNlKHNhZmFy
aVVSTCk7Ci0gICAgcmV0dXJuIHNhZmFyaUJ1bmRsZTsKLX0KLQotc3RhdGljIE5TU3RyaW5nICpk
ZXRlcm1pbmVFeGVjdXRhYmxlUGF0aChOU0J1bmRsZSAqYnVuZGxlKQotewotICAgIE5TU3RyaW5n
ICpzYWZhcmlFeGVjdXRhYmxlUGF0aCA9IFtidW5kbGUgZXhlY3V0YWJsZVBhdGhdOwotCi0gICAg
TlNTdHJpbmcgKnNhZmFyaUZvcldlYktpdERldmVsb3BtZW50RXhlY3V0YWJsZVBhdGggPSBbYnVu
ZGxlIHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiU2FmYXJpRm9yV2ViS2l0RGV2ZWxvcG1l
bnQiXTsKLSAgICBpZiAoIVtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0
c0F0UGF0aDpzYWZhcmlGb3JXZWJLaXREZXZlbG9wbWVudEV4ZWN1dGFibGVQYXRoXSkKLSAgICAg
ICAgcmV0dXJuIHNhZmFyaUV4ZWN1dGFibGVQYXRoOwotCi0gICAgU2VjU3RhdGljQ29kZVJlZiBz
dGF0aWNDb2RlOwotICAgIGlmIChTZWNTdGF0aWNDb2RlQ3JlYXRlV2l0aFBhdGgoKENGVVJMUmVm
KVtidW5kbGUgZXhlY3V0YWJsZVVSTF0sIGtTZWNDU0RlZmF1bHRGbGFncywgJnN0YXRpY0NvZGUp
ICE9IG5vRXJyKQotICAgICAgICByZXR1cm4gW2J1bmRsZSBleGVjdXRhYmxlUGF0aF07Ci0KLSAg
ICBOU0RpY3Rpb25hcnkgKmNvZGVJbmZvcm1hdGlvbjsKLSAgICBpZiAoU2VjQ29kZUNvcHlTaWdu
aW5nSW5mb3JtYXRpb24oc3RhdGljQ29kZSwga1NlY0NTUmVxdWlyZW1lbnRJbmZvcm1hdGlvbiwg
KENGRGljdGlvbmFyeVJlZiopJmNvZGVJbmZvcm1hdGlvbikgIT0gbm9FcnIpIHsKLSAgICAgICAg
Q0ZSZWxlYXNlKHN0YXRpY0NvZGUpOwotICAgICAgICByZXR1cm4gc2FmYXJpRXhlY3V0YWJsZVBh
dGg7Ci0gICAgfQotICAgIENGUmVsZWFzZShzdGF0aWNDb2RlKTsKLSAgICBbY29kZUluZm9ybWF0
aW9uIGF1dG9yZWxlYXNlXTsKLQotICAgIGlmIChbY29kZUluZm9ybWF0aW9uIG9iamVjdEZvcktl
eTooaWQpa1NlY0NvZGVJbmZvRW50aXRsZW1lbnRzXSkKLSAgICAgICAgcmV0dXJuIHNhZmFyaUZv
cldlYktpdERldmVsb3BtZW50RXhlY3V0YWJsZVBhdGg7Ci0KLSAgICByZXR1cm4gc2FmYXJpRXhl
Y3V0YWJsZVBhdGg7Ci19Ci0KLXN0YXRpYyBOU1N0cmluZyAqY3VycmVudE1hY09TWFZlcnNpb24o
KQotewotICAgIC8vIENhbid0IHVzZSAtW05TUHJvY2Vzc0luZm8gb3BlcmF0aW5nU3lzdGVtVmVy
c2lvblN0cmluZ10gYmVjYXVzZSBpdCBoYXMgdG9vIG11Y2ggc3R1ZmYgd2UgZG9uJ3Qgd2FudC4K
LSAgICBOU1N0cmluZyAqc3lzdGVtTGlicmFyeVBhdGggPSBbTlNTZWFyY2hQYXRoRm9yRGlyZWN0
b3JpZXNJbkRvbWFpbnMoTlNMaWJyYXJ5RGlyZWN0b3J5LCBOU1N5c3RlbURvbWFpbk1hc2ssIFlF
Uykgb2JqZWN0QXRJbmRleDowXTsKLSAgICBOU1N0cmluZyAqc3lzdGVtVmVyc2lvblBsaXN0UGF0
aCA9IFtzeXN0ZW1MaWJyYXJ5UGF0aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJD
b3JlU2VydmljZXMvU3lzdGVtVmVyc2lvbi5wbGlzdCJdOwotICAgIE5TRGljdGlvbmFyeSAqc3lz
dGVtVmVyc2lvbkluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ29udGVudHNPZkZp
bGU6c3lzdGVtVmVyc2lvblBsaXN0UGF0aF07Ci0gICAgcmV0dXJuIFtzeXN0ZW1WZXJzaW9uSW5m
byBvYmplY3RGb3JLZXk6QCJQcm9kdWN0VmVyc2lvbiJdOwotfQotCi1zdGF0aWMgTlNTdHJpbmcg
KmN1cnJlbnRNYWNPU1hNYWpvclZlcnNpb24oKQotewotICAgIE5TQXJyYXkgKmFsbENvbXBvbmVu
dHMgPSBbY3VycmVudE1hY09TWFZlcnNpb24oKSBjb21wb25lbnRzU2VwYXJhdGVkQnlTdHJpbmc6
QCIuIl07Ci0gICAgTlNBcnJheSAqbWFqb3JBbmRNaW5vckNvbXBvbmVudHMgPSBbYWxsQ29tcG9u
ZW50cyBvYmplY3RzQXRJbmRleGVzOltOU0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4ZXNJblJh
bmdlOk5TTWFrZVJhbmdlKDAsIDIpXV07Ci0gICAgcmV0dXJuIFttYWpvckFuZE1pbm9yQ29tcG9u
ZW50cyBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCIuIl07Ci19Ci0KLXN0YXRpYyBOU1N0cmlu
ZyAqZmFsbGJhY2tNYWNPU1hWZXJzaW9uKE5TU3RyaW5nICpzeXN0ZW1WZXJzaW9uKQotewotICAg
IE5TRGljdGlvbmFyeSAqZmFsbGJhY2tWZXJzaW9uTWFwID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gZGljdGlvbmFyeUZvcktleTpAIkZhbGxiYWNrU3lzdGVtVmVyc2lv
bnMiXTsKLSAgICBpZiAoIWZhbGxiYWNrVmVyc2lvbk1hcCkKLSAgICAgICAgcmV0dXJuIG5pbDsK
LSAgICBOU1N0cmluZyAqZmFsbGJhY2tTeXN0ZW1WZXJzaW9uID0gW2ZhbGxiYWNrVmVyc2lvbk1h
cCBvYmplY3RGb3JLZXk6c3lzdGVtVmVyc2lvbl07Ci0gICAgaWYgKCFmYWxsYmFja1N5c3RlbVZl
cnNpb24gfHwgIVtmYWxsYmFja1N5c3RlbVZlcnNpb24gaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcg
Y2xhc3NdXSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4gZmFsbGJhY2tTeXN0ZW1W
ZXJzaW9uOwotfQotCi1zdGF0aWMgQk9PTCBjaGVja0ZyYW1ld29ya1BhdGgoTlNTdHJpbmcgKmZy
YW1ld29ya1BhdGgpCi17Ci0gICAgQk9PTCBpc0RpcmVjdG9yeSA9IE5POwotICAgIHJldHVybiBb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZnJhbWV3b3Jr
UGF0aCBpc0RpcmVjdG9yeTomaXNEaXJlY3RvcnldICYmIGlzRGlyZWN0b3J5OwotfQotCi1zdGF0
aWMgQk9PTCBjaGVja1NhZmFyaVZlcnNpb24oTlNCdW5kbGUgKnNhZmFyaUJ1bmRsZSkKLXsKLSAg
ICBOU1N0cmluZyAqc2FmYXJpQnVuZGxlVmVyc2lvbiA9IFtbc2FmYXJpQnVuZGxlIGluZm9EaWN0
aW9uYXJ5XSBvYmplY3RGb3JLZXk6KE5TU3RyaW5nICopa0NGQnVuZGxlVmVyc2lvbktleV07Ci0g
ICAgTlNTdHJpbmcgKm1ham9yQ29tcG9uZW50ID0gW1tzYWZhcmlCdW5kbGVWZXJzaW9uIGNvbXBv
bmVudHNTZXBhcmF0ZWRCeVN0cmluZzpAIi4iXSBvYmplY3RBdEluZGV4OjBdOwotICAgIE5TU3Ry
aW5nICptYWpvclZlcnNpb24gPSBbbWFqb3JDb21wb25lbnQgc3Vic3RyaW5nRnJvbUluZGV4Oltt
YWpvckNvbXBvbmVudCBsZW5ndGhdIC0gM107Ci0gICAgcmV0dXJuIFttYWpvclZlcnNpb24gaW50
VmFsdWVdID49IDUzMDsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLXsK
LSAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2Nd
IGluaXRdOwotCi0gICAgTlNTdHJpbmcgKnN5c3RlbVZlcnNpb24gPSBjdXJyZW50TWFjT1NYTWFq
b3JWZXJzaW9uKCk7Ci0gICAgTlNTdHJpbmcgKmZyYW1ld29ya1BhdGggPSBbW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBwcml2YXRlRnJhbWV3b3Jrc1BhdGhdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpzeXN0ZW1WZXJzaW9uXTsKLQotICAgIEJPT0wgZnJhbWV3b3JrUGF0aElzVXNhYmxl
ID0gY2hlY2tGcmFtZXdvcmtQYXRoKGZyYW1ld29ya1BhdGgpOwotCi0gICAgaWYgKCFmcmFtZXdv
cmtQYXRoSXNVc2FibGUpIHsKLSAgICAgICAgTlNTdHJpbmcgKmZhbGxiYWNrU3lzdGVtVmVyc2lv
biA9IGZhbGxiYWNrTWFjT1NYVmVyc2lvbihzeXN0ZW1WZXJzaW9uKTsKLSAgICAgICAgaWYgKGZh
bGxiYWNrU3lzdGVtVmVyc2lvbikgewotICAgICAgICAgICAgZnJhbWV3b3JrUGF0aCA9IFtbW05T
QnVuZGxlIG1haW5CdW5kbGVdIHByaXZhdGVGcmFtZXdvcmtzUGF0aF0gc3RyaW5nQnlBcHBlbmRp
bmdQYXRoQ29tcG9uZW50OmZhbGxiYWNrU3lzdGVtVmVyc2lvbl07Ci0gICAgICAgICAgICBmcmFt
ZXdvcmtQYXRoSXNVc2FibGUgPSBjaGVja0ZyYW1ld29ya1BhdGgoZnJhbWV3b3JrUGF0aCk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIWZyYW1ld29ya1BhdGhJc1VzYWJsZSkKLSAgICAg
ICAgZGlzcGxheUVycm9yQW5kUXVpdChbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIk9TIFgg
JUAgaXMgbm90IHN1cHBvcnRlZCIsIHN5c3RlbVZlcnNpb25dLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiTmlnaHRseSBidWlsZHMgb2Yg
V2ViS2l0IGFyZSBub3Qgc3VwcG9ydGVkIG9uIE9TIFggJUAgYXQgdGhpcyB0aW1lLiIsIHN5c3Rl
bVZlcnNpb25dKTsKLQotICAgIE5TU3RyaW5nICpwYXRoVG9FbmFibGVyTGliID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBwYXRoRm9yUmVzb3VyY2U6QCJXZWJLaXROaWdodGx5RW5hYmxlciIgb2ZU
eXBlOkAiZHlsaWIiXTsKLSAgICBOU1N0cmluZyAqZHlsZEluc2VydExpYnJhcmllcyA9IHBhdGhU
b0VuYWJsZXJMaWI7Ci0gICAgTlNTdHJpbmcgKnBhdGhUb0FTYW5DcmFzaFJlcG9ydGVyTGliID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBwYXRoRm9yUmVzb3VyY2U6QCJsaWJhc2FuY3Jhc2hyZXBv
cnRlciIgb2ZUeXBlOkAiZHlsaWIiXTsKLSAgICBpZiAocGF0aFRvQVNhbkNyYXNoUmVwb3J0ZXJM
aWIpCi0gICAgICAgIGR5bGRJbnNlcnRMaWJyYXJpZXMgPSBbQFsgcGF0aFRvQVNhbkNyYXNoUmVw
b3J0ZXJMaWIsIHBhdGhUb0VuYWJsZXJMaWIgXSBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCI6
Il07Ci0KLSAgICBOU0J1bmRsZSAqc2FmYXJpQnVuZGxlID0gbG9jYXRlU2FmYXJpQnVuZGxlKCk7
Ci0gICAgTlNTdHJpbmcgKmV4ZWN1dGFibGVQYXRoID0gZGV0ZXJtaW5lRXhlY3V0YWJsZVBhdGgo
c2FmYXJpQnVuZGxlKTsKLQotICAgIGlmICghY2hlY2tTYWZhcmlWZXJzaW9uKHNhZmFyaUJ1bmRs
ZSkpIHsKLSAgICAgICAgTlNTdHJpbmcgKnNhZmFyaVZlcnNpb24gPSBbW3NhZmFyaUJ1bmRsZSBs
b2NhbGl6ZWRJbmZvRGljdGlvbmFyeV0gb2JqZWN0Rm9yS2V5OkAiQ0ZCdW5kbGVTaG9ydFZlcnNp
b25TdHJpbmciXTsKLSAgICAgICAgZGlzcGxheUVycm9yQW5kUXVpdChbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAIlNhZmFyaSAlQCBpcyBub3Qgc3VwcG9ydGVkIiwgc2FmYXJpVmVyc2lvbl0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
QCJOaWdodGx5IGJ1aWxkcyBvZiBXZWJLaXQgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBTYWZhcmkg
JUAgYXQgdGhpcyB0aW1lLiBQbGVhc2UgdXBkYXRlIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBTYWZh
cmkuIiwgc2FmYXJpVmVyc2lvbl0pOwotICAgIH0KLQotICAgIGlmIChbZnJhbWV3b3JrUGF0aCBy
YW5nZU9mU3RyaW5nOkAiOiJdLmxvY2F0aW9uICE9IE5TTm90Rm91bmQgfHwKLSAgICAgICAgW3Bh
dGhUb0VuYWJsZXJMaWIgcmFuZ2VPZlN0cmluZzpAIjoiXS5sb2NhdGlvbiAhPSBOU05vdEZvdW5k
KQotICAgICAgICBkaXNwbGF5RXJyb3JBbmRRdWl0KEAiVW5hYmxlIHRvIGxhdW5jaCBTYWZhcmki
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAiV2ViS2l0IGlzIGxvY2F0ZWQgYXQgYSBw
YXRoIGNvbnRhaW5pbmcgYW4gdW5zdXBwb3J0ZWQgY2hhcmFjdGVyLiAgUGxlYXNlIG1vdmUgV2Vi
S2l0IHRvIGEgZGlmZmVyZW50IGxvY2F0aW9uIGFuZCB0cnkgYWdhaW4uIik7Ci0KLSAgICBOU011
dGFibGVBcnJheSAqYXJndW1lbnRzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aE9iamVjdDpl
eGVjdXRhYmxlUGF0aF07Ci0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZW52aXJvbm1lbnQgPSBb
W1tOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpmcmFtZXdvcmtQYXRo
LCBAIkRZTERfRlJBTUVXT1JLX1BBVEgiLCBAIllFUyIsIEAiV0VCS0lUX1VOU0VUX0RZTERfRlJB
TUVXT1JLX1BBVEgiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHlsZEluc2VydExpYnJh
cmllcywgQCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCBbW05TQnVuZGxlIG1haW5CdW5kbGVdIGV4
ZWN1dGFibGVQYXRoXSwgQCJXZWJLaXRBcHBQYXRoIiwgbmlsXSBtdXRhYmxlQ29weV0gYXV0b3Jl
bGVhc2VdOwotICAgIFtlbnZpcm9ubWVudCBhZGRFbnRyaWVzRnJvbURpY3Rpb25hcnk6W1tOU1By
b2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBlbnZpcm9ubWVudF1dOwotICAgIGFkZFN0YXJ0UGFnZVRv
QXJndW1lbnRzSWZOZWVkZWQoYXJndW1lbnRzKTsKLQotICAgIHdoaWxlICgqKythcmd2KQotICAg
ICAgICBbYXJndW1lbnRzIGFkZE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6
KmFyZ3ZdXTsKLQotICAgIG15RXhlY3ZlKGV4ZWN1dGFibGVQYXRoLCBhcmd1bWVudHMsIGVudmly
b25tZW50KTsKLQotICAgIGNoYXIgKmVycm9yID0gc3RyZXJyb3IoZXJybm8pOwotICAgIE5TU3Ry
aW5nICplcnJvck1lc3NhZ2UgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkxhdW5jaGlu
ZyBTYWZhcmkgYXQgJUAgZmFpbGVkIHdpdGggdGhlIGVycm9yICclcycgKCVkKSIsIFtzYWZhcmlC
dW5kbGUgYnVuZGxlUGF0aF0sIGVycm9yLCBlcnJub107Ci0gICAgZGlzcGxheUVycm9yQW5kUXVp
dChAIlVuYWJsZSB0byBsYXVuY2ggU2FmYXJpIiwgZXJyb3JNZXNzYWdlKTsKLQotICAgIFtwb29s
IHJlbGVhc2VdOwotICAgIHJldHVybiAwOwotfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMv
V2ViS2l0TGF1bmNoZXIvbWFpbi5tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQoj
IyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRl
eDogVG9vbHMvV2ViS2l0TGF1bmNoZXIvbmlnaHRseS53ZWJraXQub3JnLnB1YmxpYy5wZW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0TGF1bmNoZXIvbmlnaHRseS53ZWJraXQub3JnLnB1Ymxp
Yy5wZW0JKHJldmlzaW9uIDI2ODQ4NykKKysrIFRvb2xzL1dlYktpdExhdW5jaGVyL25pZ2h0bHku
d2Via2l0Lm9yZy5wdWJsaWMucGVtCShub25leGlzdGVudCkKQEAgLTEsMjAgKzAsMCBAQAotLS0t
LS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLU1JSURPakNDQWkwR0J5cUdTTTQ0QkFFd2dnSWdBb0lC
QVFDa1FMb1ZqdXUzZFBuMWRPOE42eElGZjRyaVBWdUoKLVhPVnB4K1FsRk1ubytxenFHSmNKeHFo
ZnFaaElSd0xxNjJlSHBldVlLSXV1UEc4ZnFYWS9ocXVIUUlqcnRFRloKLWV1Q1c4Y3hxQzdpQmcz
UGxYNlJzS1VYSEQrV1k4MkhKNUhka2QrNUczakQ5cU8rS2E3UlhnT25MN2ZUUmNia1cKLXJ0QmpM
N2xWQWxNQlNWRzU0K3p2dGkvaDFDbWRmcE84M0pBbm9HbDhjK1dHZ0tsd3Q1blI3anhwNFBnQmRB
dzIKLWFKdCtVcXJNa1pPcjROcGlrMWE4SXpXK0tUbEJuOTZEYkY1TTZQUDZVaDlUYmxuWXR0MGlj
L1ZucjZNS1M2MFgKLVdOQ2IvMi9IRmpRWWFJTll0SmZYcEJhR1VNWjBkc0F5TXhuL1NmMXZBcG1W
V2gydDBUUk1nSTRKQWhVQXRMN0UKLXBhdU0rc3BxYVpuQXhjTU5NUDB1RmFFQ2dnRUFlMWxGNnla
SEpoODlRZFBRdm13Uk9LRkhPWFl2RVg1L0lGUncKLXBGSkRkSkpkdzUzblMveVhXS3k4by93QnFF
U3plVkNia3RZUnFRRTg0QXBPL0tKczRLZHdpTDJMVTMyRmlNRDAKLWM0VUNrUmYvUnhTTHhFNC9G
R0tRelRhQkI1VEdNZnVOTG42Qy80YW9OWG54Y0IzOTlReEtGMnNsQnAxR1Fnc0MKLTYvNEtaWllO
K2t4R3hxQWZBMVVxcmxlVnR2OU93bWFDSndNWVlxcTIwenhZaHJ5dUJqVFNBRCtWTjZuY2VyVWYK
LUl4VWNlWDgzbVdyaUJNdFhISFIweDEyV1VEZm5GUVpnNTgzTWVNZ3VGYzhxRVNxWlg3bVd0elNu
YmxzR21lejMKLXBEMDI4QVBIRldKU2RydVQyWUkxTkpmMDhTN0E5R0xka0xSYVVOUVRBQnlnQU52
aVF3T0NBUVVBQW9JQkFHRG4KLVNGUkozby93S0JtMVB3UXlhTWZFOGR0RnQxTlZPcVRBMi9WTDND
VmZxUFY2dGl6UlN2dG80NUhTQm45NlI2bkMKLWN4WkNpM2tuSnkvOVY5SVR0bEN3MVV0cWVZT1c3
c3AwUFJBZ2N0OTNYdXpsTXBPRlFyNVE4anlkdnFNRXltT0QKLWM1NVFFMnZiU2dIWWJRSDM2MnVO
WHN5TVdOMXhSVlNsVDEzTUJpK2ZtWjg2WjVDa1JXdklQV2cyTlJPMTZibngKLWpLNmwwTEd2Qktp
VTc5SElySDdEbEVmWDB6VkpCWWk2Tm5KcXZGU0Rlb0t5aU9NV2FDQXF1V0RndTAwazNOT2wKLWdu
ZFBubCttVnpFRWdOdnZOMEg2S0dWVGY1NUg3S1IxTHF0V0ZXQ3cwVlh5NW9GZ1JCMzU5aHJMdnhl
OTFVNE0KLWlOM2pEN1l4dUVOVE9UZWZ1OWM9Ci0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KSW5k
ZXg6IFRvb2xzL1dlYktpdExhdW5jaGVyL3N0YXJ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0TGF1bmNoZXIvc3RhcnQuaHRtbAkocmV2aXNpb24gMjY4NDg3KQorKysgVG9vbHMvV2Vi
S2l0TGF1bmNoZXIvc3RhcnQuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDE3ICswLDAgQEAKLTxo
dG1sPgotICAgIDxoZWFkPgotICAgICAgICA8dGl0bGU+TG9hZGluZyBXZWJLaXQuLi48L3RpdGxl
PgotICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIxO1VSTD1odHRw
czovL3dlYmtpdC5vcmcvbmlnaHRseS9zdGFydC8iPgotICAgICAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ci0gICAgICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc2NyaXB0Jyk7Ci0gICAgICAgICAgICBzY3JpcHQuc3JjID0gIngtd2Via2l0LWxh
dW5jaGVyOndlYmtpdC12ZXJzaW9uLWluZm9ybWF0aW9uLmpzIjsKLSAgICAgICAgICAgIHNjcmlw
dC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBpZiAod2ViS2l0QnJhbmNo
ICYmIHdlYktpdFJldmlzaW9uKQotICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlv
biA9ICJodHRwczovL3dlYmtpdC5vcmcvbmlnaHRseS9zdGFydC8iICsgd2ViS2l0QnJhbmNoICsg
Ii8iICsgd2ViS2l0UmV2aXNpb247Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKLSAgICAgICAgPC9zY3JpcHQ+
Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgIDwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IFRv
b2xzL1dlYktpdExhdW5jaGVyL3dlYmtpdC5pY25zCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6
IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IFRvb2xzL1dlYktpdExhdW5jaGVy
L3dlYmtpdC5pY25zCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCww
ICMjCi1hcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQtbGF1bmNoZXItYXBwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLWxhdW5jaGVyLWFwcAko
cmV2aXNpb24gMjY4NDg3KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQtbGF1bmNo
ZXItYXBwCShub25leGlzdGVudCkKQEAgLTEsMTIxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHBl
cmwKLQotIyBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMgQ29weXJpZ2h0IChDKSAyMDA2IE1hcmsgUm93ZSA8b3BlbmRhcndpbi5vcmdAYmRhc2gu
bmV0Lm56Pi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotIyAzLiAgTmVpdGhlciB0
aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0jICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCi0jICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uIAotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotIyBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0jIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotIyBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSMgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIyBDcmVh
dGVzIHRoZSBsYXVuY2hlciBXZWJLaXQuYXBwIHdpdGggYnVuZGxlZCBmcmFtZXdvcmtzLgotCi11
c2Ugc3RyaWN0OwotdXNlIHdhcm5pbmdzOwotCi11c2UgRmluZEJpbjsKLXVzZSBsaWIgIiRGaW5k
QmluOjpCaW4vLi4vU2NyaXB0cyI7Ci11c2Ugd2Via2l0ZGlyczsKLQotbXkgQHhjb2RlQnVpbGRB
cmd1bWVudHMgPSBYY29kZU9wdGlvbnMoKTsKLW15ICRuaWdodGx5TGF1bmNoZXJUZW1wbGF0ZVBh
dGggPSAiJEZpbmRCaW46OkJpbi8uLi9XZWJLaXRMYXVuY2hlciI7Ci1teSAkbmlnaHRseUxhdW5j
aGVyU3RhZ2luZ1BhdGggPSBwcm9kdWN0RGlyKCkgLiAiL1dlYktpdC5hcHAiOwotCi1zdWIgYnVp
bGROaWdodGx5TGF1bmNoZXIKLXsKLSAgICBjaGRpcigkbmlnaHRseUxhdW5jaGVyVGVtcGxhdGVQ
YXRoKTsKLSAgICBzeXN0ZW0oInhjb2RlYnVpbGQiLCAiY2xlYW4iLCAiLWFsbHRhcmdldHMiLCBA
eGNvZGVCdWlsZEFyZ3VtZW50cywgQEFSR1YpID09IDAgb3IgZGllICJGYWlsZWQgY2xlYW5pbmcg
V2ViS2l0TGF1bmNoZXIgcHJvamVjdCI7Ci0gICAgc3lzdGVtKCJ4Y29kZWJ1aWxkIiwgQHhjb2Rl
QnVpbGRBcmd1bWVudHMsIEBBUkdWKSA9PSAwIG9yIGRpZSAiRmFpbGVkIGJ1aWxkaW5nIFdlYktp
dExhdW5jaGVyIHByb2plY3QiOwotICAgIGNoZGlyV2ViS2l0KCk7Ci19Ci0KLXN1YiBjdXJyZW50
UmV2aXNpb24KLXsKLSAgICBteSAkc291cmNlRGlyID0gc291cmNlRGlyKCk7Ci0gICAgaWYgKGlz
U1ZORGlyZWN0b3J5KCRzb3VyY2VEaXIpKSB7Ci0gICAgICAgIHJldHVybiBjdXJyZW50U1ZOUmV2
aXNpb24oKTsKLSAgICB9IGVsc2lmIChpc0dpdERpcmVjdG9yeSgkc291cmNlRGlyKSkgewotICAg
ICAgICBteSAkZ2l0TG9nID0gYGNkICRzb3VyY2VEaXIgJiYgTENfQUxMPUMgZ2l0IGxvZyAtLWdy
ZXA9J2dpdC1zdm4taWQ6ICcgLW4gMSB8IGdyZXAgZ2l0LXN2bi1pZDpgOwotICAgICAgICAobXkg
JHJldmlzaW9uKSA9ICgkZ2l0TG9nID1+IG0vICtnaXQtc3ZuLWlkOiAuK0AoXGQrKSAvZyk7Ci0g
ICAgICAgIHJldHVybiAkcmV2aXNpb247Ci0gICAgfQotfQotCi1zdWIgY3VycmVudEJyYW5jaAot
ewotICAgIG15ICRzb3VyY2VEaXIgPSBzb3VyY2VEaXIoKTsKLSAgICBteSAoJHVybCwgJGJyYW5j
aCk7Ci0gICAgaWYgKGlzU1ZORGlyZWN0b3J5KCRzb3VyY2VEaXIpKSB7Ci0gICAgICAgIG15ICRz
dm5JbmZvID0gYExDX0FMTD1DIHN2biBpbmZvICRzb3VyY2VEaXIgfCBncmVwIFVSTDpgOwotICAg
ICAgICAoJHVybCkgPSAoJHN2bkluZm8gPX4gbS9VUkw6ICguKykvZyk7Ci0gICAgfSBlbHNpZiAo
aXNHaXREaXJlY3RvcnkoJHNvdXJjZURpcikpIHsKLSAgICAgICAgbXkgJGdpdExvZyA9IGBjZCAk
c291cmNlRGlyICYmIExDX0FMTD1DIGdpdCBsb2cgLS1ncmVwPSdnaXQtc3ZuLWlkOiAnIC1uIDEg
fCBncmVwIGdpdC1zdm4taWQ6YDsKLSAgICAgICAgKCR1cmwpID0gKCRnaXRMb2cgPX4gbS8gK2dp
dC1zdm4taWQ6ICguKylAXGQrIC9nKTsKLSAgICB9Ci0gICAgKCRicmFuY2gpID0gKCR1cmwgPX4g
bS9cL3dlYmtpdFwvKHRydW5rfGJyYW5jaGVzXC9bXlwvXSspLyk7Ci0gICAgZGllICJVbmFibGUg
dG8gZGV0ZXJtaW5lIGN1cnJlbnQgU1ZOIGJyYW5jaCBpbiAkc291cmNlRGlyIiB1bmxlc3MgKGRl
ZmluZWQgJGJyYW5jaCk7Ci0gICAgJGJyYW5jaCA9fiBzL15icmFuY2hlc1wvLy87Ci0gICAgcmV0
dXJuICRicmFuY2g7Ci19Ci0KLXN1YiBjb3B5TmlnaHRseUxhdW5jaGVyCi17Ci0gICAgbXkgJHJl
dmlzaW9uID0gY3VycmVudFJldmlzaW9uKCk7Ci0gICAgbXkgJGJyYW5jaCA9IGN1cnJlbnRCcmFu
Y2goKTsKLQotICAgIG15ICRpbmZvUGxpc3QgPSAiJG5pZ2h0bHlMYXVuY2hlclN0YWdpbmdQYXRo
L0NvbnRlbnRzL0luZm8ucGxpc3QiOwotICAgIG15ICR2ZXJzaW9uRmlsZSA9ICIkbmlnaHRseUxh
dW5jaGVyU3RhZ2luZ1BhdGgvQ29udGVudHMvUmVzb3VyY2VzL1ZFUlNJT04iOwotICAgIG15ICRi
cmFuY2hGaWxlID0gIiRuaWdodGx5TGF1bmNoZXJTdGFnaW5nUGF0aC9Db250ZW50cy9SZXNvdXJj
ZXMvQlJBTkNIIjsKLSAgICBteSAkZGF0YTsKLSAgICBvcGVuKElOLCAkaW5mb1BsaXN0KSBvciBk
aWUgIkNvdWxkbid0IG9wZW4gSW5mby5wbGlzdCBpbiBidWlsdCBhcHBsaWNhdGlvbiBmb3IgcmVh
ZGluZyI7Ci0gICAgewotICAgICAgICB1bmRlZiAkLzsKLSAgICAgICAgJGRhdGEgPSA8SU4+Owot
ICAgIH0KLSAgICBjbG9zZShJTik7Ci0gICAgb3BlbihPVVQsICI+JGluZm9QbGlzdCIpIG9yIGRp
ZSAiQ291bGRuJ3Qgb3BlbiBJbmZvLnBsaXN0IGluIGJ1aWx0IGFwcGxpY2F0aW9uIGZvciB3cml0
aW5nIjsKLSAgICAkZGF0YSA9fiBzL1ZFUlNJT04vJHJldmlzaW9uL2c7Ci0gICAgcHJpbnQgT1VU
ICRkYXRhOwotICAgIGNsb3NlKE9VVCk7Ci0KLSAgICBvcGVuKE9VVCwgIj4kdmVyc2lvbkZpbGUi
KSBvciBkaWUgIkNvdWxkbid0IG9wZW4gVkVSU0lPTiBpbiBidWlsdCBhcHBsaWNhdGlvbiBmb3Ig
d3JpdGluZyI7Ci0gICAgcHJpbnQgT1VUICIkcmV2aXNpb25cbiI7Ci0gICAgY2xvc2UoT1VUKTsK
LQotICAgIG9wZW4oT1VULCAiPiRicmFuY2hGaWxlIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIEJS
QU5DSCBpbiBidWlsdCBhcHBsaWNhdGlvbiBmb3Igd3JpdGluZyI7Ci0gICAgcHJpbnQgT1VUICIk
YnJhbmNoXG4iOwotICAgIGNsb3NlKE9VVCk7Ci0KLSAgICBteSBAZnJhbWV3b3JrcyA9ICgiSmF2
YVNjcmlwdENvcmUiLCAiV2ViQ29yZSIsICJXZWJLaXQiKTsKLSAgICBmb3IgbXkgJGZyYW1ld29y
ayAoQGZyYW1ld29ya3MpIHsKLSAgICAgICAgc3lzdGVtKCJkaXR0byIsIHByb2R1Y3REaXIoKSAu
ICIvJGZyYW1ld29yay5mcmFtZXdvcmsiLCAiJG5pZ2h0bHlMYXVuY2hlclN0YWdpbmdQYXRoL0Nv
bnRlbnRzL1Jlc291cmNlcy8kZnJhbWV3b3JrLmZyYW1ld29yayIpID09IDAgb3IgZGllICJGYWls
ZWQgY29weWluZyAkZnJhbWV3b3JrLmZyYW1ld29yayBpbnRvICRuaWdodGx5TGF1bmNoZXJTdGFn
aW5nUGF0aCI7Ci0gICAgfQotfQotCi1teSAkYiA9IGN1cnJlbnRCcmFuY2goKTsKLW15ICRyID0g
Y3VycmVudFJldmlzaW9uKCk7Ci1wcmludCAiQnJhbmNoOiAiLCAkYiwgIlxuIjsKLXByaW50ICJS
ZXZpc2lvbjogIiwgJHIsICJcbiI7Ci0KLWNoZGlyV2ViS2l0KCk7Ci1idWlsZE5pZ2h0bHlMYXVu
Y2hlcigpOwotY29weU5pZ2h0bHlMYXVuY2hlcigpOwoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQtbGF1bmNoZXItYXBwCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRl
ZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTEgKzAsMCAjIwotKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Nk
a3ZhcmlhbnQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9zZGt2YXJpYW50LnB5CShyZXZpc2lvbiAyNjg0ODcpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Nka3ZhcmlhbnQucHkJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDcgKzMzLDYgQEAgU0RLX1ZBUklBTlRfRklMRVMgPSBbCiAgICAgIlRvb2xzL0ltYWdlRGlm
Zi9jZy9Db25maWd1cmF0aW9ucy9TREtWYXJpYW50LnhjY29uZmlnIiwKICAgICAiVG9vbHMvV2Vi
RWRpdGluZ1Rlc3Rlci9Db25maWd1cmF0aW9ucy9TREtWYXJpYW50LnhjY29uZmlnIiwKICAgICAi
VG9vbHMvTWluaUJyb3dzZXIvQ29uZmlndXJhdGlvbnMvU0RLVmFyaWFudC54Y2NvbmZpZyIsCi0g
ICAgIlRvb2xzL1dlYktpdExhdW5jaGVyL0NvbmZpZ3VyYXRpb25zL1NES1ZhcmlhbnQueGNjb25m
aWciLAogICAgICJUb29scy9sbGRiL2xsZGJXZWJLaXRUZXN0ZXIvQ29uZmlndXJhdGlvbnMvU0RL
VmFyaWFudC54Y2NvbmZpZyIsCiAgICAgIlRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Db25maWd1
cmF0aW9ucy9TREtWYXJpYW50LnhjY29uZmlnIiwKICAgICAiVG9vbHMvQ29udGVudEV4dGVuc2lv
blRlc3Rlci9Db25maWd1cmF0aW9ucy9TREtWYXJpYW50LnhjY29uZmlnIiwK
</data>
<flag name="review"
          id="427556"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>